<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Jelle Druyts</title>
  <link rel="alternate" type="text/html" href="http://jelle.druyts.net/" />
  <link rel="self" href="http://jelle.druyts.net/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2010-09-05T13:59:12.5357446-07:00</updated>
  <author>
    <name>Jelle Druyts</name>
  </author>
  <subtitle>Reflection.Emit()</subtitle>
  <id>http://jelle.druyts.net/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>Flickr Schedulr on BBC's Webscape</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2010/09/05/FlickrSchedulrOnBBCsWebscape.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=1d4416ba-6387-42bd-895d-b5d67e1a6596</id>
    <published>2010-09-05T13:51:40.033-07:00</published>
    <updated>2010-09-05T13:59:12.5357446-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Photography" label="Blog/Photography" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cPhotography" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Projects/Schedulr" label="Projects/Schedulr" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Projects%7cSchedulr" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
On a related note to <a href="http://jelle.druyts.net/2010/09/05/JustReleasedFlickrSchedulrV20.aspx">releasing
the much improved v2.0</a> of <a href="http://schedulr.codeplex.com/">Flickr Schedulr</a>,
I just noticed that the previous release got mentioned in the <a href="http://news.bbc.co.uk/2/hi/programmes/click_online/8443401.stm">BBC's
Webscape reviews</a>.
</p>
        <p>
How awesome is that?!
</p>
        <p>
          <img src="http://jelle.druyts.net/content/binary/FlickrSchedulrBBCWebscape.png" alt="Flickr Schedulr BBC Webscape Review" />
        </p>
        <p>
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 :-)
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=1d4416ba-6387-42bd-895d-b5d67e1a6596" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Just released: Flickr Schedulr v2.0!</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2010/09/05/JustReleasedFlickrSchedulrV20.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=4a92453b-d188-4a5d-9104-aa38aa079ef0</id>
    <published>2010-09-05T12:50:55.779-07:00</published>
    <updated>2010-09-05T13:07:57.2465487-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Photography" label="Blog/Photography" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cPhotography" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Projects/Schedulr" label="Projects/Schedulr" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Projects%7cSchedulr" />
    <category term="Projects/Schedulr/Download" label="Projects/Schedulr/Download" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Projects%7cSchedulr%7cDownload" />
    <content type="html">&lt;p&gt;
Hot off the press and might I add, &lt;i&gt;finally&lt;/i&gt;! I just got around to packaging
up and publishing the completely rewritten v2.0 of &lt;a href="http://schedulr.codeplex.com/"&gt;Flickr
Schedulr&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://schedulr.codeplex.com/"&gt;&lt;img src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=schedulr&amp;DownloadId=142024&amp;Build=17093" alt="Flickr Schedulr"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
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.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=schedulr&amp;DownloadId=148267" alt="Flickr Schedulr" width="600"&gt;
&lt;/p&gt;
&lt;p&gt;
What's new in this version?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The application was completely rewritten in Windows Presentation Foundation (WPF),
which makes for a much nicer user experience.&lt;/li&gt;
&lt;li&gt;
You can now create a Windows scheduled task directly from the application.&lt;/li&gt;
&lt;li&gt;
You can now assign a content type and license to pictures.&lt;/li&gt;
&lt;li&gt;
You can now configure more than one Flickr account and maintain upload queues for
each account separately from within the same application.&lt;/li&gt;
&lt;li&gt;
You can now add pictures to the queue from the command line using the "/add" and "/addbatch"
switches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
As always, you can find all information, screenshots and downloads on the dedicated
site at &lt;a href="http://schedulr.codeplex.com/"&gt;http://schedulr.codeplex.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Happy Flickring!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=4a92453b-d188-4a5d-9104-aa38aa079ef0" /&gt;</content>
  </entry>
  <entry>
    <title>Just Released: Mayando v1.2!</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2010/08/25/JustReleasedMayandoV12.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=8346b4f0-1c03-4472-b1b8-f40e54970c7c</id>
    <published>2010-08-24T23:51:46.781-07:00</published>
    <updated>2010-08-25T00:09:06.4392382-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Photography" label="Blog/Photography" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cPhotography" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Blog/Programming/.NET/ASP.NET" label="Blog/Programming/.NET/ASP.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET%7cASP.NET" />
    <category term="Blog/Websites" label="Blog/Websites" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cWebsites" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ok maybe it's not <i>just</i> released but still I'm happy to finally put the word
