Flickr Schedulr on BBC's Webscape#

On a related note to releasing the much improved v2.0 of Flickr Schedulr, I just noticed that the previous release got mentioned in the BBC's Webscape reviews.

How awesome is that?!

Flickr Schedulr BBC Webscape Review

It shows a quick tour of what the application does and how it works. And note that the part where they set up the Windows scheduled task is no longer necessary in v2.0 since that's now baked in :-)

Sunday, September 05, 2010 9:51:40 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Just released: Flickr Schedulr v2.0!#

Hot off the press and might I add, finally! I just got around to packaging up and publishing the completely rewritten v2.0 of Flickr Schedulr.

Flickr Schedulr

Flickr Schedulr is a Windows desktop application that automatically uploads pictures to Flickr based on a schedule (e.g. to post a new picture every day at a certain time). It allows you to create a queue of pictures to be uploaded, along with their titles, descriptions, tags, and the photoset into which they should end up. This effectively takes the hassle of uploading pictures at regular intervals away, and allows you to go out and have fun shooting pictures (or drinking beer) while your photoblog is maintained for you.

Flickr Schedulr

What's new in this version?

  • The application was completely rewritten in Windows Presentation Foundation (WPF), which makes for a much nicer user experience.
  • You can now create a Windows scheduled task directly from the application.
  • You can now assign a content type and license to pictures.
  • You can now configure more than one Flickr account and maintain upload queues for each account separately from within the same application.
  • You can now add pictures to the queue from the command line using the "/add" and "/addbatch" switches.

As always, you can find all information, screenshots and downloads on the dedicated site at http://schedulr.codeplex.com

Happy Flickring!

Sunday, September 05, 2010 8:50:55 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Just Released: Mayando v1.2!#

Ok maybe it's not just released but still I'm happy to finally put the word out that you can now install Mayando v1.2 directly from the Microsoft Web Application Gallery!

Install Mayando using the Microsoft Web Platform Installer

Mayando is a full-featured photo blogging application that you can use to showcase your photos online.

Mayando-Logo-Medium

What's new in this release:

  • Dates on photos are now hyperlinks to other photos taken or published on the same date.
  • The Flickr photo provider no longer synchronizes machine tags (because they are not intended to be displayed).
  • You can now configure the photo provider to synchronize automatically at regular intervals (e.g. every 60 minutes).
  • You can also use a command-line client application (or if you're a developer, a client API) to remotely trigger a photo provider synchronization through the use of a new Service API.
  • You can now filter the event log by severity.
  • Mayando is now compatible with ASP.NET "medium trust" hosting providers.
  • You can now disable distributed transactions (in the AppSettings.config file) if your hosting provider does not allow them. Note that this can cause data loss and/or corruption so only change this if you accept the risks associated with disabling transactions.

If you want to see it running: check out the Mayando Demo Site or of course my own photo blog.

Wednesday, August 25, 2010 7:51:46 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

What Has Jelle Been Up To (a.k.a. The Last Post)#

Since it’s been almost two years since my last blog post, I figured I owed the remaining 3 subscribers of my blog a short update on what I have been up to...

#1 – Maya

There have indeed been a couple of interesting things going on, and first and foremost, that would include the birth of our amazingly beautiful and unbelievably cute daughter Maya in June last year :-)

Prinses  Koekjestijd Verjaardagskroon

She just turned one year old this week, so time flies indeed! If you would be interested in seeing some more pictures, then I’m sure you can figure out where her own website would be located if you studied the incredibly complicated naming pattern I used to locate my own website :-)

#2 - Mayando

Because Project #1 called for a way to keep the family up to date and to regularly show off exactly how cute Maya is, and (almost equally importantly) because I was looking for an excuse to learn ASP.NET MVC, I decided to write a photo blogging web application. “What, another photo gallery site”, you might ask? Eh, yeah, exactly. But in my defense: I looked hard at the existing ones and couldn’t find one that covered my requirements so this is one I built to fit my needs :-)

Nonetheless, I didn’t just want to build a one-off “baby web site for Maya”, but really a generic application that I could also use later on use as the engine for my own photo blog – and that you, dear reader, might also want to use if you want to publish a collection of photos in a nice and user-friendly way. (For example, I have an architect friend who is interested in using it as a portfolio site for the houses he designed.)

And so, Mayando was born: a full-featured photo blogging application that you can use to showcase your photos online.

Mayando-Logo-Medium

Now I did not want to reinvent solutions to the problem of globally storing and serving images on the web, so I figured that I should only build a rich front-end on top of existing photo storage services such as Flickr. So I built a provider model where the URL’s of the photos and their details (and comments) just get “sucked in” from a photo sharing site and you can work with them from your own website. So basically, the photos get pulled in from a service such as Flickr and then displayed through Mayando, using a lot of navigation possibilities (by creating static pages and dynamic galleries, by browsing through photos, comments, tags, dates, ...).

It also allows visitors to post new comments and obviously I needed to handle comment spam so again I implemented a provider model for anti-spam services (such as Mollom).

And finally, the whole thing had to be easily customizable so I made sure to allow different themes for the photo blog’s look and feel, with customization options ranging from simple (e.g. simply changing the CSS stylesheet) to advanced (completely changing the entire site layout and/or individual pages). Thankfully, by now I know that the ASP.NET MVC framework is so flexible it easily let me do all this with surprisingly little effort. Anyway, I won’t go into the many details – if you’re interested in how it works: it’s open source so feel free to look at the Mayando source code and let me know if you want to contribute!

If you just want to see it running: check out the Mayando Demo Site or of course my own photo blog :-)

#3 – Flickr Schedulr v1.4 & v2.0

Because Project #1 and Project #2 meant I would be using Flickr more, I figured it was also time to give my Flickr Schedulr application an update to incorporate feedback from a number of users.

In case you’re wondering what it is: Flickr Schedulr is a Windows desktop application that automatically uploads pictures to Flickr based on a schedule (e.g. to post a new picture every day at a certain time). It allows you to create a queue of pictures to be uploaded, along with their titles, descriptions, tags, and the photosets and groups into which they should end up.

Schedulr-Logo-Small

I published v1.4 last January; new features include the possibility to upload multiple pictures at a time in batch, better handling of multiple selected files and overall UI improvements.

I’ve also been working really hard on v2.0 which is a complete rewrite of the application in Windows Presentation Foundation (WPF), and as such looks and feels so much nicer in many ways than the previous version. It will also have a few new features of course. I’m still polishing some things but you can expect to see a release in the next few weeks.

Since I’ve been very happy with CodePlex for my other projects, I decided to move the source code and work items there and lo and behold: here is the new Flickr Schedulr homepage on CodePlex!

#4 – Proxy Monitor

Last October, the trend continued: another release around a year after the last one. This time, I got the help from David Huntley, who was kind enough to finally get something off my list I’ve been planning to do for a while now: properly setting the proxy via the Win32 API’s instead of just writing to the registry. This more robust way of setting the proxy came for free with the new feature he implemented, which is support for multiple connections. This allows you to specify proxy servers for other connections than the default LAN (such as dial-up or VPN connections).

To make it easier to work together, I decided to move this project to CodePlex as well. So for all information, downloads, forums, etc. go to the new Proxy Monitor homepage at CodePlex!

#5 – The NOT Part

So after a small list of things that I have been up to the last two years or so, it’s quite clear what I have not been up to: blogging. And that’s probably going to stay that way. I either have too little to say (which is increasingly the case), or too much (which would take too much time to write down). So honestly, I expect this would be the last entry on my blog for quite a while – if not eternity.

In case it becomes the latter: thanks for having followed my random thoughts for the last 7 years, and if you want to keep up with what I’m doing on the technical side of life, follow my projects on CodePlex:

If you want to keep up with the non-technical side, check out my photography site - <plug>based on Mayando of course, and updated with the help of Flickr Schedulr</plug> :-)

Blog | General | Photography | Programming | .NET | ASP.NET | WPF | Websites | Windows
Thursday, June 10, 2010 1:03:08 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Just Released: ProxyMonitor 1.2!#

Interestingly, I seem to have a near-yearly rhythm of releasing new versions of Proxy Monitor. This minor release adds the "skipAutoDetect" attribute to support proxies that are only set manually, and I also (think I) fixed the bug where Interet Explorer would override the proxy settings again (at random) to their previous values.

Proxy Monitor is a small application that monitors the network and auto-detects the internet proxy server to use. It can be started as a regular application, which will make it run as an icon in the system notification area. When started, it will auto-detect the proxy server to use. It will also automatically re-detect the proxy server when the computer’s network address has changed. The application can also be run from the command-line with the /detect flag to auto-detect the proxy and exit immediately (e.g. when the computer starts up).

You can download the tool below. Don't hesitate to contact me for suggestions or bug reports!

The ProxyMonitor 1.2 executable (103 KB)

The ProxyMonitor 1.2 source code (104 KB)

You can also view the Readme file online.

Monday, September 08, 2008 4:10:06 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Updated Again: Setting up Source Server for TFS Builds (v1.2)#

I've just published another update to my guide on Setting up Source Server for TFS Builds, since the Debugging Tools for Windows now has built-in support for Team Foundation Server. So that means: no more third party downloads and an even simpler installation procedure! I've also updated the document to reflect all applicable versions of the tools you'll be using: Visual Studio 2005 and 2008, as well as Team Foundation Server 2005 and 2008.

Because I have been troubleshooting Source Server issues a few times as well, I also added a chapter on how to find out what's going on inside the Source Server indexing and what might be going wrong. Note that there is some Perl going on in there, so avert your eyes if you can't handle the look and feel of it (I know I can't) :-)

For the full setup instructions, please refer to the original post on Setting up Source Server for TFS Builds.

Oh, and finally, my homie Pieter also posted a more detailed guide on how to set Source Server support up inside the Team Build script - and what's more important, what the invaluable benefit is of having a central reusable build script. Great job Pieter!

Tuesday, July 08, 2008 8:57:07 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Extracting OLE embedded images from emails in Outlook#

While it seemed a simple requirement, saving all attachments from emails in Outlook to disk proved to be challenging - to say the least. Using the Outlook Object Model, it's quite easy to enumerate all emails in a folder, look at their attachments and call the SaveAsFile method on them. However, for OLE-type attachments (typically images), this throws a COMException saying: "Outlook cannot do this action on this type of attachment". While looking for alternatives or workarounds, I found nothing but confirmation that this is indeed not an easy task - even from Dmitry Streblechenko, Outlook MVP and creator of the excellent and very affordable Outlook Redemption library: "If you mean embedded graphics objects in the RTF messages, there is not much you can do [...] You can look at the storage itself to figure that out, but I've never tried that".

Ultimately, after lots of trial and error, I did manage to find a fairly easy way to save these OLE embedded images by (mis)using the clipboard. Basically, I retrieve the attachment’s IStorage OLE interface (available through Redemption) and call OleLoad on it to have OLE load the contents and retrieve an IDataObject. The magic trick is to place that IDataObject on the clipboard and retrieve the actual image from the clipboard (so that the clipboard itself handles the nasty OLE details).

Great success! At least for a moment. That already worked for Device Independent Bitmaps, but Outlook also uses Enhanced Metafiles (wmf) and apparently there is a problem with the .NET Framework when it comes to handling Enhanced Metafiles from the clipboard. So I needed some additional COM interop to handle these Enhanced Metafiles as well, which made the code slightly more difficult to read but fortunately still effective. The trick here is to make sure you have a valid handle to pass to OpenClipboard. Because I didn't have access to a form or other type of existing control, I just created a dummy button and used its handle.

Finally, be aware that to access OLE functionality, you need a Single Threaded Apartment (STA) model. Of course I was in an MTA context, so from there I launched a new thread which I put to STA - after that, everything was golden.

Below is the full code using Redemption Data Objects (RDO), hopefully this will save other people a few hours in trying to achieve the same thing...

public static class Program
{
  public static void Main()
  {
    // Calling code should always ensure to be in STA.
    Thread staThread = new Thread(new ThreadStart(SaveOutlookAttachments));
    staThread.SetApartmentState(ApartmentState.STA);
    staThread.Start();
  }

  private static void SaveOutlookAttachments()
  {
    RDOSession session = new RDOSessionClass();
    RDOFolder inbox = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);
    string attachmentRootPath = AppDomain.CurrentDomain.BaseDirectory;
    foreach (RDOMail mail in inbox.Items)
    {
      foreach (RDOAttachment attachment in mail.Attachments)
      {
        if (attachment.Type == rdoAttachmentType.olOLE)
        {
          // We don't have a filename for this type of attachment, create a unique one.
          string filename = Guid.NewGuid().ToString() + ".png";
          string attachmentPath = Path.Combine(attachmentRootPath, filename);
          // We assume here that only images will be stored as OLE attachments.
          // We save them as PNG to keep the file size small.
          SaveOleImageAttachment(attachment, attachmentPath, ImageFormat.Png);
        }
        else
        {
          string attachmentPath = Path.Combine(attachmentRootPath, attachment.FileName);
          attachment.SaveAsFile(attachmentPath);
        }
      }
    }
  }

  private static void SaveOleImageAttachment(RDOAttachment attachment, string filePath, ImageFormat format)
  {
    // Use the OLE storage interface to load the OLE document into a DataObject.
    IStorage oleStorage = (IStorage)attachment.OleStorage;
    object oleDataObject;
    OleLoad(oleStorage, ref IDataObjectGuid, null, out oleDataObject);

    // Copy the OLE DataObject to the clipboard so it can handle the internals.
    Clipboard.SetDataObject(oleDataObject, false);

    // Try to retrieve an image back from the clipboard.
    if (Clipboard.ContainsData(DataFormats.EnhancedMetafile))
    {
      // Enhanced Metafiles cannot be handled natively from .NET.
      // Use the Clipboard directly to retrieve the data.

      // We need a valid handle, otherwise this won't work.
      Button dummy = new Button();
      if (OpenClipboard(dummy.Handle))
      {
        try
        {
          if (IsClipboardFormatAvailable(CF_ENHMETAFILE))
          {
            IntPtr metafileData = GetClipboardData(CF_ENHMETAFILE);
            if (metafileData != IntPtr.Zero)
            {
              using (Metafile metafile = new Metafile(metafileData, true))
              {
                metafile.Save(filePath, format);
              }
            }
          }
        }
        finally
        {
          EmptyClipboard();
          CloseClipboard();
        }
      }
    }
    else if (Clipboard.ContainsImage())
    {
      using (Image image = Clipboard.GetImage())
      {
        if (image != null)
        {
          image.Save(filePath, format);
        }
      }
    }
  }

  [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
  private static extern bool OpenClipboard(IntPtr hWndNewOwner);
  [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
  private static extern bool CloseClipboard();
  [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
  private static extern IntPtr GetClipboardData(uint format);
  [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
  private static extern bool IsClipboardFormatAvailable(uint format);
  [DllImport("user32.dll")]
  private static extern bool EmptyClipboard();
  [DllImport("ole32.dll")]
  private static extern int OleLoad(IStorage pStg, [In] ref Guid riid, IOleClientSite pClientSite, [MarshalAs(UnmanagedType.IUnknown)] out object ppvObj);

  private static Guid IDataObjectGuid = new Guid("0000010E00000000C000000000000046");
  private const uint CF_ENHMETAFILE = 14;
}
Blog | General | Programming | .NET | Samples
Monday, June 02, 2008 12:18:29 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Just Released: Mollom for .NET v1.0!#

My friend Dries Buytaert - known all around the world for creating Drupal (the wildly popular open source content management system) and Axl (the incredibly cute kid he co-created with my even better friend Karlijn) - asked me a few months ago if I had any trouble with spam on my blog... It turned out he was building Mollom, a solution for fighting spam and automating content monitoring, and was looking for beta testers. I immediately jumped aboard and implemented a .NET client API for his service and integrated it into dasBlog, the blog engine I'm using.

Now that Mollom and its API and developer documentation have finally been released (in public beta), I've packaged my client library as well and published it on CodePlex: see the Mollom for .NET homepage.

Mollom's purpose is to dramatically reduce the effort of keeping your websites clean and the quality of their user-generated content high. Currently, Mollom is a spam-killing, one-two punch combination of a state-of-the-art spam filter and CAPTCHA server.

I have to say it's working really well for me, I don't get any spam at all anymore through my blog, and the XML-RPC API that Mollom provides is easy and straight-forward to use. And, of course, if you develop on .NET then it's even easier to talk to Mollom using my client API. As a very basic sample, this should give you an idea of how easy it is to have Mollom classify a piece of content:

MollomClient client = new MollomClient(privateKey, publicKey);
ContentCheck result = client.CheckContent(postTitle, postBody, authorName, authorMail, authorUrl, authorIPAddress);
if (result.Classification == ContentClassification.Spam)
{     // Handle spam here...
}

All information, downloads and documentation is available on the Mollom for .NET homepage on CodePlex, so rush out and let me know what you think!

Sunday, May 18, 2008 5:22:48 PM (Romance Standard Time, UTC+01:00) #    Comments [6]  | 

 

Mortgage Loan Excel Sheet#

If anybody would be interested, I've recently put together an Excel sheet that calculates the payment table ("aflossingstabel") for a loan, i.e. for each month it shows you how much you need to pay, what the interest is, what the remaining capital is, ...

I've only modeled two options (that were relevant to me): fixed monthly payments ("vaste mensualiteit") - where you pay the same consant amount every month - and fixed capital ("vaste kapitaalaflossing") payments - where you pay off a fixed amount of capital but a variable amount of interest (making it a decreasing loan).

When I showed this to my bank, they were actually pretty impressed so I figured somebody else might benefit from this :-) And yes, this means we just bought a house, yay! But the examples in the Excel sheet and below are not ours, if you were wondering ;-)

Features:

  • Calculates payment tables for loans up to 40 years
  • Shows payment graphs up to 25 years (by default, you can enlarge this of course)
  • Calculates how much of your total payments are actually interest payments (try not to weep when looking at this)
  • Allows you to compare different loan options (amount, duration, interest rate), e.g. to compare different bank proposals

Download here: Loans.zip (108 KB).

Note that you can only open this in Excel 2007 since it uses some financial functions only available there. And although the calculations were very accurate (just a few cents deviation on the total amounts compared to the bank's proposals), it goes without saying that you use this at your own financial risk :-)

Example payment table:

LoanFixedPaymentSheet

Example yearly graph for a fixed payment (constant) loan:

LoanFixedPayment

Example monthly graph for a fixed capital (decreasing) loan:

LoanFixedCapital

Friday, March 07, 2008 1:03:40 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

My "Deep Dive Into The Guidance Automation Toolkit" presentation now online!#

Tom's team has been kind enough to put my session of last year's TechDays (then still known as the Developer & IT Pro Days) online on MSDN Chopsticks. You can find my "Deep Dive Into The Guidance Automation Toolkit" presentation at http://www.microsoft.com/belux/msdn/nl/chopsticks/default.aspx?id=10. Everything I said back then is still relevant today, so if you missed it last year you can now catch up for free :-)

And in the light of Software Factory technologies, it also makes a nice preparation for my talk on Domain-Specific Development with Visual Studio DSL Tools next week. My session is scheduled on Thursday March 13 at 10:45. I'm really looking forward to it, and I hope to see you there!

Monday, March 03, 2008 10:39:16 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

DSL Tools session at TechDays in Belgium#

The annual Belgian tech-fest for Microsoft developers, architects and IT pro's is coming to Ghent again soon, and I'm once again proud to host a session in the Developers track for TechDays!

Domain Specific Development with Visual Studio Domain Specific Language (DSL) Tools

As one of the pillars of the Software Factories initiative, Domain Specific Languages (DSLs) provide a way to describe your business domain in a language closer to the actual problem than using traditional programming code.

The Visual Studio Domain Specific Language Tools allow developers to create their own graphical designers and code generation tools – much like the ones you can find in Visual Studio today, such as the Class Designer.

In this session, you will learn how to develop your own DSLs inside Visual Studio and see an example of a real-world DSL that simplifies your life as a developer: the Configuration Section Designer.

TechDays 2008

Heroes are Assembled { in Software Factories } :-)

Hope to see you there!

Blog | General | Programming | .NET | DSLs
Monday, February 18, 2008 8:56:39 AM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Just Released: BuildCop v1.0!#

It is with great pleasure that I'm finally ready to release another open source tool on CodePlex: BuildCop.

BuildCop is a tool that analyzes MSBuild project files (interactively or during e.g. a daily build) according to a customizable set of rules and generates reports - e.g. is strong naming enabled, are certain project properties set correctly, is XML documentation being generated, are assembly references correct, are naming conventions respected, ...

This has grown out of a quick-and-dirty tool to check various build settings in a large customer project (to make sure that the developers were sticking to the guidelines), and has evolved into quite a clean, flexible and customizable tool that you can now start using as well.

All information, downloads and documentation is available on the BuildCop homepage on CodePlex, so rush out and let me know what you think!

Tuesday, February 05, 2008 10:37:20 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Just Released: E = m c² v2.1!#

It's taken way too long to remind myself to release a new version of E = m c² - so finally, here goes: v2.1 is out the door! It even comes with source code again! What a perfect Christmas present for 3.4 gazillion E = m c² users*! Actually, there are quite a lot of extra features so if I would've released a bit more sensibly over the last months then it probably would've been v2.4 or so already. Anyway...

E = m c² is a free utility that can check various sources for messages, then filter and redistribute them.

A typical example is checking your mailbox and showing you a popup window if there are new messages, but it goes far beyond that since it's fully extensible using plugins. For example, you can check RSS files for new blog posts, monitor when a server comes online or goes offline, play a soundfile when new messages arrive, send a summary email, run a program, write to an RSS file, ...

Basically, you can make E = m c² do all you can think of! And it can do your laundry too (Pro version only**)!

What's new in this version?

  • I'm also releasing the source code from now on (built on .NET 2.0 with Visual Studio 2005).
  • Added support for trigger plugins to provide a list of messages of their own when they trigger. This allows non-pull scenarios to be supported as well (i.e. not only receiving messages by "pulling" Source plugins, but "pushing" to deliver messages from within a trigger immediately).
  • Added support for "hosted" plugins, which don't actively participate in the message cycle but are just running in the context of E = m c². This means they don't handle messages but they can still have their own settings and commands. This can be convenient to host small pieces of functionality with settings that would otherwise require a standalone application.
  • Duplicated the "Change Background" as a separate "hosted" plugin so you can also use it as is, outside of the message cycle.
  • The "Change Background" plugins now support other background styles than just "stretch". The new StretchedWithAspectRatio option retains the aspect ratio of the original image while stretching it to fit the screen.
  • Added "Yahoo! Mail" plugin that retrieves messages from Yahoo! Mail (but you need to make sure that your account is still using the "classic" user interface for this to work).
  • Added "Network Changed" trigger, which triggers when the network changes (e.g. when you plug in or out of a network).
  • Added "Debug" publisher, which writes messages to the Windows debug stream.
  • The "Viewer" can now have message styles to color rows depending on certain message properties, e.g. the source of a message or its subject.
  • The "Viewer" can now be configured to have an initial window state, e.g. to make it start as maximized.
  • The template processor can now also use reflected properties, so not just the built-in tokens as before - e.g. $(Sender) - but also tokens that are taken from the value of a property on the (optionally subclassed) message at runtime. This provides better templating support for messages that are subclassed from the base EmcMessage class.
  • The "RSS Source" plugin now attempts to remember the read items between sessions of the application.
  • The "RSS Publisher" plugin now also writes the message recipients to the RSS feed so that a client also has access to the original message recipients.

You can find all information, screenshots, downloads, and even tutorials on writing plugins at the dedicated website: http://jelle.druyts.net/emc/.

Now I can continue working on the next version, which should turn out to be quite interesting. I already have a number of features lined up and semi-implemented that will take it to a next level. So I think that'll make it v3.0 and non-arguably the most interesting download of 2008 galaxywide***.

I'm even thinking of changing the name to something more meaningful and search-engine-friendly. I don't want to keep steeling Google Love™ from my good friend Albert, you know... So any suggestions would be welcome, and if yours makes it then you'll get a Pro version for free**!

* Usage information obtained by bribing a guy with a moustache who works at a local internet provider and promised me the number of downloads was legit.
** Ha ha! There isn't really a Pro version!
*** I might be a bit biased.

Blog | General | Programming | .NET | Emc | Download
Friday, December 28, 2007 2:15:25 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Flickr Schedulr v1.2#

I've just pushed the button to release Flickr Schedulr v1.2.

Flickr Schedulr is a Windows desktop application that automatically uploads pictures to Flickr based on a schedule (e.g. to post a new picture every day at a certain time). It allows you to create a queue of pictures to be uploaded, along with their titles, descriptions, tags, and the photoset into which they should end up. This effectively takes the hassle of uploading pictures at regular intervals away, and allows you to go out and have fun shooting pictures (or drinking beer) while your photoblog is maintained for you.

What's new in this version?

  • You can now choose Groups and multiple Photosets to associate your pictures with.
  • I'm also releasing the source code from now on (built on .NET 2.0 with Visual Studio 2008).
  • I've set up a dedicated Schedulr Group on Flickr, a community site where you can ask questions, give comments, complain about bugs (what, bugs?!) and post pictures - uploaded with Schedulr of course!

As always, you can find all information, screenshots and downloads on the dedicated site at http://jelle.druyts.net/schedulr.

Happy Flickring!

Tuesday, December 04, 2007 8:43:07 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Happy Birthday, David#

Happy Birthday, David. You would've turned 33 today.

Let's all stand still and think about that for a minute.

David Boschmans

Thursday, November 22, 2007 10:49:16 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Flickr Schedulr v1.1#

I just released an update of Flickr Schedulr, making it v1.1.

Flickr Schedulr is a Windows desktop application that automatically uploads pictures to Flickr based on a schedule (e.g. to post a new picture every day at a certain time). It allows you to create a queue of pictures to be uploaded, along with their titles, descriptions, tags, and the photoset into which they should end up. This effectively takes the hassle of uploading pictures at regular intervals away, and allows you to go out and have fun shooting pictures (or drinking beer) while your photoblog is maintained for you.

What's new in this version?

  • You can now move pictures directly to the top or bottom of the upload queue.
  • You can now shuffle the upload queue to make a randomized list of pictures to upload.
  • You can now upload all selected pictures in the upload queue with the "Upload Now" button.
  • You can now get inline previews of the pictures inside the Queued Pictures list.
  • You can now import and export the current configuration (containing queued and uploaded pictures).
  • You can now see how many items are in the queue and which one you are editing.
  • You can now easily navigate up and down in the queue from anywhere with the ALT+UP and ALT+DOWN keys.

As always, you can find all information, screenshots and downloads on the dedicated site at http://jelle.druyts.net/schedulr.

Happy Flickring!

Monday, November 12, 2007 11:23:04 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Announcing: Flickr Schedulr#

One week ago it was only an idea, last weekend and the past evenings were development and beta testing, and now I'm releasing version 1.0 of Flickr Schedulr!

Flickr Schedulr is a Windows desktop application that automatically uploads pictures to Flickr based on a schedule (e.g. to post a new picture every day at a certain time). It allows you to create a queue of pictures to be uploaded, along with their titles, descriptions, tags, and the photoset into which they should end up.

This effectively takes the hassle of uploading pictures at regular intervals away, and allows you to go out and have fun shooting pictures (or drinking beer) while your photoblog is maintained for you.

I'm using this myself (of course) to post my pictures to Flickr every other day at seven in the evening.

You can find all information, screenshots and downloads on the dedicated site at http://jelle.druyts.net/schedulr. If you use it, I'd love to know about it! Please give me some feedback and feature requests :-)

Happy Flickring!

Friday, October 19, 2007 5:54:03 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Rebirth - Reviving My Pictures Site#

No, don't worry, this site hasn't been hijacked, it's really just me again ;-)

I know it's been a very long time since I posted any actual content here on the blog and any new pictures over at my Flickr site (it's been exactly 7 months actually), but today I'm at least getting started again on the hobby side of things again (well, they're both hobbies but let's say the one I'm not getting paid for :-) ): I've got lots of new pictures lined up to go to Flickr every other day from now on, so keep an eye on my pictures' RSS feed and feel free to give me lots of comments!

