/egilh

Learning by doing

December 2005 Entries

2005 was a rich year in experiences, both professionally and personally. The money could be better so I am eating lentils to improve my situation in 2006 :-) The end of the year was particularly busy any exciting, promising an interesting new year. I hope you had a great 2005 and will have an even better 2006. Happy New Year!

No blogging this Christmas. 200+ spam comments per day took forever to clean up via the dial up connection I had during my (too short) vacation. The anti spam features I added to my blog last spring worked like a charm until I went away (Murphy's law). Very few, if any, spam posts made it through the system. Then the MT blacklist was taken off the air and I was left my backup solution based on regular expressions. It worked, but the system was only as good as the list of expressions used to validate post. Normally it was not a problem as I updated the list ASAP. The spammers changed tactics during Christmas; instead of one burst per day which I managed to handle, they ...

Shame on me for not posting about the Smart Paster 1.1 plugin before. In Windows Forms applications I sometimes have to show long messages explaining why an operation failed or to provide additional information. The text is usually provided by the customer or a technical writer. Cutting and pasting it directly is normally not an option as: the string is impossible to read in the editor or on paper when it is too long there may be formatting characters which have to be escaped XML and other text formats with quotes in them are even worse. Unless you use Spart Paster that is; The Smart Paster inserts the contents in a properly formatted String builder according ...

I am changing telco provider this week so my site and mail will go offline for a (hopefully) short time.

I recently got a problem sending e-mail using System.Web.Mail.SmtpMail while implementing a system for notifying users that their password is about to expire. The SMTP server I was using supports authentication and .NET 1.1 automatically tries to log in if the server supports it. This is an edited network trace of the request that failed: 220 somehost Microsoft ESMTP MAIL Service, Version: 6.0.3790.1830 readyEHLO egilh250-somehost Hello [10.0.4.44]...250-AUTH GSSAPI NTLM LOGIN250-AUTH=LOGIN<250 OK AUTH LOGIN<334 ...>...=<334 ...>...==<535 5.7.3 Authentication unsuccessful. There is no properties for disabling automatic authentication, but you can ...

A good code example is a great help when using a new API for the first time so I was pretty exited when Koders and CodeKeep released their plugins for Visual Studio. They take two different approaches: CodeKeep searches private and public code sniplets Koders searches a huge collection of source code CodeKeepI like the idea behind CodeKeep as it works on code sniplets that does something useful and not a huge db of source code. CodeKeep only has a plugin in for Visual Studio .NET 2003 but versions for Visual Studio 2005 and Eclipse should be out soon. Even though I like the idea, I quickly hit a big limitation: CodeKeep only searches by Description or Title. This ...

The free Mobility Developer Conference II will be held in Milano Thursday 15/12/2005 Agenda: Architecture of a mobile solution Overview of Visual Studio 2005 and .NET Compact Framework 2.0 Strategies for exchanging information (MSMQ,Web Service, Socket, SQL CE, HTTP) SQL Server 2005 Mobile Edition The .NET Compact Framework connectivity APIs (SMS, Phone, Connection Manager, RAPI) Tips and Tricks See you there?

The script I posted yesterday showed how to get the size files using FileSystemObject. Windows Explorer displays a lot more information like the Dimensions of photos, Audio bit rates of audio files etc. The Shell.Application object can be used to extract the following information: Album Title, Artist, Attributes, Author, Bit Rate, Camera Model, Category, Comments, Company, Copyright, Date Accessed, Date Created, Date Modified, Date Picture Taken, Description, Dimensions, Duration, File Version, Genre, Name, Owner, Pages, Product Name, Product Version, Protected, Size, Status, Subject, Title, Track Number, Type, Year The GetDetailsOf() method gets one of the properties ...

I got a question earlier this evening on how to get the dimensions of a file using the FileSystemObject. I put together the VBScript below that goes through all files of C:\ and lists the dimensions using the .Size property. Option Explicit'**'Purpose: List sub directories with files and their sizesdim oFS dim oDirset oFS = CreateObject("Scripting.FileSystemObject")set oDir = oFS.GetFolder("C:\")listDir (oDir)sub listDir(rootDir)'**'Purpose: List contents of this directory and all subdirectoriesdim oDirdim oFile 'Call ourselves for all sub directories WScript.echo rootDir.Path for each oDir in rootDir.SubFolders listDir (oDir) next 'List all the ...

The latest release of vodafone live! (Italy) has taken away a lot of my time. The menu has moved to a different platform but the majority of the pages are still served by the platform where I am the software architect. After months of work it's nice to see it go live. With the latest generation devices you get a very rich user experience with background colors, tabbed navigation etc. as the following images show (sorry about the poor picture quality) Home page: Chat home page A big step forward in terms of look and feel compared to what we released one year ago if you ask me. I have recharged my batteries after the marathon release on the 1st of December so I should ...