out that you can now install Mayando v1.2 directly from the <a href="http://www.microsoft.com/web/gallery/Mayando.aspx">Microsoft
Web Application Gallery</a>!
</p>
        <p>
          <a href="http://www.microsoft.com/web/gallery/Mayando.aspx">
            <img src="http://www.microsoft.com/web/media/badge/install_using_webpi_btn.png" alt="Install Mayando using the Microsoft Web Platform Installer" />
          </a>
        </p>
        <p>
Mayando is a full-featured photo blogging application that you can use to showcase
your photos online.
</p>
        <p>
          <a href="http://mayando.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" />
          </a>
        </p>
        <p>
What's new in this release: 
</p>
        <ul>
          <li>
Dates on photos are now hyperlinks to other photos taken or published on the same
date.</li>
          <li>
The Flickr photo provider no longer synchronizes machine tags (because they are not
intended to be displayed).</li>
          <li>
You can now configure the photo provider to synchronize automatically at regular intervals
(e.g. every 60 minutes).</li>
          <li>
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.</li>
          <li>
You can now filter the event log by severity.</li>
          <li>
Mayando is now compatible with ASP.NET "medium trust" hosting providers.</li>
          <li>
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.</li>
        </ul>
        <p>
If you want to see it running: check out the <a href="http://mayando.druyts.net/">Mayando
Demo Site</a> or of course <a href="http://photography.druyts.net/">my own photo blog</a>.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=8346b4f0-1c03-4472-b1b8-f40e54970c7c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>What Has Jelle Been Up To (a.k.a. The Last Post)</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2010/06/10/WhatHasJelleBeenUpToAkaTheLastPost.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=c7ab80d0-eb2a-4565-bf1f-6003a09bab09</id>
    <published>2010-06-10T05:03:08.08825-07:00</published>
    <updated>2010-06-10T05:03:08.08825-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Photography" label="Blog/Photography" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cPhotography" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Blog/Programming/.NET/ASP.NET" label="Blog/Programming/.NET/ASP.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET%7cASP.NET" />
    <category term="Blog/Programming/.NET/WPF" label="Blog/Programming/.NET/WPF" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET%7cWPF" />
    <category term="Blog/Websites" label="Blog/Websites" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cWebsites" />
    <category term="Blog/Windows" label="Blog/Windows" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cWindows" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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...
</p>
        <p>
          <strong>#1 – Maya</strong>
        </p>
        <p>
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 :-)
</p>
        <p>
          <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Prinses" border="0" alt="Prinses" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Prinses.jpg" width="164" height="244" />  <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Koekjestijd" border="0" alt="Koekjestijd" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Koekjestijd.jpg" width="164" height="244" /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Verjaardagskroon" border="0" alt="Verjaardagskroon" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/Verjaardagskroon.jpg" width="165" height="244" /></p>
        <p>
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 :-)
</p>
        <p>
          <strong>#2 - Mayando</strong>
        </p>
        <p>
Because Project #1 called for a way to keep the family up to date and to regularly
show off <em>exactly how cute </em>Maya is, and (almost equally importantly) because
I was looking for an excuse to learn <a href="http://www.asp.net/mvc">ASP.NET MVC</a>,
I decided to write a photo blogging web application. <em>“What, another photo gallery
site”</em>, 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 <em>I </em>built
to fit <em>my </em>needs :-)
</p>
        <p>
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 <a href="http://photography.druyts.net">my
own photo blog</a> – 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.)
</p>
        <p>
And so, <a href="http://mayando.codeplex.com/">Mayando</a> was born: a full-featured
photo blogging application that you can use to showcase your photos online.
</p>
        <p>
          <a href="http://mayando.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Mayando-Logo-Medium" border="0" alt="Mayando-Logo-Medium" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/MayandoLogoMedium.png" width="200" height="75" />
          </a>
        </p>
        <p>