I'm also including a bit of text with each picture from now on to give it some more background, which should also help explain the sometimes cryptic titles I tend to give them :-) I do prefer not to give away too much though, so you'll hopefully look at them a bit longer while you try to figure it out...

Here's the first one, but all the other ones will be posted only on Flickr so please do subscribe if you have an aching desire to tell me what you hate about them!

I Will Give You My All

I Will Give You My All

A beautiful sight near Bunarkaig (Scotland), where the River Arkaig runs selflessly into Loch Lochy.

Saturday, October 13, 2007 9:38:56 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Proxy Monitor 1.1#

Due to numerous feature requests (hey Brian, hi Sven), I've added two features to Proxy Monitor: the possibility to set the proxy bypass list, and the option to disable notifications (balloon tips) when the proxy changed. So this is basically a small upgrade to version 1.1.

Proxy Monitor is a small application that monitors the network and auto-detects the internet proxy server to use. It can be started as a regular application, which will make it run as an icon in the system notification area. When started, it will auto-detect the proxy server to use. It will also automatically re-detect the proxy server when the computer’s network address has changed. The application can also be run from the command-line with the /detect flag to auto-detect the proxy and exit immediately (e.g. when the computer starts up).

You can download the tool below. Don't hesitate to contact me for suggestions or bug reports!

The ProxyMonitor 1.1.0 executable (101 KB)

You can also view the Readme file online.

Saturday, September 15, 2007 2:36:14 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Introducing SmartPass: free password manager for Smartphones#

SmartPass is a free, small and easy-to-use password manager for Windows Mobile 5.0 Smartphones.

SmartPass uses the highly secure Rijndael encryption algorithm to store all your passwords on the device in a single file, which is then protected by one master password. Now you can always keep your passwords safely with you, wherever you go.

To install SmartPass, simply copy the CAB file to your Smartphone and open it through File Explorer. It will then be installed and a shortcut will automatically be added to the Start Menu. Note that the .NET Compact Framework 2.0 needs to be installed on the device for SmartPass to run.

Download the latest version here:

The SmartPass CAB file (111 KB)

Here are some screenshots to give you a taste of what it looks like:

   

   

Thursday, June 28, 2007 6:53:18 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Just released: E = m c² version 2.0!#

Background

I started rewriting my pet project from scratch in .NET 2.0 last summer, and I'm proud to announce version 2.0 of E = m c² (or should I say E = m c2.0) is now finally all polished and ready! I'm actually pretty happy with it (and using it all day every day), so to make it stand out a bit more, I've created a separate site for it at http://jelle.druyts.net/emc/. That's where you can find all the information and download this free tool.

By the way, E = m c² (apart from a silly little formula relating an object's mass to its energy content) stands for Extensible Message Checker 2.0, because it's a tool that can check for messages (in the broadest sense) and, well, it's extensible (fully driven by plugins that you can easily create yourself).

Introduction

E = m c² is a utility that can check various sources for messages, then filter and redistribute them.

A typical example is checking your mailbox and showing you a popup window if there are new messages, but it goes far beyond that since it's fully extensible using plugins. For example, you can check RSS files for new blog posts, monitor when a server comes online or goes offline, play a soundfile when new messages arrive, send a summary email, run a program, write to an RSS file, ...

Basically, you can make E = m c² do all you can think of! And it can do your laundry too (Pro version only)!

Features

Runtime

  • Fully extensible using plugins.
  • Settings are saved to an xml file so you can easily edit and copy it.
  • Certain settings can be encrypted if needed by plugins (e.g. passwords).
  • Runs in the background, it's basically just an icon in the system notification area.
  • Easy to install, set up and remove (if you could live without it).

Plugins

  • Check POP3 and IMAP email.
  • Check Outlook Web Access (OWA) and Outlook Mobile Access (OMA) email.
  • Check RSS 2.0 feeds.
  • Monitor the file system, i.e. get notified when directories or files change.
  • Monitor server status (by ping or by checking a url).
  • Filter messages by content.
  • Write new messages to a text file or an RSS 2.0 feed.
  • Show a desktop alert, a message box or a rich message viewer when messages arrive.
  • Run a program, change the desktop background, play a sound or send an email when messages arrive.
  • ...And you can easily write your own!

Alright, enough already, where is it?

You can find all information, screenshots, downloads, and even tutorials on writing plugins at the dedicated website: http://jelle.druyts.net/emc/. Did I mention it's free?

Blog | General | Programming | .NET | Emc | Download
Sunday, April 15, 2007 4:21:17 PM (Romance Standard Time, UTC+01:00) #    Comments [5]  | 

 

MVP & MSFT!#

Woohoo, I've just been awarded as a Most Valuable Professional (MVP) by Microsoft!

Dear Jelle Druyts,

Congratulations! We are pleased to present you with the 2007 Microsoft® MVP Award!

The Microsoft MVP Award is our way of saying thank you and to honor and support the significant contributions you make to communities worldwide. As a recipient of Microsoft’s Most Valuable Professional award, you join an elite group of technical community leaders from around the world who foster the free and objective exchange of knowledge by actively sharing your real world expertise with users and Microsoft. Microsoft salutes all MVPs for promoting the spirit of community and enhancing people’s lives and the industry’s success everyday. To learn more about the MVP Program, visit: www.microsoft.com/mvp.

Your extraordinary efforts in Visual Developer - Visual C# technical communities during the past year are greatly appreciated.

On behalf of everyone at Microsoft, thank you for your ongoing contributions to Visual Developer - Visual C# technical communities.

Sincerely,

Candice Pedersen, MVP Program Manager

On a related note (Tom already mentioned it briefly), I was also "awarded" with a full time employee contract by Microsoft :-) So this effectively means I've changed jobs to the Microsoft Services division at Microsoft BeLux (no, not Microsoft Corp like the other MVP's of this country seem to do all the time ;-) ) as of this week. I've had a great time at the Compuware Professional Services division the last years, and I really want to wish the team all the best! Now, I'm taking up the challenge of representing Microsoft for our customers as a development consultant, and making sure their development efforts are running as smoothly as possible!

Wednesday, April 04, 2007 11:49:49 AM (Romance Standard Time, UTC+01:00) #    Comments [13]  | 

 

Interview on Guidance Automation Toolkit#

Right after my session at the Developer & IT Pro days last week, I was interviewed by the Wygwam team - which was pretty cool :-) It also serves as a pretty good 5-minute introduction to Guidance Automation Toolkit, so check it out!


Video: DevITProDays - Jelle

Wednesday, April 04, 2007 11:45:36 AM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Developer & IT Pro Days wrap-up#

I had a great time at the Belgian Developer & IT Pro Days in Ghent last week, many thanks to the organizing team (great job Tom, David, Arlindo, Ritchie, Wim and everybody else)!

If you came to my sessions last year, you might remember that I ended a little early (25 minutes!) on my Framework Design talk and a little late (10 minutes!) on the Application Development talk with Steven Wilssens, so I was pretty happy that I finished right on the minute this year :-)

You can download the slides here: A Deep Dive Into The Guidance Automation Toolkit (3 MB). And don't forget about the Guidance Automation Series that goes into much more detail.

Now for a quick shout out to my fellow community members: congratulations Jan on the birth of your first child Fran! From the pictures, it looks like she's already well into the Microsoft spirit :-) And congratulations Bart on joining Microsoft Corp on the WPF team! I'm sure you'll fit right in with the rest of the brainiacs on campus! Say hi to Steven from me :-)

Wednesday, April 04, 2007 11:06:24 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Photowalk Aftermath#

I've posted my photos of last Sunday's Photowalk in Brussels at my flickr site. It was definitely a fun day, since I didn't know Brussels that well at all and we hiked around for some lesser known spots. Did you know there's a cannonball in St. Nicolas' Church that's been embedded into a pillar since 1695? Did you know you could get a great view over Brussels from the roof of Parking 58? Did you know there's also a statue of a peeing dog, Zinneke Pis, just like Manneke and Janneke Pis? I sure didn't.

Now I must assume that all of you already knew that, since none of you actually showed up :-) Apart from the people I brought and Jan Tielens, that is. So what happened? No interest? No time? Bad weather? (It wasn't!) Showed up but didn't recognize us? Badly organized? Let me know so I can do better if I were to try again some time :-)

Wednesday, March 07, 2007 7:54:18 AM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Final date and place for the Brussels Photowalk#

If you're interested in joining the Brussels Photowalk, this is the final date and place:

Sunday 4th of March, 10:30 A.M.
Main hall of Brussels Central Station

See also the event tracking on upcoming.org. You don't need to register there or comment on the blog here, but it would be nice to have some idea of how many people to expect.

I want to stress that anyone is welcome (you're not required to have a €3000 camera to join, so don't hold back even if you have a cellphone camera or if you can draw really really fast). I'm also expecting some non-geeks, so don't be afraid to bring your wife, mistress or photoshop-agnostic uncle.

See you there!

Friday, February 16, 2007 2:26:09 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Brussels Photowalk#

UPDATE: The final date and place is Sunday March 4th, at 10:30 A.M. in the main hall of Brussels Central Station. See also the event tracking on upcoming.org. Bring whoever you want and see you there!

It's been a while since I kicked off something stolen from across the pond, but Jan Tielens had the great idea of doing a Belgian Photowalk, so I'll happily broadcast it here and hope that we can get a lot of people aboard!

Actually, we don't really know what the 'mericans mean by "photowalking" but our version of it is pretty plain and simple:

If you're interested in photography, let's get together for a day to walk around some place, have some fun and and shoot some pictures!

Digital or film, beginner or pro, cellphone, compact or SLR camera, kilopixels or megapixels, Java, .NET, php or Cobol, it doesn't matter - you're all welcome as long as you're interested and can cope with people stopping every 10 seconds to take pictures ;-) So it's nothing official, it's not a course, it's just a day to hang out with some fellow passionado's, have some fun, get to know some new people, exchange ideas and tips, and make some great pictures.

So here's the plan: we meet in Brussels (a central location with lots of nice photographic opportunities) on Saturday 3rd or Sunday 4th of March at 10 A.M 10:30 A.M at the main hall of Brussels Central Station. We go on a nice tour through the city, have some lunch, walk around some more, and of course take lots of pictures. If you put them online afterwards (e.g. on flickr) we can tag everything and have a nice tagged collective memory of a lovely day :-)

If you want to join us, leave a comment with the following details:

- You and how many of your friends (you did invite all your friends, didn't you?)?
- Do you prefer Saturday 3rd or Sunday 4th of March?
- Any good ideas where we can start our walk? I guess near the central station would be best, but I don't know Brussels well enough to make good suggestions on a starting place and an interesting route we can follow.
- Other brilliant ideas to make this an even bigger success?

Let's hear from you and get those ideas rolling!

Wednesday, February 07, 2007 7:13:24 PM (Romance Standard Time, UTC+01:00) #    Comments [7]  | 

 

Speaking at Microsoft Developer & IT Pro Days 2007 in Belgium!#

A lot of people have already noticed that I'm on the speaker agenda for the Microsoft Developer & IT Pro Days 2007 in Belgium, but here's the official word: I'm proud to be your host for a session in the MSDN track!

A Deep Dive Into The Guidance Automation Toolkit (Or: Sit Back And Make It Do Your Work)

28 March 2007 - 10:45 - 12:00

The Guidance Automation Toolkit provides a means for solution architects and developers to deploy consumable guidance to other developers. If this seems a little vague and “out there”, then this session is for you: you will see what the Guidance Automation Toolkit really is, how it works, what it can and cannot do, how it fits into Microsoft’s overall Software Factories vision and generally how you can use it to make your life easier.

If you've ever published a 40-page document full of guidelines, do's and don'ts on how to structure solutions and projects in your company and what the namespaces and class names should be, if the developers need to be able to start new projects quickly, if you have a need for code generation, if you’re thinking of building your own Software Factory, or all of the above – this session will help you solve some real-world problems today.

Satisfy your Technical Curiosity!

See you there? I hope so!

Tuesday, February 06, 2007 10:37:18 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Proxy Monitor 1.0#

Getting tired of switching your Internet Explorer proxy settings every time you plug your laptop in your home network after a day's work? Or when connecting to the corporate VPN that uses yet another proxy server? Then I've got the tool for you...

Proxy Monitor is a small application that monitors the network and auto-detects the internet proxy server to use. It can be started as a regular application, which will make it run as an icon in the system notification area. When started, it will auto-detect the proxy server to use. It will also automatically re-detect the proxy server when the computer’s network address has changed. The application can also be run from the command-line with the /detect flag to auto-detect the proxy and exit immediately (e.g. when the computer starts up).

It's taken me a while to release this tool, but the good news is that I've been using it every day for over two months so I guess that counts as an extensive beta period :-)

You can download the tool below. Don't hesitate to contact me for suggestions or bug reports!

The ProxyMonitor 1.0.60905 executable (101 KB)

You can also view the Readme file online.

Tuesday, October 17, 2006 9:00:38 PM (Romance Standard Time, UTC+01:00) #    Comments [9]  | 

 

Feline Beta#

I think I've been spending a wee bit too much time with beta software lately...

