DekiWiki Hayes Beta2 upcoming release

I haven’t blogged about any work-related items in quite a while so I thought I’d make a quick mention of what I’ve been doing lately. A couple of weeks ago, we released DekiWiki Hayes Beta1 to give the community a sneak peek of what we’ve been working on. A few courageous souls gave the beta a shot with varying degrees of success. As far as I’m concerned, the feedback was pretty clear. The install procedure SUCKED! Seriously…I’m not kidding…it sucked.

When I was out in SD last week, we decided that it was time to finally get a web-based installer setup. I’ve spent the last couple of days hacking/cleaning things up and things are looking much better now.

The new installer will be very familiar to those of you who’ve installed MediaWiki in the past (not surprising due to the fact that DekiWiki is a MediaWiki fork, though the similarities are rapidly declining). I’m really happy with the outcome and can’t wait to see what it looks like once our UI guy applies a nice style to my heinous markup :)

The key features of the new installer are:

1) checks for prerequisites (apache2, php5, mysql5, curl, mono, imagemagick, mod_rewrite)
2) automatic setup of all the DB privileges
3) automatic configuration of deki-api (assuming you’re using mod_proxy to proxy request from DekiWiki to deki-api)

I think this will drastically improve the “clean install” process. I still need to write some logic to perform an upgrade from the Gooseberry version of the DB schema to the Hayes version, but the groundwork is all in place so it shouldn’t be too much more work.

On a side note, here are a few of the awesome features I’m excited about in the Hayes release. NOTE: I can’t guarantee all of these will work in beta2 :)

1) new parser: The mediawiki parser we were using was _incredibly_ complicated and confusing. I’ve never seen so many confusing regex’s and logic in my life. BrigetteK did a _wonderful_ job porting the new parser to C# and it’s just so much cleaner now.

2) Live Data services: Live Data services are a way to include external data on your wiki page. For example, we’ve written LiveData services for video files (YouTube, Viddler, Google Video, etc), Flickr slideshows, RSS feeds (boingboing on my homepage is fun :) ), Google Maps, Yahoo stock quotes, widgetbox.com widgets, and for the geekier folks: LaTeX formulas, and graphviz graphs. LiveData services can be run locally or remotely over the internet. They are completely language/platform agnostic and are simply exposed via a URI. SteveB has written a few base classes in C# that make writing your own LiveData service really easy. Of course, we love linux so all of our services run on Mono (but also work just fine on the MS .NET runtime…I’m looking at you Mahlberg! :) ).

3) External Authentication services: Many companies want to leverage their internal ActiveDirectory/LDAP login infrastructure to log in to their wiki so we’ve added a way to plug in external authentication services. MaxM wrote an LDAP auth service and I threw together a simple service that authenticates with a Drupal database (which I guess I still need to document…)…but seriously, if I can do it, anyone can.

4) Extensible storage provider model: MaxM abstracted the storage provider model for saving file attachments. It’s now possible to store your attachments locally on disk or using Amazon’s S3 storage service! You can add your own storage provider by implementing the IStorageProvider interface. I don’t know…maybe you’re nuts and want to store all your attachments on alt.binaries or something…

5) New indexing service (Lucene): I haven’t gotten around to actually implementing this so it won’t be available in Beta2, but the goal is to decouple DekiWiki’s lucene index from the dekiwiki database. We’ll be exposing a generic REST-based web service which will allow you to store data about a document using a URI as the key. This will allow us to index external data sources (like shared network drives, external websites, etc) but have the results available within the DekiWiki search interface. I’m hoping to leverage some of the great filters/converters already written by the Beagle guys!

6) nicer UI: RoyK has made a TON of improvements to the DekiWiki UI. A few notable changes are: a single resource file for localizing text, a new photo viewer (using awesomebox), and most importantly, the ability to create your own skins for DekiWiki. To see an example of what you can do with skins, see: http://wiki.amplifysd.com and a demo space DamienH has been working on: http://www.mugglepedia.com

I’m sure there are lots of other great things worth mentioning but these features really stick out in my mind. It’s so exciting to see everything coming and it’s been a blast to be a part of if!

Leave a Reply