Saturday, October 20, 2007

devLink Technical Conference - Day Two

devLink Technical Conference
Last Saturday was the second day of devLink. It was another great day, in which I mostly heard about TDD (Test Driven Development) and Enterprise/Web 2.0. I met someone from my church who was one of the session speakers. And, I was one number away from winning an XBox 360 (darn, so close).

My morning began with another session by Gregory Beamer called TDD and Refactoring: The Wonder Twins of Development. It was a great session that was very practical - I will definitely need to review my notes and the slides. Unfortunately we still have a lot of classic ASP which doesn’t have the level of tools as .NET, but I think these principles are helpful – even just the Code Smells section.

Bob Sullivan sharing his background
I switched over to the Java track for the next couple sessions, led by Irv Salisbury and Bob Sullivan of directThought. The first was Enterprise Web 2.0. It was a good overview of their experiences developing a web 2.0 app for a large enterprise. There were some useful nuggets, though some of the details weren’t very relevant for my work – the lessons learned slides were helpful. They used Dojo as their JavaScript framework, and I heard some others mention it at this conference as well. After the first session, I met Bob Sullivan, who used to go to the same church as me until he moved recently. After lunch, I went to Bob’s session on Google Tools & APIs. He presented a nice overview of using some of Google’s public tools & APIs on our own sites & projects. Google definitely has some cool stuff.

Michael Neel demonstrating a plastic samurai sword
Next, I went to Michael Neel’s presentation on Zen and the Art of Website Maintenance. He had a cool introduction that included props. He and a volunteer illustrated the differences between a (plastic) broadsword and samurai sword, and explained what makes samurai swords superior. In addition to their curved design to allow it to slice without having to pull back, it is made with a combination of a strong, soft core and hard but brittle outer steel to keep a sharp edge. He compared that to developing a maintainable web app in ASP.NET. This session was very specific to ASP.NET, but was useful, and the sword illustration was the best part.

Finally, Ron Jacobs spoke at the closing keynote. After highlighting his ARCast.tv show (with a hilarious clip on transactions in real life), he presented on The Perfect Pattern Storm, where TDD meets UX and MVP. Is that enough acronyms for ya? It was a great session, both for more thoughts on Test Driven Development and an introduction to the Model, View, Presenter pattern (similar to MVC) to create a great User eXperience. It all looks and sounds cool, but he did caution the audience to evaluate MVP and see if it makes sense before blindly using it.

In summary, devLink was a great conference and a great deal. The conference got me hyped, but it was a long week and I was super tired afterward - thus the delayed blog post. I definitely want to go to more tech conferences in the future. And, I should probably get more involved with a local user group. Thanks to all the volunteers, speakers and sponsors for making this conference possible!

I want to start applying some of the techniques at work, but working mostly in classic ASP makes it a bit challenging, though I’m sure some things are possible. Hmm, migrating to ASP.NET sounds appealing – except for all the manual testing that would have to be done in the process.

Friday, October 12, 2007

devLink Technical Conference - Day One

Today was the first day of the 2007 devLINK Technical Conference for developers being held in Nashville, Tennessee. I'd have to say that it was a really cool day. Some practical things, but also a lot about the latest and greatest which was cool but probably won't be using day-to-day quite yet.

It started with a bang with Brad Abrams demonstrating Microsoft's new technologies (particularly Silverlight tied to .NET) to provide really cool user experiences and especially the integrated tools they have created to integrate cutting-edge design with .NET development. He particularly highlighted cross-platform functionality, including Safari on a Mac and integrating with a PHP app. The videos and demos were really cool.

I attended a session by Rocky Lhotka, creator of CSLA.NET, on .NET 3.0 which was a great overview and eye opening regarding XAML and WPF (Windows Presentation Foundation - Microsoft's cool new graphics platform). He also mentioned that Silverlight is basically WPF-lite. He also gave me a suggestion about how to provide client-side validation for a web application while keeping validation rules in the business layer by using the GetRulesForProperty() method to get all the rules and writing a bit of JavaScript to handle each rule type.

After lunch, I also attended two sessions by Rob Howard on ASP.NET (on performance and internals). It was great for better understanding ASP.NET and some practical tips and concepts. The performance session was great, but I crashed a bit during his second session (I was very tired).

My final session was by Greg Beamer on SOA (Service Oriented Architecture). It was a good overview of SOA and with a cool example of where it would be very useful (updating client info between multiple applications in an enterprise). On a personal note, before I found MindTouch Deki Wiki a couple days ago, I didn't think SOA would have any current practical benefits for our organization, but I'm rethinking that. FYI MindTouch created some helpful video overviews on SODA, REST, etc.

The day ended with comedian Rik Roberts who was hilarious and clean. Two XBOX 360's were given away today. Unfortunately I didn't win one, and regretfully I could've had a 1 in 7 chance at one had I previously blogged about devLink. But they're giving away more stuff tomorrow and I did win an iTunes gift card before the conference :-). The fact that this conference is in town and only $50 is awesome. Thanks sponsors! It's actually my first professional tech conference. It has a Microsoft .NET focus, but there is a Java track and more generalized sessions, too. Anyways, I'm looking forward to tomorrow.