Last night, I woke up from a dream that involved my... [dramatic pause] cat. So I was getting a new beta of my cat for some reason, and I noticed that all of a sudden she had a white piece of fur (normally, she's all black (black!)). And all I could think about whas the fact that my cat seemed to have a regression bug.

Go figure.

I think I'll have to go blow the dust off of my VB6 box just to get my life back on track. See you after my rehab :-)

(Now that I think about it, I never suspected I'd ever write a post about my cat. Oh no, I'm becoming a Dear Diary blogger!)

Thursday, June 15, 2006 6:45:34 AM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

More on the Architect role and title#

As a response to my thinking about the role of the Technical Solutions Architect, Hans Verbeeck makes a good point on his blog on the snobism of Architecture:

It's like everyone needs to be one. Especially the top developers seem to be targeted. If you are a lead developer then you stand a big chance of being labeled an Aspiring Architect by some folks within Microsoft. IMHO, you don't need to be an architect to be architecting. I would even say that probably most of the good architectural work comes from Lead Developers who have a deep deep udnerstanding of what software is all about.

The architect title is perhaps so over-used that it's lost its meaning, and I think that's the source of a lot of confusion and opportunism. I've always had a bit of a love/hate relationship with the architect title, but I guess people (including me) need some way of categorizing their qualifications in a name that's well understood.

Clearly, there's something very different about what guys like Don Box and Chris Anderson do with internal frameworks such as WCF and WPF, and what I do as an external consultant on enterprise (business) frameworks. But within the boundaries of terminology that's out there, I positioned myself somewhere in the triangle.

I actually like Hans' image a lot about being positioned outside the triangle - which also puts me more outside the business domain:

So this certainly makes sense to me.

About the snobism and whether or not you should wear the architect title: I forgot about it until now but I think the solution already exists: the Microsoft Certified Architect Program should be - or become, as it's still in its early stages - the governing instance that hands out the "architect" credentials (in the Microsoft-space anyway). While a regular Microsoft certification - in my opinion - doesn't say that much about the real-life experience or qualifications of someone, this architecture certification is backed by a Review Board and a pretty heavy qualification process. This should make the certification much more credible...

But in the end, I think you'll always have to prove your worth on the dance-floor, if you know what I mean. So I'll just keep doing my moves and let's keep this party rolling :-)

Wednesday, May 31, 2006 12:07:28 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

The Technical Solutions Architect Role#

I've been doing quite some thinking about my role in the IT business lately, and a few recent posts have accelerated this even more... First, we have Joris Poelmans sharing and aggregating some thoughts about architects, architecture and the different types of architects (architect personas, if you will). And then we have Hans Verbeeck pointing us all to the Skyscrapr site, which is a site that serves as "your window on the architectural perspective".

All of these categorize architects in different roles in the business. Generally speaking, there are three personas most people seem to agree on (with my highly summarized descriptions that don't do the original posts any justice):

  • Enterprise Architect: responsible for the long-term strategic vision, thinking about the big picture together with the business and technical people; sets the direction for methodologies, frameworks and tools.
  • Solutions Architect: responsible for the design of applications and services within (part of) an organisation; works closely with the developers to make sure the goals of the business are achieved.
  • Infrastructure Architect: responsible for the data center, deployments and maintenance; makes sure the infrastructure on which the business applications run is reliable, manageable, scalable, performant and secure.

Since you're never only one of these profiles, Simon Guest adds to this idea by positioning yourself somewhere in the triangle formed by these personas, to indicate your relative strength in one particular area. If I were to call myself an architect (and sometimes - not only in my sleep - I do), I think I'd put myself somewhere here:

So I believe I'm mainly the Solutions Architect: driving the technical solutions to meet the business' needs. The problem for people that are in the consultancy business - like me - is that all these roles are defined within the boundaries of the enterprise. All of them assume that you are effectively part of the business. Since my role is typically shorter-term for each individual client (providing guidance and experience in the technology field rather than in the actual business domain), I often don't need (or want) to know too much about the actual business. The benefits of me having intimate knowledge about it are negligible most of the time, both for myself as for the customer.

So in that regard, I'd like to propose the term Technical Solutions Architect to describe what people like me do: this role involves setting up technical architecture, guidance, frameworks and documentation, performing code reviews, coaching, deciding on programming languages and technology stacks - all within a certain horizontal technical scope that may or may not be aligned with any vertical business structure.

What do you think? Would you agree? What role do you think you are?

Tuesday, May 30, 2006 9:08:43 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Developer & IT Pro Days 2006#

It's been a hectic and busy couple of weeks leading up to the Belgian Developer & IT Pro Days in Ghent last week, but it was all worth it! Steven and I had a lot of fun presenting our sessions, and it was great to meet a lot of interesting new people and to talk to some people who I hadn't seen in a while.

I know that we haven't been able to upload the final versions of the slides to the official site on time, but a lot of you have been asking for them so here they are:

Best Practices In Framework Design (1.85 MB)

Best Practices For Application Development (2.12 MB)

During this last presentation, we showed demos of Enterprise Library 2.0 and a very cool (IMHO) implementation of the Command Pattern using Enterprise Library to add some aspects such as logging and security. You can find the source for the first demo (Enterprise Library only) here:

Demo 01 - Enterprise Library.zip (1.46 MB)

Steven has posted the second demo along with the source code for the Command Pattern on his blog, so you can get that from there!

In conclusion, it was a great event that really made all the efforts of the past weeks worthwile. So a lot of thanks to the organizing team (great job Tom, David, Ritchie!) and for all that attended!

Hope to see you again next year!

Tuesday, March 14, 2006 9:15:32 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Speaking at Microsoft Developer & IT Pro Days 2006 in Belgium!#

A lot of people have already noticed that I'm on the speaker agenda for the Microsoft Developer & IT Pro Days 2006 in Belgium, but here's the official word: I'm proud to be your host for 2 sessions in the Development Best Practices track! I'm giving the second one together with Steven Wilssens, so that should be a lot of fun.

Best Practices in Framework Design: The Art of Building a Reusable Class Library

March 8, 2006 - 09:00 - 10:15

This session presents best practices for designing frameworks, which are reusable object-oriented libraries. The guidelines are applicable to frameworks ranging in size and in their scale of reuse from large system frameworks to small components shared among several applications. Topics covered include the design, background and motivation for: naming conventions, namespaces and assemblies, types (structs, reference types, generic types), members, designing for extensibility, usage guidelines, and general library design principles. Attend this session to learn more on the best practices for building a reusable class library.

Best Practices for Application Development

March 8, 2006 - 10:45 - 12:00

This session presents best practices for developing robust enterprise applications on the .NET platform. The guidelines are an accumulation of years of experience in building frameworks and enterprise applications. We will show you best practices around exception management, logging, configuration, authorization, data access, unit testing, code analysis, documentation, daily builds, caching and testing. When attending this session you will also learn about recurring design patterns, general development guidelines and conventions.

Furthermore, Steven will also be presenting a very interesting session on Source Control:

Best Practices for Advanced Source Control: Beyond CheckOut and CheckIn

March 8, 2006 - 14:30 - 15:45

This session presents best practices for advanced source control management. We will examine different branching strategies and provide you with the necessary guidelines that will help you adopt the right Software Configuration Management branching mode. These best practices will help you increase overall product quality and process efficiency, reduce the incidence of software failures, and improve organizational performance. We will have a look at Team Foundation Source Control and answer following questions: What's new with merging and branching in VSTS and why is it better? What is shelving? What about continuous integration and how can you implement a gauntlet system with VSTS?

See you there!

Friday, February 10, 2006 12:49:23 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Brussels Geek Dinner with Robert Scoble - December 8th 2005#

Great news: David is organizing a Geek Dinner in Brussels on December 8th!

Since Microsoft blogger extraordinaire Robert Scoble and his wife Maryam will be there, let's make sure they don't forget their visit to our lovely little country and the fun community we've got going on here!

See you there!

Tuesday, November 22, 2005 11:21:04 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Are you ready for the launch?#

In just two weeks, Microsoft Belux is organizing what I personally think is the biggest launch event in the last couple of years: on November 10, SQL Server 2005, Visual Studio 2005 and BizTalk 2006 will finally be released to manufacturing!

Developers and IT professionals are invited to celebrate the launch of the new versions of Visual Studio, SQL Server and BizTalk Server together with us. The event will start with a keynote session by S. Somasegar, Corporate Vice President at Microsoft Corporation.

Further some of the best speakers and subject matter experts worldwide will entertain you. Make sure you bring along your most burning SQL Server 2005 or Visual Studio 2005 questions.

Later in the evening we offer a walking dinner and a party to remember...

You can find more information and subscribe for the event on the Microsoft Belux Launch site.

I've been asked to hang out at the Ask-The-Experts area as a Visual Studio Expert, so if you're there: come say hi and ask me some tough questions :-)

See you there!

Blog | General | Programming | .NET | VS.NET | Whidbey
Wednesday, October 26, 2005 6:36:12 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Notepad Bugreport#

The shock! There's actually a bug in Notepad! Now there's an application that's been around for literally decades (since Windows Executive 1.0, apparently, whatever that may be), arguably one of the most-used Windows apps, a tool with hardly any features at all, and still it isn't bugfree!

Here's the extensive repro for your reference:

  1. Open Notepad.exe (the original, not the unsupported third-party copycat Notepad2 mind you).
  2. Make sure Word Wrap (under the Format menu) is off, because for some reason that will hide the status bar (I guess Word Wrap makes it "too hard" to calculate the line and column).
  3. As you will see, the status bar is crucial in this scenario, so make sure the status bar is visible (through the View menu this time, it's such a crucial feature that it lives in its very own menu).
  4. Edit a text file, watch the status bar update the line an column numbers in real time (whow).
  5. Make sure you're not on the first line and first column (that would spoil the fun).
  6. Now simply save the file.
  7. Be dazzled! Lo and behold: the status bar is incorrect at this point! The line and column are both falsely said to be 1 although the cursor is really somewhere else:

If you too are suffering from this bug, you can work around it by moving your cursor around so the real-time status bar rendering engine kicks in again - but I find this behaviour simply unacceptable. Please, please fix this, Microsoft, I'm not afraid to use one of my four superfluous Incident Support calls that I got with my MSDN Universal Subscription to get a quickfix on this!

Update: I've checked the Beta 1 build of Windows Vista today and the bug is still in there. I guess they're looking at at least 3 months delay in their release schedule if they want to get this fixed...

Friday, October 14, 2005 7:58:25 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

PlayStationPortable 2.0#

I've had a PlayStationPortable for a couple of months now (one of the nice perks of the job when they ship one from Asia as a present for a certain project you did, months before it's available in Europe), and it's a pretty cool device: excellent large hi-res screen, nice graphics, pretty good games, and it can even play music and video!

There are lots of reviews out there so I won't bother you with another rundown of the features, but I have to admit I never got around to using it much though. Partially because of the simple fact that I'm not a very avid gamer, the ridiculously low standard amount of 32 MB of memory doesn't really host that much tunes or video, and mostly because I don't like carrying an additional piece of hardware with me everywhere.

But with the advent of the PSP 2.0 System Update, I've finally found some good old geek use for the device: I'm using it as a remote control for my Winamp :-) See, the PSP already had support for wireless networks from day one, and it so happens that I've installed a wireless network at my home this weekend. Now one of the coolest features of the PSP 2.0 upgrade is the integrated webbrowser. Check out my blog rendered on this baby:

Combine that with a Winamp Web Interface plugin, and you're ready to surf to your intranet Winamp webbrowser controlling your main Winamp wirelessly through your PSP.

Having the right geek tools to be lazy can be so satisfying sometimes :-)

Blog | General | Music
Tuesday, October 04, 2005 6:59:12 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Static Classes And The HasShutdownStarted Property#

During the pre-conference session on Framework Design Guidelines, Brad Abrams was kind enough to share the story behind the infamous HasShutdownStarted property on the Environment class with us. If you're unfamiliar with that property, take a look at its original definition below:

public sealed class Environment
{
private Environment() {}
public bool HasShutDownStarted { get { /*...*/ } }
}

Now see if you can spot the "minor issue" with this property...

The funny thing is, this code actually shipped in the initial release of the .NET Framework, but obviously it needed to be QFE'd (Quick Fix Engineered). So Brad did a little investigation to see how it could have happened that an effectively uncallable property made it into the framework. Running through the engineering callstack, he found out that:

  • The property was implemented and unit tested by the developer.
  • It was subsequently tested and approved by the tester.
  • It was documented along with "working" sample code.
  • And finally it was reviewed and accepted by the Program Manager who owned the feature (in his defense, he had originally specified that it should be static).

According to the story, this incident triggered the static classes feature that is new in C# 2.0 (which declares a class as having only static members) to prevent this from happening again.

By the way, declaring a class as static makes the compiler mark the class both sealed (so it cannot be inherited) and abstract (so it cannot be instantiated) under the covers; furthermore, the compiler checks that everything on the class is effectively static. It doesn't create a private constructor, as you might think, because there's no real point to do that anymore (instantiation is already prevented by defining the class as abstract) and to avoid the small metadata overhead induced by the additional constructor.

Blog | General | Programming | .NET | Quirks | Whidbey | PDC05
Friday, September 16, 2005 5:15:49 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

PDC05 Pre-Con: The Art Of Building A Reusable Class Library#

Attending a pre-conference session is a bit like foreplay for the brain: it's not about going ahead and diving into the action, it's gearing up the body to prepare for the main dish.

In that sense, I decided to cheat on the wife a little. So last Monday, in stead of going to the SOA pre-con I originally planned, I followed my instinct and went to one about a pet peeve of mine: API design. So I spent the entire day exploring "The Art Of Building A Reusable Class Library" by Brad Abrams and Krzysztof Cwalina, who are both very knowledgeable on the subject in their roles at Microsoft where they review the public API's of the entire .NET Framework. In fact, they just have a book out on the subject called "Framework Design Guidelines" and - lucky me - they handed out free copies for their attendees. Nice!

The reason I chose this session, is that I'm quite passionate about building reusable libraries which have a clear, consistent and self-explaining API. I've been involved in designing reusable components and frameworks before, and it's indeed quite challenging to meet these goals.

There are quite some factors to take into account when designing a framework, and they've been summarized in the session in four key topics:

  • The Power Of Sameness
  • Framework Design Matters
  • Tools For Communication
  • The Pit Of Success

The Power Of Sameness

When driving a new type of car, there's no point in reading the owner's manual: you just know how to operate a car, the seatbelt, the turn signals, ... because they all work the same way. This principle should be applied as much as possible to software as well: if your users know how to use previous versions or other parts of your program or framework, they will easily get started with a new version or with an undiscovered part of your framework.

In framework design, this means that you must adhere to consistent naming guidelines, patterns (like prefixes and suffixes, take the "I"-suffix for interfaces and the standard Exception and Attribute suffixes for example), to lower the learning curve of your API.

One important point of attention is to "optimize globally" in stead of locally, which means that even a justified deviation from the guideline shouldn't always be allowed, even if there are very good reasons to do so. In other words: you should dare to make one part "less good" to keep the overall system consistent and thus better. A practical example of a violation of this principle is the ArgumentNullException: the general pattern is that all exceptions take the message as their first parameter, but the ArgumentNullException takes the parameter name as its first (because that makes much more sense in this case). In retrospect, this shouldn't have been allowed, since it breaks the common usage scenario that developers are used to.

Framework Design Matters

A well-designed framework must, above all, be simple. To achieve this simplicity, you need to think like your users. A very convenient way of getting in their heads is to actually write code samples for the main scenarios first, and then defining the object model to support these code samples. Another way to make sure your framework is simple to use is to factor the namespaces to only include the most used types and move the advanced types into their specialized namespace so they don't clutter the view for the most commonly used scenarios.

A well-designed framework must be explicitly designed. This means that you should create an API specification, review the scenarios with expected users, peers and non-experts, and finally review the API design.

A well-designed framework is part of an ecosystem. Your API won't only show up in code, it should also be designed to look well in IntelliSense, in the Debugger, in the Properties Window, ... Also take care to make your framework CLS Compliant, since there are other languages in the ecosystem that might want to consume it.

A well-designed framework must be integrated. Special points of attention here are to apply the proper abstractions (e.g. something I do a lot: don't explicitly declare fields and arguments as a Hashtable when an IDictionary is enough for your needs), and watch out for type name conflicts (it's not because it's in a separate namespace that a generic type name such as "Message" won't get in the way of your users).

A well-designed framework must be designed to evolve. This is particularly hard, since versioning and building for the future means taking into account the unknown. In this sense, you should favor using classes (likely abstract classes) over interfaces since they are easier to version: adding members is a non-breaking change for classes, but not for interfaces. Also make sure to control your extensibility points, such as virtual methods, and only open them up if there is a good reason to do so.

A well-designed framework must be consistent. This, of course, relates to the Power Of Sameness mentioned before, and is key to a good user experience. Specific rules include having consistent naming guidelines and using common patterns and idioms (like the Async pattern, the Dispose pattern, ...).

Tools For Communication