Now I did <em>not </em>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 <a href="http://www.flickr.com">Flickr</a>.
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,
...).
</p>
        <p>
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 <a href="http://mollom.com">Mollom</a>).
</p>
        <p>
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 <a href="http://mayando.codeplex.com/SourceControl/ListDownloadableCommits.aspx">Mayando
source code</a> and let me know if you want to contribute!
</p>
        <p>
If you just want to see it running: check out the <a href="http://mayando.druyts.net/">Mayando
Demo Site</a> or of course <a href="http://photography.druyts.net/">my own photo blog</a> :-)
</p>
        <p>
          <strong>#3 – Flickr Schedulr v1.4 &amp; v2.0</strong>
        </p>
        <p>
Because Project #1 and Project #2 meant I would be using <a href="http://www.flickr.com">Flickr</a> more,
I figured it was also time to give my Flickr Schedulr application an update to incorporate
feedback from a number of users.
</p>
        <p>
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.
</p>
        <p>
          <a href="http://schedulr.codeplex.com/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Schedulr-Logo-Small" border="0" alt="Schedulr-Logo-Small" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/WhatHasJelleBeenUpToa.k.a.TheLastPost_C515/SchedulrLogoSmall.png" width="125" height="50" />
          </a>
        </p>
        <p>
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.
</p>
        <p>
I’ve also been working really hard on v2.0 which is a complete rewrite of the application
in <a href="http://msdn.microsoft.com/en-us/library/ms754130.aspx">Windows Presentation
Foundation</a> (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.
</p>
        <p>
Since I’ve been very happy with <a href="http://www.codeplex.com">CodePlex</a> for <a href="http://www.codeplex.com/site/users/view/jelled">my
other projects</a>, I decided to move the source code and work items there and lo
and behold: here is the new <a href="http://schedulr.codeplex.com/">Flickr Schedulr
homepage on CodePlex</a>!
</p>
        <p>
          <strong>#4 – Proxy Monitor</strong>
        </p>
        <p>
Last October, the <a href="http://jelle.druyts.net/2008/09/08/JustReleasedProxyMonitor12.aspx">trend</a> 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).
</p>
        <p>
To make it easier to work together, I decided to move this project to <a href="http://www.codeplex.com">CodePlex</a> as
well. So for all information, downloads, forums, etc. go to the new <a href="http://proxymonitor.codeplex.com">Proxy
Monitor homepage at CodePlex</a>!
</p>
        <p>
          <strong>#5 – The NOT Part</strong>
        </p>
        <p>
So after a small list of things that I <em>have </em>been up to the last two years
or so, it’s quite clear what I have <em>not </em>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.
</p>
        <p>
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 <a href="http://www.codeplex.com/">CodePlex</a>:
</p>
        <ul>
          <li>
            <a href="http://mayando.codeplex.com/">Mayando</a>
          </li>
          <li>
            <a href="http://schedulr.codeplex.com/">Flickr Schedulr</a>
          </li>
          <li>
            <a href="http://proxymonitor.codeplex.com/">Proxy Monitor</a>
          </li>
          <li>
            <a href="http://buildcop.codeplex.com/">BuildCop</a>
          </li>
          <li>
            <a href="http://csd.codeplex.com/">Configuration Section Designer</a>
          </li>
          <li>
            <a href="http://mollom.codeplex.com/">Mollom for .NET</a>
          </li>
        </ul>
        <p>
If you want to keep up with the non-technical side, check out my <a href="http://photography.druyts.net/">photography
site</a> - &lt;plug&gt;based on <a href="http://mayando.codeplex.com/">Mayando</a> of
course, and updated with the help of <a href="http://schedulr.codeplex.com/">Flickr
Schedulr</a>&lt;/plug&gt; :-)
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=c7ab80d0-eb2a-4565-bf1f-6003a09bab09" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Just Released: ProxyMonitor 1.2!</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/09/08/JustReleasedProxyMonitor12.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=6c359624-1e0d-4fa0-ad84-b5ec7037692c</id>
    <published>2008-09-08T08:10:06.4053092-07:00</published>
    <updated>2008-09-08T08:11:28.7037643-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Projects/ProxyMonitor" label="Projects/ProxyMonitor" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Projects%7cProxyMonitor" />
    <category term="Projects/ProxyMonitor/Download" label="Projects/ProxyMonitor/Download" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Projects%7cProxyMonitor%7cDownload" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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.
