﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Jani Järvinen's Personal Weblog</title>
    <link>http://www.saunalahti.fi/janij/blog/</link>
    <description>This is my personal weblog mostly about Windows software development. The views represented here are strictly my own, and do not necessarily reflect those of my employer.</description>
    <language>en-us</language>
    <pubDate>Sat, 31 Dec 2005 14:33:14 GMT</pubDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>180</ttl>
    <item>
      <title>New URL for this blog</title>
      <link>http://www.saunalahti.fi/janij/blog/2006.xml</link>
      <description>&lt;p&gt;As the year 2005 is closing very soon, I want to remind you to change the URL of my RSS feeds so that you get the chance to read my blog in the year 2006 as well.&lt;/p&gt;

&lt;p&gt;The new URL is simply: http://www.saunalahti.fi/janij/blog/2006.xml. That is, you would just change the year number in the URL to point to the new year that will soon begin.&lt;/p&gt;

&lt;p&gt;Of course, if you are reading this using my normal web pages, there isn't anything to worry about.&lt;/p&gt;</description>
      <pubDate>Sat, 31 Dec 2005 14:33:14 GMT</pubDate>
      <guid>6be23a76-441a-4fa4-b089-32ec4819628e</guid>
    </item>
    <item>
      <title>What is SQLOS?</title>
      <link>http://blogs.msdn.com/slavao/articles/441058.aspx</link>
      <description>&lt;p&gt;Chances are you've already installed the newest version of Microsoft SQL Server 2005 on one of your (testing) servers.&lt;/p&gt;

&lt;p&gt;I find the 2005 version a great release feature and easy-of-use wise, but the release is also a great example of advanced software architecture.&lt;/p&gt;

&lt;p&gt;For example, did you know that when you install SQL Server 2005, you are also installing a mini operating system (OS) onto your server?&lt;/p&gt;

&lt;p&gt;Sure, a &lt;acronym title="Relational Database Management System" lang="en" xml:lang="en"&gt;RDBMS&lt;/acronym&gt; is by definition some kind of application logic on top of a database file, but I think SQL Server 2005 takes this a big step further.&lt;/p&gt;

&lt;p&gt;This operating system that "runs" SQL Server 2005 is called simply SQLOS. Slava Oks, a developer on the SQL Server team at Microsoft, defines SQLOS in his &lt;a href="http://blogs.msdn.com/slavao/"&gt;blog&lt;/a&gt; like this:&lt;/p&gt;

&lt;p&gt;"SQLOS is a user mode operating system that leverages a hierarchical design similar to the hardware on which it runs."&lt;/p&gt;

&lt;p&gt;What do you think? I think this is interesting. And yes, I confess I didn't know about this layer existed before. But there's an easy cure for that. Happy studies!&lt;/p&gt;</description>
      <pubDate>Wed, 28 Dec 2005 14:38:01 GMT</pubDate>
      <guid>050ebc88-42e4-4dce-a326-dc0c1b1e872a</guid>
    </item>
    <item>
      <title>Updated web look</title>
      <link>http://www.saunalahti.fi/janij/</link>
      <description>&lt;p&gt;I just finished updating my web site to have a new look -- the summer one didn't reflect what I see when I look through the window. :-)&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;PS. As the year 2005 is soon drawing to an end, I remind you already that the URL for this RSS feed is going to change. Simple change the year number at the end of the URL from 2005 to 2006, and all should be fine.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Dec 2005 09:20:52 GMT</pubDate>
      <guid>8dfbfca1-9541-4a3c-a5f1-3d05b417b795</guid>
    </item>
    <item>
      <title>Introducing Paint.NET</title>
      <link>http://www.eecs.wsu.edu/paint.net/</link>
      <description>&lt;p&gt;Are you looking for a nice and easy painting application to replace Windows' Paint? And better yet, would you want to learn C# programming along the way?&lt;/p&gt;

&lt;p&gt;Then, Paint.NET from Washington State University is a great solution for you!&lt;/p&gt;

&lt;p&gt;The free, open-source image and photo manipulation application supports modern image editing capabilities, and also comes with full source code.&lt;/p&gt;</description>
      <pubDate>Mon, 26 Dec 2005 18:28:03 GMT</pubDate>
      <guid>b82c19c2-09f6-4101-8535-4e5f1ccc3c26</guid>
    </item>
    <item>
      <title>Merry Christmas and Happy New Year 2006!</title>
      <link>http://www.santaclaus.fi/</link>
      <description>&lt;p&gt;Seasons Greetings! I hope you are having a relaxing and quiet holiday season, no matter where you are.&lt;/p&gt;

&lt;p&gt;As I'm writing this, I'm downloading the latest Windows Vista build from MSDN. What a great way to spend your Christmas eve, installing a new operating system version! Just kidding... :-)&lt;/p&gt;

&lt;p&gt;All the best to you and your family, and Merry Christmas and Happy New Year 2006!&lt;/p&gt;</description>
      <pubDate>Sat, 24 Dec 2005 18:54:33 GMT</pubDate>
      <guid>84e16dc7-f501-4070-9b9b-c550a64feca1</guid>
    </item>
    <item>
      <title>Composite UI Application block</title>
      <link>http://msdn.microsoft.com/practices/default.aspx?pull=/library/en-us/dnpag2/html/cab.asp</link>
      <description>&lt;p&gt;The MSDN Patterns &amp; Practices web site (Microsoft always writes the section name with lowercase "P"s which I don't prefer, but nonetheless) has a new Smart Client application block available, the Composite UI Application Block (CAB).&lt;/p&gt;

&lt;p&gt;The application block is a half-dozen megabyte .MSI file, and both C# and VB.NET versions are available.&lt;/p&gt;

&lt;p&gt;I'm looking forward to reading this guide, but the problem is that I cannot find a full PDF/Word doc version of this guide. Instead, I need to read the documentation as a series of help topics, but that is of course better than nothing!&lt;/p&gt;</description>
      <pubDate>Wed, 21 Dec 2005 15:01:07 GMT</pubDate>
      <guid>19a865d1-22df-4f1d-967f-dbeb7bcbae43</guid>
    </item>
    <item>
      <title>Encryption with C#</title>
      <link>http://msdn.microsoft.com/msdnmag/issues/06/01/SecurityBriefs/default.aspx</link>
      <description>&lt;p&gt;Data security and encryption is always a fascinating subject. The classes in the .NET Base Class Library (BCL) make it easy to encrypt and decrypt data, but the often problem is that you don't have a key.&lt;/p&gt;

&lt;p&gt;Luckily, there's a way to encrypt data based on machine keys. The January 2006 issue of MSDN magazine has an article that details this process.&lt;/p&gt;</description>
      <pubDate>Mon, 19 Dec 2005 18:04:21 GMT</pubDate>
      <guid>918da1f6-956c-4d7c-a126-cace08b5e418</guid>
    </item>
    <item>
      <title>Infrared and 5D</title>
      <link>http://www.lifepixel.com/ir-tutorials/canon-5d-digital-infrared-conversion-instructions.htm</link>
      <description>&lt;p&gt;Today happened to be a clear (though chilling!) day for a change, so I decided to take my Canon 5D for a walk in the park, and test some infrared shots.&lt;/p&gt;

&lt;p&gt;Of course, many say that you can't do IR photography with modern digital cameras because of their built-in IR filters, but I think you can. Okay, the results might not be super, but I must say I like what I see.&lt;/p&gt;

&lt;p&gt;&lt;img src="images/2005_dec_infrared.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;So this is a shot taken with a rather cheap Hoya IR R72  filter I bought from &lt;a href="http://www.digitarvike.fi/"&gt;Digitarvike&lt;/a&gt; for 30 &amp;euro;. Nice glow, no? This is a shot with 1.6 sec exposure, f/3.5 and ISO 100. I used the Canon EF 50mm f/1.4 USM lens for the shot.&lt;/p&gt;

&lt;p&gt;If you feel adventurous, you might wish to check LifePixel's excellent hands-on tutorial how to tras... oops fix your camera for infrared photography. But be warned, it will surely void your warranty. :-)&lt;/p&gt;</description>
      <pubDate>Sun, 18 Dec 2005 12:08:02 GMT</pubDate>
      <guid>b15ba906-0fad-4631-9b44-50d76b60f3be</guid>
    </item>
    <item>
      <title>Hung Up on vinyl and filters from B+W</title>
      <link>
      </link>
      <description>&lt;p&gt;Good day today. Firstly, &lt;a href="http://www.streetbeat.ac/"&gt;StreetBeat&lt;/a&gt; had got Madonna's new single "Hung Up" on vinyl, and so I promptly ordered mine. It happened to be a double 12" single with the album mix and six others. So far, I like the Extended Dub the most, but that might change.&lt;/p&gt;

&lt;p&gt;Also, I got a call from &lt;a href="http://www.fototekniset.fi/"&gt;FotoTekniset&lt;/a&gt;, and they had finally got all the B+W filters (&lt;a href="http://www.schneideroptics.com/"&gt;Schneider Optics&lt;/a&gt;) I had oredered for my new EOS camera, and they would ship them to me later today. Very good!&lt;/p&gt;

&lt;p&gt;As a sidenote, Verkkokauppa.com also has B+W filters today for a competitive price. When I ordered my filters early November, they didn't sell any of those.&lt;/p&gt;

&lt;p&gt;But that's it for today! "It's quarter past five, and I'm done."&lt;/p&gt;</description>
      <pubDate>Thu, 15 Dec 2005 15:16:17 GMT</pubDate>
      <guid>03090462-a7a4-4212-aaac-2e3f8b80dbc4</guid>
    </item>
    <item>
      <title>Delphi 2006 first impressions</title>
      <link>http://www.borland.com/us/products/delphi/index.html</link>
      <description>&lt;p&gt;Today, I had the chance to install the production (gold) version of Delphi 2006 Architect (alias Borland Developer Studio 4.0) for the first time.&lt;/p&gt;

&lt;p&gt;The final RTM version number is 10.0.2151.25345. Having used the betas, the quality is now a lot better to what Delphi 2005 ever way. And also, there are many excellent features that didn't exist in 2005. That said, I give thumbs up for this release.&lt;/p&gt;

&lt;p&gt;Of course, nothing is perfect, but by adding your reports to &lt;a href="http://qc.borland.com/wc/qcmain.aspx"&gt;QualityCentral&lt;/a&gt; (QC), it will get better.&lt;/p&gt;

&lt;p&gt;Thanks Borland for this release, no more typing "end;" or drawing class diagrams manually with this release. :-)&lt;/p&gt;</description>
      <pubDate>Tue, 13 Dec 2005 15:02:38 GMT</pubDate>
      <guid>3a1bb06d-1200-48bf-8e58-1d6979e9b8c5</guid>
    </item>
    <item>
      <title>How to convert ASP.NET 1.1 projects to ASP.NET 2.0</title>
      <link>http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/webprojectsvs05.asp</link>
      <description>&lt;p&gt;When you use Visual Studio .NET 2003 to develop web applications, you use ASP.NET 1.1. Now that Visual Studio 2005 is out and provides excellent new features for web application developers, it is time to convert your projects to ASP.NET 2.0.&lt;/p&gt;

&lt;p&gt;On MSDN, there's a nice article about how to convert your VS.NET 2003 web projects into the 2005 world.&lt;/p&gt;

&lt;p&gt;Now, this document won't tell you how to get the best out of ASP.NET 2.0 (there are tons of other articles for this purpose), but it gives you a hands-on steps how to move your older ASP.NET applications to the new Visual Studio version.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Dec 2005 05:42:51 GMT</pubDate>
      <guid>c960a99b-a944-4d45-b0bd-bdcfe5986e68</guid>
    </item>
    <item>
      <title>Can Internet Explorer leak memory?</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ietechcol/dnwebgen/ie_leak_patterns.asp</link>
      <description>&lt;p&gt;As Ajax applications are become more and more popular, it also means that software defects well-known in desktop application are starting to creep into web applications as well.&lt;/p&gt;

&lt;p&gt;Ajax applications use JavaScript extensively, and since the language is far from type-safe and never strict enough to force good programming practices, trouble is on its way. One of the problems that surface because of this are memory leaks.&lt;/p&gt;

&lt;p&gt;Justin Rogers has written an article about IE and JavaScript memory leaks. I recommend reading this article, since it illustrates that not even web programming is perfect, and many people have already started to learn.&lt;/p&gt;</description>
      <pubDate>Tue, 06 Dec 2005 06:13:17 GMT</pubDate>
      <guid>016f8e97-5aee-42db-81ac-d293dfb7615b</guid>
    </item>
    <item>
      <title>Microsoft and RAW photo management</title>
      <link>http://www.microsoft.com/windowsxp/using/digitalphotography/prophoto/default.mspx</link>
      <description>&lt;p&gt;I've known for a long time that Apple computers have an appeal for professional artists, be they in music, traditional art or photography.&lt;/p&gt;

&lt;p&gt;Since especially photography has interested me lately, I've been keen on learning more about professional photography.&lt;/p&gt;

&lt;p&gt;It came as a surprise to me when I noticed that Microsoft is also in this business. They have a complete web site (under Windows XP) dedicated to photography for the pros.&lt;/p&gt;

&lt;p&gt;For instance, you can download for free a &lt;a href="http://www.microsoft.com/windowsxp/using/digitalphotography/prophoto/raw.mspx"&gt;RAW Image Thumbnailer&lt;/a&gt;, learn about &lt;a href="http://www.microsoft.com/windowsxp/using/digitalphotography/prophoto/colormgmt.mspx"&gt;color management&lt;/a&gt; in Windows XP, and more. Hopefully you will find these links as useful as I did.&lt;/p&gt;</description>
      <pubDate>Sun, 04 Dec 2005 09:25:28 GMT</pubDate>
      <guid>9df78d1f-65b8-494b-8fcb-4b99824ec187</guid>
    </item>
    <item>
      <title>Outlook managed code add-in programming</title>
      <link>http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_vsto2005_ta/html/odc_vstoOutlookMyBlog.asp</link>
      <description>&lt;p&gt;Uh oh, December already! Where did the year 2005 go? Looks like I've been quite busy.&lt;/p&gt;

&lt;p&gt;In any case, there's no need to stop as Microsoft has again published a great MSDN article about Office programming with .NET.&lt;/p&gt;

&lt;p&gt;Take a look David Hill's and John R. Durant's article titled "Creating an Outlook My.Blogs Managed Code Add-in". A nice introduction, and will be helpful reading in addition to the Office programming book I acquainted myself with earlier this week.&lt;/p&gt;</description>
      <pubDate>Sat, 03 Dec 2005 07:24:55 GMT</pubDate>
      <guid>476121e2-0da2-43af-9d12-fecd0673b70d</guid>
    </item>
    <item>
      <title>New programming books</title>
      <link>
      </link>
      <description>&lt;p&gt;I was lucky to get into my hands two new programming related books from Microsoft Press.&lt;/p&gt;

&lt;p&gt;These books are "Visual Studio Tools for Office" by Carter and Lippert, and "Working with Visual Studio 2005 Team System" by R. Hundhausen.&lt;/p&gt;

&lt;p&gt;Well, I have to confess that I haven't yet had the chance to read my previous programming books I got months ago (I've been reading "The Adventures of Huckleberry Finn" instead), but hopefully I can continue during the forthcoming Christmas holidays.&lt;/p&gt;</description>
      <pubDate>Tue, 29 Nov 2005 15:31:14 GMT</pubDate>
      <guid>3b1e674d-33c7-4395-a5f6-88799af72995</guid>
    </item>
    <item>
      <title>D2006 vs. VS2005</title>
      <link>
      </link>
      <description>&lt;p&gt;Last Friday, Delphi 2006 (or should I say Borland Developer Studio 2006) was launched here in Helsinki. I had a session together with Jason Vokes and Henrik Jondell.&lt;/p&gt;

&lt;p&gt;Now that both Microsoft Visual Studio 2005 and Delphi 2006 are out, many developer have started to ask which is a better choice. Well, there are many sides on this coin, but frankly I don't understand these two tools are compared head to head.&lt;/p&gt;

&lt;p&gt;In my opinion, if you want to use latest .NET 2.0 technologies, then there's currently only one choice: Visual Studio 2005.&lt;/p&gt;

&lt;p&gt;However, if you already have a significant investment in Delphi code, then I don't see why there would be such a rush to Visual Studio, especially if you haven't yet used .NET at all.&lt;/p&gt;

&lt;p&gt;Learning to develop .NET applications takes a while, and since the platform is so large, it will take years to master it. Even if you would jump today from Delphi to VS 2005, you wouldn't be productive (in real-world applications) in at least half a year. In that time, Borland probably has at least a beta out of Highlander, their .NET 2.0 compatible tool.&lt;/p&gt;

&lt;p&gt;The bottom line: both Delphi 2006 and Visual Studio 2005 are excellent development tools for the Windows platform. One shines in .NET, the other supports both Win32 and .NET. From that perspectives, comparing these two is like comparing apples and oranges.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Nov 2005 07:17:54 GMT</pubDate>
      <guid>e8628a27-efea-49ef-a1b8-fcccba984dda</guid>
    </item>
    <item>
      <title>Canon raw conversion related acronyms spelled out</title>
      <link>http://forums.dpreview.com/forums/forum.asp?forum=1032</link>
      <description>&lt;p&gt;Converting raw images from a digital camera is both art and science.&lt;/p&gt;

&lt;p&gt;However, you will quickly run into many different acronyms if you try to find information about raw conversion on the net.&lt;/p&gt;

&lt;p&gt;So, here's a list of acronyms that are often associated with Canon EOS digital SLR cameras (DSLRs). I also posted the same list to DPreview's Canon EOS-1D/1Ds/5D Forum.&lt;/p&gt;