Consumers of your framework can't read your mind, so you have to communicate your intent. This can take the classical form of documentation, of course, but even if you have 500 pages worth of documentation, your API can still reek royally and your customers won't be happy. The layout of your namespaces, the naming patterns in your types, the exceptions you define, ... all form a common vocabulary that allows your consumers to feel familiar with your API (and of course, if your API adheres to the guidelines published by Microsoft, they'll feel right at home right away if they know their way around the .NET Framework).

A few interesting highlights out of the different artifacts of that vocabulary:

  • Namespaces are just an organizational element, they have nothing to do with implementation (so there doesn't have to be a one-on-one link between the namespace name and the assembly name, for example).
  • Classes are a conceptual model for a thing so they should represent something with one single semantic meaning.
  • A struct is a domain specific extension of the intrinsic type system, so typically they should be smaller than 16 bytes and, quite importantly, immutable.
  • Exceptions should be defined wisely, and a new type should only be defined if the user would like to differentiate the way to handle this exception versus other exceptions you've defined.
  • An enum is a container for named constants; you should take care to explicitly assign the enum values and make their name singular, e.g. Color for a list of colors (except when they're [Flags] type of enum, in which case their name should be plural, e.g. AnchorStyles).
  • A constructor should be lazy and only capture state, make sure not to do too much work in the constructor.
  • A method exposes an action or operation, it doesn't return instance state as such.
  • A property is a logical backing field for instance state, but take care that it's not retrieved using an expensive operation (like going to the database), in which case you're better of with an explicit method.
  • A field is just an implementation detail, and it should never be exposed anyway.
  • An event is raised (not fired or triggered) to inform a subscriber of something that happened, and you should carefully follow the common event naming pattern to avoid confusion.

The Pit Of Success

The final part talked about a very interesting concept: you should guide the consumers of your framework into just "doing the right thing" if they don't really know what to do in a given situation. Doing the right thing shouldn't be hard as climbing a mountain or running through a desert - instead it should be as easy as just falling into a pit. Enabling this Pit Of Success can be accomplished by avoiding the Perilous Summit Of Complexity and the Desert Of Confusion. The first can be summarized as "making the simple things simple, and the hard things possible". The second means making consumers fall into doing things the right way by avoiding leading them down confusing and possibly wrong paths. A good way to put this into practice could be to provide easy-to-discover convenience methods for the most common scenarios (e.g. the new File.ReadAllLines method in the .NET Framework 2.0 that hides all the filestream plumbing in one simple method call).

Finally, one other way to achieve the Pit Of Success is to remove unnecessary features - thereby reducing the surface area and the accompanying room for mistakes, which, in the end, adds value to your framework. Or to put it another way: you can actually reduce the value of your framework by adding features. So you should do as little as possible now (but no less) to ensure room for extensibility in the future.

So this is the compressed takeaway I got out of this excellent pre-conference session. If you found this interesting (I sure do), I can highly recommend the book "Framework Design Guidelines" which is full of practical guidelines, do's and don'ts, along with their reason and additional annotations. Learn from it, and apply the guidelines to your own API's so your consumers will be happy to use what you've built.

Blog | General | Programming | .NET | PDC05
Friday, September 16, 2005 5:01:58 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

PDC05: The Third Keynote#

In the third and final keynote, Bob Muglia talked about the server side of things in the roadmap that matters for developers. This was a much shorter session, but covered some interesting topics such as management, Monad, WinFX, Active Directory, ...

Some interesting notes from the keynote:

Management

  • WS-Management, which I've also seen in action at TechEd, has been defined as a unification of remote management of hardware, operating systems and application. It even enables remote management of WMI services cross-platform.
  • MMC 3.0 has been announced to host managed components, so you can finally write MMC Snap-Ins in .NET!

Monad

As you might already know, Monad is the codename of a new object-based command line language.

  • It has been created in .NET.
  • It works with thin commandlets.
  • In integrates the command line, COM and .NET

Active Directory

Active Directory has been around for a few years providing identity management and single sign-on across the enterprise. Now with Federation Services it will extend this single sign-on principle to work between different enterprises.

Longhorn Server

The server edition of Windows Vista should be ready in 2007. Of course, there are a lot of interesting enhancements and new features but a few highlights were pointed out:

  • Terminal Services will be accessible through firewalls, and it will support USB device redirection. Nice!
  • TxF is the codename for the Transactional Filesystem, which adds transaction support to an NTFS filesystem. This means you can finally have atomic changes to filesets (which can be very handy for certain Source Control scenarios and, why not, Transactional FTP?)
  • IIS 7, but this actually deserves a point of its own :-)

IIS 7

One of the most common problems with IIS to date has been the centralized and opaque nature of the IIS Metabase (which holds all the configuration data for the IIS server). It required an administrator to update the settings, and you were in serious problems if the metabase ever got corrupted. So it was very exciting to hear that the metabase is now officially dead. All configuration is now persisted in XML configuration files, and this even trickles down to the web.config files of the individual websites. Take for example the task of adding a default document to be served for a website, which can now be defined in its own web.config as such:

<configuration>
  <system.webServer>
    <defaultDocument>
      <files>
        <add value="MyHomePage.aspx" />
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>

Furthermore, IIS7 is completely modular, so you can remove modules that you don't use (e.g. CGI) and rewrite modules that you're not happy with (e.g. the DirectoryListingModule) - and all of this on an individual website basis and without restarting the server or IIS! This is very powerful and opens up a lot of interesting scenarios.

So that concludes the last keynote, I'm off to some more in-depth sessions!

Blog | General | Programming | .NET | PDC05
Thursday, September 15, 2005 7:06:49 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

PDC05: The Second Keynote#

Introduction

Although the first keynote on Tuesday already ran way over time, Eric Rudder still found plenty more to talk about in the second keynote today. The main announcements were:

  • Windows Workflow Foundation: this natural extension to the .NET Framework enables developers to incorporate both System Workflow as Human Workflow into their applications. Microsoft is actually using this themselves in their next versions of SharePoint and Office "12".
  • Microsoft Expression: this is a suite of designer tools (codenamed Acrylic, Sparkle and Quartz) aimed at graphics and web designers.
  • Visual Studio Tools for Applications (VSTA): think of this as the next version of Visual Basic for Applications (VBA), but of course now within the managed .NET runtime. So this technology enables application customization in .NET, and it's already committed to by its integration into Office InfoPath "12".

Windows Workflow Foundation

The main statement that caught my attention was that "Workflow is everywhere": every "if" statement you write is a branch that effectively represents a lightweight workflow step; every webpage transition is a choice you make and can be modeled in a workflow.

So Windows Workflow Foundation sets out to capture complex workflows, expose them to developers and enable on-the-fly extensions to them for added flexibility. Although this sounds impressive, in the end, all it is is "just another .NET namespace": you can execute all of this through managed classes. Furthermore, you can design the workflows right in Visual Studio, very much like you can model Biztalk orchestrations right now.

As a small remark (but I think this is quite big news), it was noted that Microsoft will be providing the tools to embed these workflow designers inside your own applications, so your end users will also benefit from this runtime.

As a demo, we were shown how this currently works: there's a new project type in Visual Studio, you can define the state machine in a visual designer which is persisted as a .xoml file and you can program the individual activities through managed classes. Furthermore, the entire development experience supported since you can visually set breakpoints in your workflow designer and it will just work in the debugger. Incredibly powerful!

Microsoft Expression

Acrylic is a tool that allows you to create vector-based graphics and export them as XAML.

Quartz Web Designer allows a web designer to create ASP.NET ASPX and master pages in a rich designer environment that supports XML/XSLT and even ASP.NET controls with their full design-time power (such as smart tags). It even features a built-in web server that runs your website locally.

Sparkle is basically a XAML designer that uses the same project and MSBuild system as Visual Studio.

The last two tools actually make me wonder how large the overlap is with Visual Studio: since they share so many features (designers, web server, project system, build system, ...), I would think that the tools are just customized and "skinned" versions of Visual Studio, but targeted at non-developers...

Visual Studio Tools for Applications

The VSTA platform looks promising, and we were shown a demo that showed the runtime in action in a special build of AutoCAD, but there wasn't really much info available on the runtime or on the capabilities of the platform. I'm sure we will hear much more about this in the near future, since VBA is still one of the most used extension platforms for a lot of applications.

Office 12

During the second part of the keynote, more time was dedicated to showcasing the upcoming Office "12" release. The user experience seems much improved, but unfortunately, we won't be able to get our hands on it for a few months yet. For PDC attendees, this is truly a shame, since we're all quite thrilled about it and they're hyping it all up, but we need to wait a few months before we can actually start using it...

Some random notes from the Office 12 part:

  • SharePoint (Windows SharePoint Services as well as SharePoint Portal Server) is positioned as the core element of the entire Office System.
  • Office 12 will have blogs and wiki's as part of the collaboration framework. You heard it right, blogs and wiki's!
  • You can think of the new FrontPage as a designer or management tool for SharePoint, e.g. you can use it to define new workflows (which are of course also persisted as .xoml files).
  • You can finally use InfoPath forms over the web! Another cool feature was that you can now store and share design snippets for reusable parts of your InfoPath forms. Nice!

So that wrapped up the second keynote, less interesting (apart from the Windows Workflow Services) but nevertheless lots of promise for the future.

Blog | General | Programming | .NET | PDC05
Thursday, September 15, 2005 12:07:23 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

PDC05 Keynote#

Introduction

The keynote for this year's PDC traditionally started off with a roadmap of the Microsoft platform from the times of yore. In waves of 10 years, we received new foundations to build upon:

  • In 1975, the software industry really took off as a consumer-oriented market.
  • In 1985, there was MS-DOS and the PC that we could take for granted.
  • In 1995, Windows '95 established the new GUI capabilities that we still use today.
  • In 2005, we can really depend on the internet, .NET, XML and WebServices to build connected applications.

Windows Vista

The keynote went on to talk about the three C's of Windows Vista: Clear, Confident and Connect. Things that caught my attention in those areas were:

Clear

  • The ALT-TAB window looks much nicer, with live previews of the windows in a sort of carroussel mode.
  • You can also get a very nice 3D view of the open windows.
  • If you hover over a taskbar item, you get a nice little live preview of the associated window (a bit like the little inline Windows Media Player toolbar).
  • Search is embedded everywhere, also in the Start Menu, where you can quickly filter all items collected from your start menu, your applications, your favorites, ...
  • A virtual folder in Windows Explorer is actually just a persisted query stored in an XML file, so you can actually open the virtual folder in notepad and see the XML.
  • The sidebar is back! I heard some rumors that it would disappear but it's there and still looking as nice as before. The individual panels on it are now called "gadgets" (I don't think that was how they were called before.)
  • There's also a little something called "Sideshow", which looked kind of like a PDA built into the case of a laptop where you get quick access to your email, calendar, ... without booting your laptop.

Confident

  • There's built-in support for Parental Control, so you can define which games can be played by who for example.
  • A lot of work has been put into anti-phishing. For example, there's a new Dynamic Protection Service, which blocks websites which have been marked as phishing sites. You can easily mark sites as phishing, so they will be blocked for everyone automatically; you can also request to unblock sites you believe are falsely blocked. A team is actively maintaining the list, so if they can keep this up-to-date, it could be a viable solution to the problem.

Connect

  • IE7 supports tabbed browsing, as we already knew. The pretty cool extra feature is that you can get a PowerPoint-like slide overview of all your open windows and manage them through there.
  • IE7 has built-in support for discovering RSS feeds and subscribing to them. The only problem I have with it, is that it heavily uses the orange XML icon we all know now, but I wouldn't want this to become too mainstream. XML does so much more than RSS that it's just stupid to use it as a "marketing icon" for it. Why not just use an orange RSS icon?
  • Microsoft is also anticipating RSS to be used for much more than just subscribing to feeds: businesses will depend on a syndication format more and more as they connect to their partners and suppliers. One example was the new version of their CRM solution, Microsoft Dynamics CRM, which uses RSS to let a user subscribe to changes in the backend CRM system.

Office 12

After touring Windows Vista, Office 12 was next up. The target of Office has always been to "Get Better Results Faster" and there sure seem to be a lot of productivity enhancements. As a fun fact, Word 1.0 had 100 commands (in the menu bars and toolbars), Word 2003 has over 1500! So with that in mind, we basically got a quick tour of Word, Excel and PowerPoint running under Vista and it truly looks wonderful.

Windows Vista and Office 12 are both scheduled for release the second half of 2006, so that's getting pretty close already. I'm actually very much looking forward to getting all this power, so I might start really using Windows Vista as my main OS. I'll keep you posted if it works out :-)

Pillars Of Longhorn

In the second part of the keynote, Jim Allchin came out to revisit the four pillars of Longhorn as they were originally set out at the PDC two years ago (Indigo, Avalon and WinFS on top of a common Core). They still seem to be in the current version of Vista although, for a long time, I thought they were gone: Indigo and Avalon were backported to Windows XP SP2 and Windows 2003, and WinFS seemed to be postponed to Longhorn Server. Here's how they look today:

Core

  • The security system has been adapted so that users can more easily run in least-privilege accounts.
  • SuperFetch is a service that monitors your application usage over time (seconds, hours, days, ...) to see which applications you use most and pre-loads them so they start up much faster.
  • If you stick in a USB drive, the system will notice this and start using it as extra RAM. Funky!
  • Another attempt has been made to reduce the number of reboots by 50%. In fact, it seems they can now shut down part of the system to replace dll's while the rest of the system keeps running.

Presentation (formerly Avalon)

  • They've officially announced the Atlas technology, which is basically an AJAX framework integrated into ASP.NET 2.0 and Visual Studio 2005.
  • The Windows Presentation Foundation consists of both the engine (allowing applications to run on screen real estate varying from devices to laptops to 21" screens to wall-sized video screens) and the framework (the managed classes you can use to build your application).
  • Newly announced is WPF/E, which stands for Windows Presentation Foundation/Everywhere. This is a lightweight stripped subset of the WPF runtime for use on devices, and is based on XAML and JScript (so no support for C# or other managed languages to code your application in).

Communication (formerly Indigo)

  • Relatively new to the Windows Communication Foundation (for me anyway) is InfoCards, which is a federated claims-based identity system. Important to note is that the OS manages all your identities and use one type of window and thus one user experience to log you on to different remote systems.
  • Another feature shown is People Near Me (PNM), which seems to have locality-based information about the people you know.

If you think both these features seam a little vague, I can't blame you: they weren't really explained very much yet and I'm not sure what they do exactly or how to use them (but there will be plenty of sessions to explain later this week).

WinFS

Actually, this part wasn't covered today, so I'm assuming the "Windows Storage Foundation" (wild guess on the future official name) will still only appear in the Longhorn Server timeframe.

Lap Around Vista

By far the coolest new feature that was announced today is LINQ, or .NET Language Integrated Query. This means you can write SQL-like selects with filtering and sorting as first-class citizens in the C# language. I'll definitely be spending time exploring this feature but in short, it means that you can query any object that implements IEnumerable<T>. Look at Dan Fernandez's blog for more info on LINQ and a code sample. Really, really cool!

Another surprise was the return of ObjectSpaces (once again). This time, using this long-awaited Object/Relational Mapping framework looked very similar to XML serialization in some way: you can decorate your types with attributes that define their mapping onto the database and you're pretty much done.

To conclude, Don Box, Anders Hejlsberg, Chris Anderson and Scott Guthrie came out to run a lap around Vista. The demo started with Anders Hejlsberg building a LINQ query doing a cross select of the currently running processes with an ObjectSpaces-fronted database containing process description. So that was one query, in native C#, that did an in-memory join between objects and the database in a very easy and recognizable format.

After that, Don Box exposed this information as an RSS stream through an Indigo service. A custom PoxBinding stripped off the SoapEnvelope at the top and as such, just doing an HTTP/GET on the service returnd a valid RSS stream, which was consumeable from IE7 out of the box.

To go even further, Scott Guthrie made ASP.NET consume this feed through an Atlas client, which means that it was queried asynchronously and with a pretty slick UI.

Chris Anderson concluded by showing the new Avalon rendering in action to show the items in the feed through fancy 2D and 3D views with minimal amounts of code and XAML.

All in all, this was a very impressive demo, although some parts were obscure and highly customized (the PoxBinding, the special plumbing to consume the Indigo service from JScript, some of the XAML formatting, ...).

Wrap-up

At the very end, Hillel Cooperman showed us a demo application called Project Max that was built to showcase all these different components: it's a photo-sharing app that you can actually use and download at the Project Max Homepage. Looks good!

As a sidenote, the live transcript that was running while the speakers were talking was pretty cool, especially the fact that the person typing the transcript was pretty fast but apparently not very technical. While trying to keep up with the speaker, things like WinFS were consistently transcribed as WinFX (understandeable but critical mistake in this case), RSS became RSF and lots of other small mistakes. But the funniest one was where "things like RSS" was transcribed as "things like our asses" :-)

Anyway, that pretty much concludes the keynote. A great start for a promising conference!

Blog | General | Programming | .NET | PDC05
Wednesday, September 14, 2005 12:45:03 AM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Themes for dasBlog#

I get quite some questions about the theme for dasBlog I'm currently using, it's always nice to hear you like it :-)

The bad news is: you can't have it :-p It's a pretty customized theme to suit my "special needs" so it wouldn't do you any good anyway.

The good news is: I've created a more generic version of it, which you should be able to use just fine. I dubbed it "essence" since I believe it's quite back-to-the-essentials without too much distraction and chaos (I hope so anyway). The even better news is: it ships by default with the recently released dasBlog 1.8!

BlogXP, a theme I created a while ago, is also in the package by default, and it seems people really dig that theme since I've seen quite a lot of sites using it already. Nice!

If you haven't downloaded dasBlog 1.8 yet, you can also get the themes here:

dasblog-blogxp.zip (15,79 KB)

dasblog-essence.zip (6,76 KB)

Sunday, September 11, 2005 4:59:17 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

PDC05: Ready To Rumble!#

Just like the rest of us who flew in on the special EMEA@PDC charter yesterday (check out David's blog for the list of Belgians), I arrived in L.A. without problems, all ready and geared up for the PDC 2005! The community is looking good, the vibe is definitely here, and I'm looking forward to spending a week in braincooking mode.

Here are some of my pictures from the first day (check out the other blogs for much better ones):

Departure in Amsterdam

Flying over Greenland

Flying over L.A.

Arrival at LAX

Downtown L.A. seen from the bus to the hotel

The welcome reception at the pool

And I fully intend to keep making this kind of crappy pictures with my phone so stay tuned for some more low-res fuzzy images of PDC05 - because that's how it feels over here anyway ;-)

Blog | General | Programming | .NET | PDC05
Sunday, September 11, 2005 4:26:54 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Introducing Steven Wilssens#

My colleague Steven Wilssens is one of the most knowledgeable people I know personally (on .NET related topics anyway ;-) ), and he's just started blogging! So be sure to keep an eye on his blog for some solid information about all things .NET, Indigo (WCF), Software Configuration Management, Team System and lots more!

On a job interview we were conducting together a few weeks ago, the applicant couldn't really explain the difference between passing arguments "by value" and "by reference", so Steven just used the can of soda in front of him as an analogy: if I pass the can by value to you and you drink from it, I'll notice it afterwards and get mad at you for stealing my drink (assuming the can is a reference type, like an ICollection of soda molecules if you will). If I pass it to you by reference, you can drink as much as you want - you can replace the entire can altogether so I won't notice :-)

So that's the kinda guy he is, check him out!

Sunday, August 21, 2005 6:36:52 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

TechEd WeFly247 Swag#

Now that WeFly247 has finally shipped (as part of the Beta Experience) and rapidly gaining traction, each member of the team received a cool "Contributor Award" package for getting this sucker out of the door, containing a flight ticket, a miniature plane with a name-tag, a teddybear (just like the one in the Duty Free shop of the Passenger Website!) and some vintage stand-alone WeFly247 DVD's (not found in the Beta Experience package). Nice!

WeFly247 Contributor Award

So seeing it's TechEd in Europe next week and you're all running around looking for free food and swag in stead of attending the 400+ sessions packed with material that is determined to overflow your brain, I figured I might as well just hand some of these limited-edition DVD's out to whoever gives the best impression of the number two engine of a Learjet 60 that just ran out of kerosine.

Oh, you'll also win if you just recognize me and beat it out of me (I'm not giving you my lunch money, though).

So if you see me in Amsterdam this week, come and say hi!

Sunday, July 03, 2005 7:22:37 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Blog'n My Way To The PDC05#

A free ticket to PDC05 just by blogging, you say? Try and stop me!

blogging my way to pdc

Apart from the obvious reasons why I think I should attend the PDC (me being a consultant and blogger, focused on pretty much all things Microsoft, and .NET more specifically, which basically means I help sell your platform, e.g. by developing widely distributed end-to-end sample applications on .NET 2.0 Beta 2, for which I require all the information I can get as soon as I can get it, in order for me to generate money for your company and ultimately your paycheck, dear judge - think about that for a minute, I'm doing you a favor here dammit, so giving me a ticket is the least you can do... but I digress), here's the real deal:

  • I'm from Belgium, where, as you may or may not know, we make incredible chocolates and fantastic beer. I'll take as much with me as I can smuggle through customs, and throw a party for all you Channel 9'ers out there.
  • I was at PDC03 but forgot my undies after the most excellent "Women Who Code" BOF session, so I really need to get back and pick them up before they start to tear down the L.A. Convention Center on grounds of "asbestos smell".
  • I tipped my cab to wait for me at LAX when I flew out, and I'm anxious to see if he's still there.
  • I didn't get to show my weewee to Don Box at any conference yet, and I feel I'm just as entitled to show off my manlyhood as Rory is.
  • I'm planning on speaking at PDC07, so I'd like to check out the locations of all the electric outlets for my talk's setup. You don't expect me to fly out just to do that, do you?
  • I'm also planning on speaking at PDC05, but unlike last time, I'll try to wait until the guy with the mic has finished his talk.
  • My boss just bought a Porsche (really) so now he can't afford to buy me a ticket anymore. Do you think it's fair that I'm a victim of his mid-life crisis? (Hi Peter! Good thing my annual review is just over, eh?)
  • I missed the gig by the Band On The Runtime at the Standard Hotel last time, but I've been preparing a replacement Channel 9 drummer (sorry 'bout that Carl).
  • Despite popular belief (and the picture on my site), I'm actually a gorgeous young female with perfect measures, an IQ of 0x9D and a higher libido than the average rabbit on viagra. Where do you want to meet up?

Right, that should do. See you there!

Blog | General | Programming | .NET | PDC03 | PDC05
Sunday, June 12, 2005 10:10:02 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

MSN Tabbed Browsing Sucks#

I just installed the new MSN Toolbar 1.2 to check out the tabbed browsing that's been the talk of the town lately. But boy does it suck.

It looks and feels flakey, my screen flickers like crazy when switching "tabs" (which in fact just seems to do some hidden window magic, looking at the jumping taskbar items), it messes with my IE window (hey, suddenly it's not maximized anymore), it makes the IE window actually lose focus sometimes, and it can't be used without enabling the MSN Search Toolbar (which I don't even want, the Google Toolbar still kicks its behind with the clickable search words and everything).

So there you have it: boo! If I want tabbed browsing, I'll use Firefox thankyouverymuch. It's just so much cleaner, and you can tell it's built into the product - not patched on. Let's hope IE7 does a better job at this...

Furthermore, what's up with the installer for this new release? Apparently I need to uninstall the previous one, making me lose my indexes, settings and my list of shortcuts? Geez, thanks for the smooth upgrade.

And what happened to the advanced query syntax that rescued me before? It stopped working for me ever since the toolbar went out of beta.

Come on guys, you were on a roll with this product, but now you're losing my trust. I wish I hadn't upgraded to anything beyond the beta, who says I will next time?

Saturday, June 11, 2005 10:15:32 AM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

The BAT (BCC Awareness Template)#

Sick of receiving emails sent to you, everyone you know and don't know, and their dog? Had enough of setting up yet another email account just because the signal-to-noise ratio is less than 7% again? Are your private bodily measures within reasonable distance from the average and not in need of corrective surgery? In other words, looking for an easy-to-use yet highly effective solution to the seemingly unstoppable spam problem? Look no further! Just copy the form below, check the boxes, and send out an anonymous mail to the violating person (preferably with a myriad of well-known spammers' addresses in CC).

Dear
[ ] Sir, Madam
[ ] Spammer
[ ] Intellectually challenged person
[ ] Treehugging hippie
[ ] /.'er
[ ] Ignorant n00b
[ ] Loser
[ ] Monkeybrain
[ ] Herd animal
[ ] Lonely freak
[ ] Elvis
[ ] Other:
 
I was recently annoyed by your email regarding
[ ] A promotional campaign
[ ] A cheezy joke from 1992
[ ] A PowerPoint presentation created by the Dalai Lama himself
[ ] The true Rules Of Life and how these will impact my social networks
[ ] Commercial pleasures of the flesh
[ ] The universal and everlasting happiness that came upon you after
    forwarding that same email to about seventeen billion people
[ ] Some random less-than-interesting email sent out to me and sixty-five
    people I never heard of
[ ] Other:
 
It was
[ ] Lame
[ ] Weak
[ ] Insane
[ ] Careless
[ ] Dumb
[ ] Braindamaging
[ ] Frustrating
[ ] Mindblowing
[ ] Infuriating
[ ] Painful
[ ] Other:
 
I'd like to point out to you that
[ ] It DOESN'T really work
[ ] You will NOT receive 1 Gazillion Dollars if you forward this to more
    than 12 people
[ ] You have clearly not understood the purpose of the internet
[ ] You're an idiot
[ ] I don't even know you (and wish to keep it that way)
[ ] You clearly don't understand what email is all about
[ ] There has been a BCC field since, like, forever
[ ] Other:
 
You are advised to
[ ] Never, ever, send me or anyone else an email again
[ ] Get a life
[ ] Take your powercord and drag it out into a thunderstorm while holding it
[ ] Stay away from anything with a battery or power cord from now until
    the end of time
[ ] Delete my email address from your pc, phone, notebook, and brain
    (assuming you have a working brain at least)
[ ] Refrain yourself from emailing until you grasp the BCC concept
[ ] Grow up
[ ] Apologise to society
[ ] Eat cow dung
[ ] Immediately lose your naivety
[ ] Go visit an ancient tribe somewhere in the Rain Forest until you have
    a faint idea of what your purpose on this planet really is
[ ] Trash your computer with a sledge hammer and eat the hard parts
[ ] Other:
 
As a final note, let me tell you,
[ ] You may join your creator in hell as far as I'm concerned, you
    evil Spawn of Satan
[ ] You need psychiatric assistance
[ ] It's people like you that stop spam from dying
[ ] Go somewhere else with your cheap scams
[ ] You're so clueless I didn't even go through the trouble of filling
    out this form entirely
[ ] Other:
 
Sincerely,
 
    (Your name here)

(Format kindly stolen from The Luhmann Church of Absurdness' Standaard Eikel Beantwoordingsformulier)

Thursday, April 28, 2005 11:17:22 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Geeks Have More Fun#

A snippet from a mail conversation today to discuss dinner plans (names scrambled to protect the geeky; by the way, "GPL" is a well-known location):

--- Original message by Unaf Pbearggr:
> I rest my case.
>
> y0.
>
> --- Jelle Druyts wrote:
>>
>> And BOY would we be wrong :-)
>>
>> Pretty sweet though, should I blog this ;-)
>>
>> --- Original message by Unaf Pbearggr:
>>> unaf and jelle @ vallet parking lot:
>>>
>>> Our car would be the one having the "geeks have more fun" sticker on
>>> it.
>>>
>>> --- Jelle Druyts wrote:
>>>>
>>>> <ascii>0000 0110</ascii>
>>>>
>>>> --- Original message by Unaf Pbearggr:
>>>>> >>>>> 0x12 # !
>>>>>
>>>>> Jelle Druyts wrote:
>>>>>>
>>>>>> GPL@0x12
Wednesday, April 13, 2005 11:38:59 AM (Romance Standard Time, UTC+01:00) #    Comments [4]  | 

 