</p>
        <p>
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).
</p>
        <p>
          <img src="http://jelle.druyts.net/content/projects/ProxyMonitor/ProxyMonitor.png" />
        </p>
        <p>
You can download the tool below. Don't hesitate to <a href="http://jelle.druyts.net/Email.aspx">contact
me</a> for suggestions or bug reports!
</p>
        <p>
          <a href="http://jelle.druyts.net/content/binary/ProxyMonitor%201.2%20Binary.zip">The
ProxyMonitor 1.2 executable (103 KB)</a>
        </p>
        <p>
          <a href="http://jelle.druyts.net/content/binary/ProxyMonitor%201.2%20Source.zip">The
ProxyMonitor 1.2 source code (104 KB)</a>
        </p>
        <p>
You can also view the <a href="http://jelle.druyts.net/content/projects/ProxyMonitor/Readme.html">Readme
file</a> online.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=6c359624-1e0d-4fa0-ad84-b5ec7037692c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Updated Again: Setting up Source Server for TFS Builds (v1.2)</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/07/08/UpdatedAgainSettingUpSourceServerForTFSBuildsV12.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=727af7f7-b435-4fbd-b960-a725f8862f17</id>
    <published>2008-07-08T12:57:07.807375-07:00</published>
    <updated>2008-07-08T12:57:07.807375-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Blog/Programming/.NET/VS.NET" label="Blog/Programming/.NET/VS.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET%7cVS.NET" />
    <category term="Blog/Programming/TeamSystem" label="Blog/Programming/TeamSystem" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7cTeamSystem" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've just published another update to my guide on <a href="http://jelle.druyts.net/2007/12/09/SettingUpSourceServerForTFSBuilds.aspx">Setting
up Source Server for TFS Builds</a>, 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.
</p>
        <p>
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) :-)
</p>
        <p>
For the full setup instructions, please refer to the original post on <a href="http://jelle.druyts.net/2007/12/09/SettingUpSourceServerForTFSBuilds.aspx">Setting
up Source Server for TFS Builds</a>.
</p>
        <p>
Oh, and finally, my homie <a href="http://kinnie.blogspot.com/">Pieter</a> also posted
a more detailed guide on how to set <a href="http://kinnie.blogspot.com/2008/06/8-source-server-for-tfs-builds.html">Source
Server support up inside the Team Build script</a> - and what's more important, what
the invaluable benefit is of having a central reusable build script. Great job Pieter!
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=727af7f7-b435-4fbd-b960-a725f8862f17" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Extracting OLE embedded images from emails in Outlook</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/06/02/ExtractingOLEEmbeddedImagesFromEmailsInOutlook.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=d9469f09-7c32-40dc-95a9-4a1686f787ca</id>
    <published>2008-06-02T04:18:29.8767301-07:00</published>
    <updated>2008-06-02T04:18:29.8767301-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Blog/Programming/Samples" label="Blog/Programming/Samples" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7cSamples" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
While it seemed a simple requirement, saving all attachments from emails in Outlook
to disk proved to be <em>challenging</em> - to say the least. Using the <a href="http://msdn.microsoft.com/en-us/library/aa221870.aspx">Outlook
Object Model</a>, it's quite easy to enumerate all emails in a folder, look at their
attachments and call the <code><a href="http://msdn.microsoft.com/en-us/library/aa210277(office.11).aspx">SaveAsFile</a></code> method
on them. However, for OLE-type attachments (typically images), this throws a <code>COMException</code> 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 <a href="http://www.dimastr.com/">Dmitry Streblechenko</a>, Outlook MVP
and creator of the excellent and very affordable <a href="http://www.dimastr.com/redemption/">Outlook
Redemption library</a>: "<a href="http://www.pcreview.co.uk/forums/thread-1841126.php">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</a>".
</p>
        <p>
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 <code><a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.istorage.aspx">IStorage</a></code> OLE
interface (available through <a href="http://www.dimastr.com/redemption">Redemption</a>)
and call <code><a href="http://msdn.microsoft.com/en-us/library/ms694338(VS.85).aspx">OleLoad</a></code> on
it to have OLE load the contents and retrieve an <code><a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.idataobject.aspx">IDataObject</a></code>.
The magic trick is to place that <code>IDataObject</code> on the clipboard and retrieve
the actual image from the clipboard (so that the clipboard itself handles the nasty
OLE details).
</p>
        <p>
          <a href="http://en.wikipedia.org/wiki/Borat">Great success</a>! At least for a moment.