&lt;p&gt;----------&lt;br&gt;
ACR = Adobe Camera Raw. A free plug-in for Adobe Photoshop CS2 and Photoshop Elements 3 and 4. Available here: http://www.adobe.com/products/photoshop/cameraraw.html&lt;/p&gt;

&lt;p&gt;BB, BBP = BreezeBrowser Pro. A commercial product from BreezeSystems. Link: http://www.breezesys.com/&lt;/p&gt;

&lt;p&gt;C1, COne = Capture One. A product from Phase One (http://www.phaseone.com/). Available in Professional and LE versions.&lt;/p&gt;

&lt;p&gt;CS, CS2 = Creative Suite, Creative Suite 2. The version number of certain Adobe products, including Photoshop.&lt;/p&gt;

&lt;p&gt;DNG = Digital Negative. Adobe's open archival format for the raw image files. For details, see: http://www.adobe.com/products/dng/&lt;/p&gt;

&lt;p&gt;DPP = Digital Photo Professional from Canon. The free program that comes with your camera.&lt;/p&gt;

&lt;p&gt;NEF = Nikon's term for raw image data. (Canon uses file extensions .CRW and .CR2 depending on model.)&lt;/p&gt;

&lt;p&gt;PS = Photoshop. Adobe's de-facto image manipulation software. Available in flagship Photoshop and cheaper "Elements" editions. See: http://www.adobe.com/products/photoshop/.&lt;/p&gt;

&lt;p&gt;RSE = RawShooter Essentials, a product from Pixmantec. See http://www.pixmantec.com/. The Essentials version is a free download.&lt;/p&gt;

&lt;p&gt;RSP = RawShooter Premium. The commercial version of RawShooter. It has more features that RSE and supports the latest EOS models, like the 5D and 1D MkII N.&lt;/p&gt;

&lt;p&gt;RCE = RawShooter Color Engine. A plug-in module for RawShooter Essentials and Premium.&lt;br&gt;
----------&lt;/p&gt;</description>
      <pubDate>Mon, 21 Nov 2005 16:04:27 GMT</pubDate>
      <guid>42c6610e-4ff7-4980-991d-c4fc4c942b14</guid>
    </item>
    <item>
      <title>First daylight shoots with 5D</title>
      <link>http://wintermute.spb.ru/~vadik/300d/</link>
      <description>&lt;p&gt;This morning it was a cloudy weather at about zero degrees centigrade, and so I decided to take my new camera to a walk.&lt;/p&gt;

&lt;p&gt;I also took my tripod with me, and tested many different shots. Also, I tried my Hoya ND8 neutral density filter to blur the sea, but I guess I'll still need a darker filter (or two stacked together) for optimum results.&lt;/p&gt;

&lt;p&gt;Other that that, I'm very happy with my shots! The camera is indeed demanding (plus, I made a couple of simple mistakes), but that was to be expected. Great, this is where I wanted to be. And it should only get better.&lt;/p&gt;

&lt;p&gt;Now, for those programmers out there, I found an interested Russian web site with information about Canon EOS firmware hacking. Dunno about copyrights with this site, but anyway...&lt;/p&gt;</description>
      <pubDate>Sat, 19 Nov 2005 10:14:47 GMT</pubDate>
      <guid>b31f480d-4af6-4ebd-9b5b-8751487d1fef</guid>
    </item>
    <item>
      <title>Canon EOS 5D arrives</title>
      <link>http://consumer.usa.canon.com/ir/controller?act=ModelDetailAct&amp;fcategoryid=139&amp;modelid=11933</link>
      <description>&lt;p&gt;Today I fetched my first DSLR camera, the Canon EOS 5D. It looks and feels cool. :-) Compared to my full-manual Canon FTb from 1973, this thing is full of electronics and automation.&lt;/p&gt;

&lt;p&gt;We'll see if I can tame the beast in the time coming. Unluckily, since it's winter time again, I won't be able to take any daylight shots until the coming weekend.&lt;/p&gt;

&lt;p&gt;As a side note, I did quick checking if there is any information available on custom firmware development/programming for this camera.&lt;/p&gt;

&lt;p&gt;I didn't find anything for 5D or 20D for that matter, but there was plenty of information regarding 300D. It uses a NEC processor which to me seems like a x86 compatible one, but I could be wrong. In any case, some kind of DOS variant is the operating system of these cameras.&lt;/p&gt;</description>
      <pubDate>Tue, 15 Nov 2005 16:42:24 GMT</pubDate>
      <guid>9fcb3359-fff0-4138-8fac-3af5b66c93d2</guid>
    </item>
    <item>
      <title>Articles in Tietokone and Prosessori</title>
      <link>http://www.saunalahti.fi/janij/publications/</link>
      <description>&lt;p&gt;November is a busy month for me, and two more of my articles have been published in Finnish IT magazines.&lt;/p&gt;

&lt;p&gt;The articles are "Automaattisesti käynnistyvät sovellukset kuriin" in Tietokone 13/2005 and ".NET mobilisoituu" in Prosessori Nov/2005.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sun, 13 Nov 2005 16:24:23 GMT</pubDate>
      <guid>18be1a1b-0eb6-4a35-95aa-35d7f063978c</guid>
    </item>
    <item>
      <title>Windows Quality Online Services (Winqual)</title>
      <link>https://winqual.microsoft.com/</link>
      <description>&lt;p&gt;Have you ever heard of Windows Quality Online Services? Well, I haven't. But, now that I have, I must say it sounds interesting.&lt;/p&gt;

&lt;p&gt;Winqual, as the nick-name goes, is a web site that collects information about software crashes. When an application crashes on Windows XP or Windows Server 2003, crash data is sent to Microsoft (if the user chooses to do so), and with Winqual, third-parties can analyze this data.&lt;/p&gt;

&lt;p&gt;Sounds like interesting stuff to me. I need to investigate this further.&lt;/p&gt;</description>
      <pubDate>Sun, 13 Nov 2005 16:10:12 GMT</pubDate>
      <guid>18695acb-8dfb-4a36-9770-394e565445ee</guid>
    </item>
    <item>
      <title>Visual Studio 2005 announced</title>
      <link>http://msdn.microsoft.com/vstudio/</link>
      <description>&lt;p&gt;Yes, it is anything but a surprise, but still worth noting: Visual Studio 2005 was officially announced yesterday.&lt;/p&gt;

&lt;p&gt;Althogh quality issues have been reported with the RTM version, I feel the 2005 version is a great release. Congrats to Microsoft for doing it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 08 Nov 2005 05:20:41 GMT</pubDate>
      <guid>2aff70b5-bc2c-452a-a97f-73cfa7b7cf1f</guid>
    </item>
    <item>
      <title>Windows Vista User Account Protection (UAP)</title>
      <link>http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/AccProtVista.asp</link>
      <description>&lt;p&gt;You might have already heard that Microsoft is including a feature called "User Account Protection" (UAP) into their forth-coming operating system version, Windows Vista.&lt;/p&gt;

&lt;p&gt;The idea of UAP is to help users run their application with low-privilege user rights, and only elevate their rights to higher level when needed. The point of this is to keep security at a high level at all times.&lt;/p&gt;

&lt;p&gt;Current Windows versions have a problem in the regard, since many operations are only available to administrators. However, especially in home and small office use, it is pain to log in with administrator rights (even with the Run As feature) just to get something done.&lt;/p&gt;

&lt;p&gt;This is something Vista tries to make better, and I believe there are good grounds for this. But naturally, help is needed from software developers. MSDN has a great article available about UAP, which I can recommend.&lt;/p&gt;</description>
      <pubDate>Sun, 06 Nov 2005 09:13:21 GMT</pubDate>
      <guid>8847e8c1-1a0c-4a6d-8e96-8d1954b37437</guid>
    </item>
    <item>
      <title>My XMLHTTPRequest article in TDM</title>
      <link>http://www.thedelphimagazine.com/conts/conts123.php</link>
      <description>&lt;p&gt;The second-last print issue of the The Delphi Magazine (TDM) features my latest Delphi article.&lt;/p&gt;

&lt;p&gt;The article, titled "Beefing Up Delphi Web Apps With XMLHTTPRequest" is about AJAX programming with Delphi. If you are interested in this, go and grab yourself a copy.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Nov 2005 16:11:44 GMT</pubDate>
      <guid>bfcbbe6b-51b6-4396-b3eb-bd5b139473b6</guid>
    </item>
    <item>
      <title>.NET 2.0 Generics FAQ</title>
      <link>http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/Fundamentals.asp</link>
      <description>&lt;p&gt;Now that Visual Studio 2005 release version is finally here (for MSDN subscribers at least), it is finally time to learn what is new in .NET 2.0.&lt;/p&gt;

&lt;p&gt;Generics are one of such new things, and they are worth studying well. If you haven't got much experience in them, you might wish to check the .NET Generics FAQ on MSDN. I'm quite sure it answers most of the questions you might have.&lt;/p&gt;</description>
      <pubDate>Mon, 31 Oct 2005 04:45:27 GMT</pubDate>
      <guid>cdbac4d0-fac6-4593-9f3b-0477d37fd366</guid>
    </item>
    <item>
      <title>New Visual Studio magazine pops up</title>
      <link>http://www.pinpub.com/ME2/Audiences/load.asp?AudID=683A3EB8F275444E9291CF5A5B8ECC8C</link>
      <description>&lt;p&gt;Earlier this month, I proposed an article to the Visual Studio .NET Developer magazine, and got a disappointing reply from the editor: the magazine had just been discontinued.&lt;/p&gt;

&lt;p&gt;Now, my impression was that Pinnacle stopped publishing all Visual Studio related magazines, but in fact I drew this conclusion too quickly. Today, they have a new magazine to publish, and it is simply called "Visual Studio Developer".&lt;/p&gt;

&lt;p&gt;I have to contact the editor to see what are the chances to continue my writing for this magazine.&lt;/p&gt;</description>
      <pubDate>Sat, 29 Oct 2005 17:23:55 GMT</pubDate>
      <guid>0946c7c3-2eec-4051-8733-1d71bda11209</guid>
    </item>
    <item>
      <title>Visual Studio Workflow Designer</title>
      <link>http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/WWFIntro.asp</link>
      <description>&lt;p&gt;As I noted in my post on October 4th, the Windows Workflow Foundation (WWF) interests me. I finally found the time to read David Chappell's article on MSDN about it.&lt;/p&gt;

&lt;p&gt;The article mentions the Workflow Designer that can integrate with Visual Studio 2005. Now, what is even more interesting, the document goes on to say:&lt;/p&gt;

&lt;p&gt;&lt;i&gt;"The Workflow Designer can also be hosted in, and customized for, other environments. An ISV that wishes to include workflow within its own offering might host this tool directly inside that product, giving it whatever look and feel is appropriate."&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;This is just great! I need to find out how this is done! Reports will follow if I succeed...&lt;/p&gt;</description>
      <pubDate>Wed, 26 Oct 2005 15:09:35 GMT</pubDate>
      <guid>8d3837e8-9570-44ac-a25a-774dc8486ae2</guid>
    </item>
    <item>
      <title>Microsoft Developer Tools Channel Summit in Athens</title>
      <link>http://www.microsoft.com/</link>
      <description>&lt;p&gt;I had the change to attend Microsoft's Developer Tools Channel Summit 2005 in Athens, Greece.&lt;/p&gt;

&lt;p&gt;As I'm writing this, I've just returned from work, having slept only three hours during the night. I can tell you it is not enough for me. :-)&lt;/p&gt;

&lt;p&gt;The sessions in Athens were very informative, although I had already digested much of the material beforehand. However, the demos especially about Visual Studio 2005 Team Suite were very good, and I learned once again new ways to use the product.&lt;/p&gt;

&lt;p&gt;I also snapped some nice pictures during the breaks, maybe I have a chance to upload them at sometime to this site.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2005 16:58:55 GMT</pubDate>
      <guid>33b2b5a8-5738-4313-92ea-13d0262d3653</guid>
    </item>
    <item>
      <title>Automatic workstation reboots are not always good</title>
      <link>http://blogs.msdn.com/tim_rains/archive/2004/11/15/257877.aspx</link>
      <description>&lt;p&gt;It happened to me again: when I snap my monitor on in the morning, I don't see my desktop, but instead I see a Windows XP login screen.&lt;/p&gt;

&lt;p&gt;No, my computer didn't reboot because it crashed, or because the lights went out. Instead, it rebooted because Windows Automatic Updates (WU) installed security patches that required a reboot.&lt;/p&gt;

&lt;p&gt;Now, security is important, I certainly sign that, but I have when tons of applications open, inclusing VMware with a virtual machine or two powered on, I really don't want my machine to reboot without my consent.&lt;/p&gt;

&lt;p&gt;Yes, I could install Windows Server 2003 to my workstation, but I guess that would be just overkill with today's virtualization technologies. So, the best option left is to tinker with Windows Update's settings.&lt;/p&gt;

&lt;p&gt;Tim Rain has written a helpful blog entry how to do just what I wanted. Since I don't want to change the settings of Automatic Updates but I just want to disable the automatic reboots, this is the link I want to share.&lt;/p&gt;

&lt;p&gt;Proceed with caution, though. You have been warned.&lt;/p&gt;</description>
      <pubDate>Sat, 15 Oct 2005 11:17:09 GMT</pubDate>
      <guid>e4c694b5-5bb0-44fb-80d7-1b614c801386</guid>
    </item>
    <item>
      <title>Microsoft PDC downloads are available</title>
      <link>http://commnet.microsoftpdc.com/content/downloads.aspx</link>
      <description>&lt;p&gt;Microsoft's Professional Developer Conference (PDC) is the place to be if you learn the latest things about Microsoft's developments with unparalled focus on software developers.&lt;/p&gt;

&lt;p&gt;However, not all can attend the conference, but luckily Microsoft is kind enough to let non-attendees download all the session presentations from their web site.&lt;/p&gt;

&lt;p&gt;Now, it is not the same thing to just see the PowerPoint presentation (you miss the demos, for one thing), but it is better than nothing. Enjoy!&lt;/p&gt;</description>
      <pubDate>Thu, 13 Oct 2005 16:15:55 GMT</pubDate>
      <guid>5a0b888e-a6a8-4890-bb06-deb31df64e01</guid>
    </item>
    <item>
      <title>Borland announces Delphi 2006</title>
      <link>http://www.borland.com/us/company/news/press_releases/2005/10_10_05_borland_delphi_and_cpp_builder_2006_deliver_key_new_features.html</link>
      <description>&lt;p&gt;Borland has today announced its latest versions of the familiar Delphi development environment, Delphi 2006.&lt;/p&gt;

&lt;p&gt;Actually, it is not just Delphi anymore, as both C# and C++ are integrated. As said in the press release:&lt;/p&gt;

&lt;pre&gt;
"Delphi 2006, C++Builder 2006, and C#Builder 2006 are now offered together as part of
Borland Developer Studio - Borland's multi-language developer environment for
Microsoft Windows and .NET applications."
&lt;/pre&gt;

&lt;p&gt;It will be interesting to see how succesful this version will be commercially. The Helsinki launch event date has already been set, but location is still under consideration.&lt;/p&gt;</description>
      <pubDate>Mon, 10 Oct 2005 14:34:12 GMT</pubDate>
      <guid>3dcaf382-2576-42ef-9981-ceac61b42c59</guid>
    </item>
    <item>
      <title>Visual Studio .NET Developer stops</title>
      <link>http://www.pinpub.com/ME2/Audiences/Load.asp?AudID=9403C3251FC24290962BA546BE758FBD</link>
      <description>&lt;p&gt;I received an e-mail from the editor of Pinnacle's Visual Studio .NET Developer magazine, and unfortunately it was a mail that I didn't expect to receive.&lt;/p&gt;

&lt;p&gt;Shortly put, the magazine is going to be stopped soon. It might be the October issue will be the last one, but I'm not exactly sure.&lt;/p&gt;

&lt;p&gt;I liked the magazine, but maybe it just didn't generate enough revenue.&lt;/p&gt;</description>
      <pubDate>Thu, 06 Oct 2005 14:51:05 GMT</pubDate>
      <guid>d0fc64df-866e-4223-8ed1-8ad2237cbcb6</guid>
    </item>
    <item>
      <title>Windows Workflow Foundation</title>
      <link>http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/WWFIntro.asp</link>
      <description>&lt;p&gt;I learned today about this new thing that will be part of Microsoft's Vista operating system: "Windows Workflow Foundation".&lt;/p&gt;

&lt;p&gt;Again, MSDN has lots of good material about this, but how did this pop up so suddenly? No rumors even in the MVP Coffeehouse?&lt;/p&gt;

&lt;p&gt;Okay, I guess you can't know everything that goes into an operating system nowadays. But since workflows and their optimization have always interested me, WWF interests me quite a bit.&lt;/p&gt;

&lt;p&gt;I will need to investigate what it had to offer for developers and for Vista users. I'll report what I will find here, so stay tuned.&lt;/p&gt;</description>
      <pubDate>Tue, 04 Oct 2005 15:55:47 GMT</pubDate>
      <guid>182db8f2-c12f-4ea5-8f6c-48dfab4e2920</guid>
    </item>
    <item>
      <title>A public Delphi roadmap</title>
      <link>http://bdn.borland.com/article/0,1410,33346,00.html</link>
      <description>&lt;p&gt;Maybe, just maybe, Borland is learning to be more open in their development tool roadmaps.&lt;/p&gt;

&lt;p&gt;Naturally, the company has had their internal roadmaps that look aheads at least five years, but those plans have stayed strictly behind closed doors, and even not partners have had the chance to see them.&lt;/p&gt;