WeFly247 Developer Interview#

Yesterday, Rob Macdonald recorded a "WeFly247 Developer Interview" with me to be put on the soon-to-be-released WeFly247 DVD. We discussed the implementation of the different applications I worked on and a bunch of new features in .NET, and I think it all went pretty well. So be sure to check it out if you get your hands on the DVD!

Looking back, there's a lot of places where I sounded pretty "marketingy" and used terms such as "developer productivity", "very powerful", and just "cool", but talking about the killer features in the upcoming .NET 2.0 platform and the new Visual Studio .NET just made me step back a little and appreciate all the good stuff in there with fresh eyes again.

While we have gone through a lot of pain with instable alphas and betas, in the end it's been a great experience and I can't wait to see the final version ship!

Tuesday, April 12, 2005 2:49:55 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

MSN Desktop Advanced Search To The Rescue#

I found myself in some trouble last week, because I didn't quite remember what I did in the first week of March - and the Powers That Be needed to know...

So one thumb up to myself for installing MSN Desktop Search, and two thumbs up for the Advanced Query capabilities of the product. It's a real lifesaver if you can just type "after:28/2/2005 before:5/3/2005" and get all the mails you sent and all the files you touched in a certain period of time!

It made the Powers That Be happy anyway (which in turn made me happy) so three thumbs up to them ;-)

Monday, April 11, 2005 6:34:46 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Small Confcall Observation#

Confcalling (conference babbling errr calling for those lucky enough not to have taken part in the phenomenon) is the corporate fishtank of communication. I don't know what I mean by that yet but I just figured it sounded cool so I'll come up with some kind of explanation now... You can drop lots of fishes in a tank, you can all go 'blub' as much as you want and the bubbles will certainly look really cool, but in the end you're nothing more than a colorful floatation device with a serious communication problem.

Here's a typical confcall for you:

Screeky computer voice: "*beep*screech*fiiiiii* has logged on to the conference call, please wait until the meeting organiser has found the proper way to enable DTMF tones on his phone".
(Wait a while and be thankful for the beautiful soothing music.)

You: Hi guys!
Everyone: blabelajzbelazehlazeja
You: Sorry, what was that last thing?
Everyone: scooblamoqhzaozieajklhda
You: I still didn't quite catch that. Can anyone repeat?
Everyone: shmaaazoakjshqksjhdlksjdsapzoie

After that, you get some more confusing interpersonal communication, and then it really gets fun when multiple groups try talking to each other over the same line. Frequency multiplexing is certainly useful (DSL wouldn't exist without it) but the human ear just isn't designed to function as a demultiplexer so this turns out to be quite exhausting for the brain.

So after a while everybody just gets pretty tired of the whole thing and you get some of those embarassing silent moments where everybody's basically sitting on the toilet or something in an attempt to make some meaningful use of the time being spent here. Then in the end, the meeting organiser will most likely say: "Thanks all, I don't have a clue what any of you said so I'll just send you all an email tomorrow."

Ahhh I do love a good ol' low-tech confcall :-)

Tuesday, March 22, 2005 11:28:30 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

PowerPoint forgot to nail the basics#

I don't like bringing down a product with one sentence (there's a caring team of actual human beings behind every product, you know, with wives and dogs and barbeques in the summer and possibly an unmentioned uncle that's serving time in state prison) but here goes: PowerPoint forgot to nail the basics.

In this post, I'll pretend to know something about product design. Forgive me, and bear with me.

PowerPoint is made for one thing: enabling appealing presentations to capture an audience's attention. That means attending a presentation should be a flawlessly clean experience, where the tool should ultimately be invisible. Unfortunately, as always, reality is quite different from theory.

First of all, I don't ever want to see PowerPoint in 'design mode' when attending a presentation, although it always happens when you switch to a demo or some other application and try to get back. Design-time and runtime should be two very different modes that hardly interfere (just like you don't see Visual Studio .NET everytime you launch or close a deployed .NET application or temporarily switch to another app and back). Sure, you could use PowerPoint Viewer but nobody does, probably because it's just POS (Plain Old Stupid, in light of recent upcomings of POJO, POX, ...) to install a light version of an app you already have. And besides, it doesn't support all features of its big brother, like opening linked or embedded objects.

Second, I've seen too many presenters fumble over the fact that there is no proper way to start a slideshow in PowerPoint. Pressing F5 will start the show from the beginning, but that's pretty unintuitive if you're positioned on another slide in the 'designer'. You can always try to click the 'Slide Show from current slide' icon on the lower left but that's basically just 4 pixels large so if you're a bit nervous on stage you're very likely to click anything but that button.

It may seem like nitpicking to you but I think that's pretty important. I don't want to see even the most experienced presenters get clumsy when trying to use the most visible Office tool in the conference world. Sure, as a professional presenter you should know that the SHIFT-F5 shortcut launches the slideshow from the current slide, CTRL-P switches to the Pen, B and W can be used to toggle your screen to Black or White modes (giving you more room to draw), E erases your scribbling, and CTRL-S gives you a slide overview so you don't have to go back-back-back-back to find that one slide you wanted to show again. (When lost, don't forget you can press F1 in a slideshow to see all options.) But you don't really want both your hands tied to the keyboard when giving a presentation, so two-key shortcuts are bad. Especially if they can't be customized. (IE team, you listening?)

So here's my wishlist for PowerPoint 2006:

  • Strictly separate design mode from slideshow mode (the tiny floating 'Resume Slideshow' button won't cut it).
  • Make launching the slideshow from the current slide the default.
  • Put two non-microscopic, eyecatching buttons on the toolbar, both for launching the slideshow from the start and from the current slide.
  • Make all slideshow related shortcuts customizable (i.e. commands to launch the slideshow and the available commands in the slideshow).
Sunday, March 06, 2005 1:36:51 PM (Romance Standard Time, UTC+01:00) #    Comments [5]  | 

 

Moleskine in Antwerp#

Yep. They sure smell nice :-)

I found some Moleskine notebooks in Antwerp in De Standaard Boekhandel (Huidevettersstraat 57-59). They don't offer the whole lot, but at least they had the pocket (€9,95) and large (€13,00) versions and a few other types so I bought my precious pocket plain notebook right away. Nice!

It's still a bit large though, to really be carrying around all day. So I was tempted to buy the large one right away but I'll just stick to this one for now and see how it fits me.

They also have Moleskines in a shop named Kockx (Korte Gasthuisstraat 37), which is right around the corner from De Standaard Boekhandel, but they were just a little more expensive. This shop also had the weekly diaries though so check out that store if you're looking for these.

Now if you'll excuse me, I'll be disassembling my pc and living the lo-fi life from now on ;-)

Saturday, February 05, 2005 12:45:38 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Channel 9 guy gets a hobby#

Cool, I brought home some swag from the DevDays today and there was a celebrity in there! Of course after I released him he ran right off to the cool stuff ;-)

Tuesday, February 01, 2005 8:42:18 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Moleskine#

I love the smell of paper...

All this fuss about the Moleskine notebooks (It Rocked My World!, My 21st Century PDA!, Moleskine Hacks!, etc.) is making me very curious.

I'd go buy a pocket plain notebook, but the nearest dealer appears to be in Amsterdam... Does anyone in Belgium have one of these and coming to DevDays to show me?

Sunday, January 30, 2005 12:45:16 PM (Romance Standard Time, UTC+01:00) #    Comments [6]  | 

 

Upgraded to dasBlog 1.7!#

I couldn't wait to upgrade to the new 1.7 version of dasBlog Community Edition (as it's called nowadays) because of all the great new features: far better performance, anti-spam measures, drafts (finally!), and lots more. Three cheers to Omar Shahine, Scott Hanselman, and everybody else who dedicated some precious time to it!

Unfortunately, there seems to be a small bug in the drafts functionality, since posts that aren't marked as Public (i.e. drafts) still show up in the RSS feed. Whoops ;-) I'll be keeping an eye on the bug I submitted to the SourceForge tracker because I really want to start using drafts... Update: My eyes must be deceiving me, the draft version of this post worked perfectly without showing up in the RSS feed... It did fail on my test machine though... Anyway, I'm sure it was my fault then.

If you're planning on upgrading too, you'll notice that you have to run an upgrade tool against your contents directory. The fix for the "Comments may disappear when moving content across GMT timezone boundary" bug I briefly mentioned before and submitted to Omar Shahine may have something to do with that since I believe that triggered the filename changes, sorry about that ;-)

Still, I had a little problem upgrading my content, and I believe it's related to that bug. I pulled the content from my server (which is on time zone GMT-7) to my machine (GMT+2) and ran the upgrade tool. Everything seemed fine on my test machine, but I noticed that the comments on some (what appeared to be) random posts had disappeared. I dug a little deeper and noticed these posts were submitted quite early in the night so I suspected a time zone issue again. I reflectored (uhm, yes, that's a word) the upgrader exe to see what it was doing and I noticed it was using the local time zone for some date-time calculations. So on a hunch I switched my local timezone to the one of my server and everything worked just fine. Whew :-)

So here's a word of advice: if you upgrade your content directory, be sure to temporarily set your local machine to the same time zone as the server the blog will be running on!

Blog | General | Programming | .NET | ASP.NET
Sunday, January 23, 2005 4:25:38 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

The Corporate Blogging Question#

I've hardly been home at all this week so David scooped me: I've just started working as a .NET consultant and technical coach for the Belgian Compuware .NET team today! Thanks for the warm welcome, David, and a big thanks to the rest of the Compuware team as well! I'm looking forward to working with you all! As it goes, I already have one anecdote I'd like to share with the blogging community here.

As it happens, Irene Dawson, the Senior Vice President of Compuware EMEA, was at the Belgian office today for a visit and a talk. There was room for some questions at the end of her talk and there was a tricky one in there: "what's the corporate policy towards blogging?". Good one, I might add. Who knows, maybe I'm already violating it here ;-)

So forget what you know from your "little" inner circle here on the big semi-organised chaos that we call the "internet", but blogging still isn't known to everybody out there in real life :-) So as she was trying to assimilate the meaning of this new word, my new manager pointed her at me on my first day to quickly explain blogging to her on the spot. I think I managed to get some of its intricacies into her mind but a little preparation would've been nice though ;-) So I'll be explaining her the meaning and issues some more in detail through email; any definitions and precedents to help set the stage are welcome. Robert Scoble's Corporate Weblog Manifesto is already on the list but I'd like some more diverse viewpoints actually...

Anyway, I'd heard a lot of nice things about Irene so it was great to meet her at last (she's a very warm and vibrant person) and she'll probably remember me as "the blogger" or something, but it was fun nevertheless :-) I guess it's one way to meet your Senior VP on your first day...

Thursday, January 20, 2005 1:16:53 AM (Romance Standard Time, UTC+01:00) #    Comments [4]  | 

 

Short Story: "El Viaducto"#

A while ago, I followed a weekend course on shorty story writing, which was really fun to do! Not only did I get to learn some interesting theory around writing and how stories are built up, but of course we were supposed to write something as well.

I started from an object (a weird sort of sunglasses), mixed that with a location I just visited (Madrid and a specific bridge I remembered from there) and let my imagination do the rest. We gradually built the story up as we learnt more and more and at the end of the weekend I had a nice little story. After some rework and a feedback session and some more rework I think I'm pretty much finished so here goes (Dutch only I'm afraid)...

El Viaducto

Let me know what you think!

Blog | General | Stories
Saturday, January 15, 2005 6:42:13 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

3rd Belgian Geek Dinner: 21 January 2005 @ Brussels#

Whaddayamean, you haven't let Roy know that you're coming to the 3rd Belgian Geek Dinner yet? Well what are you waiting for!

This time, it's going to be in Brussels so no more excuses about the heavily feared construction site that is Antwerp! It looks like there's gonna be a fun gang so just come over, have a great Mongolian Barbeque and hang out with your fellow geeks!

Hope to see you there!

Thursday, January 06, 2005 5:14:25 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

MSN Desktop Search#

Friday, December 17, 2004 6:42:20 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

On recruiting & blogs#

I had my niece over for dinner this week, and she was telling me it's pretty hard finding the right person for a specific job. She's in the ol' headhunting game you see ("Hardest game in the world, done it meself you see..." - aah gotta love Archie :-) ) and part of her job is screening cv's to match them against positions her clients want to see filled up.

One of her biggest challenges is actually finding people; people who have experience in the field she's recruiting for, and who are passionate about what they do. That sounded very familiar. So I told her about blogging (she hadn't heard about it yet)...

She was immediately sold on the idea, and asked me if there were directories of people and ways to search for them. I pointed her at some sites like weblogs.com and feedster, and we quickly ran a few searches on a vacancy she was currently trying to fill. Unfortunately, that didn't really pop up anything interesting. I'm guessing it's because it was in the medical field, and blogging is still fairly biased towards IT professionals (although other fields are rapidly picking up as well).

So there's a hint for all you non-IT'ers: blogging can get you hired too!

And I'm speaking from very recent personal experience when I agree with Robert on that :-)

When it comes to recruiting, I see a blog as a way to establish a base line. It says a lot about what you do, how you think about things, what you're passionate about, how your communication skills are, possibly a little bit about what you're like in real life, ... and that can save you and your recruiter time in the matchmaking process. It can even make technical interviews redundant to a certain extent, as I've noticed myself.

But in the end, it shouldn't be the goal of the blog. If you're using it solely as a promotional campaign, you'll lose traction and credibility. Although my posting rate has slowed down, I'm still doing this for me. All the rest is just an added bonus.

Friday, December 17, 2004 11:36:34 AM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Sharepoint Services on Webhost4Life#

Great news if you're hosting a website with Webhost4Life: you can enable Windows Sharepoint Services for free (or as we say in Dutch: "gratisch ende voor niks")! Now I've been wanting to set up Sharepoint Services for a while but my own little server doesn't run Windows 2003 yet so that was impossible - needless to say this free service is way cool. So thanks a lot for the tip, Jan!

Technical plug: if you want to enable it, just issue a ticket through the (renewed) support site with the domain or subdomain on which you want to have your Sharepoint installed and they'll put it up for you. Their support is really good, by the way: I logged a few tickets and got actual responses in only a few hours (and not the "we got your request and we'll try to reply sometime before the Vulcans land on Machu Picchu" type of response (Vulcans aren't real, people, get over it)). As soon as I gave them a subdomain, Sharepoint was up and running in a few minutes.

Now I've seen Sharepoint Services in action before of course, but I haven't really done much with it myself yet. If you haven't either: I urge you to give it a spin, it's really impressive! A little overwhelming at first, maybe, but once you get the hang of it, it's quite something! Some scenarios I have in mind...

I've been looking for a way to have certain documents always available online, while still being able to edit them easily. Uploading some Word files to a Document Library does the trick quickly and easily. And you get checkin/checkout functionality and file versioning for free! Too bad you can't edit plain text document directly, though; you'd think if they get integration with Word right, it shouldn't be too hard to put up a simple text box, right?

I've also been postponing writing yet another little app to manage my contacts centrally, and I'm glad I did: importing a table from my crappy little Access database into a nifty Sharepoint List was easy as taking candy from a baby (well, a baby without teeth anyway).

And if you want to put an aggregated feed on your portal somewhere, it's also pretty easy: just use the XML Web Part to take the RSS source in and apply an XSL transform to have it render (e.g. an RSS 2.0 XSL). Cool? I think so!

Anyway, that's just a few of the things in there of course, I'm sure I'll get surprised more and more as I use the product.

Sunday, November 21, 2004 1:26:20 PM (Romance Standard Time, UTC+01:00) #    Comments [4]  | 

 

GMail provides POP access#

Now that's what I call good news: GMail is introducing POP access to its service. I just enabled it and it's all working great! So no more whining, I now officially declare GMail the best free email service in the known part of this world.

Extra treat if you live in Belgium and you're using Skynet as your ISP: it uses an encrypted SMTP connection (not on port 25). Why is that nice? Glad you asked!

In case you haven't noticed, Skynet has blocked port 25 recently so you're forced to use their SMTP server. Now that wouldn't be all bad if it would, well, work. Unfortunately, it has a tendency to suck big time: the last few weeks it has been impossible to get a mail delivered to any Yahoo address. At first it just bounced back but I guess that was too straight-forward: now it just disappears completely without a trace. I've called it in with support but they say there's a problem relaying to the Yahoo servers and that there's no solution. That's right: they're saying not a single Skynet user can send email to a Yahoo address through their SMTP server. And they're not allowing other SMTP servers. Their proposed solution is to create a free account like Yahoo or Hotmail and send through there. Thanks for the great idea guys but I'll be using the GMail SMTP server from now on, thanks very much.

Sunday, November 21, 2004 1:19:55 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

GMail as a remote hard drive#

After the GMail Filesystem for Linux (via doggi), it seems somebody's also created a GMail Drive shell extension for Windows (via Early Adopter).

To me that spells: free backup space (I don't see it replacing my local hard drive just yet) - so I guess I won't be giving away any GMail invites after all :-)