That already worked for Device Independent Bitmaps, but Outlook also uses Enhanced
Metafiles (wmf) and apparently there is <a href="http://support.microsoft.com/kb/323530">a
problem with the .NET Framework when it comes to handling Enhanced Metafiles from
the clipboard</a>. 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 <code><a href="http://msdn.microsoft.com/en-us/library/aa932577.aspx">OpenClipboard</a></code>.
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.
</p>
        <p>
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.
</p>
        <p>
Below is the full code using <a href="http://www.dimastr.com/redemption/rdo/default.htm">Redemption
Data Objects (RDO)</a>, hopefully this will save other people a few hours in trying
to achieve the same thing...
</p>
        <pre>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;
}</pre>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=d9469f09-7c32-40dc-95a9-4a1686f787ca" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Just Released: Mollom for .NET v1.0!</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/05/18/JustReleasedMollomForNETV10.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=52ccc103-e22d-4d75-8b1b-4ef2360a836a</id>
    <published>2008-05-18T09:22:48.80025-07:00</published>
    <updated>2008-05-18T09:22:48.80025-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
My friend <a href="http://www.buytaert.net/">Dries Buytaert</a> - known all around
the world for creating <a href="http://drupal.org/">Drupal</a> (the wildly popular
open source content management system) and <a href="http://www.buytaert.net/tag/axl">Axl</a> (the
incredibly cute kid he co-created with my even better friend <a href="http://www.buytaert.net/tag/karlijn">Karlijn</a>)
- asked me a few months ago if I had any trouble with spam on my blog... It turned
out he was building <a href="http://mollom.com/">Mollom</a>, 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 <a href="http://codeplex.com/dasBlog/">dasBlog</a>, the blog engine I'm using.
</p>
        <p>
Now that <a href="http://mollom.com/">Mollom</a> and its <a href="http://mollom.com/api">API
and developer documentation</a> have finally been released (in public beta), I've
packaged my client library as well and published it on <a href="http://www.codeplex.com/">CodePlex</a>:
see the <a href="http://www.codeplex.com/mollom">Mollom for .NET homepage</a>.
</p>
        <p>
          <em>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. </em>
        </p>
        <p>
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:
</p>
        <pre>MollomClient client = new MollomClient(privateKey, publicKey);
ContentCheck result = client.CheckContent(postTitle, postBody, authorName, authorMail, authorUrl, authorIPAddress);
if (result.Classification == ContentClassification.Spam)
{     // Handle spam here...
}</pre>
        <p>
All information, downloads and documentation is available on the <a href="http://www.codeplex.com/mollom">Mollom
for .NET homepage on CodePlex</a>, so rush out and let me know what you think!
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=52ccc103-e22d-4d75-8b1b-4ef2360a836a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Updated: Setting up Source Server for TFS Builds</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/04/30/UpdatedSettingUpSourceServerForTFSBuilds.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=6724aea2-53bc-46d2-ac1d-bb5b241bd7e3</id>
    <published>2008-04-30T03:20:47.160125-07:00</published>
    <updated>2008-04-30T03:20:47.160125-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/Programming" label="Blog/Programming" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming" />
    <category term="Blog/Programming/.NET" label="Blog/Programming/.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET" />
    <category term="Blog/Programming/.NET/VS.NET" label="Blog/Programming/.NET/VS.NET" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7c.NET%7cVS.NET" />
    <category term="Blog/Programming/TeamSystem" label="Blog/Programming/TeamSystem" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cProgramming%7cTeamSystem" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just a quick note to let you know that I've updated my guide on <a href="http://jelle.druyts.net/2007/12/09/SettingUpSourceServerForTFSBuilds.aspx">Setting