&lt;p&gt;But now, maybe because of pressure from both Microsoft and customers, at least Delphi roadmaps are becoming public. BDN has an audio replay, and also several blogs reveal more information. Check them out. I'm waiting for the Highlander release, as I enjoy .NET 2.0.&lt;/p&gt;</description>
      <pubDate>Wed, 28 Sep 2005 14:55:05 GMT</pubDate>
      <guid>2ee564e1-a6bf-4fe6-b925-283d52b4e6de</guid>
    </item>
    <item>
      <title>Microsoft LINQ and C# 3.0</title>
      <link>http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp</link>
      <description>&lt;p&gt;While I'm writing this, Microsoft's &lt;a href="http://msdn.microsoft.com/events/pdc/"&gt;PDC05&lt;/a&gt; has just ended. Sadly, I couldn't attend the event, but still lots of interesting information is flowing my way.&lt;/p&gt;

&lt;p&gt;The most buzz seems to related to the things C# 3.0 and the new LINQ project has to offer. There's a very interesting MSDN article about this written by Don Box and Anders Hejlsberg.&lt;/p&gt;

&lt;p&gt;The LINQ project is about integraring SQL like data manipulation statements with normal programming language code, such as C#. This would really be a step forward, and I would love to see it live. Similar things are planned for &lt;a href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/vb9overview.asp"&gt;Visual Basic 9.0&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 26 Sep 2005 14:32:04 GMT</pubDate>
      <guid>2819b915-0f94-456a-a48c-7975b516b211</guid>
    </item>
    <item>
      <title>The case of the uninterested attitude</title>
      <link>
      </link>
      <description>&lt;p&gt;Earlier this week, I had a phone coversion with a developer working for a Finnish company. We discussed about a development problem he had, and then our conversation turned to the future of the product he was using.&lt;/p&gt;

&lt;p&gt;I started to discuss that a new version is coming later this year, but my customer quickly dismissed the topic by saying, "I'm not interested in what will happen in the future, and besides, I'm not making decisions here [at my company]."&lt;/p&gt;

&lt;p&gt;This gentleman's attitude striked me. I understand there are differents kinds of people working in this business, and some are less enthusiastic than others, and just some days we have a bad day. But still.&lt;/p&gt;

&lt;p&gt;I've always thought that software developers are people that are often interested in technology itself, and whenever a new tool comes available, they want to fiddle with it, despite the fact that they would need to continue using the old version.&lt;/p&gt;

&lt;p&gt;Besides, I couldn't imagine myself as *not* getting interested if there's something new coming my way from a tool that I use every day.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Sep 2005 15:07:39 GMT</pubDate>
      <guid>10d2e3b8-22a2-4e47-8b5e-0048e86c3ebe</guid>
    </item>
    <item>
      <title>The USB cable plugs explained</title>
      <link>http://www.usb.org/developers/docs/</link>
      <description>&lt;p&gt;I needed to buy myself an USB extension cable, and I decided to go mail-order. However, to my (bad) luck the shop I planned to use carried tons of different USB extension cables, and I confess I got confused.&lt;/p&gt;

&lt;p&gt;All those A and B connectors and what have you were too much, and nowhere was there a "USB Cables Explained" topic to be found.&lt;/p&gt;

&lt;p&gt;Simple images of the cables would have helped a lot, but they were missing as well. So, I needed to go to the USB.olg web site, and there those cables and plugs were explained.&lt;/p&gt;

&lt;p&gt;And to help you, my reader, and also document the cables types to myself for later reference, here's a simple table:&lt;/p&gt;

&lt;table width="400" border="0"&gt;
    &lt;tr align="center" valign="top"&gt;
      &lt;td&gt;&lt;p&gt;&lt;img src="images/2005_sep_usb_a+mini-b.jpg" alt="USB A and Mini-B plugs" width="200" height="191" hspace="5" /&gt;&lt;/p&gt;
      &lt;p&gt;The USB &amp;quot;A&amp;quot; (top) and&lt;br /&gt;
      &amp;quot;Mini-B&amp;quot; plugs (bottom)&lt;/p&gt;&lt;/td&gt;
      &lt;td&gt;&lt;p&gt;&lt;img src="images/2005_sep_usb_b.jpg" alt="USB B plug" width="200" height="75" hspace="5" /&gt;&lt;/p&gt;
      &lt;p&gt;The USB &amp;quot;B&amp;quot; plug&lt;/p&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;

&lt;p&gt;As you can see, the images are just &lt;i&gt;cheesy&lt;/i&gt; (as David "I" of Borland fame would put it), but luckily this piece of reference will help both you and I in the future.&lt;/p&gt;

&lt;p&gt;PS. This is my first blog post with pictures. I promise better images next time. :-)&lt;/p&gt;</description>
      <pubDate>Sat, 17 Sep 2005 12:24:50 GMT</pubDate>
      <guid>01e13e58-a0cf-4f7f-a84f-f9c8eb8d669c</guid>
    </item>
    <item>
      <title>The case of a bad RAM chip and how I made friends with WinMemDiag</title>
      <link>http://oca.microsoft.com/en/windiag.asp</link>
      <description>&lt;p&gt;Well, my odd computer problems with large files finally became so frequent that I wanted to find the problem source, and not just guess.&lt;/p&gt;

&lt;p&gt;The symptoms were these: when copying large files (200+ MB) from DVD to hard disk or from hard disk to USB drive, the almost constantly became corrupted.&lt;/p&gt;

&lt;p&gt;However, for example .ZIP files have an internal CRC checksum, and on some occasions, large files were fine, and corrupted on other occasions.&lt;/p&gt;

&lt;p&gt;I had long suspected my hard disk, but then I started doing plain-old file compares ("fc.exe /b" on the command line), and that revealed differencies in files, but every time at different addresses!&lt;/p&gt;

&lt;p&gt;That made me think about my RAM (DIMM) chips, which I have four, at 512 MB each. I wanted to download a simple utility to test the chips, and to my surpirse I found that Microsoft has written one! It is named "Windows Memory Diagnostic" or "WinDiag" or "WinMemDiag". (Or just WMD, but that sounds scary.)&lt;/p&gt;

&lt;p&gt;Now, this little utility proved to be a gem. It allows you to create book disk or a bootable CD-ROM (through an .ISO image), and once you boot your PC with the disk or CD, it starts to inspect your RAM.&lt;/p&gt;

&lt;p&gt;It didn't take long until it find problems in one of my RAM chips, and it could even name in which bank it was in. Great tool!&lt;/p&gt;

&lt;p&gt;I took that chip to my PC makes, and got a new one in exchange. It is the first time I've seen a Kingston memory chip fail, but I guess that can happen, too.&lt;/p&gt;

&lt;p&gt;Best of all, now all my odd file corruptions disappeared. So my PC is humming again happily.&lt;/p&gt;</description>
      <pubDate>Tue, 13 Sep 2005 16:15:38 GMT</pubDate>
      <guid>15402db5-5dcc-43b5-8f9b-c0ee9c9ed6e8</guid>
    </item>
    <item>
      <title>Borland product magazine offerings in a flux</title>
      <link>http://www.ibdeveloper.com/</link>
      <description>&lt;p&gt;One of the things that I use to monitor the popularity of a certain tool and/or technique is the number of magazines that write solely about it.&lt;/p&gt;

&lt;p&gt;Now, magazines writing about Borland's products are becoming quite rare. Luckily, some brave souls (in Russia, I believe) have just lately started to publish an InterBase magazine. This is a welcome addition to the current publication space, and important to Borland as well, I would say.&lt;/p&gt;

&lt;p&gt;However, I'm a bit worried about Delphi magazines. Only one is left in England, The Delphi Magazine (TDM) to be exact.&lt;/p&gt;

&lt;p&gt;However, TDM is going to have an announcement in their October issue, so we'll see how it turns out.&lt;/p&gt;</description>
      <pubDate>Sat, 10 Sep 2005 17:03:12 GMT</pubDate>
      <guid>1e0a26af-5b3c-4c0b-8e87-c54928ff22cf</guid>
    </item>
    <item>
      <title>How to launch a web browser in C#</title>
      <link>
      </link>
      <description>&lt;p&gt;I needed a very simple piece of C# code: I wanted to launch a web browser with a given URL when the user clicked a picture in my WinForms application.&lt;/p&gt;

&lt;p&gt;Initially, I didn't seem to find the correct keywords to find a solution with Google, but finally I did.&lt;/p&gt;

&lt;p&gt;So, I'm sharing the code that I learned today:&lt;/p&gt;

&lt;pre&gt;
private static void LaunchWebBrowser()
{
  const string MY_URL = "http://www.saunalahti.fi/janij/";
  // launch web browser
  System.Diagnostics.ProcessStartInfo startInfo =
    new ProcessStartInfo();
  startInfo.UseShellExecute = true;
  startInfo.FileName = MY_URL;
  System.Diagnostics.Process.Start(startInfo);
}
&lt;/pre&gt;

&lt;p&gt;Keywords for this sample code: open web browser, C#, example code, launch web page from Windows application.&lt;/p&gt;</description>
      <pubDate>Sun, 04 Sep 2005 14:20:21 GMT</pubDate>
      <guid>32d22233-f67c-4b7b-9f30-f8a85c8bfdfa</guid>
    </item>
    <item>
      <title>New article in Delphi magazine</title>
      <link>http://www.thedelphimagazine.com/</link>
      <description>&lt;p&gt;My latest Delphi article appeared in the September, 2005 issue of The Delphi Magazine (&lt;a href="http://www.thedelphimagazine.com/conts/conts121.php"&gt;issue 121&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The article was titled "Delphi Meets The Volume Shadow Copy Service" and it demonstrates how to use the about the Volume Shadow Service (VSS) that is part of Windows Server 2003 and Windows XP.&lt;/p&gt;

&lt;p&gt;A reader already contacted me regarding the article, and said: "...I must thank you for such a interesting subject and for the work you are sharing with the readers." He also had a concern, though. It was about backups of files that are written by applications that are not VSS aware.&lt;/p&gt;</description>
      <pubDate>Sun, 04 Sep 2005 08:05:51 GMT</pubDate>
      <guid>1eb6b57d-a5e6-42a0-aca7-37f5a5cd14a2</guid>
    </item>
    <item>
      <title>Headhunters</title>
      <link>
      </link>
      <description>&lt;p&gt;Looks like the IT business is picking up after the summer again. In the past week, I've got two phone calls from companies trying to hire me.&lt;/p&gt;

&lt;p&gt;That's all well of course, and I would guess the Microsoft MVP award has something to do with it. No complaints, really.&lt;/p&gt;</description>
      <pubDate>Fri, 02 Sep 2005 16:43:35 GMT</pubDate>
      <guid>7e7d2c3b-a370-424e-aa0c-874e11314fa7</guid>
    </item>
    <item>
      <title>The-Digital-Picture's Canon site</title>
      <link>http://www.the-digital-picture.com/</link>
      <description>&lt;p&gt;Last Tuesday, I briefly provided a link to a protography site called The-Digital-Picture.com.&lt;/p&gt;

&lt;p&gt;Having browsed the site a few days now, I decided to make its own blog entry, for the site is good.&lt;/p&gt;

&lt;p&gt;Alhtough the navigation is somewhat obscure and links are difficult to see, there's good content for any serious Canonist. For example there are reviews about lenses and (D)SLR bodies.&lt;/p&gt;

&lt;p&gt;The reviews seem to be quite biased, but other than that, I found many interesting tips and insider info. For example, now I was able to make sure my Canon FTb lenses are indeed from 1973. :-)&lt;/p&gt;</description>
      <pubDate>Sat, 27 Aug 2005 11:01:12 GMT</pubDate>
      <guid>abea3b61-fb3d-4ac9-8326-c78e7acbf283</guid>
    </item>
    <item>
      <title>C# compiler error: Inconsistent accessibility</title>
      <link>http://vijaymukhi.com/documents/books/csadv/chap10.htm</link>
      <description>&lt;p&gt;Late last night, I ran into the following C# compiler error when developing a piece of code with Visual Studio .NET 2005 Beta 2:&lt;/p&gt;

&lt;pre&gt;Inconsistent accessibility: parameter type 'nnn' is less accessible than method 'mmm'.&lt;/pre&gt;

&lt;p&gt;Why did this happen? I wondered a while, as the error message didn't seem to be very clear. But when you read it to the letter, it is.&lt;/p&gt;

&lt;p&gt;That is, this error happens when you have a type that is less accessible (private instead of public, for example) than a method that uses this type as a parameter.&lt;/p&gt;

&lt;p&gt;Say you have a parameter of type MyStruct. Now, the method that has this parameter is marked public. If MyStruct is private, you get the above error. Make MyStruct also public, and the error will go away! An easy fix, and reminds me why one should not write code while too sleepy!&lt;/p&gt;</description>
      <pubDate>Fri, 26 Aug 2005 16:17:09 GMT</pubDate>
      <guid>cee9562c-597f-4c0d-a517-13d456129e89</guid>
    </item>
    <item>
      <title>Canon EOS 5D</title>
      <link>http://www.dpreview.com/articles/canoneos5d/</link>
      <description>&lt;p&gt;Canon is on schedule, as they earlier this week announced the availablity of 12.8 megapixel Canon EOS 5D digital SLR. What's interesting in this camera is that is has a 35 mm equivalent "full-frame" CMOS sensor, where the Field Of View (FOV) is almost 1.0.&lt;/p&gt;

&lt;p&gt;Digital Preview already has a review about this camera.&lt;/p&gt;

&lt;p&gt;Also, if you are interested in a discussion of the Field Of View cropping factor, you can find a very clear one at &lt;a href="http://www.the-digital-picture.com/Canon-Lenses/Field-of-View-Crop-Factor.aspx"&gt;The Digital Picture&lt;/a&gt;. They also use ASP.NET which I consider a plus. :-)&lt;/p&gt;</description>
      <pubDate>Tue, 23 Aug 2005 14:06:36 GMT</pubDate>
      <guid>b96ca73d-cb52-4291-8132-c5fb93e0af60</guid>
    </item>
    <item>
      <title>MSMQ, Web Service and .NET Remoting performance tests</title>
      <link>http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/systemmessperf.asp</link>
      <description>&lt;p&gt;Passing messages between systems is a common requirement in business applications, and considerations often include many transport methods: pure TCP/IP, Web Services, .NET Remoting, MSMQ, and so forth.&lt;/p&gt;

&lt;p&gt;Previously, it has been difficult to compare these different methods precisely, one has just had to rely on investigation of the inner workings of these systems. Performance tests have been rare and usually quite limited.&lt;/p&gt;

&lt;p&gt;Now, MSDN has two articles regarding message passing performance, &lt;a href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/systemmessperf.asp"&gt;one&lt;/a&gt; for Microsoft Message Queue (MSMQ), and &lt;a href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/asmxremotesperf.asp"&gt;another&lt;/a&gt; for ASP.NET Web Services, Enterprise Services and .NET Remoting.&lt;/p&gt;

&lt;p&gt;I find these articles a very good performance test. I'm sure you will, too.&lt;/p&gt;</description>
      <pubDate>Sun, 21 Aug 2005 14:20:18 GMT</pubDate>
      <guid>a2a24d3d-1ce7-46e0-b0dd-d99ef710ea7b</guid>
    </item>
    <item>
      <title>Self-published books from Lulu</title>
      <link>http://www.lulu.com/services/</link>
      <description>&lt;p&gt;Publishing articles and books interests me no doubt, and thus I want to keep up with what happens in the field of publishing.&lt;/p&gt;

&lt;p&gt;My newest founding is a self-publishing service called Lulu. The company claims to take your manuscript, and print the books according to demand.&lt;/p&gt;

&lt;p&gt;Sounds very reasonable to me, for it is sometimes difficult to estimate the need for certain books, especially if they are advanced or localized.&lt;/p&gt;</description>
      <pubDate>Sun, 21 Aug 2005 06:01:11 GMT</pubDate>
      <guid>9895b3cc-88e7-496e-9544-3e53a49ce709</guid>
    </item>
    <item>
      <title>So what is Monad?</title>
      <link>http://winfx.msdn.microsoft.com/library/?url=/library/en-us/monad_gettingstarted/html/e72d9b1b-c1c0-41f0-83e7-d230ff3f9144.asp?frame=true</link>
      <description>&lt;p&gt;Monad is the codename for Microsoft's new command line shell, Microsoft Shell: MSH.&lt;/p&gt;

&lt;p&gt;I had the chance to download the MSH beta 1 by reading the instructions &lt;a href="http://blogs.msdn.com/karstenj/archive/2004/06/25/166334.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;MSH is an interesting thing. It is a different kind of shell, and quite unlike CMD.EXE (the normal command line shell for Windows). Yes, both process input and display output on the screen, but unlike CMD, MSH is not file-based. Instead, MSH is based on .NET objects. It passes these objects around.&lt;/p&gt;

&lt;p&gt;I think this is an interesting concept. However, it takes time to get adjusted to this way of thinking, and at this point MSH is still quite arcane to use. For example, and easy way to load different assemblies (.DLLs) is missing.&lt;/p&gt;

&lt;p&gt;If you are interested in the language that MSH uses, check out Arul Kumaravel's &lt;a href="http://blogs.msdn.com/arulk/archive/2005/02/24/379732.aspx"&gt;post&lt;/a&gt;. The syntax is something like C with bits from Perl combined.&lt;/p&gt;</description>
      <pubDate>Thu, 18 Aug 2005 03:40:32 GMT</pubDate>
      <guid>df770b2b-0edc-4c3b-bf51-ad1d71c6a597</guid>
    </item>
    <item>
      <title>Three books and more from Microsoft</title>
      <link>https://shop.ecompanystore.com/microsoft/MIC_Login.asp</link>
      <description>&lt;p&gt;Thanks to Microsoft and the MVP award (really appreciated!), I had one of many things a $150 gift card to their company store, where one can buy products for a minimal fee.&lt;/p&gt;

&lt;p&gt;Since I guess I already have all the software I need given my MSDN subscription, I chose to order three books and three shirts/wearables. They came from USA on two days -- very fast indeed.&lt;/p&gt;