So all that nifty stuff, but still no clean solution to just fetch my GMail to Outlook :-(

Blog | General | Windows
Friday, October 29, 2004 8:00:46 AM (Romance Standard Time, UTC+01:00) #    Comments [5]  | 

 

TechNet evening session on InfoPath & SharePoint#

As it happens, I'll be co-hosting a TechNet Evening session on "Customizing Collaborative Solutions with InfoPath 2003 SP1 and Windows SharePoint Services" with Yves Kerwyn on October 27. Woohoo, that should be fun :-) So if you're interested in InfoPath, XML, Web Services and SharePoint, be sure to register for the session and come say hi!

There should be lots of demos and I fully intend to make sure Murphy's Law is upheld... So there's a big chance you get to point and laugh at me in public - don't miss this unique opportunity!

Sunday, October 10, 2004 3:51:45 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Belgian Geek Dinner, 2nd Edition#

I guess Roy Dictus righteously got too impatient for me to organise it (I'm sorry, I'm just too busy these days), so he's calling everyone in for the Second Edition of the Belgian Geek Dinner! So mark the 12th 15th of October in your calendars and tell him you're coming!

I won't be able to make it before 10 o'clock but I'm counting on you all to make the party last long enough so I can join in a little later :-) So see you there!

I'm just abusing the occasion here to show off my banner again ;-)

Update: the geek dinner was moved to the 15th of October, unfortunately I won't be able to make it at all that day. So see you a next time!

Friday, October 01, 2004 3:50:38 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Disagreeing with Scoble. I guess I'm not a blog ho'...#

I'm a little late to the game (as always), but I don't agree with Robert Scoble that you "need" more than two posts a month if you want visitors to come back. While this would likely be true in normal web-scenarios (you really don't want to check a site a few times a week to find that there's still nothing new), I totally disagree when syndication comes into play: the whole point is to get notified if there is something new. If I know the content will be good (which is the ultimate blogging premise Scoble also points out in a more recent entry), I really don't care if that person didn't post anything the last 3 months. Hell, I've even subscribed to people who've hardly posted anything just because I'd be interested to hear what they had to say if they finally did ;-) If they start posting bad content though, I'll unsubscribe. Simple as that.

That's the power of the reader, and it truly matches the power of the good old remote control. If people don't like your shows, they'll zap off onto another channel, your ratings will go down, your advertising will go down, and eventually you'll be spending your hard earned bucks on a show you're only watching yourself - the ultimate narcist declaration of self-love and probably the reason you started your blog in the first place ;-)

Furthermore, Scoble failed to mention the other extreme: posting too much will turn people off as well. I'm actually not as interested in his blog anymore as before, and it mainly has to do with his linkblog. While it's a real good idea and I'm sure the content over there is good, I simply don't have the time to follow up on his link dumps there because of content overflow. And since most of his traffic gets redirected into his link blog, his main content is going down - which is a bad thing.

I also tend to steer clear from "linking out". Sure I read a lot, and I come across interesting stuff on the web. Take the Channel 9 video of C-Omega for example (wicked cool language, I really want to give it a go), or Jonathan de Halleux' Introduction to Autonomous Agents for .NET (whow, I want to start modelling traffic jams now), or Roy Dictus' excellent post on Namespace Hierarchies (I'm with you on those guidelines brother), or Sven Cipido's post on the Data Access Application Block (it's great to see you sharing your knowledge as you learn). Really good stuff, truly, but nothing I have an explicit opinion about which adds to any discussion.

I wish I had the time to try it all and chime in to the discussion, but I simply don't - so why bother you with it? I fear the echo chamber and the implicit viral link permeation it brings. I want my readers (both of them) to come back because of what I have to say, not because of how well I can read and advertise other people's thoughts. So unless I can add my personal opinion about something, I won't simply provide you with a link to something I found interesting. While I agree that linking out can be a great way to discover new bloggers through "trusted sources", I made a clear choice not to follow along with the trend because of this.

So am I a blog ho'? I guess not. But I still hope you'll stay subscribed...

Monday, September 27, 2004 12:16:15 AM (Romance Standard Time, UTC+01:00) #    Comments [9]  | 

 

Update to my dasBlog hack for showing public referrers and search engine queries#

A while ago, I hacked dasBlog so I could browse my public referrers. Afterwards, I moved the google and feedster queries to a separate list so they don't clutter the 'real' referrers. Now, I made the code more generic so I could easily add some more search engines like Altavista, Yahoo! Search and MSN Search. So I figured I'd post the code here since I like to think it's pretty cool to have :-) So if you're running dasBlog, just copy the files in the zipfile into your root blog folder and enjoy your new PublicReferrers page!

PublicReferrersAndSearchQueries.zip (5,98 KB)
Blog | General | Programming | .NET | ASP.NET
Sunday, September 26, 2004 11:10:20 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Electronic Drumkit#

Woohoo, I have a new electronic toy :-)

I'm sure you guessed it, so yes that's a Yamaha DTXPRESS electronic drum (djembé not included). It's an older model but it's second hand so that reduced the cost by quite a bunch. For a pretty impressive demo of the latest model, check out the demo movie of the DTXPRESS III Special. Just don't ask me to do any of the wicked stuff he shows you. I'm already happy if I can occasionally get all four limbs working synchronously.

Drumming has been on my TODO list for a loooong time but I never got around to it since the noise isn't very 'social' in a city appartment block. Then I came across an electronic kit and although it doesn't feel or sound the same as an acoustic drum, it's pretty sweet and has lots of capabilities so I figured it was time to buy me a treat.

While you might expect that I bought an electronic kit because it can be played with a headphone (and as such saves you the embarrassment of bypassers laughing at you and occasionally kicking you for poor drumming), I fully intend to buy a dozen 1000 Watt speakers to scare the living hell out of my neighbours on Sunday mornings. My 15-year old guitar amp just doesn't have the power I want to get my sweet revenge for them waking me up on weekend mornings at 8AM with pounding hammers.

All tips for starting drummers welcome by the way :-)

Blog | General | Music
Monday, September 13, 2004 6:18:00 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

MCAD#

I finally took the time last week to take my third Microsoft exam: "Developing XML Web Services and Server Components with Microsoft Visual C# and the Microsoft .NET Framework" (#70-320). I'm glad to see they're giving you your score afterwards again (I never knew how much I got for the WinApp and WebApp exams) because I came out with a score of 952/1000 :-)

So that makes me a Microsoft Certified Application Developer; two more exams to go to become a Microsoft Certified Solution Developer. After I achieve that, I fully expect to become a NZCSH (New Zealand Certified Sheep Herder), a required step towards becoming the GCUU (Globally Certified Uomo Universale) - a title last given to Leonardo da Vinci but I've had my eye on it for a while now.

By the way, there's a new elective security exam you can take to become MCSD.NET: "Implementing Security for Applications with Microsoft Visual (Whatever) .NET" (#70-330 or #70-340), with an accompanying new course "Implementing Security for Applications" (#2840) which again shows the big security push Microsoft is committed to. Goodness!

Monday, August 23, 2004 8:55:04 AM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

I certainly was - were you?#

Due to popular demand (i.e. Jan Tielens' demand, I'm lenient ;-) ), if you want to brag about being member of the exclusive club that attended the first .be-geek-dinner:

Patrick Verbruggen has some pictures of the evening up on his blog as well, by the way. Cool!

If nobody beats me to it, I'll try to arrange the next one somewhere in the Summer time. My goal is to get some kind of simplified Moore's law in there for the attendance numbers. By that, I just mean that I want to get more and more people to show up ;-) So stay tuned, and start getting people that weren't there excited about the idea - shouldn't be hard, right...?

Wednesday, June 30, 2004 12:23:09 AM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

The first .be-geek-dinner was good!#

Thanks to everyone that showed up yesterday for the first .be-geek-dinner! Great beer, good chats, super meal, a fun little tour of the Sinksenfoor and a nice drink to top it all off.

Eventually, 8 people were there and I think that's pretty good considering the timing (Tech-Ed starts on Monday) and the fact that there's just not a whole lot of us in our little country ;-) Too bad Patrick Tisseghem couldn't make it in the end, maybe his wife revoked her permission to be a geek after all ;-)

I like the fact that I can put a face on your names now so it's been great meeting you all! Hope to see you again some next time :-)

Saturday, June 26, 2004 4:46:38 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Practical details on the .be-geek-dinner#

Update: I've added Peter Stuer to the list, Yves Hanoulle decided to skip this one but hopefully we'll see him next time. Furthermore, since there doesn't seem to be much interest for it, we won't be taking the tour of the brewery. See you tonight!

Don't forget: the first ever .be-geek-dinner is this Friday the 25th of June, Het Pakhuis in Antwerp, at 20:00.

Optionally, we can get a tour of the brewery with a degustation of their beers. That's a fixed price of €83,20 for groups under 15 people. I have to let them know 2 days in advance though (i.e.: tomorrow) so please put your vote in the comments now if you're ok with spending a few euros extra to do this tour.

So here's the rundown of people that should be showing:

So if my automatic bullet counter plugin is working correctly, that's 9 people. I've made reservations for 10 just to be sure. If you just figured out what a shame it is that you're not coming and you're sad about all the good times you'll be missing: just let me know and I'll bump the reservation count! Or if you can convince other people to come along, just use the comments here and I'll take care of it.

See you on Friday!

Tuesday, June 22, 2004 10:30:30 AM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Shortcomings Of InfoPath 2003#

InfoPath 2003 is a pretty cool product with lots of potential, but it's obvious that it's still a little young for the real world. Here are some issues I found when developing with InfoPath out-of-the-box:

  • You can't make fields required easily if the datasource is a (readonly) webservice since you can't change that definition and you can't set the validation to "cannot be blank" anymore. Apparently, this is by design: "Notice that the Cannot be blank option is disabled; this property is always disabled in the InfoPath user interface when your data source is an external data source". Why is that?
  • Publishing is a pain; I just wanted to publish to a website on my local machine and after a lot of head-scratching I found that you actually have to deploy to a network share. The first thing you do is set the directory (the virtual directory on your drive) and then the web url from which the form will be accessible.
  • Copying the form to another location - e.g. from develepment to acceptation or production - can't be done easily since the originating location is baked in so you have to redeploy it. Alternatively you could try to script the process to extract the xsn file (which is really just a cab file), update the location and repack it.
  • You can't prefill a form with data from a WebService easily, if you don't want the user to click a button first then you'll have to resort to scripting. This looks like a very common scenario though, so I'd expect this to be a lot easier.
  • Data binding the controls to the fields can be tedious, a drag & drop mode would be easier.
  • There's no support for WSE so I can't use WS-Security; another option would be to use custom SoapHeaders but there's also no support for that.
  • There's no password control, so I can't prompt the user for his credentials without having him expose his password to potential neckbreathers.
  • It would be nice if InfoPath worked a bit more like ClickOnce: click an xsn in your browser and have the the form open immediately in stead of getting the standard Open/Save dialog. Of course, it's still a cab file so it could be harmful to just allow this without the ClickOnce wonders of .NET security - but it would provide a much more transparant user experience.
  • Copy/paste doesn't work between instances of InfoPath, not even for plain text. So it's pretty hard to copy part of an existing form to another one.

Note that this is based on a standard InfoPath 2003 installation, I haven't tried the new InfoPath SP1 Preview yet (which might solve some issues but certainly not all of them).

Monday, June 07, 2004 4:00:32 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

How Long Can You Hold It?#

Screw that penguin-whacker, this is so much cooler: http://www.holdthebutton.com/

I'm going to tear that 13 day record to pieces! If it weren't for the hilarious "Did You Know" messages, I would've already quit last week...

Now if someone could just bring me a pillow and something to eat that'd be great. (Oh and a mob, I made the mistake of having a few drinks a while ago.)

Monday, June 07, 2004 9:54:01 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

.be-geek-dinner#

Update: because of TechEd, the date has moved to the 25th of June.

Look people, we're running way behind here. Seriously. We must be around the smallest country in the blogosphere, still we don't use that huge geographic advantage to have us some good old-fashioned fun.

A lot of you are doing the linking thingy and some of you are keeping up a separate Belgian blogroll - great! But I'd like to get to know you Belgian bloggers out there a little more personally. Put a face on the fame, you know. So how about we arrange ourself a little get-together and have a geek dinner (a ".be-geek-dinner" if you will) like our American friends do all the time. Only better - of course ;-)

I guess it's impossible to get this done democratically by everybody voting for dates and places so I'll just toss in a suggestion:

Friday the 2nd of July Friday the 25th of June, Het Pakhuis in Antwerp, at 20:00.

Closing financial years and deadlines should be over by then, it's a pretty big place so there's enough room, and best of all: it's also a fine brewery so we're upholding our Belgian culture :-)

Leave a comment if you're coming; if there's enough people, I'll make reservations and try to get us a tour of the brewery.

So... Spread the word, steal this post, or hype it up big time and host the button!

(Yeah I realize this button thing is way over the top, but whatever :-) )

Friday, June 04, 2004 7:33:04 PM (Romance Standard Time, UTC+01:00) #    Comments [17]  | 

 

Blog Ketchup#

I've finally, finally managed to get my blog buffer cleaned up: it's the first time that I have zero (0) unread posts ever since I got back from the PDC in November. Phew. If you all could do me a favor now and stop posting for a few weeks so I can relax, sit back, have a beer and feel good about this, that would be greatly appreciated!

Ok I'll admit that I cheated a little bit. In the whole process, I switched aggregators twice - and that actually caused me to lose some posts marked as unread. Also, some unread posts just fell off the table because the aggregator-at-the-time only kept x posts per feed. I also skimmed some feeds (that's what happens when you give up on your blog diet and post too much, Scoble; the whole Fabriq thing by Clemens seemed interesting but just a little too much to deal with right now; the same but exponentially (make that O(n!)) worse goes for any book errr post by Chris Brumme) just to get things moving a little. Other than that, I'm back on track now.

