Friday, October 24, 2008

PDC 2008 - Here I Come

Travel time again. Destination Los Angeles. There I'll spend the next week learning everything that Microsoft will try to teach me - and probably then some.
See you all at the parties! I'll be the guy in a gray t-shirt, with a laptop and a high-tech phone. If you find me, I'll buy you a beer or something!

Wednesday, October 22, 2008

Flash Rss Reader

Another little flash gadget I just made... An RSS reader. Yes, I know it's an original idea - but it seemed like a good, comprehensible, and to some degree useful thing.

For fun I made iPhone style navigation - in the sense that you need to drag right or left to move between items.
It lists the blog feed from labs.episerver.com.

The trickiest thing was to handle all the security around loading a URL in flash. Flash can only load data from the same domain as it is located on (or another domain that has a crossdomain.xml file in the root, allowing flash access). Anyway, the simple solution was to make a small rss proxy in c# (around 3 lines of code) and put it on my test-domain together with the flash app.





Allan version 1952

Just stumpled upon Yearbookyourself.com. What a cool feature! You can see how you would look like on a high-school yearbook picture from 1950-2000.

In case you're wondering, here's how I would have looked in 1952 (when I was -27 years old).

Allan1952

Monday, October 20, 2008

Oh, the power of DHTML

I spend Sunday visiting Copenhagen's Zoological museum with my wife and son. Great museum, even my 14 months old son loved it - all the stuffed animals to look at and pet! Nevertheless, I came across some stuffed lemmings there and quickly found myself floating back memory lane to that wonderfully 90-something game that I used to spend so many hours enjoying.

I figured someone probably had put it online by now - but I hadn't imagine a DHTML+Javascript only version of it. Check it out! Very cool.

Saturday, October 18, 2008

Wiki vs CMS - the difference is psychological

When I started in EPiServer AB one of my first tasks was to "make a wiki plugin for EPiServer". Naturally, being new in my job, I enthusiastically started working. However, it pretty soon dawned on my that I didn't know what a Wiki really was. Sure, I use wikipedia daily and understand how it works, I know that "Wiki" means "fast" in Hawaiian, but it wasn't really that obvious to see what the difference is between a CMS like EPiServer CMS and a Wiki. I ended up writing an internal RFC on the subject, and awaited comments while I moved on to tons of other tasks, piling up on my brand new desk.
Around half a year later, I'm in a small but luxurious hotel in the Stockholm archipelago together with the rest of the EPiServer Research team, brainstorming on which new prototypes we should make for our big partner event in june. Again, the Wiki came in to play, and I spend a week or so making a working prototype of it, which I later demo'ed at the Partner Summit and hopefully soon will find time to finalize and ship as open source...but I digress. After reading Deane Barkers excellent blog post on the subject I figured I might share my views as well. So here goes:

 

"A wiki is a medium which can be edited by anyone with access to it, and provides an easy method for linking from one page to another." (Wikipedia)

"Contrary to their reputation, Wikis are content management systems that can be managed. They simply take a different approach to content management by choosing to emphasize speed and flexibility rather than strict controls." (CMSWatch)

So, what I really see initially is that a Wiki is a Content Management system focused on collaboration and knowledge sharing. A typical CMS has a some editors and many readers, where a Wiki has many editors and many readers. Not all that much of a feature. Just as Deane I've also looked at some of the key wiki features:

  1. The name of an article is embedded in the hyperlink.
  2. Articles can be created or edited at anytime by anyone (with certain limitations for protected articles).
  3. Articles are editable through the web browser.
  4. Each article provides one-click access to the history/versioning page, which also supports version differencing ("diff") and retrieving prior versions.
  5. The most recent additions/modifications of articles can be monitored actively or passively.
  6. Easy revert of changes is possible.
    On top of those features I would also include:
  7. Easy linking
  8. Easy creation of new pages

(Wikipedia's list of Wiki features)

All features that's either out-of-the-box or just a matter of configuration in any state-of-the-art CMS, like EPiServer CMS.
So, is a CMS = Wiki ? I didn't really see the difference until after I made a prototype and allowed my coworkers to start to use it.

The prototype I made was based on EPiServer CMS, and consisted of the following:

  • A UI that looks like wikipedia
  • View-mode editing of pages
  • Support for WikiSyntax ( like [[links]], etc.)
  • Ability to create a new page on-the-fly if there's a link to a page that doesn't exist.
  • Each page consists of X elements that can be edited independently
  • View-mode version control
  • Discussion Forum for each article
  • Handling of multiple concurrent edits
  • etc.

The moment I had a prototype up and running it didn't take me long to see the strength of these relatively small changes. It's addictive.
So, I realized that the difference between a CMS and a Wiki is really psychological. A Wiki's strength is fast and quick knowledge sharing - with everybody contributing to gather all their knowledge together. Why? A CMS is typically used for websites and/or intranets. Text-writers and editors use it to publish and structure their perfectly written articles. And here is the core of it all....A wiki doesn't need to contain perfect, complete articles. In the nature of a wiki anyone can add their knowledge instantly - either to existing articles or by beginning new ones - but without the obligation to finish them. And hence people are much more likely to start sharing their information. Still not with me? Here's an example: My knowledge of about the country of Norway is limited. If I were to write an article (or a blog post) on Norway I would have to do a lot of researching and then spend a lot of time writing and compiling all this knowledge. End result: I'd never get it done (mostly because I'm lazy, but also because I'm busy and not all that interested in the subject (sorry, Steve)). However, on a Wiki I wouldn't mind at all adding the few things I know about Norway to an existing (or non-existing) article. It would be something like this:

"Norway is a good place to go skiing. They have a lot of oil-money. Beers are rather expensive there. The capital is Oslo." 

But the point is, that I would share the little I know. And maybe someone else with access to the same wiki knows something else about Norway and will add it. Because they are not obliged to writing a complete, perfect article. That's why Wikis work efficiently for knowledge sharing - and that's the difference to typical websites built with a CMS (in my humble opinion).

But of course Wikis can be based on a CMS like EPiServer. Just wait for it :-)