Wednesday, October 10, 2007

I may have found the perfect wiki

This is a follow-up to my last post about trying to find the perfect corporate wiki. I think I may have found it. I was researching and researching and none of the open source options seemed to be what I wanted.

  • Confluence would have already been one the one if cost weren't a barrier.
  • TWiki seems to have everything except that it is ugly and unappealing.
  • DokuWiki has no WYSIWYG editor and limited functionality of some other features.
  • MediaWiki has poor page permissions.
  • Trac is okay as a wiki but some features are limited (lots of features are plugins rather than core functionality). No LDAP authentication with our current setup, and it's a bit tedious to setup each project which is independent from the others.
  • Socialtext has most features but it's open source offering seems to have poor documentation and installation.
  • MoinMoin lacks page commenting, has minimal attachment handling and is ugly.
  • TikiWiki appears to have no tagging. Actually, looking again, it does seem pretty nice, though - I didn't look too closely.
So, I'm picky. Some of the above have all the features, but are ugly or hard to use (see my spreadsheet). Then, earlier yesterday I stumbled upon XWiki. I should have seen it before, since it's listed on the Wikipedia entry on corporate wiki's, but for some reason I missed it. It's pretty sweet, looks pretty good, has WYSIWYG and all the features and some nice dynamic HTML. It would work pretty well, I think. But, as I researched, I couldn't find any recent articles about it or anything. Mysterious. They've been around a few years and even participated in Google Summer of Code 2007, but the lack of recent press scares me.

Then last night I found it. The one. MindTouch's Deki Wiki. I mean, I've just barely tested it. But I tried their site (which runs on it), I read the reviews (which are recent and rave about it). It has all the features, it looks nice, seems user friendly, it's growing (some claim it to be the fastest growing wiki), it's under active development, etc. It's not perfect, but it may be as close as we'll get (especially for the price).

It is a bit different from a traditional wiki since it is more hierarchical than most, but does it well and still has tags (and links and search, of course). Permissions are currently a bit limited, but should be good enough for us until they finish implementing group-based page/section permissions.

And more, it's very extensible, including a state-of-the-art API that allows it to integrate with lots of other stuff (to create mashups in geek terminology). Also, one of the download options is a VMware image. Sounds like a good reason to finally test drive the whole virtual server thing.

Looks like the co-founders of MindTouch, the creators of Deki Wiki, are a couple of ex-Microsoftees. Contrary to popular opinion, looks like Microsoft people know how to do some things really well after all (even if they're no longer at MS).

There are some good hosted wiki's too, but I didn't really spend much time researching them since they usually cost money. BrainKeeper looks good and is feature-rich. Everyone said JotSpot was nice, but we're still waiting for Google to rerelease it.

Sunday, October 07, 2007

In search of the perfect wiki

A few weeks ago I went to a dinner with a few church IT folks where we discussed several things. One thing that was mentioned was using a wiki for internal documentation. And I've been racking my brain about that ever since. I mean, it's not a revolutionary idea. We are already using Trac for some project management and minimal wiki, and I've looked into DokuWiki a bit.

Ever since the dinner, I've been on a quest to find the perfect wiki solution. There are several choices and they all have their ups and downs. The problem, is, I tend to be a bit of a perfectionist (a maximizer according to StrengthsFinder). So I don't just want any old thing that will get by, especially if it will mean converting to a different one in a year.

I want tagging (emergent categorization), user friendly (WYSIWYG editor, clean interface, easy to use tools), access control (so sensitive docs can be protected), discussion/commenting, good version control, good attachment handling, LDAP authentication (so users don't need to remember yet another username & password), mature, runs on Windows, preferably free/open source, extensible/customizable, etc. TWiki sounds intriguing, I may just have to try it, but it doesn't appear to have the cleanest interface - seems a bit clunky. MediaWiki is the most popular, but appears weak in ACL and some enterprise features. Some of the non-free and hosted options look appealing - but a wiki isn't exactly in our budget.

So, why a wiki? Because it's cool, and everyone else is doing it? Well, sort of. More like it does certain things a lot better than a file share. Accessible from any web browser, better searching, better linking, better collaboration, more flexible categorization, anyone can edit and version control are the main benefits. My thought is that we'll start with IT, then get other departments to start using it, and perhaps allow our field staff to use it as well (like best practices for campus ministry, etc.).

I love tagging and linking so much more than limited hierarchical folder structures. So much information falls into multiple categories and relates to other things, both of which current file systems don't handle well. Hierarchies aren't evil, but limiting a file to a single category under several levels of folders is not the best solution. Also, allowing anyone to edit (when appropriate) means so many more people can provide input, while version control allows easy undo.

I recently discussed some of my wiki research with my office manager who is tired of all his e-mail and is looking into better solutions for task/project management (something more user friendly than Trac, more like Basecamp).

I will keep researching wikis and let you know what we decide. I would love to hear which wiki you are using within your organization and about your experience.