Concerning the aggregator thingie: I used to be on SharpReader. Free, easy to use, threaded view (so you can see relations between posts), comments view (so you can see all comments inline with the posts). Then I decided to give FeedDemon a try, because it looks so much slicker (Outlook 2003 style) and just feels better, and you can easily mark posts as read and flag them. However, it's not free and it doesn't have comments and thread views so I kinda stuck with both for a while. And just this week I decided to give RSS Bandit another try (I looked at it a year ago or so, and it was just ugly and not that functional). But it sure kicks some serious bootay right now! Combine the advantages of the others, throw in a lot of extras and this is what you get: free, easy to use, fancy UI, thread and comment views, post comments, flag items (for follow-up, review, reply, ...), search, search folders, remote storage (so you can read posts at work and don't have to go through them again at home just to mark them as read), open source, ... Freakin' fabulous! A big congrats and thanks to Dare Obasanjo and Torsten Rendelmann!

By the way, if you're wondering about the title: recall Uma Thurman's "bad Fox Force Five joke" in Pulp Fiction...

Three tomatoes are walking down the street, a poppa tomato, a momma tomato, and a little baby tomato. The baby tomato is lagging behind the poppa and momma tomato. The poppa tomato gets mad, goes over to the momma tomato and stamps on him and says: catch up.

Friday, May 21, 2004 5:38:01 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Hair Today, Gone Tomorrow#

Statement: I hereby grant every single one of you who is able to perform the action of removing pieces of hair effectively without inflicting bodily damage upon me the permission to do so in case you ever see me at a point where I try to conceal my top-baldness with a single piece of carefully nurtured hair bridging the gap from one part of nostalgic side-vegetation to the other, whether it be from right to left or from left to right. Thanks in advance.

While I sincerily hope that's still a few decades from now, I just wanted to make sure I wouldn't get stared at when the wind is toying with the pluck. It just looks too stupid, really.

Tuesday, May 18, 2004 3:09:26 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

I've moved to another website!#

Yep that's right folks, you can point your browsers, aggregators and pretty nieces to http://jelle.druyts.net from now on!

I've finally decided to move this blog away from my home-grown server with variable uptimes to a dedicated home with a guaranteed uptime of 99.99%! Well that's probably not entirely true given the doubtful uptime reports I've read, but they do host a lot of people I know and I've been hearing pretty good things about 'em so here goes: three cheers for WebHost4Life!

I'll be crossposting to my old site for a while until the hits on my own machine have dropped below a certain undefined minimum, but don't wait for the actual unplugging to happen - please adapt your bookmarks, newsreaders, permalinks, blogrolls, mental references, whatever, to http://jelle.druyts.net now and I'll be sure to keep serving you my irregular ponderings in return!

Oh by the way, if you ever decide to move your dasBlog installation across the GMT boundary (e.g. from GMT+2 like where I live, to GMT-7 where my hosting company is based): don't panic if you seem to have lost all of your comments :-) It's a bug I've encountered and described and as long as it hasn't been fixed, just rename all *.dayextra.xml files to the previous day... Don't ask ;-)

Update: I guess I won't be crossposting to my old site after all. The build of dasBlog I'm using now (or maybe it's a problem in every version, I don't know) seems to have problems with it - it's giving me errors most of the time... Too bad.

Monday, April 26, 2004 8:50:52 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Wax on, wax off#

Master!
You are a MASTER of the English language!

While your English is not exactly perfect,
you are still more grammatically correct than
just about every American. Still, there is
always room for improvement...

How grammatically sound are you?
brought to you by Quizilla

Damn, I really wanted to go for the Monty Python status Chris Sells got but then again, as a non-native English speaker I'm still proud of the master title ;-)

Tuesday, April 20, 2004 2:49:44 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Use Outlook to access Lotus Notes!#

Whow! Microsoft released a plugin so you can access Lotus Notes directly from Outlook! [Through Scoble's Experimental Aggregator Blog]

"Microsoft Office Outlook Connector for IBM Lotus Domino enables you to use Microsoft Office Outlook 2003 or Microsoft Outlook 2002 to access your e-mail messages, calendar, address book, and To Do (task) items on an IBM Lotus Domino Release 5.x or Release 6.x server."

That is so cool... If I only had this when I was still being tortured by Lotus Notes!

Blog | General | Windows
Saturday, April 17, 2004 4:23:44 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

I'm a supermodel now!#

Hehe, I just got this in my mailbox and it cracked me up... Great work doggi, I didn't know you were a fancy graphics artist as well - since we all know Java and graphics are a bad match ;-)

Friday, April 16, 2004 9:26:14 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Public Referrers & Google-Trash#

A while ago, I wrote a simple dasBlog hack to show my referrers (use the links on the site's navigation bar or watch my public referrers directly). Works great, but there's one small issue with it... I'm getting a lot of google-trash on my site lately, and it's snowballing so I'm going to have to try and halt that.

Somehow, sometime, someone came up to my site with the word 'kcarc' (spelled backwards to try and prevent the problem you're about to discover :-) ) somewhere in his google referral. So that shows up in my public referrers page. No big deal, since I have a robots.txt file that tells google and co to bluntly ignore that page instead of indexing it.

Unfortunately, either I was too late, or something's wrong with my robots.txt file (it validates though) or google isn't playing nice - because it did get indexed. So looking for that specific word might get you here. And get your search query listed on my referrers page. And getting that indexed as well. And drawing more trashy traffic... And it's been snowballing ever since, because now I'm getting more and more referrals that come looking for "free-version-patches" of their favorite software (which I don't provide, as you might have noticed around here, it's not that kind of technology site).

So I hacked my hack to exclude all referrers that contain the dreaded c-word... Hope that'll help to keep my referrer logs clean. I wouldn't want to close the page down, they're too much fun to read once in a while really :-)

Update: I added some more words that needed to be blocked (I feel a new hobby coming up), and I've also removed the google and feedster queries from the main referrer url list (since they're already listed below) which makes the top list a lot cleaner. Cool (if I say so myself)!

Thursday, April 15, 2004 11:48:58 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

IE Request: Customizable Shortcuts#

Pop quiz: do you know what CTRL-W means in Internet Explorer? If you don't, go ahead and try it out now. Or no, wait: first go to some webpage where you can fill in a lot of information (like, totally out of the blue: a blog entry page), type away for half an hour, and now press CTRL-W.

Feels good doesn't it...

Normally, I wouldn't even try typing CTRL-W; not because I think it's useless (it is though, simply because of ALT-F4), but because I just didn't know it existed. And I particularly didn't like the way I found out. (It actually just happened because I wanted to press CTRL-Z to undo something but I'm stuck with a QWERTY keyboard layout this week so I hit it too fast. Power of habit.)

So I look up the shortcuts in IE and it's listed allright, but there's no way you can customize these shortcuts. And with customize - in this case - of course, I mean: radically delete the tricky bastard. I don't use it, I don't want it in my system.

So IE guys, listen up, if you're going to include non-standard redundant shortcuts, please give me a way to override or delete them.

Thanks. Now on to retype (a shortened version of) my intended blog post...

Thursday, April 08, 2004 1:05:10 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

An Outlook Annoyance Solved#

Ok so with the end of my Lotus Notes era-of-hell in sight (since I'll be finishing my current project soon), I'll be returning to my trusted friend Outlook again shortly. I've always experienced a little annoyance with it, but I've just found a simple solution so I just figured I'd share that with you (you never know if one you - my trusted share of thousands of readers - suffers the same problem).

It's something really simple actually: I just wanted a weekly reminder. That's it. The problem is, I didn't get my reminders to work correctly... I created a Task in Outlook and made it recurring (every week on the same day). Then I set a reminder for it, on a certain time of the first occurrence of the day. When that reminder popped up on the right day, I typically clicked snooze and forgot all about it for a little while ;-) but at sometime when I was done with it, I clicked "Dismiss" to indicate my weekly chore had been fulfilled. But dismissing it also seemed to disable the reminder, so I wasn't notified about the task the week after. Bummer. I could've clicked "Snooze for a week" but then I'd have some serious time-shifting going on: each time I hesitated or snoozed for a little while, the reminder would just come later and later each week.

I guess I could've gone off and programmed it myself using .NET into Outlook through Visual Studio Toolkit for Office or something, but then again - where would we be without our friend the internet and Microsoft Office Online? Apparently, the solution doen't lie in creating a weekly Task, but instead you should be creating a recurring zero-minute-length calendar appointment. Not as pretty as it should be, but it does the job.

Blog | General | Programming | .NET | Windows
Saturday, March 27, 2004 7:04:08 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Good stuff coming up!#

It's been pretty quiet here, I know, but I'm finishing up my current project so there's just not a lot of interesting stuff going on. The things I've been pretty involved with lately and that I really do want to share with you are just too big to post here so I'm cooking something up for a slightly different distribution channel - stay tuned :-)

Besides, it seems somebody heard my desperate cry for new Whidbey goodies: my next project will be all about Whidbey and Yukon! So that's gonna kick some serious bootay; I just hope I won't be under NDA or anything because I can't wait to explore this goodness and share the drool with you :-)

Saturday, March 27, 2004 1:54:28 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

The Ultimate Snake 2 Highscore (no, really)#

I'll start out by admitting it: yes, that's really sad. Like, playing-minesweeper-all-day-long-kinda-sad. But still. Try to beat me. Standard single player Snake 2 game on a Nokia, level 3, without a maze or anything. 2384 points. You heard me, 2384 points! Damn, if it wasn't so pathetic I'd be proud of it. And just to prove it, here's the highscore screen:

And this is how it looked just before I took that last piece of snake grub and ate myself to death:

If anybody cares (I guess that would be a so-called rhetorical question): here are the Snake 2 specs, in case you have an itch to program it yourself :-)

  • The playing field is 13 by 33 squares.
  • Normal food (what are those, mice? I don't know, what do snakes eat out in the wild? and did the makers really study them before programming it? anyway...) is 3 points plus the fact that your tail grows by one square.
  • After 5 pieces of this diet-stuff, you get a big one. If you eat some more normal food in the meantime, that doesn't count for the 5 lighter pieces, so it's not a good idea to go and eat the petty food if you're out hunting for real meat.
  • That bigger vermin is where you get the real work done: 20 points plus 2 points per second left on your counter. And don't forget you get an extra square on your tail length too.
  • Then there's a tricky one, somewhere near the end (I think when there's around 10 open squares left), the bigger vermin stops coming. Too bad, that would really kick the scores up :-)

Maybe somebody could make a smart client Avalon (don't hurry, you have the time) version with full vector-based graphics (yes! wallsize screens running Snake!), User Experience (alert me on my cellphone if somebody beats my highscore), Indigo (realtime multiplayer gaming) and WinFS (to store settings, highscores, and be able to search game statistics in no time). *snap*

Sorry 'bout that :-)

Saturday, February 21, 2004 6:09:09 PM (Romance Standard Time, UTC+01:00) #    Comments [4]  | 

 

TheServerSide.NET Disappointing?#

Anyone else think that TheServerSide.NET isn't really living up to its expectations? It got all this momentum when it started, but I've rarely seen anything really interesting going on there. I don't know, maybe it's me but it's just not "doing" it for me. Just like Slashdot really, I've subscribed to that too but most of the time I just scan the subjects diagonally and Mark All As Read... (Well, also because I don't really respect the pretty childish bash-bash-bash community spirit they got going over there.) Unlike Scoble, who posts a lot more but of whom I pretty much read everything he posts. Well that's before he got into this new "Scoble Light"-mode anyway, I don't know if it's going to be better this way but I must say I'm looking forward to coming home from a weekend away and not finding a few hundred unread posts :-)

Tuesday, February 10, 2004 9:52:07 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

An Outlook Loveletter#

Take it from me: Lotus Notes is a product that deserves a quick and silent death. I'm currently on a project with a large company, the first I've been where they're using Lotus all over the place. And we hates it, don't we? Yes we do... Let me elaborate for a second or 2(000)...

<rant>

You launch the program. You get a password box. Fair enough, Outlook users are spoiled because it uses your Windows account to log on. But the fact you have to log in every time eliminates the possibility for me to launch it only when there's new mail (there's a separate little tray app that can check your email) because it slows down the process of quickly checking your email too much. Ok so the program is always running, and always taking space up my taskbar. I'd minimize it to the tray (sorry, notification area) using PowerMenu, but then the icon gets turned into this default windows app icon (same happens to Opera by the way, so I can't see the difference).

But anyway, once you're actually logged in, you want to go off and send an email of course. Just to make sure this thing really works. So you're sweeping the screen for a "New Email" button but you must have missed it. Sweep again. Then you start thinking, it's not gonna be that "New Memo" button is it? Click it. Now that looks remarkably like composing a new email. Come on, "New Memo"? I'm not creating a memo, I'm not gonna print it out and put it on the freakin' fridge. What's wrong with "New Email"? Except when they actually do use the word (consistency is not their middle name) they still call it "eMail" (note the casing) - as if it's still an enhancement to regular mail. It's an actual word these days guys, please.

Now let's talk GUI conventions for a second. You know, that's the user interface stuff that everybody does more or less in the same manner so we get a consistent (whoops I said the c-word again) look and feel across the entire platform. But I've been told that IBM made up its own set of GUI conventions over the years and clings on to them like hungry mice to a hairy piece of cheese. Just a few examples:

  • Notes behaves sort of like a tabbed MDI environment: you can have multiple "windows" open but they're on separate tabs. You can click a tab header to switch to another window, and you can close it by clicking the 'X'. Great, except that the 'X' is on every tab header itself, in stead of one 'X' on the right of the tab header so you can just keep clicking to close multiple windows.
  • Getting help when you hover over something is really nice, and that's what status bars are used for normally. But in Notes, they conveniently use the title bar of the window. Well, 'use' it is an overstatement: they just paint a grey box over it and put the text in there.
  • If you look at the Inbox, you see a list of emails - sorry, memo's. Selecting multiple emails at a time is possible, but not with ctrl (single select) and shift (multiselect) like you're used to: shift is single select, ctrl does nothing. Dragging in the list to select a bunch of mails also doesn't work.
  • The calendar is buggy when you're scrolling with the wheelmouse: in stead of moving to another month (or something else that makes sense), it just moves the calendar up and down. And fails to redraw correctly.
  • The menus are totally screwed, I'll just walk you through an example for the hell of it. Say you want to create a new folder in your inbox, you right click the inbox folder and expect a context menu, right? Wrong! That would be too easy, in stead you have to go to the "Create" menu and choose "Folder", and then the place where you want to create it in. To delete a folder, it gets even more complicated. Select the folder, go to "Actions", choose "Folder Options", and then "Delete Folder". Note that it's a related task but it winds up in a totally different place. What does that "context" in "context menu" stand for again? Another example: if you'd ever want to mark an item as unread, again don't go looking for a context menu (well there is one but it would make too much sense to put the command in there of course). You have to go to the "Edit" menu, select "Unread Marks" and then "Mark Selected Unread". Rock on.

You want some more? As long as I'm ranting...

Well it's just not an intuitive program to work with. For example, there's a Trash and an Autotrash button. What's up with that? I don't even want to know the difference, I just want to get some item out of my sight and have it be done with. For all I care autotrash seems to work in my inbox, and trash works in my outbox. Whatever.

Moving items is possible (whew) but sent items cannot be moved, only copied. Ok so you copy and trash the original, right? Works great until you find that the copies are also deleted - that is sooo not funny. Same goes for calendar entries, meeting requests should get out of my sight when the meeting is scheduled but they sit quietly in my inbox. Until I delete them - but wait! That removes the calendar entry! The joy of missing a meeting... And alarm options, really, what's up with that? By default, a calendar entry doesn't have an alarm set to remind you of it. In stead, you have to open the calendar entry, edit document, click Alarm Options, enable alarm, close dialog box, save document. Holy crap how productive!

Replying is funny though, really. You don't actually reply; I mean, you could but you'll soon find out that's not what you want to do. The Reply button is still there for when you want to save a few bytes for your 14k modem actually (what, some people have broadband these days...?) because it omits the original message altogether. So you press "Reply With History" (ah so now we're getting lessons in history?). Great - except if you want to reply to everybody. Then you have to press an additional Reply To All button in the new window. What is this, are Lotus programmers paid by user mouseclick or something?

Finally, to make sure nobody goes off using a competitive product, they've made very sure that you can't export anything out of the program in any useful way. Well there is some kind of crappy text format, but don't even think about importing that into another program. So there's no separate email files (.eml), no Outlook personal folders (.pst), no nothing. Except if you buy expensive third-party tools of course. (They rub each others backs just to make sure their little eco-system holds together I guess.)

Oh, and 16-color icons really, really give an enormous performance boost on my system. Thanks for not overloading me with all this shmancy-fancy 32-bit color GPU-eating overkill.

We wants Outlook back, Outlook, my precious!

</rant>

Aaaaah that felt good. (Bear in mind that I've been using Outlook for years so you might say I'm slightly biased towards the Microsoft way of using a computer and an email client in particular - but in the end, aren't most of us? Really?)

Update: I really wonder what they're going to do when Avalon comes along. With all this rich functionality and user experience goodness that gets unleashed - will they make the switch? Or will they stay behind and (random prediction) lose their market share to remain only in the companies where NT4 is still running by the time Longhorn ships? I really wonder...

Tuesday, February 10, 2004 1:03:01 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Cake anyone?#
Seriously, if Anders says "you get to have your cake and eat it too" one more time, I'm creaming him. Just like I creamed BillG a few years back ;-)
Blog | General | Programming | .NET | Whidbey | PDC03
Tuesday, February 03, 2004 12:44:42 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

24#

24, 2nd series, 08:17 PM. 'Nuff said.

Sunday, February 01, 2004 12:24:20 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Public Referrers In DasBlog#

Cool, I just finished up a quick dasBlog hack to make my referrers publicly available. Check it out in the navigation bar! I also parsed the google referrers to show the actual search they entered in stead of just the url which is less readable. Just because I got curious after Rory's google explorations :-) Furthermore, it's now also possible to show more than only today's referrers, you can specify how many days it should look up.

For those of you with fat glasses and a wireless router that has toilet-reach: here's how I pulled it off without having to touch the dasBlog codebase... If you look at the dasBlog sourcecode, the aspx pages are extremely simple: they don't contain any markup but are rendered by their code-behind classes. These are defined in the dll that makes up the dasBlog runtime (which I don't want to touch or recompile). Luckily, there's another way to get pages with code-behind without precompiling the sourcefiles: that is to use the Src-tag of an aspx page. This points to a sourcefile which will be JIT-compiled the first time the page is requested. Same goes for user controls.

Now the referrers in dasBlog are shown in the admin area only, and they're defined in a Referrers.aspx page which just checks security and loads the ReferrersBox.ascx control. So in order to bypass security (i.e. make it public) I needed to have a page with a codebehind that didn't check the security. Hence the PublicReferrers.aspx and PublicReferrers.aspx.cs files: the first one is just a copy of the original one - except that its "Src" tag points to the second file which is a C# source file. This is a copy of the original dasBlog file but with the security part stripped out and the loaded control replaced by PublicReferrersBox.ascx. Fairly simple, right?

The PublicReferrersBox.ascx is also a copy of the original ReferrersBox.cs but with the ActivityBar stripped out - it's only needed in the admin area. It points to its codebehind file PublicReferrersBox.ascx.cs which is a modified version of the original dasBlog file. So this is basically the code that provides the extra google goodness and the fact that it can show more than one day. I'm not going to bore you with the code, just take a look if you're interested.

So if you want this on your own blog: go and get your hands dirty recreating these steps. Or better yet: just download the necessary files and copy them in your root dasBlog directory :-)

PublicReferrers.zip (5,21 KB)

Blog | General | Programming | .NET | ASP.NET
Saturday, January 31, 2004 1:50:23 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Migration Step 4: Website#

Last time, I left off with all services including ASP.NET installed - ready to kick dasBlog into action.

Installing dasBlog was easy (copy, set directory security, create IIS application, edit config file, done) and I'd already tried it out before to make sure it would be up for the task at hand. That is: run a little more than a blog but make it look and behave more like an actual website.

So the blog would obviously be the frontpage, since that's the biggest chunk of the site and it's updated most (static frontpages are boring). I started off with the preinstalled 'dasBlog' theme which is pretty nice by itself, and modified that a little bit to suit my needs - you know, play around with the colors, locations, disclaimers, css, that kinda stuff. Then I dropped my OPML containing my blogroll into the site (so you know who I read, social networking baby), and I used the 'navigation links' feature to show a list of the posts I think you might want to read most (just to help you filter out the incredible noise ;-) ).

What I really like about dasBlog is that it has a severely underdocumented feature called nested categories, which can show categories in the nifty tree you can see on the site (aggregators don't get this kind of fun). So the key to making it look like a website with some non-blog pages is (ab)using these categories to make pages out of them. They'll show up in the category tree though, so I just called the tree a sitemap to fix that :-) But basically it just boils down to adding some 'posts' in 'categories' like 'Projects' and 'Stories' (reminds me of a 'laser' but never mind) and such, and then a sibling feature of dasBlog kicks into action: per-category templates! That means you can make templates defining the page layout per category. So I made a more simple template to get rid of all blog-like formatting like date and time, permalinks, trackbacks, and all that other stuff that makes aunt Jane's head hurt, and assigned those templates to the non-blog pages. Easy enough.

Finally, I used another cool dasBlog feature: Content Filters. These allow you to replace strings or regular expression matches in your posts with something else. For example, they can replace simple things like smileys you type into image tags which actually show a smiley picture. Okay so that's not Nobel Prize stuff but it works pretty well and I decided to use it for a usability feature. I'll save that for a separate post, but I'll leave the regular expression for you as a pop-quiz: href="?(?http[^"\s]+)"? gets replaced into href="${expr}" class="external" target="_blank". Shouldn't be too hard, right? Don't hold back posting your answer into the comments...

So basically, I'm very happy with dasBlog. I got everything I wanted out of it, and it didn't mean touching the code. I was tempted at some points to dig in and add some features but I wouldn't want to be unable to upgrade if there's a new version so I sucked it up. So great work Clemens and everyone who contributed!

Blog | General | Programming | .NET | ASP.NET
Thursday, January 29, 2004 11:59:23 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Six Degrees Of Separation#

I saw a movie once (conveniently titled "Six Degrees Of Separation") based on the theory with the same name that every single person on our little ecosystem is only six steps (family, friends, acquaintances, a homely sheep) away from anybody else. So I was wondering, with all this Google Power we have nowadays - what's the magic number for the web? How many hops in Google's database would it be between any two pages? Apparently, a smart guy at Cornell University determined that every webpage is 16 to 20 clicks away from any other webpage.

The weird thing is, I assume there must be a lot more webpages than human beings by now, so how come this is about three times as much? On average you might argue (at least I hope so for you) you have more friends than there are links on a webpage ("outbound connection cardinality" so to speak, random expensive word of the day) but what about indexes, blogs, favorites and such that are packed with links? Cornell-dude? You up?

Although for blogs I guess the magic number will be a lot lower, bloggers tend to have pretty tight social networks right? So would that be 6 again or more? Or maybe even less? Maybe Feedster's database could answer that...

Thursday, January 29, 2004 2:10:08 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

SPOT Watch For Treehuggers#

Oh maybe this 'll do :-) I just noticed that Robert Scoble uses his watch to show him the weather. Hey, I just look up in stead of down to do just the same thing.

Or if you really do want a SPOT tool to do the job for you, maybe you can build your own! I call this the RSS-Watch (Really Simple SPOT Watch).

What you need (including images for the mentally challenged):

(1) A piece of rope. Not the kind of rope you use to hold ships with; it still is possible but harder that way.

(2) A watch. May be an analog or a digital watch, but at least it must have some kind of light in it. Fire will also do.

How you build it:

  1. Attach the rope (1) to the watch (2).

Note: be careful to provide the rope with a free length of at least a few centimeters/inches (or yards/meters if you're into the whole exaggeration thing). This is crucial.

How you use it:

  1. Go outside.
  2. Look at the rope hanging from the watch.
  3. If you cannot see anything, use the light in the watch to tell the time (I forgot to mention that you should be able to tell the time to use this RSS Watch, I'm sorry, but there might be tutorials on the web which can help). Acknowledge the time and season to comfort yourself that it's night and you're not suddenly blinded or anything. Now go back inside, the weather is only important in the day time because you can't see it at night anyway and furthermore you should be in bed sleeping. Skip to step 6.
  4. Feel the rope to determine the weather:
    • If the rope is dry, it's not raining.
    • If it's soaking wet, it's raining.
    • If it's moist and fluffy, it's snowing.
    • If it's wet and your head hurts, there's hail.
    • If it seems to flash occasionally and make loud noises, there's a thunderstorm.
  5. Use the data your eyes are collecting from the rope to determine the wind:
    • If it's hanging straight down, there's no wind.
    • If it's mildly shaking, there's a soft breeze.
    • If it's both picking your nose and fighting your shoelaces, it's storming.
    • If the rope is gone, you're in a tornado. Panick.
  6. Tell all your friends how cool and helpful your new SPOT watch is :-)

(I should really get a PayPal account for donations on this brilliant idea. Ah well. Back to reality...)

Wednesday, January 28, 2004 2:16:18 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

The Google Power Rangers!#

After being tommered and semi-Scobleized (see the comment :-) ) I just found out through my referrer logs that I've also been Googled already! Hey I only decided to go "public" this Saturday, take a chill pill googlebot! So I noticed that searching google for, well, me (ego-googling, narcissistic surfing, e-sturbating, whatever you wanna call it) puts my blog right on top. How convenient and, uhm, well logical. For some reason, I also turned up on Bloglines' new feeds directory. It's a fast-moving digital world :-) So bring on the mighty Google Power, 'coz I want it! (Hmm there's something very erotic about being indexed from top to bottom you know ;-) ...)

By the way, Robert (if you're still around), as I was walking to my car this morning I saw a license plate starting with RSS - that was right before lightning struck the nearest tree and a Godly voice called out "RSS really means Robert Scoble will eat your Shorts!". (Ok so that last part is what you might call a "dramatic enhancement of the facts" but you get the point, by the way I own this place so I'm allowed to make stuff up - heh.) Maybe it was a sign I should take the challenge and let my server eat dust. Nah, I'll just see if I can give you an actual reason to link to me sometime :-)

Wednesday, January 28, 2004 1:46:50 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Rebound Traffic#

I've been "tommered" ;-) I wonder if that's the first step towards becoming Scobleized or even Slashdotted but I sincerely hope it isn't :-)

Just a thought: you can see how popular your own site or blog is by linking to this post. More popular means more hits for me so I'll keep a close eye on my server logs to determine the winner. The winner, of course, being the one who makes my server go down completely in the shortest amount of time :-)

Sunday, January 25, 2004 1:55:24 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Volhouden Clemens!#

Heh, hearing Clemens Vasters give a talk in Dutch - now that alone should be worth becoming an SDGN member for the upcoming CttM :-)

Sunday, January 25, 2004 1:44:33 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Rory flips through his google referrals#

LOL! See where analyzing your google referrals leads toRory Blyth (ready for involuntary open brain surgery as always) must be one of the funniest people on my blogroll actually. Apart from Chris Brumme of course, it's always such fun to see how many lines of his books errr posts I can read before I have to start over again :-)

Thursday, January 15, 2004 7:41:39 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Snailspam#

I'm catching up blogs (I've been behind ever since I came back from the PDC, I just can't seem to get 'em all done) and Raymond Chen has a good one about snailspam (hmm is that a new word?): How to stop delivery of telephone books.

Quote: WorldPages added another wrinkle to the procedure. You see, they misprinted their own telephone number. Why anybody would voluntarily pay money to be listed by a telephone directory company that can't even get their own phone number right is beyond me. LOL :-)

Monday, January 12, 2004 9:57:54 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Migration Step 3: Services#

So with the decision made to run a dedicated server, it boiled down to configuring the services. Now of course I wanted to use as much features out of the box as possible so I wound up throwing SyGate and CiDial out of the door, as well as BulletProof FTP Server and even Apache. (Not PHP, I still need that.) As it happens, Windows Server and IIS can take care of all their business - if you can get it all configured of course :-)

By the way, I just want to mention that I'm not a sysadmin. I know the services and protocols fairly well, and I've set some of them up on a Windows NT4 server a few years ago - but I don't really know my way around a Windows 2000 Server. So I'm not blaming Windows or Microsoft if something didn't work; I'm just assuming that I did something wrong :-)

First up: DHCP. Well this one is fairly straightforward, it can all be easily set up in Windows: just set up a new DHCP Scope for the LAN. I actually tried to skip this and get it automatically done with the NAT router service (there's an option for that) but I couldn't get that to send the DNS address along so I switched back to the real thing and added the necessary services there. Great, with DHCP running I had a real LAN thingy going on - without internet access however so that's basically a dead cat.

As I mentioned, I tried setting up a NAT router service the simple way first. That means: launch the wizard, check the boxes and light some candles around Bill's picture while praying for his good health. Didn't work though. (Maybe it was the wrong scent of candles, I just assumed he'd like cinnamon.) First of all, the DHCP part didn't work: clients never got a DNS server address (IP address, subnet mask and default gateway were ok). Furthermore: it recognised the LAN adapter just find but I couldn't add a public interface on which to route all traffic to and from the internet. I could have expected this because it's just a USB modem (an Eicon Diva ADSL), not a full-fledged hardcore professional router from an expensive brand I could select in a router list. Panic-stricken (this was mission-critical of course), I started to search the web. Just when I was about to sign up for a sheep-herder course with an accompanying one-way ticket to New-Zealand, I bumped into a site describing how to get a SpeedTouch USB modem to work as a routing interface. In short, I had to find the registry key representing my modem (turned out to be "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E9 72-E325-11CE-BFC1-08002BE10318}\0007" for me), add two REG_DWORD keys "EnableForRouting" and "EnableForOutboundRouting" both set to 1, reboot, and do the magic jiggy dance. I think the dance actually did the trick, because it worked just fine! Futhermore, the routing service has an option to keep the connection dialed in so if the line was dropped by my provider, windows properly redialed and all was well again. Excellent, my LAN was up and running with full internet access!

Next in line was IIS to get my web and ftp servers back up. No big deal mostly, it's easy to configure and easy to keep running. The biggest differences with Apache in my experience are the fact that it's all configured in a GUI (which is easier but less portable, migrating Apache just means copying the httpd.conf file), and the fact that you authenticate using windows accounts in stead of using .htaccess files (both have their advantages and disadvantages but portability is again an issue with the IIS approach). The big problem with IIS was getting it to support SSL. You need a certificate for that of course, but I'm not running a production site and didn't feel like spending lots of money on a properly signed copy if I could run SSL on Apache just fine with a self-signed certificate. So I sailed out again to fix this but it was pretty hard too. I swear, the sheep-herding thing was on my mind again after a few days. As a workaround, I was facing a life where Apache was running as the default webserver, proxying all non-SSL requests for IIS. Not too cool. Finally, I ran across a site describing how to convert an Apache/OpenSSL HTTPS certificate to IIS. Whew! So I already had a crt and key file lying around from the Apache days(if you want to join in and play along: read the Apache+SSL HOWTO on how to do this yourself). Then it boiled down to running "openssl pkcs12 -export -in server.crt -inkey server.key -out IIS_server.p12" and I had a .p12 certification ready to be imported into the Windows Certificate Store (import it into your Personal store). Now I was finally able to select it in IIS under a website's Properties -> Directory Security -> Server Certificate. So with SSL up and running, the last of my previous server apps became obsolete. Clean! Cool!

Of course, the internet is not a safe zone. It's filled with evil predators determined to steal your passwords and eat your breakfast cereal. So a firewall was in order, and Norton Personal Firewall came to the rescue. Unfortunately, it's been quite hard to get it configured properly. Even after I found out that it has an event log (whoops, quite a help really), it still didn't really do it for me. "Implicit rule blocked access to unused port 80" while IIS was definitely running on port 80 bugged me for ages. Restarting IIS seemed to help but not for long. Very weird. And all of a sudden, https wasn't working again while plain http was. The best part is, from my own pc (on the loved and trusted LAN), everything worked just fine so I actually didn't notice it when my server was publicly unavailable for a couple of days. So with some more tinkering I think I got it right this time (allow connections to the local ftp, http and https ports, while the remote port may be anything - it's that last part I messed up). Fingers crossed! And doing a daily hipshake in Symantec's general direction of course.

Now of course to get the ASP.NET goodies installed which triggered the whole migration: dasBlog! I wanted to use it to host more than just a blog so it took quite some tuning and a bit of programming. But I'll save that for a last post...

As a sidenote: current uptime is 29 days. Yummie :-)