&lt;p&gt;The books were the most interesting contents of the package to me, so I wanted to share what I "bought":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steve McConnell: Code Complete 2nd Edition&lt;/li&gt;
&lt;li&gt;Tom Archer/Andrew Whitechapel: Inside C# 2nd Edition&lt;/li&gt;
&lt;li&gt;Dino Esposito: Applied XML Programming for .NET&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of these, "Code Complete" interests me the most. I'll report when I have read these books. It might take a while, though. :-)&lt;/p&gt;</description>
      <pubDate>Thu, 11 Aug 2005 15:20:06 GMT</pubDate>
      <guid>6bda9fda-9ec1-4e5a-861e-49bd8c98887f</guid>
    </item>
    <item>
      <title>How to repair a corrupted Outlook inbox</title>
      <link>http://support.microsoft.com/default.aspx?scid=kb;en-us;287497</link>
      <description>&lt;p&gt;Yeah, it happened to me: my Outlook 2003 inbox became corrupted once I needed to install a program to my PC and reboot afterwards.&lt;/p&gt;

&lt;p&gt;Okay, I'm not sure if exactly &lt;i&gt;that&lt;/i&gt; caused my inbox to become corrupted, but nonetheless I couldn't see those four or five important mails that were there.&lt;/p&gt;

&lt;p&gt;Yes, I do have a weekly backup routine, but unfortunately that didn't help now, as I had received new mail just few days ago, and so the backup wouldn't help me there (note to self: figure out a better backup solution).&lt;/p&gt;

&lt;p&gt;What did I do to solve the issue, then? After fiddling around with the PST files, I tried to do a search (find) to my inbox. And indeed, that shoved my e-mails! Whoa, data saved. I immediately copied the mails to a safe place.&lt;/p&gt;

&lt;p&gt;But still, my Inbox was corrupted (symptomps being: mails showing, but without a subject, body or sender details, and no chance of deleting/moving/opening/seeing them) and I needed to solve this.&lt;/p&gt;

&lt;p&gt;I created a new .PST file, and moved all the accessible mails to the new file. Then suddenly, Outlook was kind enough to tell me my old PST file has become corrupted.&lt;/p&gt;

&lt;p&gt;I must give credit to the error message: it mentioned a tool named "scanpst.exe" that might be able to help. Great!&lt;/p&gt;

&lt;p&gt;I found this tool in the directory "C:\Program Files\Common Files\System\MSMAPI\1033" (could it be more easily accessible, please?) and ran it. And yes, it fixed my old PST file!&lt;/p&gt;

&lt;p&gt;Next time when this happens, I gotta run this little utility first. Seems like a precious one to me.&lt;/p&gt;</description>
      <pubDate>Sun, 07 Aug 2005 13:46:03 GMT</pubDate>
      <guid>85e11b74-ec7e-4c7c-b71e-8fa2642f06b1</guid>
    </item>
    <item>
      <title>How to enable automatic RSS feed detection in IE 7</title>
      <link>http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx</link>
      <description>&lt;p&gt;I've been playing lately with the Windows Vista (ex Longhorn) Beta 1, which also includes Internet Explorer 7 (IE 7).&lt;/p&gt;

&lt;p&gt;This new browser version has a neat little feature for RSS enabled web sites: a tiny button lights up on the toolbar whenever a site supports RSS feeds.&lt;/p&gt;

&lt;p&gt;The obvious question of course is how does IE 7 find that a site supports RSS. It does this by looking for some metadata inside the HTML document.&lt;/p&gt;

&lt;p&gt;That is, if the HEAD section contains a tag like this, then the button will light up:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;
title=&amp;quot;Jani J&amp;auml;rvinen's Personal Weblog&amp;quot;
href=&amp;quot;http://www.saunalahti.fi/janij/blog/2005.xml&amp;quot;&amp;gt;
&lt;/pre&gt;

&lt;p&gt;The IE development team at Microsoft has also published a simple guide about these LINK tags.&lt;/p&gt;</description>
      <pubDate>Sun, 07 Aug 2005 09:35:09 GMT</pubDate>
      <guid>faac8fbd-3db5-4ce7-a371-40964427ec14</guid>
    </item>
    <item>
      <title>My first article on MSDN -- sort of</title>
      <link>http://www.saunalahti.fi/janij/publications/microsoft.html</link>
      <description>&lt;p&gt;I'm happy to announce that MSDN has just published my first article. It is available &lt;a href="http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnvsdev05/html/vs05e1.asp"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Well, the article is not exactly a new one, but instead a re-print from my May, 2005 article in Visual Studio .NET Developer.&lt;/p&gt;

&lt;p&gt;Nonetheless, it is good to see the article on MSDN. Also, this time I can see direct feedback regarding the article, as there's a feedback graph at the bottom.&lt;/p&gt;</description>
      <pubDate>Wed, 03 Aug 2005 14:51:25 GMT</pubDate>
      <guid>9b7b15af-16aa-4957-b75b-a4a4002bfa77</guid>
    </item>
    <item>
      <title>Delphi article in TDM</title>
      <link>http://www.thedelphimagazine.com/</link>
      <description>&lt;p&gt;The Delphi Magazine (TDM) has published my latest article, titled "Profiling Your Delphi .NET Applications With The CLR Profiler."&lt;/p&gt;

&lt;p&gt;In this article, I'm talking about the free CLR Profiler application from Microsoft, and describing how to use it properly with Delphi.NET applications.&lt;/p&gt;</description>
      <pubDate>Tue, 02 Aug 2005 17:08:04 GMT</pubDate>
      <guid>dfe6c40f-209b-490b-ace7-e4be9bc419ed</guid>
    </item>
    <item>
      <title>Writing a value to a registry key with .NET</title>
      <link>http://msdn2.microsoft.com/library/y935h2zw(en-us,vs.80).aspx</link>
      <description>&lt;p&gt;Sometimes, you need to write to the system registry with .NET, too. Luckily, there's the convenient Microsoft.Win32.RegistryKey class to help you.&lt;/p&gt;

&lt;p&gt;This class has a SetValue method, but if you are not careful how you open the registry key you want to write to, you might get the following error message:&lt;/p&gt;

&lt;pre&gt;
An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll.

Additional information: Cannot write to the registry key.
&lt;/pre&gt;

&lt;p&gt;Why did that happen? It happened because by default, a registry key gets opened with read-only permissions.&lt;/p&gt;

&lt;p&gt;It is easy to overlook the second parameter of the OpenSubKey method. Unless you set the second (default) parameters to true, you will get the above error message.&lt;/p&gt;

&lt;p&gt;The following code will demonstrate the correct way to do it:&lt;/p&gt;

&lt;pre&gt;
Microsoft.Win32.RegistryKey key =
  Registry.CurrentUser.OpenSubKey("Software\\ACME",true);
int myValue = 123;
key.SetValue("My Value",myValue);
key.Close();
&lt;/pre&gt;

&lt;p&gt;Not a complicated example, is it? Just call OpenSubKey the right way, and it will work out okay.&lt;/p&gt;</description>
      <pubDate>Sun, 31 Jul 2005 05:32:55 GMT</pubDate>
      <guid>748b2f6e-3624-41dc-ad9a-dc0d13d2b379</guid>
    </item>
    <item>
      <title>Creating an object instance from a System.Type</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemactivatorclasscreateinstancetopic.asp</link>
      <description>&lt;p&gt;Wouldn't it be convenient if you could dynamically create object instances given an object type? In C#, we don't have class references like Delphi would, but there's an easy remedy.&lt;/p&gt;

&lt;p&gt;Take a look at this piece of code:&lt;/p&gt;

&lt;pre&gt;
private object UniversalClassCreator(System.Type typeToCreate)
{
  System.Reflection.ConstructorInfo ci;
  ci = typeToCreate.GetConstructor(System.Type.EmptyTypes);
  object newObj = ci.Invoke(null);
  return newObj;
}
&lt;/pre&gt;

&lt;p&gt;Okay, that was easy. But do you want to make things still easier? This is as simple as it can possibly get:&lt;/p&gt;

&lt;pre&gt;
object newObj = System.Activator.CreateInstance(typeToCreate);
&lt;/pre&gt;</description>
      <pubDate>Sat, 30 Jul 2005 06:57:05 GMT</pubDate>
      <guid>f6cb1b20-8114-4df3-b6eb-faa73c7e03f1</guid>
    </item>
    <item>
      <title>Detecting a .NET assembly version</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemreflectionassemblynameclasstopic.asp</link>
      <description>&lt;p&gt;Sometimes, you need to know the version of a given .NET assembly. For instance, if your application loads a assembly complied into DLL, you might wish to check its version before starting to use it.&lt;/p&gt;

&lt;p&gt;Now, to set the version of an assembly, you would use the System.Reflection.AssemblyVersionAttribute class like this:&lt;/p&gt;

&lt;pre&gt;
[assembly: AssemblyVersion("0.9.*")]
&lt;/pre&gt;

&lt;p&gt;Then, in the assembly itself (or another, just as you choose) you can use the following code to return a version string:&lt;/p&gt;

&lt;pre&gt;
public static string GetEngineVersion() 
{
  System.Reflection.Assembly thisDLL =
    Assembly.GetExecutingAssembly();
  return thisDLL.GetName().Version.ToString();
}
&lt;/pre&gt;

&lt;p&gt;So, the key is to get the currently executing assembly using the System.Reflection.Assembly class, and then use the GetName() method to get the System.Reflection.AssemblyName class. This class has a Version property, which is all you need.&lt;/p&gt;</description>
      <pubDate>Sat, 30 Jul 2005 05:56:21 GMT</pubDate>
      <guid>bd87ac64-5975-4be9-a55e-58c93cb348cf</guid>
    </item>
    <item>
      <title>Manipulating the default columns of a WinForms DataGrid</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsdatagridclasstablestylestopic.asp</link>
      <description>&lt;p&gt;Assume you have a .NET Windows Forms application and you want to display the results of a SQL query on a data grid (System.Windows.Forms.DataGrid). This is easy with C# or Delphi once you know how to use those connection, command and data adapter components. But, soon you will want to edit the columns of the data grid. Unlike in the ASP.NET world, there isn't a Columns property that you could simply modify. What to do?&lt;/p&gt;

&lt;p&gt;Initially, a data grid doesn't contain any columns. But once you assign a data source to the DataSource property of the grid, the default columns (based on the data source) get generated. How would you change for example the widths (or other properties) of these columns?&lt;/p&gt;

&lt;p&gt;The solution can be found by examining the data grid table styles. The WinForms DataGrid component has a public property called TableStyles, which is a collection of assigned styles to the grid. The objects in the collection in turn have a GridColumnStyles property, which is again a collection object. This is how you access the column objects.&lt;/p&gt;

&lt;p&gt;But take note. Unless you create a table style manually to your grid, you cannot access the default columns. To create this style, you can either write code, or use the table style editor available in both Visual Studio .NET and Delphi.&lt;/p&gt;

&lt;p&gt;When you create a default style for the grid, you don't need to generate any columns -- these will be generated automatically when you assign a data source to the grid ("bind the grid"). After binding the grid to a data source, you could simply set the column widths with code like this:&lt;/p&gt;

&lt;pre&gt;DefaultDataGridTableStyle.GridColumnStyles[0].Width := 65;   { customer no }
DefaultDataGridTableStyle.GridColumnStyles[2].Width := 300;  { name }
DefaultDataGridTableStyle.GridColumnStyles[3].Width := 70;   { city }&lt;/pre&gt;

&lt;p&gt;Here, DefaultDataGridTableStyle is a class of type System.Windows.Forms.DataGridTableStyle. It is generated something like this when you use the designer:&lt;/p&gt;

&lt;pre&gt;Self.DefaultDataGridTableStyle.DataGrid := Self.DataGrid1;
Self.DefaultDataGridTableStyle.HeaderForeColor := System.Drawing.SystemColors.ControlText;
Self.DefaultDataGridTableStyle.MappingName := 'Customers';
Self.DefaultDataGridTableStyle.PreferredColumnWidth := 60;&lt;/pre&gt;

&lt;p&gt;Note the setting of the MappingName property. This is an important property, and must match the data table name of the underlying DataSet. For a DataSet, the DataMember property of the grid is the name of the internal DataTable you want to show. However if you bind the grid to a DataTable or a DataView, the DataMember property is an empty string. Even so, the MappingName property of the table style must still match the original name of the table inside the DataSet. Otherwise, the above code won't work.&lt;/p&gt;</description>
      <pubDate>Sun, 24 Jul 2005 07:07:41 GMT</pubDate>
      <guid>f2226227-3662-4918-8f83-c04a24758654</guid>
    </item>
    <item>
      <title>Longhorn has a name</title>
      <link>http://www.microsoft.com/windowsvista/default.mspx</link>
      <description>&lt;p&gt;First it was eWeek, and now Microsoft has finally announced the new name of the forthcoming Windows version: it is called Windows Vista.&lt;/p&gt;

&lt;p&gt;It is a good name in my opinion. But then again, it could still change. But this is what we have today, and formely it was codename "Longhorn".&lt;/p&gt;</description>
      <pubDate>Fri, 22 Jul 2005 17:26:42 GMT</pubDate>
      <guid>2f44bdc7-eeac-4d5c-990c-439497e157d9</guid>
    </item>
    <item>
      <title>Some traffic signs</title>
      <link>http://www.uwm.edu/Dept/CUTS/signs/</link>
      <description>&lt;p&gt;Sometimes, traffic signs can be very amusing. They are there to serve a duty, but sometimes I wonder who decided to put the signs where they are.&lt;/p&gt;

&lt;p&gt;University of Wisconsin has some for you. And if you are a Finn, then you might find Matti Gr&amp;ouml;&amp;ouml;nroos' web site &lt;a href="http://www.kolumbus.fi/matti.gronroos/Galleries/liikenne/index.htm"&gt;entertaining&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 22 Jul 2005 14:06:51 GMT</pubDate>
      <guid>3d9cbf46-e3ea-4e42-8e8b-6558cb8d1c90</guid>
    </item>
    <item>
      <title>Visual Studio code editor tips</title>
      <link>http://msdn.microsoft.com/msdntv/transcripts/20030327VSNETABTranscript.aspx</link>
      <description>&lt;p&gt;As I've been playing with Visual Studio .NET lately, I'm interested in learning better those keyboard commands I'm used to with Delphi. For example, to delete a line in Delphi, you would press Ctrl+Y. But in Visual Studio the same is Ctrl+Shift+L.&lt;/p&gt;

&lt;p&gt;Naturally, there are also other tips when it comes to the (VS) code editor, and there's a short text about those in MSDN. It is a transcript of a video, but it is lot faster to find the tips from the text than from the video.&lt;/p&gt;

&lt;p&gt;If you are instead interested in a full reference, then one is available on &lt;a href="http://msdn2.microsoft.com/library/xte2hh6a(en-us,vs.80).aspx"&gt;MSDN beta&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 16 Jul 2005 14:51:34 GMT</pubDate>
      <guid>d4ed5a51-100e-43e9-98a6-b44ffb4e6af2</guid>
    </item>
    <item>
      <title>Finally some e-mail authentication coming?</title>
      <link>http://www.eweek.com/article2/0,1759,1835589,00.asp?kc=EWRSS03119TX1K0000594</link>
      <description>&lt;p&gt;Seems like Yahoo's DomainKeys has gotten a highlight as the spec has been submitted to IETF.&lt;/p&gt;

&lt;p&gt;eWeek has a report about this. It was maybe about 2-3 years ago when I briefly studied DomainKeys, and to me it looked fine. Now it is very good to hear that Microsoft is also backing this standard.&lt;/p&gt;

&lt;p&gt;It could well be that we are getting some progress in e-mail authentication now.&lt;/p&gt;</description>
      <pubDate>Mon, 11 Jul 2005 15:39:28 GMT</pubDate>
      <guid>feec9c4a-ccb5-454f-be2d-f181ddd9e86a</guid>
    </item>
    <item>
      <title>Borland's Fuller resigns from CEO post</title>
      <link>http://www.santacruzsentinel.com/archive/2005/July/08/biz/stories/01biz.htm</link>
      <description>&lt;p&gt;Not that many newspieces are available as I'm writing this, but Santa Cruz Sentinel has one at least.&lt;/p&gt;

&lt;p&gt;The interesting thing is that "Fuller will continue to serve on Borland's board of directors." But how long, they question is.&lt;/p&gt;

&lt;p&gt;At this time, it is too early to predict anything except further cost savings. What that means, time will tell.&lt;/p&gt;

&lt;p&gt;Thanks to JP for finding out about this first and letting me know.&lt;/p&gt;</description>
      <pubDate>Fri, 08 Jul 2005 17:17:18 GMT</pubDate>
      <guid>e49d29ea-8313-4488-9455-16cc0362359a</guid>
    </item>
    <item>
      <title>Longhorn and RSS</title>
      <link>http://channel9.msdn.com/ShowPost.aspx?PostID=80533</link>
      <description>&lt;p&gt;Bits and pieces of information flow to us from the Longhorn development team, and it seems RSS is one of those technologies that gets an elevation in that release.&lt;/p&gt;

&lt;p&gt;Channel 9 has a &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=80533"&gt;blog post&lt;/a&gt; regarding RSS support in the platform, and they have also made a one-hour (unedited) &lt;a href="http://download.microsoft.com/download/c/7/d/c7d54e7c-540e-4bcd-ac52-496017f1f594/rss_longhorn_platform_2005.wmv"&gt;video&lt;/a&gt; regarding it.&lt;/p&gt;

&lt;p&gt;The ideas that the team has put into the operating system and IE 7 are good, but in my opinion, they are not revolutionary, instead evolutionary. But nonetheless, that is progress.&lt;/p&gt;