up Source Server for TFS Builds</a>, since I just found out that there is an issue
with Build Definitions that contain spaces. The fix is fairly easy though:
</p>
        <ul>
          <li>
In TFIndex.cmd (on the build server), remove the quotes around the <code>%1</code> argument
for SYMBOLS: 
</li>
        </ul>
        <pre>
          <strike>@call "%~dp0SSIndex.cmd" -SYSTEM=TF -SYMBOLS="%1" %*</strike> @call "%~dp0SSIndex.cmd"
-SYSTEM=TF -SYMBOLS=%1 %*</pre>
        <ul>
          <li>
In the Team Build Script (in Source Control), add XML-escaped quotes around the <code>$(BinariesRoot)</code> argument: 
</li>
        </ul>
        <pre>
          <strike>&lt;Exec Command="&amp;quot;C:\Program Files\Debugging Tools for Windows\sdk\srcsrv\TFIndex.cmd&amp;quot;
$(BinariesRoot)"<br />
      WorkingDirectory="$(SolutionRoot)" /&gt;</strike> &lt;Exec
Command="&amp;quot;C:\Program Files\Debugging Tools for Windows\sdk\srcsrv\TFIndex.cmd&amp;quot;
&amp;quot;$(BinariesRoot)&amp;quot;"<br />
      WorkingDirectory="$(SolutionRoot)" /&gt;</pre>
        <p>
For the full setup instructions, please refer to the original post on <a href="http://jelle.druyts.net/2007/12/09/SettingUpSourceServerForTFSBuilds.aspx">Setting
up Source Server for TFS Builds</a>.
</p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=6724aea2-53bc-46d2-ac1d-bb5b241bd7e3" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Mortgage Loan Excel Sheet</title>
    <link rel="alternate" type="text/html" href="http://jelle.druyts.net/2008/03/07/MortgageLoanExcelSheet.aspx" />
    <id>http://jelle.druyts.net/PermaLink.aspx?guid=8653bbfd-3937-4a3f-a1f5-9f4580242d9b</id>
    <published>2008-03-07T05:03:40.678-07:00</published>
    <updated>2008-03-07T05:20:12.4445-07:00</updated>
    <category term="Blog" label="Blog" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog" />
    <category term="Blog/General" label="Blog/General" scheme="http://jelle.druyts.net/CategoryView.aspx?category=Blog%7cGeneral" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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, ...
</p>
        <p>
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).
</p>
        <p>
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
;-) 
</p>
        <p>
Features:
</p>
        <ul>
          <li>
Calculates payment tables for loans up to 40 years 
</li>
          <li>
Shows payment graphs up to 25 years (by default, you can enlarge this of course) 
</li>
          <li>
Calculates how much of your total payments are actually interest payments (try not
to weep when looking at this) 
</li>
          <li>
Allows you to compare different loan options (amount, duration, interest rate), e.g.
to compare different bank proposals</li>
        </ul>
        <p>
Download here: <a href="http://jelle.druyts.net/content/binary/Loans.zip">Loans.zip
(108 KB)</a>.
</p>
        <p>
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 :-)
</p>
        <p>
Example payment table:
</p>
        <p>
          <a href="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedPaymentSheet_2.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="619" alt="LoanFixedPaymentSheet" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedPaymentSheet_thumb.png" width="551" border="0" />
          </a>
        </p>
        <p>
Example yearly graph for a fixed payment (constant) loan:
</p>
        <p>
          <a href="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedPayment_4.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="384" alt="LoanFixedPayment" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedPayment_thumb_1.png" width="597" border="0" />
          </a>
        </p>
        <p>
Example monthly graph for a fixed capital (decreasing) loan:
</p>
        <p>
          <a href="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedCapital_2.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="472" alt="LoanFixedCapital" src="http://jelle.druyts.net/content/binary/WindowsLiveWriter/MortgageLoanExcelSheet_B780/LoanFixedCapital_thumb.png" width="686" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://jelle.druyts.net/aggbug.ashx?id=8653bbfd-3937-4a3f-a1f5-9f4580242d9b" />
      </div>
    </content>
  </entry>
</feed>