Blog | General | Windows
Tuesday, January 06, 2004 8:59:42 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Die Schnellziehrunde#

Okay I need your help on this one...

On a weekend in the ardennes we zapped across some German quiz (called Rätselfieber) in which they ask a question (hey that's what they do on quizzes) and you can call in with the answer. The longer it takes to get the right answer, the more money you can win. But this one went slightly over the top ;-) Look at the picture. Add all numbers. 8096 right? Yeah well, that's not what they thought :-) It seemed so incredibly simple but since nobody got the right answer we just kept watching. Lots of answers came in (8096 being the topper of course, but also 41, 8285, and lots of others) but our dear friend Marcus (the host) couldn't give away the money. Quite an experience actually. So we still kept watching. Over an hour. And as it got later and later we grew more and more tired. So in the end - we broke. We switched it off. We never got the answer. Needless to say: it's killing me. "8096! 8096!" I still shout in my dreams!

I sent an email to the channel, but they're playing silent on me. I thought Marcus was my friend. I'm sure it's a conspiracy. Anyone out there who knows for sure what it's supposed to be? Otherwise I see no other solution than to drive up there and beat it out of Marcus.

Sunday, January 04, 2004 1:26:30 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

My Photo Album went online!#

I'm proud to announce the new photo album on my website! Lots of pictures already, and lots more to follow I guess :-)

Blog | General | Programming | .NET | ASP.NET
Saturday, January 03, 2004 2:13:02 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Barcelona!#

Well, I'm off to Barcelona to start the new year!

Expect some pictures here soon, I'm finishing up a pretty cool photo album in ASP.NET that plugs in nicely with dasBlog - well actually it's a web control so it plugs in nicely with anything remotely related to ASP.NET :-) So stay tuned...

Everybody have a great party; and my best wishes for 0x7D4! (Ok so that was my last small act of nerdliness for this year ;-) )

Blog | General | Programming | .NET | ASP.NET
Sunday, December 28, 2003 11:15:29 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Migration Step 2: Hardware & OS#

Ok so I was pretty fed up with my current pc/server situation, and decided to give the good old dustbin err backup pc a second life. As I said, it's a Pentium II running at 233 Mhz with 256 MB of RAM so I couldn't go really wild here but Win2K runs just fine on it. How hard can it be to open up a socket and send over some ones and zeroes, right? Okay so this is probably the most unrespectful way to describe a server, maybe next to 'that ugly suitcase eating my electricity bill' ;-)

As for the hardware: no real problems there. As long as I don't get too many hits it'll run just fine. So stop reading - you're killing me ;-) I still had a 4 port hub lying around which runs at 100 Mbps so that's cool. The modem is an Eicon Diva USB ADSL modem, which works just fine - but not if you need a little more than plain dialup (I'll get to that later). So basically that's all the hardware there is to it: no screen, mouse or keyboard (Remote Desktop for president!) - just an ugly suitcase with a powercord and a hub and modem jacked in. Simple, thus great!

Blog | General | Windows
Sunday, December 28, 2003 10:28:44 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Migration Step 1: Before#

A few months ago, they were throwing out old machines at work at roughly the same price as 5 classic DVD's, so I figured "Hey, more pc's is always better" and dedicated it to collect some dust at my place. No high specs on it, just your basic Dell Dimension XPS D333 (which is a Pentium II 233 Mhz) with 256 MB of RAM. So maybe it can't render Finding Nemo but it should be able to run calc.exe, right?

At the time, my main pc (a Dell Dimension 4400) was jacked in to the internet through an ADSL modem, running a webserver (Apache and PHP), FTP Server (BulletProof FTP Server), SyGate Home Network to make it act as a DHCP server and NAT router and CiDial to keep my ADSL connection online. Oh and if by any chance there were any remaining CPU cycles, I occasionally wanted to use my pc as well - basically to check my email ;-) Furthermore, my home network wasn't really a home network: my laptop from work was jacked straight into my pc using a crosscable, and SyGate made sure it got an IP address and could go online.

So anyway, I was getting tired of never allowing myself to reboot my home pc ("Thou shalt not willingly slay thy uptime!"). Furthermore, SyGate interfered with my ADSL modem driver so I couldn't keep it running at all times because it would cause the whole pc to hang occasionally - needing a manual reboot ("The uptime! Mind the uptime!"), which is also not too good for my hardware. (I've already suffered a hard disk crash once and I'm not too keen on repeating that recovery process.) So if I wanted to go online with my laptop, that meant starting SyGate and when done, hopefully remembering to shut it down again (or risk suffering the manual reboot when it hung). And finally, I actually wanted to change my blogging engine (Nucleus) in favor of dasBlog - which has more features like Trackbacks and Referrals.

So the setup was pretty crappy, and I set out to change all that: use the cheap Dell as an all-in-one server (DHCP, NAT, IIS, PHP, ASP.NET, ...) on an actual LAN with a hub and ultimately get my home pc back - for checking my email a little faster ;-) But more on that later in step 2...

Blog | General | Windows
Friday, December 26, 2003 12:12:23 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Brand Spanking New!#

All right, my new blog and website finally went live! I've migrated my server, old homepage, old blog and old comments to a freshly installed server running .NET and I'm hosting the site and blog inside dasBlog. That's also the reason it's been relatively quiet here lately, the more I posted the more I needed to migrate ;-)

Of course I customized the whole thing to be a little more than just a blog as you can hopefully see (but I haven't modified anything in the dasBlog engine so I can keep upgrading as it gets better). I'll be posting some stories about the migration soon...

Be sure to let me know what you think about the new site, and please tell me if anything goes wrong...

Tuesday, December 23, 2003 4:24:30 PM (Romance Standard Time, UTC+01:00) #    Comments [3]  | 

 

Hangover Day#

'nuff said.

Friday, December 12, 2003 5:32:32 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

Learning To Learn#

Chris Sells has a very interesting take on learning to learn. Pretty relevant for the business I'm in (teaching/consultancy).

Quote 1: "Industry training, at least in its popular form, is roughly based on the model of a fire hydrant: sit in front of it, open the valve, and take a big drink. Due to time limitations, trainers present information at a rapid pace, with participants retaining only a fraction of what they see and hear. What knowledge they do gain seldom passes on to co-workers after the training session, and is forgotten almost as rapidly as it is presented, necessitating continual re-training. ... [Students] often leave with the impression of the instructor being something of a genius for being able to present so much information so quickly, and instilling within their own minds a sense of inferiority for not grasping all of it at the delivered pace."

Quote 2: "What did I do to learn? Simple: I would challenge my existing knowledge of a subject by trying to apply it to real-world conditions and/or thought experiments. If I didn't know enough about a topic to successfully apply it to a realistic problem, I would research and study until I did. If ever I was completely baffled by a problem, I could determine my own conceptual weaknesses by incrementally simplifying the problem until I could solve it. Whatever complexity I eliminated from the problem that enabled me to solve it was where my understanding was weak. Once I knew what I didn't know, I not only knew where to focus my study efforts, but I also felt more motivated to study because I could perceive my own needs."

Tuesday, December 09, 2003 11:16:43 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Estimating the Airspeed Velocity of an Unladen Swallow#
Wednesday, November 19, 2003 1:36:51 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Surfacing#

Decompression is over, now to get rid of my newborn cold (just now that we have a long weekend - and lots of work to do :-( ) and I'm off to get bloggin' again... PDC was great. Stay tuned...

Sunday, November 09, 2003 5:55:26 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Clearing The Blog Buffer#

Woohoo, quite a lot of posts already today as you may have noticed ;-) I'm just clearing out my blog buffer with some unfinished posts I had lingering about...

One of the reasons I'm clearing the buffer is also because I've been checking out another blog engine - dasBlog - and I'm hoping to switch to it pretty soon. I'd be hosting my entire site in it (not just the blog) so I still need to check some things out but I think it should be possible. Hey Clemens pulled it off for the newtelligence website so that should basically cover my feasibility phase ;-)

The drawback is that I'd have to update my server to be able to run IIS/ASP.NET (I'll still be using Apache/PHP for my webmail and other services though), and basically import all my posts into DasBlog (especially crosslinking to other posts will prove to be tricky I guess). An intelligent "Import RSS" feature would be so great to switch weblog engines... And to make it totally generic: some app that reads the rss from the old blog, updates the (internal) links, downloads media files, and imports the posts and media into the new blog using a webblog api. Does anyone have some spare time?

Monday, October 20, 2003 10:36:55 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Daily Comics#

No daily Dilbert emails for me thank you very much. I'll just subscribe to the dwlt.net online comics feeds for the ones I want to see. Excellent, Calvin and Hobbes right where I want them: in my aggregator :-)

Email is for communication, not for something you can just as well use pull services (RSS) for.

Friday, October 10, 2003 2:14:38 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

I'm a Visual Mathematician#
Ingo Rammer points at a nice IQ test by Emode which gives you a score as well as an Intellectual Type. Apparently, I'm a Visual Mathematician with an IQ of 135:

This means you are gifted at spotting patterns — both in pictures and in numbers. These talents combined with your overall high intelligence make you good at understanding the big picture, which is why people trust your instincts and turn to you for direction — especially in the workplace.

So that's why everybody keeps bothering me all day ;-)

Update (27/08/2003):

I just noticed they even have a picture for my intellectual type:



Ok now I'm really flattered :-) And notice how they totally personalised the image to mention my E = m c² project!
Sunday, August 24, 2003 1:12:31 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Unofficial Word of The Day: Blogosphere#
The Devil's Dictionary defines "Blogosphere":

blogosphere, noun:
An poisonous environment of methane, self-satisfaction and other hot gasses.
“The only creatures that can survive in the blogosphere are low-order molds, able to feed off the waste of others.”

Nice :-)
Friday, August 22, 2003 7:09:08 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Word of the Day: Cognoscente#
Cool Dictionary.com Word of the Day: "cognoscente" - a person with special knowledge of a subject; a connoisseur.

Sentence of the Day: "However, I thought it well to acquaint myself with the latest scientific thinking programming paradigms, so as not to write a tale code that would embarrass me among the cognoscenti". Freely after Ronald Wright, but applicable in any situation really - with only minor adjustments :-)
Friday, August 15, 2003 4:06:03 PM (Romance Standard Time, UTC+01:00) #    Comments [2]  | 

 

I already have the cool attitude, now for the skin color...#
Guess I share my Pulp Fiction persona with just about everyone in the office ;-)

What Pulp
Fiction Character Are You?

Your name alone strikes fear into others; but maybe, just maybe, there's a little vulnerability and weakness beneath that stoic, fierce exterior of yours.

Take the What Pulp Fiction Character Are You? quiz.
Wednesday, July 30, 2003 4:05:02 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

The Borg's Assimilated Eyes Are Watching#
I know I know it's been awfully quiet here lately but it have been a few very busy weeks so I didn't find the time to post. I hope to get some entries that I tried to remember up here soon - before I'm off to a nice holiday at the end of the week... Especially since I need to impress that one freshly acquired Microsoft employee that has me on his blogroll :-D
Wednesday, July 09, 2003 8:39:41 AM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

I already have the cool sunglasses, now for the long coat...#

Guess I share my Matrix Persona with Chris Sells :-)

You are Neo
You are Neo, from "The Matrix." You
display a perfect fusion of heroism and
compassion.

What Matrix Persona Are You?
brought to you by Quizilla

Friday, June 13, 2003 7:28:03 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Blogs are becoming mainstream#
Lots of action in blogspace. It would be nice to see RSS pinned down a bit more, and I'm sure the format is in good hands with these guys. As soon as there's any formal decision, I'll be sure to adapt my RSS plugins for E = m c².

Google will start searching blogs. Cool.
Tuesday, May 13, 2003 10:33:22 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Emitted Reflection.Emit#
I made a link to this blog appear on my homepage so I guess it's official now.

Woohoo, I came out of the closet ;-)
Friday, May 02, 2003 10:22:12 AM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

WAMP#
If you're wondering why the blog and the website aren't written in ASP.NET - since I'm claiming to be a .NET consultant - then I must admit you have a point. Basically I've been using WAMP (Windows/Apache/MySQL/PHP) for quite some time already and I must say like the combination. I've been using it for all my personal web projects actually. But I've really been missing the coolest ASP.NET features lately: debugging, code-behind, OO, IntelliSense, ... in an integrated development environment. And I'd sure like to try out BlogX or whatever cool .NET blogservers are out there.

But still I stick to my WAMP. Why? Because it prevents a knowledge-lockin. What good is knowing an architecture if you can't compare it to others? I was new at html and scripting so I picked up a copy of Apache and PHP and built some sites. I learned about Java and acknowledged the power of OO. I came across .NET and loved its richness and power. But I never dropped anything else - maybe just diminished attention to it. So sticking to this legacy stuff keeps me awake - keeps my edge.

Any Windows programming I do however has been in .NET for a long time now, I really don't miss VB6 at that :-)
Friday, April 25, 2003 10:43:15 PM (Romance Standard Time, UTC+01:00) #    Comments [1]  | 

 

Weblog Kickoff#

Inspired by the great, I decided I couldn't be totally cool without a blog of my own ;-)

So this is my own little world in which I'll rant off anything I want, but chances are high there'll be a lot of programming-related stuff here. What else shows up in here will depend on the moment I guess, having time to post is always an issue.

I guess this is about the third time I start blogging but maybe this one is a keeper. Especially since I discovered w.bloggar today which makes posting a lot simpler, more robust and time-saving. Great!

Oh by the way, I'm a software consultant specialized in .NET and Java. Check out my homepage for more on me. Note that I run this blog and my website on my own pc (full control baby!) so if it goes down - you'll just have to wait a while :-s

Thanks to these guys for inspiring me:

Don Box
Joel On Software
Chris Sells
Chris Anderson

Friday, April 25, 2003 7:25:21 PM (Romance Standard Time, UTC+01:00) #    Comments [21]  | 

 

All content © 2010, Jelle Druyts
On this page
Flickr Schedulr on BBC's Webscape
Just released: Flickr Schedulr v2.0!
Just Released: Mayando v1.2!
What Has Jelle Been Up To (a.k.a. The Last Post)
Just Released: ProxyMonitor 1.2!
Updated Again: Setting up Source Server for TFS Builds (v1.2)
Extracting OLE embedded images from emails in Outlook
Just Released: Mollom for .NET v1.0!
Mortgage Loan Excel Sheet
My "Deep Dive Into The Guidance Automation Toolkit" presentation now online!
DSL Tools session at TechDays in Belgium
Just Released: BuildCop v1.0!
Just Released: E = m c² v2.1!
Flickr Schedulr v1.2
Happy Birthday, David
Flickr Schedulr v1.1
Announcing: Flickr Schedulr
Rebirth - Reviving My Pictures Site
Proxy Monitor 1.1
Introducing SmartPass: free password manager for Smartphones
Just released: E = m c² version 2.0!
MVP & MSFT!
Interview on Guidance Automation Toolkit
Developer & IT Pro Days wrap-up
Photowalk Aftermath
Final date and place for the Brussels Photowalk
Brussels Photowalk
Speaking at Microsoft Developer & IT Pro Days 2007 in Belgium!
Proxy Monitor 1.0
Feline Beta
More on the Architect role and title
The Technical Solutions Architect Role
Developer & IT Pro Days 2006
Speaking at Microsoft Developer & IT Pro Days 2006 in Belgium!
Brussels Geek Dinner with Robert Scoble - December 8th 2005
Are you ready for the launch?
Notepad Bugreport
PlayStationPortable 2.0
Static Classes And The HasShutdownStarted Property
PDC05 Pre-Con: The Art Of Building A Reusable Class Library
PDC05: The Third Keynote
PDC05: The Second Keynote
PDC05 Keynote
Themes for dasBlog
PDC05: Ready To Rumble!
Introducing Steven Wilssens
TechEd WeFly247 Swag
Blog'n My Way To The PDC05
MSN Tabbed Browsing Sucks
The BAT (BCC Awareness Template)
Geeks Have More Fun
WeFly247 Developer Interview
MSN Desktop Advanced Search To The Rescue
Small Confcall Observation
PowerPoint forgot to nail the basics
Moleskine in Antwerp
Channel 9 guy gets a hobby
Moleskine
Upgraded to dasBlog 1.7!
The Corporate Blogging Question
Short Story: "El Viaducto"
3rd Belgian Geek Dinner: 21 January 2005 @ Brussels
MSN Desktop Search
On recruiting & blogs
Sharepoint Services on Webhost4Life
GMail provides POP access
GMail as a remote hard drive
TechNet evening session on InfoPath & SharePoint
Belgian Geek Dinner, 2nd Edition
Disagreeing with Scoble. I guess I'm not a blog ho'...
Update to my dasBlog hack for showing public referrers and search engine queries
Electronic Drumkit
MCAD
I certainly was - were you?
The first .be-geek-dinner was good!
Practical details on the .be-geek-dinner
Shortcomings Of InfoPath 2003
How Long Can You Hold It?
.be-geek-dinner
Blog Ketchup
Hair Today, Gone Tomorrow
I've moved to another website!
Wax on, wax off
Use Outlook to access Lotus Notes!
I'm a supermodel now!
Public Referrers & Google-Trash
IE Request: Customizable Shortcuts
An Outlook Annoyance Solved
Good stuff coming up!
The Ultimate Snake 2 Highscore (no, really)
TheServerSide.NET Disappointing?
An Outlook Loveletter
Cake anyone?
24
Public Referrers In DasBlog
Migration Step 4: Website
Six Degrees Of Separation
SPOT Watch For Treehuggers
The Google Power Rangers!
Rebound Traffic
Volhouden Clemens!
Rory flips through his google referrals
Snailspam
Migration Step 3: Services
Die Schnellziehrunde
My Photo Album went online!
Barcelona!
Migration Step 2: Hardware & OS
Migration Step 1: Before
Brand Spanking New!
Hangover Day
Learning To Learn
Estimating the Airspeed Velocity of an Unladen Swallow
Surfacing
Clearing The Blog Buffer
Daily Comics
I'm a Visual Mathematician
Unofficial Word of The Day: Blogosphere
Word of the Day: Cognoscente
I already have the cool attitude, now for the skin color...
The Borg's Assimilated Eyes Are Watching
I already have the cool sunglasses, now for the long coat...
Blogs are becoming mainstream
Emitted Reflection.Emit
WAMP
Weblog Kickoff

Recent Photos
www.flickr.com
This is a Flickr badge showing public photos from Jelle Druyts. Make your own badge here.
Advertising
Top Picks
Statistics
Total Posts: 350
This Year: 4
This Month: 2
This Week: 2
Comments: 526
Archives
Sitemap
Disclaimer
This is my personal website, not my boss', not my mother's, and certainly not the pope's. My personal opinions may be irrelevant, inaccurate, boring or even plain wrong, I'm sorry if that makes you feel uncomfortable. But then again, you don't have to read them, I just hope you'll find something interesting here now and then. I'll certainly do my best. But if you don't like it, go read the pope's blog. I'm sure it's fascinating.

Powered by:
newtelligence dasBlog 2.0.7226.0

Sign In