&lt;p&gt;Oh, if you want to save time with the video, and are just interested in the demos, look at these time periods first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;12:00 - 15:00: Intro&lt;/li&gt;
&lt;li&gt;23:00 - 27:00: IE 7&lt;/li&gt;
&lt;li&gt;32:00 - 37:00: Outlook&lt;/li&gt;
&lt;li&gt;50:00 - 53:00: Extensions&lt;/li&gt;
&lt;/ul&gt;</description>
      <pubDate>Tue, 05 Jul 2005 08:55:07 GMT</pubDate>
      <guid>8f453c15-bf8f-4e74-9ce2-aa36b5bd1d47</guid>
    </item>
    <item>
      <title>A handy .NET color reference</title>
      <link>http://www.opinionatedgeek.com/DotNet/Tools/Colors/default.aspx</link>
      <description>&lt;p&gt;I needed to do some GDI+ drawing with C#, and needed to specify colors. The System.Drawing.Color structure has many ready-selected colors which can be accessed by name.&lt;/p&gt;

&lt;p&gt;But the problem was, how do you know how the colors "Chartreuse" or "Honeydew" actually look like?&lt;/p&gt;

&lt;p&gt;The SDK documentation doesn't have a color table, but luckily it was easy to find such a reference on the 'net. OpinionatedGeek has it.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Jul 2005 13:21:11 GMT</pubDate>
      <guid>b6a6c6dc-bc3a-4014-9173-08b573db8842</guid>
    </item>
    <item>
      <title>Enterprise Development Reference Architecture or EDRA</title>
      <link>http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=9c29a963-594e-4e7a-9c45-576198df8058</link>
      <description>&lt;p&gt;The so-called "enterprise" applications are hip nowadays. To build them properly, you need to be aware of the known obstacles, and preferably use time-tested patterns to solve the problems.&lt;/p&gt;

&lt;p&gt;Microsoft is active in defining and developing solution patterns for .NET application, and one of the fruits of this work is called the "Enterprise Development Reference Architecture", or EDRA for short. The codename for this project is ShadowFx.&lt;/p&gt;

&lt;p&gt;EDRA has its own GotDotNet &lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=9c29a963-594e-4e7a-9c45-576198df8058"&gt;workspace&lt;/a&gt;, from which you can download all the releases (meaning sample code and documentation).&lt;/p&gt;

&lt;p&gt;For instance, you can download PowerPoint files to give you an overview of the architecture, and the 500 page PDF file describing it in full. Note that the PDF file can be a bit difficult to find, but you can use &lt;a href="http://www.gotdotnet.com/workspaces/releases/checkfordownload.aspx?id=9c29a963-594e-4e7a-9c45-576198df8058&amp;ReleaseId=feba9d7f-1e64-47c4-87ea-8cd849a14468"&gt;this direct link&lt;/a&gt; to get to it. And no, the PDF isn't part of the 5 meg .MSI file, even though it is useful otherwise. Note that you will need the .NET 1.1 SDK installed to install the .MSI file. This bite me at least.&lt;/p&gt;</description>
      <pubDate>Fri, 24 Jun 2005 08:16:42 GMT</pubDate>
      <guid>bf834c37-6e92-41d0-9d6d-2d3888274816</guid>
    </item>
    <item>
      <title>Microsoft's Learn 247 site</title>
      <link>http://www.learn247.net/</link>
      <description>&lt;p&gt;To promote .NET development and real-world usage, Microsoft has developed several (fun) technology demonstrations applications. These applications demonstrate the latest technologies, and can be found at the Learn 247.net web site.&lt;/p&gt;

&lt;p&gt;I have the WeFly 247 .NET DVD in my hands, but haven't yet got a chance to look at it much. However, it seems interesting.&lt;/p&gt;

&lt;p&gt;Go check out the site yourself. You can also download good presentations and source code. For example, go to the &lt;a href="http://www.learn247.net/werock247/TheTechnology/netcoretech.htm"&gt;weRock247.NET site&lt;/a&gt;, and browse for technology.&lt;/p&gt;</description>
      <pubDate>Fri, 24 Jun 2005 07:28:10 GMT</pubDate>
      <guid>46a9fe8a-6342-4ed9-a954-affcefbabf22</guid>
    </item>
    <item>
      <title>Array range checking in .NET</title>
      <link>http://distribucon.com/blog/archive/2005/06/13/583.aspx</link>
      <description>&lt;p&gt;Sometimes, people ask me how range checking in .NET works. And also, if range checking is different in Delphi for .NET and C#.&lt;/p&gt;

&lt;p&gt;Indeed, there are slight differences, but they really don't matter much. A demonstration is in order here. Let's assume a simple application that creates and array with two elements, and then tries to access the third and non-existing element.&lt;/p&gt;

&lt;p&gt;For instance like this:&lt;/p&gt;

&lt;pre&gt;
Delphi code:
------------
SetLength(Arr,2);
Arr[1] := 123;
Arr[2] := 234;
Arr[3] := 345;

C# code:
--------
int[] ints = new int[2];
ints[0] = 123;
ints[1] = 234;
ints[2] = 345;
&lt;/pre&gt;

&lt;p&gt;And the results in MSIL (from the C# compiler):&lt;/p&gt;

&lt;pre&gt;
IL_0001: newarr [mscorlib]System.Int32
IL_0006:  stloc.0
IL_0007:  ldloc.0
IL_0008:  ldc.i4.0
IL_0009:  ldc.i4.s 123
IL_000b:  stelem.i4
IL_000c:  ldloc.0
IL_000d:  ldc.i4.1
IL_000e:  ldc.i4 0xea
IL_0013:  stelem.i4
IL_0014:  ldloc.0
IL_0015:  ldc.i4.2
IL_0016:  ldc.i4 0x159
IL_001b:  stelem.i4
&lt;/pre&gt;

&lt;p&gt;When this code is run, the application raises an exception of type System.IndexOutOfRangeException with the message "Index was outside the bounds of the array.".&lt;/p&gt;

&lt;p&gt;In .NET, there isn't much you could do to disable array bounds checking, since setting an array element is done my the "stelem" MSIL instruction. And according to the SDK docs, the instruction always raises an exception if the index is out of bounds.&lt;/p&gt;

&lt;p&gt;Surely, C# has the "checked" and "unchecked" keywords, but these only help in overflows in integer arithmetic, not when accessing arrays. So, it seems you just cannot disable array bound checking.&lt;/p&gt;

&lt;p&gt;But in Delphi, we have the {$R} compiler directive (or {$RANGECHECKS} if you with to use the long name). Can this directive be used to control range checking? Unfortunately, the answer is "No."&lt;/p&gt;

&lt;p&gt;A simple test is in order:&lt;/p&gt;

&lt;pre&gt;
{$R-}
  SetLength(Arr,2);
  Arr[1] := 123;
  Arr[2] := 234;
  Arr[3] := 345;
{$R+}
&lt;/pre&gt;

&lt;p&gt;Indeed, we still get the same IndexOutOfRangeException error message. Turning the checks on instead causes the error message to change:&lt;/p&gt;

&lt;pre&gt;
{$R+}
  SetLength(Arr,2);
  Arr[1] := 123;
  Arr[2] := 234;
  Arr[3] := 345;
{$R-}
&lt;/pre&gt;

&lt;p&gt;Now the error message simply becomes this: "Borland.Delphi.ERangeError: Range check error".&lt;/p&gt;

&lt;p&gt;So, changing the range checking option in Delphi simply changes the type of the exception thrown. But just like in C#, one cannot circumvent the checks. This could be bad for performance, but very good for delivering quality code. I always suggest people compiling their code with range checks on in Win32.&lt;/p&gt;

&lt;p&gt;If you don't believe me and are using Delphi to develop Win32 applications, check out &lt;strong&gt;Dan Miser's&lt;/strong&gt; post about Delphi's range checking in &lt;a href="http://distribucon.com/blog/archive/2005/06/13/583.aspx"&gt;his blog&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 21 Jun 2005 04:20:52 GMT</pubDate>
      <guid>7877700a-ddca-4a95-bdda-6a40ec4af77b</guid>
    </item>
    <item>
      <title>Connection strings, aargh!</title>
      <link>
      </link>
      <description>&lt;p&gt;Continuing yesterday's rant: if there's one thing I would fix in .NET, it is the deployment phase. That is, if I have an assembly that references others, why on earth doesn't the default error message show which DLL it is missing?&lt;/p&gt;

&lt;p&gt;Today, I tried to fix a ASP.NET web application that couldn't connect to a database. The thing worked on my development PC, but not on the production server.&lt;/p&gt;

&lt;p&gt;Yes, I figured out early that this is a deployment issue, but I just couldn't figure what I was missing. And naturally, the error message was very helpful indeed: "The specified cast is not valid." Great!&lt;/p&gt;

&lt;p&gt;Finally, after wasting more than an hour with the issue, I checked my connection strings. And there the problem was! Again! Why do I need to specify the assembly version in a connection string? I want to use the latest and nothing else! Damn.&lt;/p&gt;</description>
      <pubDate>Mon, 20 Jun 2005 16:56:54 GMT</pubDate>
      <guid>24e0d45d-6152-41cf-a090-67675bff9779</guid>
    </item>
    <item>
      <title>Deploying Delphi applications</title>
      <link>http://info.borland.com/04/delphi2005/readme_upd1.html</link>
      <description>&lt;p&gt;There are now three updates available for Delphi 2005, and I chose to install them all. So far, I haven't installed any updates because all has been working well without.&lt;/p&gt;

&lt;p&gt;To get to the latest Update 3, you will fist need to install the cumulative Update 2, and then Update 3 on top of that.&lt;/p&gt;

&lt;p&gt;Having done that I wondered why my .NET applications wouldn't start anymore. As the default error messages given by .NET applications aren't very helpful ("Application has generated an exception that could not be handled"), I spent a while figuring why this happened. At last I figured out it must be a DLL problem (I tend to copy the Borland.Delphi.* DLLs to the GAC (Global Assembly Cache).&lt;/p&gt;

&lt;p&gt;And indeed, there the problem was. I had read through the Update 3 ReadMe file, but I should have known that this file didn't mention the changes in the previous updates. And, it said in the ReadMe of Update 1 that the DLL versions had changed.&lt;/p&gt;

&lt;p&gt;So I checked the GAC, and Delphi 2005 without any updates required the version 9.0.1761.24408 of the Delphi assemblies (like Borland.Delphi.dll) and since Update 1, the version had changed to 9.0.1882.30496.&lt;/p&gt;

&lt;p&gt;Luckily, GAC supports multiple versions, and so the problem was solved. Later, once I have all my apps recompiled, I could get rid of the old DLLs. Actually I could do that even sooner, but I don't have the time to test for compatibility.&lt;/p&gt;</description>
      <pubDate>Sun, 19 Jun 2005 14:36:49 GMT</pubDate>
      <guid>715ba51c-82c7-435d-9d53-6ce8315a3305</guid>
    </item>
    <item>
      <title>Aurora for XAML design</title>
      <link>http://www.mobiform.com/Eng/aurora.html</link>
      <description>&lt;p&gt;Mobiform Software Ltd. has developed an application called Aurora. It is a tool for developing XAML forms and graphics.&lt;/p&gt;

&lt;p&gt;As the XAML graphics engine "Avalon" is still at beta stage, you cannot expect Aurora to be a final released version either, but the beta is a free download.&lt;/p&gt;

&lt;p&gt;As Glenn Frey put it, "the heat is on", it seems.&lt;/p&gt;</description>
      <pubDate>Sun, 19 Jun 2005 10:19:50 GMT</pubDate>
      <guid>9f271c4f-4c2d-4b66-ab58-3ab532729b0a</guid>
    </item>
    <item>
      <title>What's breaking in .NET 2.0</title>
      <link>http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnnetdep/html/listofbreakingchanges.asp</link>
      <description>&lt;p&gt;The production release of .NET 2.0 is nearer day by day, and thus it is now a good time to prepare for breaking changes.&lt;/p&gt;

&lt;p&gt;There's a public document available that lists all these changes and more. To my surpirse, the list of breaking changes is very small, and for my own applications I can say that I'm probably not affected.&lt;/p&gt;</description>
      <pubDate>Sat, 18 Jun 2005 12:51:55 GMT</pubDate>
      <guid>b47672f2-4cc8-436f-bb11-959daaa796c2</guid>
    </item>
    <item>
      <title>Threat Modeling Web Applications</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/tmwa.asp</link>
      <description>&lt;p&gt;Web applications are often attacked, and unless you are careful, your ASP.NET application might be hacked despite the defensive barriers built into the framework.&lt;/p&gt;

&lt;p&gt;MSDN has a good article about how to find potential security threats in your application and how to solve them with a better architecture.&lt;/p&gt;

&lt;p&gt;The article is part of the Microsoft Patterns &amp; Practices Library. Every web developer should be aware of these threats.&lt;/p&gt;</description>
      <pubDate>Sat, 18 Jun 2005 09:57:14 GMT</pubDate>
      <guid>866e273b-29ed-4098-96c1-f93772d4dd77</guid>
    </item>
    <item>
      <title>WinForms apps and Windows XP visual styles</title>
      <link>http://www.codeproject.com/csharp/dotnetvisualstyles.asp</link>
      <description>&lt;p&gt;I wanted to beef up some of my Delphi and C# application to take advantage of the Windows XP visual styles (the "Luna look"). I recalled from old that one should write an XML based manifest file, and I also found good info from 2002 &lt;a href="http://www.codeproject.com/csharp/dotnetvisualstyles.asp"&gt;how to do just that&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Luckily, there's an easier way as well: the Application.EnableVisualStyles method. There are many reports on the 'net that this method doesn't work properly, but I got it working easily -- until one point in time. That is, suddenly the visual styles didn't work at all. It seems to me that the method works well on very small applications, but not on larger ones.&lt;/p&gt;

&lt;p&gt;However, there is an easy fix for this: just call the DoEvents method of the same class. This should fix the problems you have. Maybe in the final version of .NET 2.0 you don't need to do even that!&lt;/p&gt;</description>
      <pubDate>Fri, 17 Jun 2005 13:31:53 GMT</pubDate>
      <guid>3b93dd66-69e9-40a3-bb1c-508f7ac8d6ca</guid>
    </item>
    <item>
      <title>Linux article in Prosessori</title>
      <link>http://www.prosessori.fi/</link>
      <description>&lt;p&gt;I noticed today that the summer issue of the Finnish Prosessori magazine has my embedded Linux article.&lt;/p&gt;

&lt;p&gt;If you are interested in embedded Linux distributions and their development tools, grab your copy of the magazine. I must say I'm impressed by some of the dev tools that are available.&lt;/p&gt;</description>
      <pubDate>Tue, 14 Jun 2005 17:52:32 GMT</pubDate>
      <guid>f0abe095-818f-4dec-b87d-804259398485</guid>
    </item>
    <item>
      <title>Two new articles with C#</title>
      <link>http://www.pinpub.com/ME2/Audiences/Default.asp</link>
      <description>&lt;p&gt;Two of my recent C# articles have been published. The first one is "Understanding the PropertyGrid Component", which appeared in the June 2005 issue of the Visual Studio .NET Developer from Pinnacle.&lt;/p&gt;

&lt;p&gt;The second article is a Finnish freebie I sent to &lt;a href="http://www.codezone.fi/"&gt;Codezone Finland&lt;/a&gt; (hosted by Microsoft). It is titled "Käteviä pikkurutiineja C#:lle ja .NET 1.1:lle". This is actually my first post to Codezone.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sat, 11 Jun 2005 16:47:27 GMT</pubDate>
      <guid>7c89a32a-86a6-4398-a536-353154dff054</guid>
    </item>
    <item>
      <title>Compiling Avalon XAML files</title>
      <link>http://www.microsoft.com/downloads/details.aspx?FamilyID=c8f904e1-b4ca-402b-accf-aaa2bd60da74&amp;displayLang=en</link>
      <description>&lt;p&gt;Microsoft's Avalon graphics engine interests me, since I'm looking a way to get nice graphical UIs to my applications.&lt;/p&gt;

&lt;p&gt;Since getting access to MSDN, I also started studying Avalon and the XAML files, among other things.&lt;/p&gt;

&lt;p&gt;After you download and install the WinFX SDK and the Avalon technology preview, it is simple to develop Avalon applications using Visual Studio 2005. However, compiling the XAML files seems like magic, and I wanted to repeat this process outside VS2005.&lt;/p&gt;

&lt;p&gt;This proved to be somewhat difficult. I found references to the XAML compiler (xamlc.exe), but I couldn't find this executable from my installation of the WinFX SDK and .NET 2.0 Beta 2.&lt;/p&gt;

&lt;p&gt;So, I ended studying the new MSBuild engine and it's XML configuration files. Since MSBuild is also new to me, this took some time, but finally I found a way to do what I wanted.&lt;/p&gt;

&lt;p&gt;To summarize, the MSBuild executable is part of the .NET Framework installation, and resides in a path like this:&lt;/p&gt;

&lt;pre&gt;
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\MSBuild.exe
&lt;/pre&gt;

&lt;p&gt;I won't be going into details about MSBuild here, but to operate and compile XAML files, MSBuild needs access to "target" files, and the WinFX SDK installation installs a target file like this:&lt;/p&gt;

&lt;pre&gt;
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\Microsoft.WinFX.targets
&lt;/pre&gt;

&lt;p&gt;This file defines the tasks needed to compile XAML files, among other things. Now, you can command the MSBuild engine using .PROJ files, which -- you guessed it -- are also XML files.&lt;/p&gt;

&lt;p&gt;To build a XAML file named Test.xaml, I wrote a .PROJ file like this:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;Project
	DefaultTargets="Build"
	xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&amp;gt;
  &amp;lt;Import
	Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" /&amp;gt;

  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;IntermediateOutputPath&amp;gt;.&amp;lt;/IntermediateOutputPath&amp;gt;
    &amp;lt;AssemblyName&amp;gt;Test&amp;lt;/AssemblyName&amp;gt;
    &amp;lt;Language&amp;gt;C#&amp;lt;/Language&amp;gt;
    &amp;lt;OutputType&amp;gt;winexe&amp;lt;/OutputType&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;ApplicationDefinition Include="Test.xaml" /&amp;gt;
    &amp;lt;Page Include="Test.xaml" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

&amp;lt;/Project&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Next, I opened the SDK Command Window (from the Start menu group created by the .NET Framework 2.0 installation), and executed the following command:&lt;/p&gt;

&lt;pre&gt;
msbuild /t:CodeGeneration
&lt;/pre&gt;

&lt;p&gt;If you don't specify any filename, then MSBuild will look the current directory for a .PROJ file. As a result the task named "CodeGeneration" is the one that is able to generate a binary BAML file from a XAML file.&lt;/p&gt;

&lt;p&gt;So in the end, this command took my Test.xaml file, and compiled it to these files:&lt;/p&gt;

&lt;pre&gt;
Test.baml
Test.g.cs
Test.Main.g.cs
&lt;/pre&gt;

&lt;p&gt;This way, you can build your XAML files manually, and also easily examine the generated intermediate files. You can see these using Visual Studio 2005 too, but it's not the same thing.&lt;/p&gt;</description>
      <pubDate>Sat, 11 Jun 2005 07:49:53 GMT</pubDate>
      <guid>00b39b85-ccb3-4663-b4c3-7de3b231d973</guid>
    </item>
    <item>
      <title>Slight change in site URL</title>
      <link>http://www.saunalahti.fi/janij/</link>
      <description>&lt;p&gt;I just noticed that I can use a simpler URL for my site that I thought wasn't possible.&lt;/p&gt;

&lt;p&gt;That is, for a very long time my site has been at the address "http://www.saunalahti.fi/~janij/" (note the tilde).&lt;/p&gt;

&lt;p&gt;Now, I found out that the tilde character isn't anymore necessary, so I recommended that you update your bookmarks to point at this address instead:&lt;/p&gt;

&lt;pre&gt;
http://www.saunalahti.fi/janij/
&lt;/pre&gt;</description>
      <pubDate>Fri, 10 Jun 2005 16:57:15 GMT</pubDate>
      <guid>6e844851-0bc6-4cd0-aa0d-112f0ea0f7c5</guid>
    </item>
    <item>
      <title>Macs go Intel, so now I want .NET go Mac</title>
      <link>http://www.apple.com/pr/library/2005/jun/06intel.html</link>
      <description>&lt;p&gt;Earlier this week, Apple announced its switch from PowerPC processor to Intel processors. Hopefully, they will be of the x86 series.&lt;/p&gt;

&lt;p&gt;I've always liked the Mac graphics, so maybe soon we will see a .NET framework for Mac. That way, I could start using Delphi/C# code on a Mac, and still enjoy the visual goodies Macs have. I'm waiting for that day to arrive.&lt;/p&gt;</description>
      <pubDate>Thu, 09 Jun 2005 18:34:06 GMT</pubDate>
      <guid>40a8a007-6163-4b35-a14d-ef23a5fd1e15</guid>
    </item>
    <item>
      <title>No free performance gains anymore, says DDJ</title>
      <link>http://www.gotw.ca/publications/concurrency-ddj.htm</link>
      <description>&lt;p&gt;Dr. Dobb's Journal published lately an article by &lt;strong&gt;Herb Sutter&lt;/strong&gt; about the future of the software development.&lt;/p&gt;

&lt;p&gt;Sutter's idea is that up to today, the processor technology has leaped forward performance wise, and by writing software just as we have always done, we as application developers have gotten better performance for free.&lt;/p&gt;

&lt;p&gt;Now all this is coming to an end, says Sutter. Instead, developers need to focus on real concurrency in the future to see better performance from their hardware. This is because it isn't anymore easy to just increase the clock speeds, among other things.&lt;/p&gt;

&lt;p&gt;So what to do? Concurrency is the key here, and it should get mainstream. Just like OOP did in the 1990s.&lt;/p&gt;

&lt;p&gt;This is all well, but to program for concurrency, you need to have better tools and also better frameworks. Will we get those is to be seen.&lt;/p&gt;

&lt;p&gt;Oh, speaking of performance, I also recommend checking out &lt;strong&gt;Yaniv Pessach's&lt;/strong&gt; &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/06/HyperThreading/default.aspx"&gt;article&lt;/a&gt; on the June 2005 issue of MSDN Magazine about hyper-threading. This article is very good reading.&lt;/p&gt;</description>
      <pubDate>Mon, 06 Jun 2005 15:51:53 GMT</pubDate>
      <guid>bec9f837-c71a-4085-8273-209c8c3a3d60</guid>
    </item>
    <item>
      <title>What is the SQL Native Client?</title>
      <link>http://blogs.msdn.com/dataaccess/archive/2005/04/26/412161.aspx</link>
      <description>&lt;p&gt;I got my hands on the Microsoft SQL Server 2005 Beta, or more specifically the April CTP (Community Technology Preview).&lt;/p&gt;

&lt;p&gt;One of the new features for clients in this release is the SQL Native Client, which is a new client library for unmanaged (native) Win32 applications.&lt;/p&gt;

&lt;p&gt;This new feature combines the OLE DB provider and the ODBC driver into a single DLL, and to update it, you don't need to update the whole MDAC library.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://blogs.msdn.com/dataaccess/archive/2005/04/26/412161.aspx"&gt;DataWorks WebLog&lt;/a&gt; describes this new client nicely.&lt;/p&gt;

&lt;p&gt;To summarize for application developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you want to access the new features of SQL Server 2005 from Win32, you will need the SQL Native Client.&lt;/li&gt;
&lt;li&gt;If you just want to access data on a SQL Server 2005 you will not need the SQL Native Client.&lt;/li&gt;
&lt;li&gt;If you are writing .NET applications, you should use ADO.NET as normal. You can also use the new features if you want to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Delphi programmers this new client is easy to use, you just need to change your TADOConnection component's connection string to point to the new native client.&lt;/p&gt;</description>
      <pubDate>Sat, 04 Jun 2005 12:33:56 GMT</pubDate>
      <guid>d9c758c8-c8aa-4d2f-a234-3a54035c86ca</guid>
    </item>
    <item>
      <title>Java going towards an Eclipse?</title>
      <link>http://www.borland.com/news/press_releases/2005/05_31_05_borland_announces_jbuilder_product_roadmap.html</link>
      <description>&lt;p&gt;Earlier this week, Borland announced the future roadmap for its Java development environment, JBuilder.&lt;/p&gt;

&lt;p&gt;JBuilder has been selling briskly during the .COM years, but not much so lately. The IBM-homed Eclipse project is probably one key component to this, as the Eclipse platform has been gaining a lot of momentum.&lt;/p&gt;

&lt;p&gt;Now, Borland announced the forthcoming codename "Peloton", which is basically JBuilder for Eclipse.&lt;/p&gt;

&lt;p&gt;What does this mean? To me it seems that all Java development will be soon made with open-source tools, and also the platform will becode more or less open-sourced itself.&lt;/p&gt;

&lt;p&gt;So the development world could be more and more bi-polar: open-source Java and Eclipse on the other side, and .NET and Visual Studio .NET on the other.&lt;/p&gt;

&lt;p&gt;Who will eventually win, I'm not sure. Personally, I wouldn't mind if the world would say bye-bye to Java. I never learned to like it.&lt;/p&gt;</description>
      <pubDate>Thu, 02 Jun 2005 16:09:09 GMT</pubDate>
      <guid>e75d0eac-3cc0-4ea2-bfe4-f7cdb96ed30f</guid>
    </item>
    <item>
      <title>Printing lessons</title>
      <link>
      </link>
      <description>&lt;p&gt;I needed to get a Word document with several logos printed today, but the simple thing proved to be pretty difficult since I wanted to keep the text sharp and the colors in the logos correct.&lt;/p&gt;

&lt;p&gt;First lesson: Word won't support certain EPS format images, so I printed a PDF document from Word, and then sent that PDF to the printer. The text appeared a bit blurry compared to the Word original. The solution: make sure no scaling options are set. PDF printers often scale the page to something like 98% of the original, which combined with anti-aliasing can make the text blurry.&lt;/p&gt;

&lt;p&gt;Second lesson: Black is not always just black. If you have material (like images) that are in RGB format, the printer drivers can make less than perfect choices when priting out the page. This can happen because of a poor RGB -&gt; CMYK conversion. So, if your text looks like it has a small shadow in it, the changes are your text is being printed with the subcolors combined. This wastes the printing colors, and doesn't produce full black.&lt;/p&gt;

&lt;p&gt;To summarize: Watch out what you print!&lt;/p&gt;</description>
      <pubDate>Wed, 01 Jun 2005 15:34:25 GMT</pubDate>
      <guid>1d3d857c-dce0-451b-93b3-124ef8afcbbb</guid>
    </item>
    <item>
      <title>Jason Vokes finally online :-)</title>
      <link>http://blogs.borland.com/JasonVokes/</link>
      <description>&lt;p&gt;Jason Vokes, the Borland European Product Line Manager for Delphi/C++ has finally opened his own blog. :-)&lt;/p&gt;

&lt;p&gt;It's available from the Borland Blog site at blogs.borland.com. Welcome online, Jason, and CU!&lt;/p&gt;

&lt;p&gt;PS. I need to get my hands on that Delphi .NET Compact Framework preview compiler!&lt;/p&gt;</description>
      <pubDate>Tue, 31 May 2005 14:27:45 GMT</pubDate>
      <guid>1afc7eff-f05b-40c6-87a9-4f2bab6edf38</guid>
    </item>
    <item>
      <title>How to get IIS 6.0 and ASP.NET modify an Access database</title>
      <link>http://www.microsoft.com/windowsserver2003/iis/support/authdiag.mspx</link>
      <description>&lt;p&gt;Configuring an ASP.NET application on IIS 6.0 (Windows Server 2003) can be tricky, especially if your application needs to use a database, say an Access database. Reading the database works by default, but modifying it does not. So, what to do?&lt;/p&gt;

&lt;p&gt;By default on Windows Server 2003, ASP.NET uses the IIS 6.0’s working process settings, i.e. it is running in the "Worker Process Isolation Mode." This means that you don't need to specify security settings in the XML based Machine.config file, instead you just change the settings for the application pool visually in the IIS Manager console. See the topic "Access Permissions for Web Applications" in the .NET SDK documentation for details.&lt;/p&gt;

&lt;p&gt;Okay, now you know the very basics. Next assume you have an ASP.NET application that needs to access an Access database. By default, all is fine, since you can read the contents of the database. But when modifying it, you might run into errors such as "Operation must use an updateable query".&lt;/p&gt;

&lt;p&gt;To get things working, you need to add some more NTFS permissions to your database file, or more specifically the directory where the .MDB file exists. This is because your ASP.NET application will also need to be able to generate (write) the lock file (.LDB).&lt;/p&gt;

&lt;p&gt;By default, an application pool in IIS 6.0 runs under the NETWORK SERVICE low-privileged system account. You can verify this from the Identity tab of the application pool, or through the Windows Task Manager by looking at the user name of the W3WP.EXE file, the process name for an application pool.&lt;/p&gt;

&lt;p&gt;So, to get rid of the security problems you have, open Windows Explorer, and open the properties for the directory where your database exists, and add the NETWORK SERVICE account to the list. Be sure to give it the Modify permissions, that is Read and Write rights.&lt;/p&gt;

&lt;p&gt;This should fix the error. You can also use the following piece of ASP.NET C# code to verify the user account under which your web application is running:&lt;/p&gt;

&lt;pre&gt;&amp;lt;HTML&amp;gt;
&amp;lt;HEAD&amp;gt;
&amp;lt;TITLE&amp;gt;Test Page&amp;lt;/TITLE&amp;gt;
&amp;lt;/HEAD&amp;gt;
&amp;lt;BODY&amp;gt;
&amp;lt;H1&amp;gt;Test Page&amp;lt;/H1&amp;gt;
&amp;lt;P&amp;gt;User is: &amp;lt;%= System.Security.Principal.WindowsIdentity.GetCurrent().Name %&amp;gt;.&amp;lt;/P&amp;gt;
&amp;lt;/BODY&amp;gt;
&amp;lt;/HTML&amp;gt;&lt;/pre&gt;

&lt;p&gt;By default, this should display: NT AUTHORITY\NETWORK SERVICE.&lt;/p&gt;

&lt;p&gt;Finally, you might wish to &lt;a href="http://www.microsoft.com/windowsserver2003/iis/support/authdiag.mspx"&gt;download&lt;/a&gt; the tool named "Internet Information Services Authentication and Access Control Diagnostics Version 1.0" (Authdiag) from Microsoft's web site. This tool might help you get your access permissions right.&lt;/p&gt;</description>
      <pubDate>Sun, 29 May 2005 08:13:39 GMT</pubDate>
      <guid>a4c88e03-43f3-4c14-a2a7-c54ecd0ace62</guid>
    </item>
    <item>
      <title>Delphi 2005 version numbers</title>
      <link>http://www.borland.com/products/downloads/registered/download_delphi.html</link>
      <description>&lt;p&gt;Delphi 2005 Update Pack 3 is now here, and installing it is recommended especially performance-wise.&lt;/p&gt;

&lt;p&gt;For your reference, I'm documenting the version numbers of Delphi 2005 (Architect edition) here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delphi 2005 off-the-shelf: 9.0.1761.24408&lt;/li&gt;
&lt;li&gt;Delphi 2005 after Update Pack 2: 9.0.1882.30496&lt;/li&gt;
&lt;li&gt;Delphi 2005 after Update Pack 3: 9.0.1935.22056&lt;/li&gt;
&lt;/ul&gt;</description>
      <pubDate>Wed, 25 May 2005 15:45:08 GMT</pubDate>
      <guid>eafa5d83-8f40-4bec-99d5-b8b81750c38c</guid>
    </item>
    <item>
      <title>Hyper-threading tips</title>
      <link>http://msdn.microsoft.com/msdnmag/issues/05/06/HyperThreading/default.aspx</link>
      <description>&lt;p&gt;The latest incarnations of the Pentium 4 processor have support for hyper-threading.&lt;/p&gt;

&lt;p&gt;Taking advantage of these new features is quite easy if you know what to do. The latest MSDN Magazine has an article about this.&lt;/p&gt;

&lt;p&gt;It applies to both unmanaged (Win32) and managed (.NET) code. Examples are in C#.&lt;/p&gt;</description>
      <pubDate>Tue, 24 May 2005 05:56:48 GMT</pubDate>
      <guid>d2eca032-f737-4c25-8ae1-55684660fcd1</guid>
    </item>
    <item>
      <title>New, fresh summer style on my web pages</title>
      <link>http://www.saunalahti.fi/~janij/</link>
      <description>&lt;p&gt;Summer is soon here after a loooong winter, but it's worth it. To celebrate, I took some photos today, and updated my darker, autumn-like photos on my web pages.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Thu, 19 May 2005 12:24:57 GMT</pubDate>
      <guid>90ffdd3f-05cc-4407-bb9f-2541e51b58a3</guid>
    </item>
    <item>
      <title>How to backup to a file in Windows XP</title>
      <link>http://www.microsoft.com/windows2000/en/advanced/help/default.asp?url=/windows2000/en/advanced/help/ntbackup_command_line_examples.htm</link>
      <description>&lt;p&gt;A backup utility has been part of Windows NT at least since version 4.0, and so this utility is also part of Windows XP.&lt;/p&gt;

&lt;p&gt;Now, I don't have a tape drive, so I'm most often backing up my data to a file on disk, and then copying it to DVD-RW disc, or whatever depending on the backup size.&lt;/p&gt;

&lt;p&gt;With my new PC, I tried to schedule ntbackup.exe with a custom backup selection file (.bks). However, not matter what I tried, Backup only took a backup of some default files on the C: drive, and this resulted in a tiny 10k backup file. Not much.&lt;/p&gt;

&lt;p&gt;I tried many different alternatives, but finally I found out the reason why my selection file was not used: I didn't put an "at" sign before the filename! This wasn't documented anywhere, and I only found out by looking at some examples of backing up with Windows 2000 Advanced Server...&lt;/p&gt;

&lt;p&gt;So, if you wish to backup to a file with the ntbackup.exe utility in Windows XP, use a command line like this:&lt;/p&gt;

&lt;pre&gt;
ntbackup backup "@C:\Backup\My Documents.bks"
/f "C:\Backup\My Documents.bkf" 
/v:no /l:s /m normal /snap:on
&lt;/pre&gt;

&lt;p&gt;That should work okay.&lt;/p&gt;</description>
      <pubDate>Sun, 15 May 2005 07:42:08 GMT</pubDate>
      <guid>2a505fdb-661e-445f-80c6-204f77acd44c</guid>
    </item>
    <item>
      <title>Two new articles published</title>
      <link>http://www.pinpub.com/ME2/Audiences/dirmod.asp?sid=&amp;nm=&amp;type=Publishing&amp;mod=Publications%3A%3AArticle&amp;mid=8F3A7027421841978F18BE895F87F791&amp;AudID=9403C3251FC24290962BA546BE758FBD&amp;tier=4&amp;id=0BF565E83F754FDC8E71D1FA849DEAD4</link>
      <description>&lt;p&gt;Two magazines have my latest articles published, and this time one of them is also available on-line for free.&lt;/p&gt;

&lt;p&gt;The free article is titled "Diagnosing and Debugging with the System.Diagnostics Namespace" and it appeared in the May 2005 issue of the Visual Studio .NET Developer magazine from Pinnacle Publishing.&lt;/p&gt;

&lt;p&gt;My other article appeared in the Finnish Tietokone magazine with the title "Selaimen huudot esiin".&lt;/p&gt;</description>
      <pubDate>Sun, 15 May 2005 05:07:52 GMT</pubDate>
      <guid>1cbde7d0-d900-4657-b5ef-07ade5aca644</guid>
    </item>
    <item>
      <title>Impressive Beta 2</title>
      <link>http://lab.msdn.microsoft.com/vs2005/</link>
      <description>&lt;p&gt;Visual Studio .NET 2005 Beta 2 is now running as I write, and I must say Microsoft has done an excellent job with the product. I just cannot stop wondering how Borland can compete.&lt;/p&gt;

&lt;p&gt;Some basic editing features I really like include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When moving components on the form designer, they stick to other component's edges or aligned lines.&lt;/li&gt;
&lt;li&gt;The code editor has helpful features, for instance the Insert Snippet and Surround With commands.&lt;/li&gt;
&lt;li&gt;The Cycle Clipboard Right command (Ctrl+Shift+V).&lt;/li&gt;
&lt;li&gt;The green and yellow colors on the left-hand margin of the code editor showing recent modifications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Naturally, there are tons of other cool features, but regarding general development experience, these I noticed first.&lt;/p&gt;</description>
      <pubDate>Tue, 10 May 2005 15:33:03 GMT</pubDate>
      <guid>0ab1d65b-e77a-4c38-bdf5-81b013ee7288</guid>
    </item>
    <item>
      <title>New computer</title>
      <link>
      </link>
      <description>&lt;p&gt;My new computer arrived on Friday, and so far I've got the basic setup done. It's great to have a faster PC, my old one was pretty sluggish...&lt;/p&gt;

&lt;p&gt;Otherwise the PC is a standard one (though with 2GB RAM), but the motherboard has rather geeky feature: there's a two digit LED display that shows the POST state during system bootup. So if the POST fails, you get to see why. :-)&lt;/p&gt;</description>
      <pubDate>Sat, 07 May 2005 17:18:16 GMT</pubDate>
      <guid>4b418a3c-b7e0-468b-9433-2a57c9ed5779</guid>
    </item>
    <item>
      <title>MSDN Universal arrives</title>
      <link>http://msdn.microsoft.com/</link>
      <description>&lt;p&gt;UPS delivered a packet to me today, and it contained the initial MSDN Universal shipment on DVD along with my Subscription Card.&lt;/p&gt;

&lt;p&gt;It's XMas time again. :-)&lt;/p&gt;</description>
      <pubDate>Tue, 03 May 2005 16:45:12 GMT</pubDate>
      <guid>b34b4c17-0008-45f6-8fbb-abc358d48244</guid>
    </item>
    <item>
      <title>The Vietnam War</title>
      <link>http://www.vietnampix.com/</link>
      <description>&lt;p&gt;It's today 30 years from the end of the Vietnam war. It's a war worth remembering, and on the net, you can find excellent historial descriptions. One of such sites is VietnamPix.com.&lt;/p&gt;

&lt;p&gt;Peace.&lt;/p&gt;</description>
      <pubDate>Sat, 30 Apr 2005 17:26:46 GMT</pubDate>
      <guid>19de230c-47b6-42c5-bcf7-02f0fa42865b</guid>
    </item>
    <item>
      <title>ASP.NET 2.0 &amp; SQL Server 2005 details</title>
      <link>http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnvs05/html/Internals.asp</link>
      <description>&lt;p&gt;As .NET Beta 2 rolls out as I write, there are more and more public details available on this new version of the framework.&lt;/p&gt;

&lt;p&gt;MSDN has an excellent article about ASP.NET 2.0 internals, and to me, especially the following features are interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The improved code-behind model&lt;/li&gt;
&lt;li&gt;Additional compilation options&lt;/li&gt;
&lt;li&gt;The new events&lt;/li&gt;
&lt;li&gt;Cross-page posting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Naturally, there are many more new and enhanced features, but the above sound the most interesting ones to me.&lt;/p&gt;

&lt;p&gt;Details emerge on SQL Server 2005 as well. For web applications, I find the new "query governor cost limit" option useful.&lt;/p&gt;

&lt;p&gt;With this option, it is possible to limit how much time an SQL query can take. So, if you write a foolish query with inner SELECT statements and many joins, the query won't be executed.&lt;/p&gt;

&lt;p&gt;The MSDN article that talks about this query cost limiting is available &lt;a href="http://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql90/html/xmlshowplans.asp"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 25 Apr 2005 15:05:05 GMT</pubDate>
      <guid>edb72a12-0e35-4e5d-865c-3977dea3b719</guid>
    </item>
    <item>
      <title>Visual Studio .NET 2005 Beta 2</title>
      <link>http://lab.msdn.microsoft.com/vs2005/</link>
      <description>&lt;p&gt;It's snowing outside, but luckily I got my hands on the VS.NET 2005 Beta 2 DVD today, sent to me by Microsoft Sweden.&lt;/p&gt;

&lt;p&gt;Now that VMware Workstation 5.0 is co-incidentally out as well, I'm going to see if I have the time to start installing both products tomorrow. Installing a beta on my normal PC wouldn't be what I want -- I need to keep ASP.NET 1.1 working at the same time.&lt;/p&gt;

&lt;p&gt;Oh, the public availability of Beta 2 seems to start next Monday (25th of April) in the EMEA region. Good stuff.&lt;/p&gt;</description>
      <pubDate>Thu, 21 Apr 2005 15:23:06 GMT</pubDate>
      <guid>50493c22-dd53-4792-b49b-b97221984e75</guid>
    </item>
    <item>
      <title>New photos available: "Home items"</title>
      <link>http://www.saunalahti.fi/%7ejanij/photos/</link>
      <description>&lt;p&gt;I just put online the newest set of photos, titled "Set 3: Home items".&lt;/p&gt;

&lt;p&gt;If you are interested in regular (and not-so-regular) home items and the play of light, go check this set out. It has six pictures at present.&lt;/p&gt;</description>
      <pubDate>Mon, 11 Apr 2005 17:39:16 GMT</pubDate>
      <guid>3beb1fe9-5363-4b9f-b086-5d3f25caa584</guid>
    </item>
    <item>
      <title>Unit testing in VS.NET 2005</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VSTSUnitTesting.asp</link>
      <description>&lt;p&gt;The forthcoming Visual Studio .NET 2005 contains Visual Studio Test System (VSTS), which allows developers and testers to use unit testing to improve the quality of their code.&lt;/p&gt;

&lt;p&gt;Now, since I've lately found good use for unit tests for testing calculation modules, my views about unit testing have improved. It seems to me that modern development tools should have built-in support for unit testing (UT).&lt;/p&gt;

&lt;p&gt;Borland's Delphi 2005 started the thing for .NET development environments, and the support of UT in Delphi allows for easy testing. However, the forthcoming Visual Studio seems to take the lead in this area over Delphi.&lt;/p&gt;

&lt;p&gt;Based on the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VSTSUnitTesting.asp"&gt;MSDN article&lt;/a&gt;, one can both generate UTs and also see the results with-in the IDE. This is very good.&lt;/p&gt;

&lt;p&gt;Once I get my hands on the MSDN distribution DVDs, I will install the betas and check Visual Studio out.&lt;/p&gt;</description>
      <pubDate>Sun, 10 Apr 2005 14:27:22 GMT</pubDate>
      <guid>4337fb52-da59-4f1d-9934-f124bcb17df1</guid>
    </item>
    <item>
      <title>Microsoft MVP award</title>
      <link>https://mvp.support.microsoft.com/profile=0748890C-FE7F-4A84-907C-1A3DFBC68BB0</link>
      <description>&lt;p&gt;A week ago, I got an e-mail from Microsoft: they have given me this year's Most Valuable Professional (MVP) award! The award is in the area of "Visual Developer - Visual C#".&lt;/p&gt;

&lt;p&gt;From the &lt;a href="http://mvp.support.microsoft.com/"&gt;MVP web site&lt;/a&gt;: "The Microsoft Most Valuable Professional (MVP) Program recognizes and thanks outstanding members of technical communities for their community participation and willingness to help others. The program celebrates the most active community members from around the world who provide invaluable online and offline expertise that enriches the community experience and makes a difference in technical communities featuring Microsoft products."&lt;/p&gt;

&lt;p&gt;Naturally, I'm very proud of this award, and would like to give my special thanks to at least Ismo, Sampo and Juhani from Microsoft Finland.&lt;/p&gt;

&lt;p&gt;Part of the MVP award is a one-year subscription to MSDN Universal, which I'm waiting eagerly to arrive. :-)&lt;/p&gt;</description>
      <pubDate>Sun, 10 Apr 2005 08:57:40 GMT</pubDate>
      <guid>5e87eb89-ee83-4746-b02a-6d1970feb3a7</guid>
    </item>
    <item>
      <title>Delphi with Brian Long</title>
      <link>http://www.blong.com/</link>
      <description>&lt;p&gt;My company arranged a three-day Delphi training spree this week, and it was our pleasure to have Brian Long for two days here in Helsinki for the first time.&lt;/p&gt;

&lt;p&gt;The two masterclasses were excellent, and especially Thusday's debugging session was something I didn't want to miss. On Friday, I had my own ASP.NET &amp; Delphi session.&lt;/p&gt;

&lt;p&gt;We also took Brian to have a dinner on Wednesday, and it turned out that he liked &lt;a href="http://en.wikipedia.org/wiki/Salmiakkikoskenkorva"&gt;salmiakkikoskenkorva&lt;/a&gt;, so we naturally gave him a whole bottle. Watch out, Brian! :-)&lt;/p&gt;</description>
      <pubDate>Thu, 07 Apr 2005 16:20:13 GMT</pubDate>
      <guid>5e9a7f7b-9a9b-4518-8008-08558ebfe45c</guid>
    </item>
    <item>
      <title>Start of the biking season</title>
      <link>
      </link>
      <description>&lt;p&gt;The April Fool's Day is a great day to start the biking season. This year, it was quite cold (only few degrees centigrade), but I had to get on the road nonetheless.&lt;/p&gt;

&lt;p&gt;I only saw two bikes on my traditional Kaivopuisto tour, but I guess this weekend I'm sure to see more.&lt;/p&gt;</description>
      <pubDate>Fri, 01 Apr 2005 18:07:39 GMT</pubDate>
      <guid>8357f056-48d3-4123-9422-372eec28211b</guid>
    </item>
    <item>
      <title>Avalon and VCL.NET future</title>
      <link>http://blogs.borland.com/abauer/archive/2003/10/31/274.aspx</link>
      <description>&lt;p&gt;MSDN again has interesting articles that detail what the forthcoming Avalon presentation system is. To me, it seems like a combination of Flash, OpenGL and ASP.NET/VCL style of declarative, XML based way of specifying your user interfaces and graphics.&lt;/p&gt;

&lt;p&gt;For instance, these articles detail some of the features: &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/avalon/default.aspx?pull=/library/en-us/dnlong/html/avalongraphics.asp"&gt;article 1&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/avalon/default.aspx?pull=/library/en-us/dnlong/html/avalon3d.asp"&gt;article 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, there are &lt;a href="http://blogs.borland.com/abauer/archive/2003/10/31/274.aspx"&gt;posts&lt;/a&gt; on the Internet that Delphi's VCL classes would be easy to transfer into Avalon world, but I dare to doubt this.&lt;/p&gt;

&lt;p&gt;Okay, for basic "business UIs" yes, but the more I study Avalon, the more I can find features in it that just cannot be supported by VCL.&lt;/p&gt;

&lt;p&gt;It might be that I need to rewrite my WinForms UIs, but I wouldn't want to stick to VCL.NET either, for I'm afraid it won't last in the long run.&lt;/p&gt;

&lt;p&gt;Mentally, I have no problem preparing to move straight to Avalon once it is here, but many Delphi people might be left out in the cold if Delphi will only have support to VCL.NET designers.&lt;/p&gt;</description>
      <pubDate>Sat, 26 Mar 2005 11:31:08 GMT</pubDate>
      <guid>eff6126a-f926-40b7-a381-9180164036b0</guid>
    </item>
    <item>
      <title>Bike on the road</title>
      <link>
      </link>
      <description>&lt;p&gt;I'm finally feeling better after a long flu, so good in fact that I retrieved my bike from the garage. She started humming on the first try, good for her.&lt;/p&gt;

&lt;p&gt;Next week, I need to get few things adjusted for it, but after that, it's all joy. :-)&lt;/p&gt;</description>
      <pubDate>Fri, 25 Mar 2005 16:37:17 GMT</pubDate>
      <guid>4fdd5036-be13-40e1-b04c-245073a2913d</guid>
    </item>
    <item>
      <title>DJ gig cancelled</title>
      <link>
      </link>
      <description>&lt;p&gt;Bad luck: a DJ gig I was about to play some nice records in was cancelled earlier this week. It was supposed to be kept in a restaurant in Espoo.&lt;/p&gt;

&lt;p&gt;I would have like to have a show, but sometimes things don't go as planned. Until next time, then.&lt;/p&gt;</description>
      <pubDate>Sat, 12 Mar 2005 08:10:48 GMT</pubDate>
      <guid>357dfed4-c137-4b26-b957-b13ef4a6a44d</guid>
    </item>
    <item>
      <title>Prosessori and TDM have my articles</title>
      <link>
      </link>
      <description>&lt;p&gt;The March issues of the Finnish Prosessori magazine and the UK-based The Delphi magazines feature my latest articles.&lt;/p&gt;

&lt;p&gt;The articles are about embedded application security and refactoring support in Borland Delphi 2005.&lt;/p&gt;</description>
      <pubDate>Sat, 12 Mar 2005 08:09:35 GMT</pubDate>
      <guid>71ded6e0-ce52-4f4f-b030-08e8652b4fac</guid>
    </item>
    <item>
      <title>How to do databases with VS.NET 2005</title>
      <link>http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/NewDtaStVS05.asp</link>
      <description>&lt;p&gt;Saturday is often a good day for studying .NET related things, and this one made no exceptions.&lt;/p&gt;

&lt;p&gt;MSDN has a good article about the forthcoming database features in Visual Studio .NET 2005 and ADO.NET 2.0.&lt;/p&gt;

&lt;p&gt;Although some of the features have existed in Borland's Delphi since version 1.0, these additions are very welcome to the .NET platform. Typed DataSets is one excellent thing.&lt;/p&gt;</description>
      <pubDate>Sat, 05 Mar 2005 14:20:50 GMT</pubDate>
      <guid>ae6bb69e-7b1e-4566-b30d-1c7ad4bbae91</guid>
    </item>
    <item>
      <title>ASP.NET 2.0 and TechNet Pro 2005 fairs</title>
      <link>
      </link>
      <description>&lt;p&gt;The week passing took me to two different fairs, first on Wednesday about ASP.NET 2.0, and the next day took me the Finlandia Hall for the TechNet Pro 2005 fair.&lt;/p&gt;

&lt;p&gt;Sadly enough, I didn't have a chance to attend the sessions myself for them being either fully crowded or at times unavailable to me, but I'm looking forward to checking the sessions later in recorded format.&lt;/p&gt;</description>
      <pubDate>Sat, 05 Mar 2005 07:29:57 GMT</pubDate>
      <guid>689da404-0aad-4fb2-9fc5-eff147404a2e</guid>
    </item>
    <item>
      <title>The "Software Factories" book</title>
      <link>http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471202843.html</link>
      <description>&lt;p&gt;Wiley has lately published a book titled "Software Factories", written by Greenfield and Short. Having just finished the book, I must say it is interesting reading.&lt;/p&gt;

&lt;p&gt;If you are interested in concepts like Model Driven Development (MDD), Model Driven Architectures (MDAs), this book is something for you. It also contains good introductions to these topics.&lt;/p&gt;

&lt;p&gt;However, the main idea of the book is to establish a way to make the science of software development more mature, but without forgetting the RAD development fashion.&lt;/p&gt;

&lt;p&gt;Although the book stays in a rather abstract level (this is the idea), one can find many practical tips and ideas from this book.&lt;/p&gt;

&lt;p&gt;Also interesting is the book's view that UML isn't well suited for being the blueprint of software.&lt;/p&gt;

&lt;p&gt;Recommended reading. Next, I'm going to focus on Microsoft Press' book about writing secure code.&lt;/p&gt;</description>
      <pubDate>Sun, 27 Feb 2005 09:47:08 GMT</pubDate>
      <guid>7fde7dd3-b4d8-4c42-b183-62f55b404ead</guid>
    </item>
    <item>
      <title>Visual Studio .NET Developer has my latest article</title>
      <link>http://www.pinpub.com/ME2/Audiences/default.asp</link>
      <description>&lt;p&gt;The US based Visual Studio .NET Developer magazine has my latest article about Borland's Delphi 2005 development environment.&lt;/p&gt;

&lt;p&gt;It is interesting to see what kind of feedback the article generates, for I think it is the first time a Borland product gets mentioned in this magazine in this extent.&lt;/p&gt;

&lt;p&gt;The article is titled "Out on a Date with Delphi".&lt;/p&gt;

&lt;p&gt;Also, just yeaterday I finished my article about the System.Diagnostics namespace for the same magazine. It might appear in the May issue.&lt;/p&gt;</description>
      <pubDate>Sat, 26 Feb 2005 07:40:27 GMT</pubDate>
      <guid>10592686-7789-4144-b87e-5941c05ed0dc</guid>
    </item>
    <item>
      <title>Introduction to Code Access Security</title>
      <link>http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnnetsec/html/casbasics.asp</link>
      <description>&lt;p&gt;It seems I've been busy with my forthcoming development article, for I haven't been writing anything to my blog for a week.&lt;/p&gt;

&lt;p&gt;But nonetheless, today I found time to read &lt;strong&gt;Keith Brown's&lt;/strong&gt; good introduction to Code Access Security (CAS) in .NET.&lt;/p&gt;

&lt;p&gt;This article is good reading, but it could be a just little bit longer. Now it ends in just the most interesting part. :-)&lt;/p&gt;</description>
      <pubDate>Sun, 20 Feb 2005 12:36:36 GMT</pubDate>
      <guid>e6576495-5e1e-4a4c-9baf-10669f347409</guid>
    </item>
    <item>
      <title>Two articles on web application security</title>
      <link>http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/securitybarriers.asp</link>
      <description>&lt;p&gt;Security is surely on the spotlight these days. MSDN has again two good articles about web application security in the ASP.NET world.&lt;/p&gt;

&lt;p&gt;The first article is Dino's trademark quality, and it is titled "Take Advantage of ASP.NET Built-in Features to Fend Off Web Attacks". It is available &lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/securitybarriers.asp"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The second article is about the Patterns &amp; Practices guidance. It also contains some code, which is good for studies. The article can be found &lt;a href="http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnbda/html/PPSecGuide.asp"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sun, 13 Feb 2005 13:01:27 GMT</pubDate>
      <guid>a14a6de2-f186-4156-bb38-604a73fc9b92</guid>
    </item>
    <item>
      <title>New classic novels to read</title>
      <link>http://www.akateeminen.com/</link>
      <description>&lt;p&gt;My pile of books next to my bed had dimished, and so I found myself at the Akateeminen bookstore on a busy Saturday afternoon.&lt;/p&gt;

&lt;p&gt;It's a habitual thing to visit the "Classics" bookself, and pick some books from there. This time, my selection was the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hugo: The Hunchback of Notre-Dame&lt;/li&gt;
&lt;li&gt;Leroux: The Phantom of the Opera&lt;/li&gt;
&lt;li&gt;Cooper: The Last of the Mohicans&lt;/li&gt;
&lt;li&gt;Twain: The Adventures of Huckleberry Finn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At 3 euros each, I guess this is quite the best of what one can find from a bookstore. And no, these books weren't on discount! :-)&lt;/p&gt;</description>
      <pubDate>Sun, 13 Feb 2005 06:52:45 GMT</pubDate>
      <guid>7d425b05-6069-4b5c-a80b-046732217aca</guid>
    </item>
    <item>
      <title>Hexadecimal fun</title>
      <link>http://blogs.msdn.com/brada/archive/2005/01/09/349678.aspx</link>
      <description>&lt;p&gt;&lt;strong&gt;Brad Abrams&lt;/strong&gt; from the WinFx team had a fun &lt;a href="http://blogs.msdn.com/brada/archive/2005/01/09/349678.aspx"&gt;blog post&lt;/a&gt; regarding the "best" method names ever.&lt;/p&gt;

&lt;p&gt;I've seen many funny method names (sometimes, I've even designed my own), but there's also one special type of nerd humor I like: hexadecimal wording. This is the art of have funny constant values, much like these:&lt;/p&gt;

&lt;pre&gt;
const uint LEGACY_VALUE = 0xDEADBEEF;
const uint THUMBS_UP = 0xB00BBABE;
const uint ERROR_TOTAL_FAILURE = 0xFACE0FF;
const bool FALSE_FLAG = (0xCE0 == 0xDEAF);
const bool DEBUG_STATE = (0xDECAF + 0xC0FFEE == 0xBAD);
&lt;/pre&gt;

&lt;p&gt;To help you a bit, here's a (partial) word list you can use in your hexadecimal word plays:&lt;/p&gt;

&lt;pre&gt;
0B0E
0DD
0FF
ABBA
AD0
AD0BE
ADA
ADD
B00
B00B
B0A
B0B
BABA
BABE
BAD
BE
BE
BED
BEE
BEEF
BEEFCACE
C00
C0C0A
C0CA
C0DA
C0DE
C0DEC
C0ED
C0FFEE
CAB
CAD
CE0
D0
DAD
DAD
DAFF0
DEAD
DEAD
DEAF
DEC0
DEC0DE
DECADE
DECAF
DEED
DEFACE
EA
EBB
ED0
F00
F00D
F0E
FAB
FACADE
FACE
FACE0FF
FADE
FED
FEE
FEED
&lt;/pre&gt;

&lt;p&gt;Late night fun, eh? Remember to eat yer "BEEFCACE".&lt;/p&gt;</description>
      <pubDate>Sat, 05 Feb 2005 07:33:05 GMT</pubDate>
      <guid>7e9bb9a4-75ce-4901-b903-c45b00ebe87a</guid>
    </item>
    <item>
      <title>3S Symposium and two books</title>
      <link>
      </link>
      <description>&lt;p&gt;Last week, Kontakti.Net arranged the yearly 3S Symposium for software development here in Helsinki. My company was present there with Microsoft and Borland and our other tool offerings.&lt;/p&gt;

&lt;p&gt;I had a 45 minute session regarding distributed application integration on the Windows platform, and it was a success with over 100 attendees.&lt;/p&gt;

&lt;p&gt;Sampo was very kind to give me two programming books after the show: "Writing Secure Code" from Microsoft Press, and "Software Factories" from Wiley.&lt;/p&gt;

&lt;p&gt;I'm waiting to get my hands on these two books. But first I need to finish a book about ASP.NET server controls.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Feb 2005 15:50:14 GMT</pubDate>
      <guid>888f66cd-f842-4523-9933-6309ed28ebf6</guid>
    </item>
    <item>
      <title>An easy way to calculate an MD5 hash</title>
      <link>http://support.microsoft.com/default.aspx?scid=kb;en-us;307020</link>
      <description>&lt;p&gt;It is sometimes necessary to calculate hash values, and personally I prefer the MD5 algorithm.&lt;/p&gt;

&lt;p&gt;I once had an Win32 MD5 implementation in Delphi code, but now with .NET, I don't need to write the code myself anymore.&lt;/p&gt;

&lt;p&gt;Instead, I can use simple code like the following. The idea is to read an input string from a textbox, and show the hexadecimal hash string in another:&lt;/p&gt;

&lt;pre&gt;
procedure MyForm.Button1_Click(sender: System.Object; e: System.EventArgs);
Var
  InputBytes : Array of Byte;
  AE         : System.Text.ASCIIEncoding;
  MD5        : System.Security.Cryptography.MD5CryptoServiceProvider;
  HashBytes  : Array of Byte;

begin
  AE := System.Text.ASCIIEncoding.Create();
  InputBytes := AE.GetBytes(TextBox1.Text);
  MD5 := System.Security.Cryptography.MD5CryptoServiceProvider.Create();
  HashBytes := MD5.ComputeHash(InputBytes);
  TextBox2.Text := ByteArrayToHexString(HashBytes);
end;
&lt;/pre&gt;

&lt;p&gt;Here, the code uses the MD5CryptoServiceProvider class from the System.Security.Cryptography namespace, as indicated by the Microsoft KB article 307020.&lt;/p&gt;

&lt;p&gt;Finally, you need a way to convert a byte array to a hexadecimal string:&lt;/p&gt;

&lt;pre&gt;
function MyForm.ByteArrayToHexString(Arr: array of Byte): String;
Var
  SB : System.Text.StringBuilder;
  B  : Byte;
  I  : Integer;

begin
  SB := System.Text.StringBuilder.Create(&amp;Array(Arr).Length*2);
  For I := 0 to System.&amp;Array(Arr).Length-1 do Begin
    B := Arr[I];
    SB.Append(B.ToString('X2'));
  End;
  Result := SB.ToString();
end;&lt;/pre&gt;

&lt;p&gt;I would love to see a simple way of doing this conversion, but I'm yet to find a class to convert a byte array to a hex string.&lt;/p&gt;</description>
      <pubDate>Sun, 30 Jan 2005 14:58:33 GMT</pubDate>
      <guid>8aad69fa-7b4b-437f-aaf3-06effb5bab37</guid>
    </item>
    <item>
      <title>Articles in Tietokone and Prosessori</title>
      <link>http://www.saunalahti.fi/~janij/publications/</link>
      <description>&lt;p&gt;Time flies so fast that I almost forgot to update my web pages to contain the details about my latest magazine articles.&lt;/p&gt;

&lt;p&gt;The most recent Tietokone magazine has two of my articles, one about Social Networking, and the other about Windows updates and service packs.&lt;/p&gt;

&lt;p&gt;Also, my co-operation with the Finnish Prosessori magazine started in a good way, and my very first column for this magazine appeared on the first issue of the year.&lt;/p&gt;</description>
      <pubDate>Thu, 27 Jan 2005 16:10:26 GMT</pubDate>
      <guid>9bff6ad8-5874-4000-835c-e4a74d9b2cc1</guid>
    </item>
    <item>
      <title>Reason why NUnit didn't work</title>
      <link>
      </link>
      <description>&lt;p&gt;Gotcha! Last week I found myself scratching my head because NUnit didnt' find any tests in my test DLL.&lt;/p&gt;

&lt;p&gt;Today I found the reason: when loading the tested DLL from a network drive, NUnit won't find any tests in the DLL. But, no error message is given!&lt;/p&gt;

&lt;p&gt;Naturally, this is a Code Access Security (CAS) thing and can be configured, but it would be extremely nice if NUnit would at least report something...&lt;/p&gt;</description>
      <pubDate>Mon, 24 Jan 2005 15:16:52 GMT</pubDate>
      <guid>c5df9da7-9541-4ff7-b7e7-581fac4e7c5d</guid>
    </item>
    <item>
      <title>Good Windows Installer intro</title>
      <link>http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dndotnet/html/clickoncevsinstaller.asp</link>
      <description>&lt;p&gt;Windows Installer technology has always been interesting in my mind, and it is interesting to read about it. MSDN has a new article about this technology.&lt;/p&gt;

&lt;p&gt;For example, the article speaks about the "Orca" development tool that can edit .MSI files directly. This tool is part of the Platform SDK, but must be separately installed (search your hard disc for "Orca.msi").&lt;/p&gt;

&lt;p&gt;The article also speaks about the ClickOnce deployment strategy that is useful for many .NET applications.&lt;/p&gt;</description>
      <pubDate>Sat, 22 Jan 2005 10:22:54 GMT</pubDate>
      <guid>a75fd55b-8dc5-4905-833e-d8fa063eb19c</guid>
    </item>
    <item>
      <title>NUnit 2.2 issues with Delphi 2005</title>
      <link>http://www.nunit.org/</link>
      <description>&lt;p&gt;I tried creating some simple unit tests with NUnit 2.2 that comes with Delphi 2005, but unfortunately I couldn't get NUnit to recognize my C# libraries. The problem was simply that the attribute TestFixture could not be found, though ILDASM properly shows it.&lt;/p&gt;

&lt;p&gt;I just created a simple C# library with Visual Studio .NET, and that worked just fine.&lt;/p&gt;

&lt;p&gt;I need to investigate more why this happens with Delphi.&lt;/p&gt;</description>
      <pubDate>Fri, 21 Jan 2005 15:18:47 GMT</pubDate>
      <guid>e523515b-4555-4cc4-aee5-cd3c280ffcc0</guid>
    </item>
    <item>
      <title>Microsoft Data Access Roadmap</title>
      <link>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmdac/html/data_mdacroadmap.asp</link>
      <description>&lt;p&gt;Data access is an important part of any business application, and on Microsoft platforms there are many ways to access data.&lt;/p&gt;

&lt;p&gt;MSDN has a recent article about the roadmap of the Microsoft data access technologies. It is good to know what will happen to for example ADO, and how ADO.NET will evolve.&lt;/p&gt;

&lt;p&gt;The interesting thing for Delphi developers is that the SQL Server access library DB-Library is now considered obsolete. My assumption is that dbExpress uses this library, so I wonder what is the future of this API.&lt;/p&gt;

&lt;p&gt;I'd say it would be best for Borland to drop all those "new" data access layers, and concentrate on ADO.NET.&lt;/p&gt;</description>
      <pubDate>Sat, 15 Jan 2005 13:18:46 GMT</pubDate>
      <guid>0560a101-99ab-4540-b0e8-4cf43e6171a4</guid>
    </item>
    <item>
      <title>"We have a touchdown!", this time in Titan</title>
      <link>
      </link>
      <description>&lt;p&gt;Awesome engineering work again from both NASA's and ESA's team: the Huygens space probe was alive on the alien surface for several hours.&lt;/p&gt;

&lt;p&gt;The pictures flow to Earth as I write, and I'm waiting to see more of them than those three that are presently available on the Internet.&lt;/p&gt;

&lt;p&gt;First the Mars rovers and then this. And a comet crasher (Deep Impact) soon. Quite a show, and no need to go to movies, even!&lt;/p&gt;</description>
      <pubDate>Sat, 15 Jan 2005 07:08:54 GMT</pubDate>
      <guid>dca1be87-705f-4a1b-b0ae-fa626c74c839</guid>
    </item>
    <item>
      <title>Web Design Mismatch: Dreamweaver &amp; Delphi</title>
      <link>
      </link>
      <description>&lt;p&gt;Resistance is futile. You might recall my earlier post about Dreamweaver MX 2004 messing up ASP.NET pages developed with Delphi 2005 or Visual Studio .NET 2003.&lt;/p&gt;

&lt;p&gt;I've now come to the conclusion that it is not possible to properly combine Dreamweaver templates (.DWT files) and Delphi's ASP.NET visual designer.&lt;/p&gt;

&lt;p&gt;Shortly put, Delphi insists on certain order of the HTML, HEAD and TITLE tags, which isn't suitable in Dreamweaver's mind. The result is a ASPX page that is part of the template, but cannot be updated to reflect changes in the template file.&lt;/p&gt;

&lt;p&gt;Tough luck, it seems.&lt;/p&gt;</description>
      <pubDate>Tue, 11 Jan 2005 14:55:23 GMT</pubDate>
      <guid>860be249-8361-4699-af4c-7803282dbc1f</guid>
    </item>
    <item>
      <title>Flywheel for Visual Studio .NET</title>
      <link>http://www.velocitis.com/products/flywheel/default.aspx</link>
      <description>&lt;p&gt;Sometimes aimless wandering on the Internet proves to be fruitful. This time, I found an interesting desing and refactoring tool for Visual Studio .NET called Flywheel.&lt;/p&gt;

&lt;p&gt;The product by Velocitis Inc. appears to already be at version 7.2, which means it cannot be a very young product. Probably.&lt;/p&gt;

&lt;p&gt;Nonetheless, I'm again sharing the link in case you find the product interesting.&lt;/p&gt;</description>
      <pubDate>Thu, 06 Jan 2005 13:23:02 GMT</pubDate>
      <guid>9cabaea3-1aa9-42f0-ab65-4378d9f94ce1</guid>
    </item>
    <item>
      <title>DIV layers, HTML 4.0 and CSS font sizes</title>
      <link>http://www.htmlhelp.com/reference/css/font/font-size.html</link>
      <description>&lt;p&gt;I did some tests today in the area of HTML layouts and font sizes.&lt;/p&gt;

&lt;p&gt;The web site I'm working on currently uses XHTML and CSS 2 stylesheets extensively, but the problem is that Delphi 2005 (or Visual Studio .NET for that matter) doesn't like the layout -- it is too complex.&lt;/p&gt;

&lt;p&gt;So, I converted some of the pages back to HTML 4.0, and now Delphi likes them better. Also, my research showed that there are no problems with DIV tags, which appear to work fine. So no more layouts with tables, which is fine.&lt;/p&gt;

&lt;p&gt;However, font sizes still give me trouble. When I specify a font size in the CSS file and use the browser's View/Text Size command to change the font sizes on the fly, the change is way too dramatic in IE. But Firefox on the other hand works better.&lt;/p&gt;

&lt;p&gt;I don't know if this is the best solution or not, but I'm thinking of using the "pt" i.e. absolute point sizes in the stylesheet. This way, the text size cannot be changed in IE, but it still works okay in Firefox.&lt;/p&gt;

&lt;p&gt;Yes, this is something that is not recommended by the specs, but the thing is that not so many users are aware of this setting in their browsers. If somebody for some reason has the "Largest" setting in the their browser and then goes to our site, the result looks really bad. This is what I want to avoid.&lt;/p&gt;</description>
      <pubDate>Wed, 05 Jan 2005 17:05:24 GMT</pubDate>
      <guid>e0c35bfc-ff58-4382-91f9-2d26e7f6dba1</guid>
    </item>
    <item>
      <title>The popular Leonardo Da Vinci book</title>
      <link>http://www.danbrown.com/novels/davinci_code/</link>
      <description>&lt;p&gt;A friend of mine was kind enough to lend me a copy of &lt;b&gt;Dan Brown's&lt;/b&gt; novel "The Da Vinci Code".&lt;/p&gt;

&lt;p&gt;The book is a great adventure that includes brain-teasing problem solving, and also gives a great overview of the history of the Christian religion as we know it.&lt;/p&gt;

&lt;p&gt;The only thing with this book is that it is, no less than a blockbuster. Such books need to grab a large audience, which means the book is easy to read, uses simple vocabulary, and is fast-paced. Much like a movie.&lt;/p&gt;

&lt;p&gt;Having lately read literature classics only, this book gives itself much easier, a style which I personally dislike. However, this doesn't mean you shouldn't read the book, on the contrary.&lt;/p&gt;

&lt;p&gt;Oh, the book also mentions some of the world's most interesting mathematical equations like the Fibonacci sequence. On the web, there's an excellent introduction to &lt;a href="http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/fibnat.html"&gt;these numbers&lt;/a&gt;, which I can also recommend.&lt;/p&gt;

&lt;p&gt;And speaking of math, MathSoft also has a web site devoted to the most well-known &lt;a href="http://www.mathsoft.com/mathresources/constants/wellknown/0,,0,00.html"&gt;mathematical constants&lt;/a&gt; of all times, including the golden section.&lt;/p&gt;</description>
      <pubDate>Sat, 01 Jan 2005 18:02:27 GMT</pubDate>
      <guid>22da00db-0559-4d65-838c-c7b5d7b63a0c</guid>
    </item>
  </channel>
</rss>
