Tuesday, December 22, 2009


I just started a MobileTDL project. It is a PocketPC companion for Dan’s ToDo List, which I use extensively.

The code was copied from a dead project at SourceForge and adapted to make it work. More features to follow later but, for now, all the basic functionality is there and I’m quite happy to finally have this tool on my phone. :)

Sunday, December 20, 2009

System Monitors for Windows

I’m still looking for a decent set of system monitors for Vista. Here is what I found so far:
  • Yahoo! Widgets
  • Rainmeter (link). 
  • Samurize (link)
  • Different addons for Windows Sidebar
  • Addons for Google Desktop Sidebar
  • Reliability and Performance section in Vista’s Computer Management
  • GkrellM for Windows (link)

Note: Have a look at the latest round of reviews - here.

Friday, December 18, 2009

Lock Your PocketPC – S2U2

Since I can’t get used to Touch Lock Pro (missing calls as sometimes it does not unlock when the phone rings, need to rotate device when the alarm rings in the morning, etc.), I decided to go ahead with S2U2. It seems to be what one would expect from a locking program but also much more. I’m glad it has the setting to turn off the screen when the phone connects.

It also has a timeout, which locks the device after a number of seconds. The hardware buttons are locked when the device is suspended. The only issue I don’t know about is what happens when the phone rings and gets unlocked. Accidental move or press might answer or reject the call even if that’s not what you want. But that’s not a nuisance. One can always look at the logs and return a call or something like that.

The screen, when the device is locked, contains a clock, slider similar to iPhone’s, battery status, appointments, number of tasks, unread messages, and so on. Quite useful summary of key functions.

So far I like the way app works. It is just intuitive for me – it works the way I’d like such an app to operate.

Saturday, December 12, 2009

ToDoList Supplements

ToDo List project page at The Code Project contains links to interesting related projects for ToDo List. One of those is the Gantt Viewer for ToDoList, which does exactly what it says – it displays your todo list (.tdl file) as a Gantt chart, taking into consideration start and/or end dates for each task. This is exactly what I needed to accommodate for the visual presentation of the task list.

Some task list are check-box based. These can be simple (list) or hierarchical. Yet, other ones are more project-based and depend on timelines and resources. I’m still finding the best way to organize tasks/projects and, so far, ToDo List is one of the most convenient tools for this purpose. Now, with Gantt Viewer this could just be my Holy Grail of (small) project management. :)

Yet another visual presentation of todo list is the Calendar plug-in for ToDoList. This is perfect companion to the previous two views (task list and Gantt chart).

Lock Your PocketPC – Touch Lock Pro

Touch Lock Pro is my software of choice for locking and unlocking the device. It locks the device when you suspend it, disabling activation by accidentally pushing buttons.

Unlocking with light sensor is effective as it unlocks the device as soon as you take it out of the pouch.

It supports all the sensors on the device so you can create your own conditions and triggers for locking and unlocking – G-sensor, light sensor, screen, buttons, stylus, etc.

Friday, December 11, 2009

Useful software for HTC TD2

Here is a link to some useful software, on XDA Developers wiki. Among other useful things, it contains a link to SSMaPa, which can be used to customize Touch FLO 3D interface and change some default programs. The most common option, that I’m looking to use as well, is to replace the default calendar with Pocket Informant. I’m so used to seeing the Tasks in a calendar, an old habit from “floating appointments” on Visor Handspring.

Thursday, December 10, 2009

Google Contacts Outlook Synchronizer

Here is a free contacts synchronizer for Outlook and GMail. It goes well along Google Calendar Sync if you want to keep your PIM data synchronized between Outlook, GMail, and phone.


Monday, December 07, 2009

Online Sync & Storage – SugarSync

Here’s another web synchronization and storage tool – SugarSync. A friend showed me his Dropbox files on an iPhone today. While Dropbox has iPhone client, it is missing one for Windows Mobile. I know it’s probably a matter of time before they get one. However, SugarSync already has a Windows Mobile client and I need one so that my phone could become my real digital assistant. :) Now installing the SugarSync client on my PC and phone.

Sunday, December 06, 2009

Synchronize Contacts – Outlook, Gmail, Phone

Well, the new Google option to synchronize your calendar and contacts between Gmail account and your phone is very addictive. The issue of having a central repository of contacts and appointments (hopefully soon there would be tasks as well) is just too good. Now, the issue that raises naturally is keeping contacts in sync between all the different places – your online repository (Gmail), mobile device (phone/PDA), your home computer , your work computer, or any other location you could have. While Google made a sync tool available to synchronize between a phone and Gmail, one thing that is left out is your computer with Outlook. Since Outlook address book is my main contacts repository, I wish to keep it that way. And, while one could sync Gmail with phone, then phone with Outlook, that is not the best solution. I wish, just like there is Google Calendar Sync, that I could sync Outlook with Gmail and then, whenever and wherever I plug in my phone, I get the latest updated contact list synchronized.

Well, Google has a tool but it is available only for business customers and it is a paid service. Fortunately, there are others out there. While I was aware of similar services earlier, I did not use any of them. But now I’m up for it.

So, here are some. Haven’t tested or used them yet but the demo for some of them shows they are simple enough, very straightforward (and I highly appreciate both of these characteristics) and free. Let me know which solution works for you.

  • Soocial - Seem to have issues with Outlook sync. Don’t want to risk contact duplication as it has already happened so often after my phone suffered a hard reset.
  • Plaxo – Outlook sync is only free to try for 30 days. :S

Tuesday, December 01, 2009

Move Google Deskbar to Another Monitor

I just installed Google Desktop (again) as there are some nice gadgets in there. At work I’m using Windows XP so I was looking for something to replace my Vista Deskbar I’m so used to. Desktop Sidebar is quite useful but the list of plugins does not seem to be that great. Besides, I happen to like the ability to pull out the gadgets and put them at different places on the screen. While I know it should be relatively easy to make these gadgets for any host, it’s just easier if someone has already done it. :)

So, after installing Google Dektop, the deskbar was placed on my main monitor, which is the left of the two, making it come in the middle between the two screens. As there are no options to move deskbar to another monitor, I was a bit confused at first. But the solution is very easy – just grab deskbar with your mouse and drag it onto another position, another monitor… Neat.

Monday, November 30, 2009

Avira AntiVir

According to the latest comparison from Anti-Virus Comparative test in November 2009, Avira AntiVir scored an awesome 74%. That is much higher than the likes of Nod32 and Kaspersky, not to mention McAfee, Sophos, Norton, and the rest. The ranking is impressive so I decided to give AntiVir a go.
Should I say that there is a free version of AntiVir? Congratulations, Avira!

Saturday, November 28, 2009

Project Planning Software

Twiddlebit has a nice piece of software – Plan for Windows and PocketPC. Both applications have identical features with the only difference that one runs on desktop and the other one on a mobile device. The software is compatible with MS Project (.MPX) files, which is great for data exchange. It can also export the task list to (Pocket) Outlook tasks under the project-name category, which is a great feature since you can use your standard task list to follow through the project tasks.

Friday, November 27, 2009

ToDoList Mobile

I'll try to summarize mobile versions of ToDo List here. These are the programs that can work with .tdl files on a Windows Mobile PocketPC.

  1. is the base for
  2. this project.

Thursday, November 26, 2009


Here is a PocketPC version of excellent AbstractSpoon’s ToDoList – project page on Google Code. Hopefully it is better than the one I had before.

Sunday, November 22, 2009

Organizer for Symbian

Epocware has some great software for Nokia 5800 and Symbian OS. Organizer that is similar to SPB software on Pocket PC – Handy Calendar and Handy Shell are looking very good in terms of functionality.

Nokia 5800 XpressMusic - Tutorials, Tips & Hints at AllAboutSymbian

Nokia 5800 XpressMusic - Tutorials, Tips & Hints page contains a few useful and illustrated tutorials about the phone and its operating system (SymbianOS). Some useful features are there, like backup and space consolidation on internal memory but also lots of other things you can do with this phone as well as reviews. This web site also contains news and links to the ROM firmware updates.

Wednesday, November 11, 2009

Google Chrome Wood Theme

I finally found the wooden theme for Google Chrome. Well, the reason I did not have it before was not so much that it wasn’t there (among the themes) but because I had not seen it earlier. Here is what it looks like. Now I pretty much have the functionality I got used to in Firefox over the years. The theme is available here.

Update 2012-04-15: The theme is called Desktop and here is the direct link to the store.

Update 2014-11-12: The theme can not be found in the store anymore. However, it is still available for download through this direct link to file.

Disclosure Policy

This policy is valid from 11 November 2009.
This blog is a personal blog written and edited by me. This blog accepts forms of cash advertising, sponsorship, paid insertions or other forms of compensation.
The compensation received may influence the advertising content, topics or posts made in this blog. That content, advertising space or post may not always be identified as paid or sponsored content.
The owner(s) of this blog is compensated to provide opinion on products, services, websites and various other topics. Even though the owner(s) of this blog receives compensation for our posts or advertisements, we always give our honest opinions, findings, beliefs, or experiences on those topics or products. The views and opinions expressed on this blog are purely the bloggers' own. Any product claim, statistic, quote or other representation about a product or service should be verified with the manufacturer, provider or party in question.
This blog does not contain any content which might present a conflict of interest.
To get your own policy, go to


“NoSQL” is the new term that represents the idea, a movement, or a line of thinking that is more adapted to the needs of the current needs of web applications. High scalability (the ability to scale out, mostly) is the top priority here.

The products that are used as data storage for these solutions (think Google, Facebook, LinkedIn, etc.) are distributed memory storage solutions with low latency (data access time) for both reading and writing.

Here are some interesting projects in that regard. Open Source first…

… and some commercial solutions…

  • Microsoft Velocity

This list is to grow as I find some interesting solutions. In the meantime, have a look at the following texts: The Future of Relational Databases and NoSQL Ecosystem.

Credit Cards in Australia

Credit cards, like any other product, have their product lifetime. I currently use Wizard Clear Advantage MasterCard as it still has the most benefits I expect from a card. Like, 55 interest free days on purchases, no provisions and charges on ATM cash withdrawals overseas, no subscription or issuance fee, etc.

However, as Wizard (Home Loans) brand was sold to Aussie (Home Loans), this left Wizard credit cards out in the open. The service is still run by GE Money and, in practise, everything is as it used to be. But, as there is no Wizard credit cards brand available any more, I doubt it is possible to apply for this card any more. And I also wonder what is going to happen once the card expires. Whether it will be possible to renew it or would I have to pick another product?

Whichever happens, there are some useful sites around to compare credit cards. One of the new useful web sites is credit card. It contains a list of credit cards for easy comparison of features and advice on getting a credit card. 

The good news for me is that the next card, similar in features to Wizard Clear Advantage, is HSBC and I already have it as it was offered by the bank. No fees make it a likely candidate as a reserve credit card.

Check my Australian Credit Cards page to find out more.

Tuesday, November 10, 2009

Code Coverage in .Net

As Professional version of Visual Studio 2008 does not contain code coverage tools, I’m now having to look for a functionality elsewhere.

Open Source version of NCover is available here. Description page is  here. However, it seems this version has not been updated for a while (since 2004).

Fortunately, there is PartCover project.

Thursday, November 05, 2009

Refactoring in VB.Net

Unit testing and refactoring is becoming a real pain in VB.Net. First, Moq can not be utilized properly in VB.Net v9 because the language does not support all the Lambda syntax features and it is not possible to have a function (Sub) that does not return a value. Hence, it is impossible to unit-test method calls that do not return a value or, in VB.Net slang, Subs are not unit-testable while Functions are.

Another painful thing is that Refactor features, available with C# in Visual Studio, are not available for VB.  The good thing is that there is a plugin by Developer Express Inc. available for free from MSDN.

Refactor! for Visual Basic 2008

Wednesday, November 04, 2009

Getting Started with Google Chrome Extensions

Google Chrome (in the Dev channel) supports extensions. This probably was the single most sought-after feature that it was missing in comparison to Firefox. Well, now it’s there and the extension development is quite simple. As Chrome already executes JavaScript very, very fast, it makes sense to have extensions written in JavaScript.

Below is the basic tutorial on how to create a simple extension. As you will see, it is fairly simple. No additional knowledge, apart from the industry standards (HTML, CSS, JavaScript) is required. I like the approach.

Tutorial: Getting Started (Hello, World!)

Tuesday, November 03, 2009

Set up start page in Google Chrome

If you have a specific homepage setup, like I’m used to with Firefox, then you might have a Homepage set to one but your start page set to another location. This way I have one page displayed when the browser starts but my web homepage is available when I press Alt+D key combination. I find it practical.

To do this in Google Chrome do the following. In options, set the Home page to the location you wish to access by clicking the Home button in the toolbar or using an Alt+D combination.
Set the “On startup” to ‘open the following pages’ and add “chrome://newtab/” as the location.

This way, when Chrome starts, it will display the New Tab page, with all the goodies like most visited pages, search engines, and what not. But, your original home page will still be available on Alt+D.


Monday, November 02, 2009


HTMLayout is embeddable HTML/CSS renderer

HTMLayout: fast, lightweight and embeddable HTML/CSS renderer and layout manager component

Nabu Library uses HTMLayout. It is a C# library wrapper for HTML rendering.

nabu-library - Project Hosting on Google Code

CutyCapt & IECapt - HTML2Image

CutyCapt & IECapt are two command-line programs that capture HTML page and render the output as an image. CutyCapt is based on WebKit and IECapt on Internet Explorer rendering engines.

CutyCapt - A Qt WebKit Web Page Rendering Capture Utility

Friday, October 30, 2009

Lufthansa relaunches broadband Internet on-board

In mid-2010 Lufthansa will reintroduce FlyNet, the most powerful inflight hotspot worldwide. With its new partner Panasonic, Lufthansa will enable its passengers in the future to communicate above the clouds via broadband Internet. Customers will also be able to send text messages by mobile phone and transfer data via smartphones such as PDA, iPhone or BlackBerry devices.

Lufthansa plans to equip a major part of its long-range fleet with FlyNet within the first year of operation.

Tuesday, October 27, 2009

.Net Coding Standards

Going through some recommended coding standards for .Net, here are a few useful links:
Also check the following page for updates: Coding Standards.

    Sunday, October 25, 2009

    MX Toolbox

    MX Toolbox has a few tools to test any given domain name's mail server (whatever is at the MX record for the given domain). It will display the service status, relaying information, etc.

    MX Lookup Tool - Check your DNS MX Records online - MxToolbox

    Friday, October 23, 2009

    Integrating FxCop with Visual Studio

    At the link below are the instructions on how to integrate FxCop with Visual Studio.
    Existing default rules can be used initially, until you write your own. :)

    Visual Studio Integration of FxCop

    Wednesday, October 21, 2009

    Continuous Integration - CruiseControl.Net

    CruiseControl.NET is an Open Source Continuous Integration package. This is the .Net version of CruiseControl. It works with SVN and MSBuild, NUnit, and other goodies.
    CruiseControl.NET is an Automated Continuous Integration server, implemented using the Microsoft .NET Framework.
    A list of tools that CruiseControl.NET can integrate with can be read at Using CruiseControl.NET with other applications.(CVS,SVN,NAnt, MSBuild, NUnit, NDepend, ...)
    From CruiseControl description:
    CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.

    Welcome to CruiseControl.NET - CruiseControl.NET - Confluence

    Tuesday, October 13, 2009

    NCache - Distributed In-Memory Object Cache

    Another distributed memory solution. This one is more focused on .Net as a platform. Below is the link to Express, the free version of the product.

    NCache Express – Free Distributed Cache, ASP.NET Session State, Distributed Caching for .NET and Caching Application Block

    SharedCache - One More Memory Scale-Out Solution

    Here is another solution for distributed memory: SharedCache. It is hosted on CodePlex and written in .Net. This is another option along ScaleOut, Velocity, memcached, etc.

    Shared Cache is high performance distributed and replication
    cache system build for .Net cache and enterprise application running in
    server farms.

    Shared Cache provides distributed
    replicated cache to minimize the load factor. It consists the usage of
    two or more servers in a farm. It's replicated all data within the
    cluster. The big plus is simple, you have all your cache nodes on all
    different servers. In case one of your servers get restarted, it will
    receive all nodes automatically from its parent.

    Shared Cache uses 100% managed code which is written .Net C#. - high-performance, distributed caching - Home

    Saturday, October 10, 2009

    Memory-Based Architecture

    Along my thoughts, there are quite a few products on the market that distribute RAM (used to be cache) as a medium shared among the instances of a web application in a farm/cloud. This article lists some of them.

    High Scalability - High Scalability - Are Cloud Based Memory Architectures the Next Big Thing?

    Scale-Out Cache/Memory

    Besides ScaleOut Software's solutions, here is a very popular free solution - memcached.

    Memcached's APIs provides a giant hash table distributed across multiple machines. When the table is full, subsequent inserts cause older data to be purged in least recently used (LRU)
    order. Applications using memcached typically layer memcached requests
    and additions into core before falling back on a slower backing store,
    such as a database.

    memcached: a distributed memory object caching system

    High Scalability

    This web site/blog contains material on modern web technologies and high scalability solutions. Many topics, including Haboop, distributed file systems, scalable data storage, etc.

    High Scalability - High Scalability


    BigTable - another concept from Google. This is a large flat data store that's running on top of a distributed file system. Used for high-performance and high data throughput applications.
    Here is the list of Open Source solutions.

    BigTable - Wikipedia, the free encyclopedia

    Hadoop & HDFS - Open Source Grid Computing

    Hadoop is a project that employs principles behind Google's technical architecture. It is a framework that provides a computational and storage model that distributes the load across clusters of servers transparently.
    HDFS is a distributed file system that can handle petabytes of data.
    Hadoop is Open Source software and is used in many organizations, like Yahoo, IBM, Facebook...

    Welcome to Apache Hadoop!

    Thursday, October 01, 2009

    Conky - System Monitor for Linux Desktop

    Conky - Home

    Conky is awesome system monitor. It can be configured to display (almost) anything you want to know about your system. It is very flexible and there are loads of configuration files out there. Screenshots page shows some configurations, together with their rs files you can use. Variables page displays all the variables you can use.

    Here is my conkyrc file, at Pastebin, - link.

    Creating Own RPM Repository for openSUSE

    There are multiple ways to create a custom RPM package repository in Linux. I was wondering if I could use just one online box to load the update packages on it and then distribute that to other Linux machines. This appears logical and straightforward as an idea. Well, in practise, it turns out equally simple. At the link below you can read a few ways (make sure you read the comments!) to do that.
    The easiest (not tried, though) is to add a folder as a repository into Yast. Other ways are as easy, just different approaches depending on what you really want to do.

    Install Downloaded RPM in YAST | OpenSUSE Linux Rants

    Setting the Connection for LinqDataSource

    Below is the summary of how to set a custom connection for LinqDataSource. It does not accept any parameters and creates a data context using the default constructor. If you want to set another connection string, set the ObjectInstance like this:

    Protected Sub LinqDataSource1_ContextCreating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceContextEventArgs) Handles LinqDataSource1.ContextCreating

        'Pass the custom connection string.
        Dim db As New DBADMDataContext(DBADMDataContext.getConnectionString())

        e.ObjectInstance = db

    End Sub

    linqdatasource runtime connection string - Application Forum at
    By default, LinqDataSource create data context by using default
    constructor. If you want to use specific connection, I think you can create
    data context object by yourself, and assign the object to the
    ObjectInstance property in ContextCreating event.

    Please refer to the following document. There is a simple about how to
    specify connect string for LinqDataSource by yourself.
    [LinqDataSource..::.ContextCreating Event]

    Friday, September 25, 2009

    openSUSE Build Service

    Search the openSUSE build service at the link below.
    If you can not find the software (or build) you're looking for in Yast in your openSUSE, have a look at the Build Service. Search for the software and it will (most probably) find the package you need.
    I was just looking for the newer version of Pidgin than is available in the default repositories and found the latest (2.6.2) in another repository.

    NTFS in openSUSE

    A detailed article on how to mount an NTFS partition in read/write mode in openSuse.

    HowTo Mount NTFS Filesystem Partition Read Write Access in openSUSE 10, 11

    Thursday, September 24, 2009

    Selenium IDE for Firefox

    Selenium IDE is an integrated development environment for
    Selenium tests. It is implemented as a Firefox extension, and allows
    you to record, edit, and debug tests. Selenium IDE includes the entire
    Selenium Core, allowing you to easily and quickly record and play back
    tests in the actual environment that they will run.

    Selenium IDE is not only recording tool: it is a complete IDE.
    You can choose to use its recording capability, or you may edit your
    scripts by hand. With autocomplete support and the ability to move
    commands around quickly, Selenium IDE is the ideal environment for
    creating Selenium tests no matter what style of tests you prefer.

    Selenium IDE

    Saturday, September 12, 2009

    "Search failed to initialize" in Vista

    I have started getting the message "Search failed to initialize" when I use my Vista Windows Search in the Start menu.
    First time the issue was solved by rebuilding the search index and running the Windows Search service again to reindex all the locations. But, soon afterwards the search stopped again. Maybe it was because my Vista just hangs for no apparent reason I can think of, forcing me to turn off the computer, which probably just makes things worse.
    Second time, running "sfc /scannow" in the command prompt fixed the issue. After the verification the message stated that "Windows Resource Protection did not find any integrity violations." Nonetheless, the search started working again. The windows search service remain stopped, meaning it just won't index the watched folders and locations but it will search the Start Menu, which is all I need at the moment.

    Friday, September 11, 2009

    WM 6.1 on HTC Magician (Qtek S100)

    The page below is a part of discussion on how to get Linux (Android) running on HTC Magician (Qtek S100) but it also contains a few links on how to get Windows Mobile 6.1 ROM onto the device. Something to play with over the weekend.

    linux on htc magician - Page 13 - xda-developers

    Friday, August 28, 2009

    Dvorak Assistant

    Here's an interesting utility that assists with usage of Dvorak keyboard layout. I'm still missing the shortcuts for Cut/Copy/Paste and Undo so I keep another layout available when I need to do the copy/paste tasks.
    Dvorak Assistant uses another shortcut key to switch between Dvorak and another keyboard. The good thing is that it locks the Alt+Shift combination so you don't accidentally switch from Dvorak once it's activated.

    Dvorak Assistant | Get Dvorak Assistant at

    Wednesday, August 26, 2009

    Convert VMDK (VmWare) virtual disks to VDI (VirtualBox)

    With the new version of VirtualBox (3.0) it is time to see the performance of VirtualBox again. Instead of reinstalling my virtual machines, I am going to simply convert the existing VMWare boxes.
    The command to convert a VMWare disk to native Virtualbox ones I used was
    VBoxManage clonehd Root_Disk.vmdk Root_Disk.vdi --format VDI
    I used the VMDK support in VirtualBox, utilizing the .vmdk disk, but everything went terribly wrong. The disk operations were completely flawed. Installations of software in the virtual machine, which was on an USB drive, were faulty, random errors were popping up, etc, etc. I lost a week just trying to figure out what was wrong with the virtual machine. Let's hope conversion to VDI would make the converted virtual machines stable.
    Also, what I hope to see with the v3.0 of VirtualBox is improved performance when virtual machines are run from an external USB drive...

    EDIT: According to comments, a "--format VDI" is required to determine the type of the destination disk image. For a more detailed overview and options see the documentation page on VBoxManage and clonehd command

    Monday, August 24, 2009

    Wednesday, August 19, 2009

    Create an SSL Certificate for Use with IIS

    The tutorial below lists the steps to generate an SSL certificate for use with IIS. The certificate is created using OpenSSL. Pretty straightforward and works as per instructions. Includes only two small downloads - OpenSSL light distribution and Visual C++ 2008 redistributable from Microsoft. Links provided in the tutorial.
    Importing into IIS7 is pretty easy. In the server options go to Server Certificates, create a request. Then generate a certificate using the request. Come back to IIS Manager and Complete Certificate Request. Easy.

    Creating a Self-Signed Certificate using OpenSSL for use with Microsoft Internet Information Services (IIS) 5

    Friday, August 14, 2009

    Throttle Bandwidth for Firefox

    Some customers, using web applications, happen to get all kinds of weird errors and "features" that never show up during development and testing of web applications. Should you need to test using your web site over a slow network link, there is an application that does this for Firefox.
    All these web development addons make Firefox the best web development platform out there.
    Firefox Throttle :: Add-ons for Firefox

    Friday, August 07, 2009

    Original Smileys for Pidgin

    If you like to have the original smileys in different protocols in Pidgin, check the smiley theme below. It contains the original smileys, which really make a difference in bringing the original feeling of the protocol/network you are using to chat.

    Original Smileys Theme for Pidgin - wiki@AndreiNeculau

    Monday, August 03, 2009

    Setting Status per Account in Pidgin

    In Pidgin it is not quite obvious at a first glance how to set the status for an individual account. Some people may need this but it is not readily available as the purpose of Pidgin was something else.
    However, there is one built-in option on how to do this and one in the form of a plug-in.

    The first is described here. Pidgin has an option to define a custom status. When you create a New status, there is an option to set individual status per account. This may work well if you have set situations and you want to apply individual statuses as a set. So, set some to invisible, some to available, etc.

    The second option, mystatusbox plugin, can be downloaded at the link below. It allows seeing and setting every account to their native statuses, supported by the protocol.
    Downloads – Pidgin Plugins
    MyStatusBox plugin is a part of puple pack. So, grab the zip from the link above and copy either only this or any other plugins you my want into the plugins directory.

    Wednesday, July 29, 2009

    Complete PC Backup

    At the link below there is a short overview of the Vista's new backup option - Complete PC Backup. The Backup utility now offers an option to back up your complete system, i.e. a whole drive partition. The contents are compressed and the destination can be a (set of) DVD or another partition.
    The restore is performed from the Vista installation DVD option - Restore Complete PC.
    Nice option for preparation of the system for Linux installation. :)
    Using Vista's Complete PC Backup utility: Insight - Software - ZDNet Australia

    Installing VMWare Workstation on Ubuntu Linux

    The page below explains how to install VMWare Workstation on Ubuntu Linux. This is something I'm looking to do in the near future.
    VMware/Workstation - Community Ubuntu Documentation

    Tuesday, July 28, 2009

    Specifying the Changeset in Team Build

    In TFS, we have a need to put the specific version in the automated build process. This is for re-building the recent release version of the web site. Since there is no GUI option to do this, there are a couple of ways to do it by editing the .proj file. The method described at the link below seems to be the best one:
    Nagaraju Palla's WebLog : Examining Get Task in TeamBuild
    Overriding CoreGet method will retrieve the version of code you specify and that is the version that will get built in the end.
    Here is the link to MSDN documentation on the TFS Get command.

    License Crawler

    If you lost license numbers for your software, here is a program that can retrieve these from the registry. License Crawler will extract the registration keys for the software you have installed on your computer. The program has only 74KB and is very efficient.
    License Crawler

    Monday, July 27, 2009

    See all exceptions in .Net code

    Visual Studio 2008 has an option to display all the exceptions being thrown and/or not caught by user code. The Exceptions dialog is available by pressing Ctrl+Alt+E.

    This is handy if you’re working on other people’s code that has many try/catch blocks with an empty catch part. Effectively, this jumps over the exception, ignoring it, but can lead to stack overflow blowup in certain occasions.

    Sunday, July 26, 2009

    IE Tester

    If you need to preview the web pages/sites in different versions of Internet Explorer, this is the solution:
    IETester is a free WebBrowser that allows you to have the rendering and javascript engines of IE8, IE7 IE 6 and IE5.5 on Windows 7, Vista and XP, as well as the installed IE in the same process.
    My DebugBar | IETester / HomePage

    Monday, July 20, 2009

    Finger Operation in Windows Mobile - FTouchFlo

    FTouchFlo is a freeware that enables features found in TouchFlo, which are (again) found in other types of mobile devices and operating systems. Finger scrolling is what I mean here.
    [2007-10-25] FTouchFlo v.1.4.1 HOTFIX - xda-developers

    FingerTouch is another piece of work, also freeware, that has a few great keypads that can be used for finger typing as opposed to stylus typing.
    Yay, my Windows Mobile phone has just inhaled some life into its daily operations. Not having to use stylus is a great thing.

    Mozilla Firefox 3.5.1

    After upgrading the Firefox 3.5 to 3.5.1 I have quite a significant subjective feeling of speed. I have to add, this is *with* Fasterfox Lite extension. But, still, the speed of page loading and display, and the overall responsiveness of the application is great. On par, if not better (requires a bit more comparisons) than Chrome 3. Good work, Firefox team!

    Sunday, July 19, 2009

    Modal Popup Dialog window in ASP.Net

    At the link below there is a sample on how to display a modal popup window in JavaScript and receive back the values from the modal window.
    Modal Popup Dialog Window in ASP.NET

    Friday, July 17, 2009

    Linux on HTC Magician (Qtek S100)

    Here is the project to run Linux on HTC Magician (Qtek S100) – link. The status of the project as of 2007-04-03 is B-. This means most features can be utilized, but not all and not fully.

    The drivers from this project might be used to help running Android on Magician.

    There is the Angstrom Linux distribution (link) that should run on Windows Mobile devices or, if you are interested in Android, the HTC Android hub (link).

    Wednesday, July 15, 2009

    Software Engineering: RUP vs MSF

    Comparing today’s two most widely used approaches in software development from Microsoft’s and IBM’s point of view.

    General conclusion of the comparisons could be summarized as:

    RUP is (1) a formal, strict and heavy software engineering process that wants to (2) identify the requirements and architecture early in the process to be able to (3) focus on planning the time schedules and budget to create (4) a predictive and ordered software development environment.

    MSF4ASD is (1) an informal, loosely, and light software engineering process that (2) embraces ad hoc requirements management and architecture design to (3) facilitate the ability to cope with changes to create (4) an adaptive and responsive environment.

    MSF Documentation: RUP vs. MSF - A comparative study (link)

    Comparing the Rational Unified Process (RUP) and Microsoft Solutions Framework (MSF) (link)

    Friday, July 10, 2009

    Geocities is closing down

    This morning I received a notification from Yahoo that our old friend, Geocities, is closing down. Geocities provided hosting for my very first html page that was posted online. For a while the web site, currently at, had its home at Geocities. The design, background, and text on the current web site are still pretty much what they used to be in those days. I feel a bit sad that Geocities' days are over and hope this means a new beginning for some other services that will mark the current years.

    Sunday, July 05, 2009

    Open Source HTML Parser for C# (.Net)

    Html Agility Pack - Home
    This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT (you actually don't HAVE to understand XPATH nor XSLT to use it, don't worry...). It is a .NET code library that allows you to parse "out of the web" HTML files. The parser is very tolerant with "real world" malformed HTML. The object model is very similar to what proposes System.Xml, but for HTML documents (or streams).

    Thursday, July 02, 2009

    4 GB of RAM on a 32-bit Machine

    Below is a page from Microsoft that explains memory management in Vista SP1 on 32-bit machines. As I am in the process of getting the 4th GB of RAM and maxing my system, the article makes an interesting reading.
    I have already applied PAE setting with BCEditor but don't know if it is really necessary now. I have AMD64 system with socket F and it should support more than 4GB of addressable space.

    The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed

    Tuesday, June 30, 2009

    Part of Appspot Down

    Last night, for the first time ever, my web site on was down. The URL was returning Error 500 - Server Error. The other web site on the same domain was up and running.
    This is the first time I see a part of Google faulty. I thought something might have happened with my application so I tried to upload the site again but was unable to.
    Anyway, everything is up and running again this morning. This is a small dent in Google's (so far) 100% reliability and uptime. :)
    I have to say I'm greatly thankful to them for providing this service and performance for free. They're really making the web a better place.

    Sunday, June 28, 2009

    CSS Shadow

    The page below contains many CSS samples. A very nice CSS-only shadow is simple and effective solution if you need a quick shadow on a div element.

    Stu Nicholls | CSSplay | CSS simple fluid drop shadows

    Login failed for user 'NT AUTHORITY\NETWORK SERVICE'

    I just had the following error while trying to run an ASP.Net application under IIS:

    Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.

    The situation is - I'm setting up an application to run on my local machine. Running it with a development web server was OK at first but then I needed to use my browser from another computer. This prompted me to set up the application under local IIS instead of the development web server, which accepts only local connections. Trying to set up a tunnel with an SSH server did not work.
    So, to set up an application under IIS first I had to give access permissions to Network Service user to access the folder used as the root.
    The second thing, that actually caused the error above, was to set up the login for Network Service in the SQL Server. No additional settings necessary at this point.
    And only these two settings set up the web site for access from other computers.

    Friday, June 26, 2009

    Browser Shots

    A really useful site that provides images of how sites render in different browsers.
    Enter the URL and let the site renders the page in the selected web browsers.

    Check Browser Compatibility, Cross Platform Browser Test - Browsershots

    Thursday, June 25, 2009

    Image Cropping with jCrop and ASP.Net

    Great example on how to bind together image upload and cropping with jQuery, JCrop, and ASP.Net. Also some references and tips, like where to get IntelliSense for JavaScript files in Visual Studio 2008, link to jQuery on GoogleAPIs for better caching, etc.

    Upload and Crop Images with jQuery, JCrop and ASP.NET

    JavaScript Debugger for Visual Studio 2008

    Intellisense for JavaScript files is available for Visual Studio 2008 SP1 through a hotfix available at the link below. This is extremely useful for debugging jQuery (and other, of course) JavaScript libraries.

    Visual Web Developer Team Blog : VS2008 SP1 Hotfix to Support "-vsdoc.js" IntelliSense Doc Files

    Tuesday, June 23, 2009

    Focus-Follows-Mouse in Windows

    There is a very simple change in Windows to enable natively-supported functionality of focus-follows-mouse. This is similar to default functionality in most desktop managers in Linux (or X-Window system).


    Believe it or not, Windows does support focus-follows-mouse, though there is no GUI configuration exposing it. Instead you must edit a registry key and then log out and back in for the change to become effective. You can use regedit to edit the key.

    On Windows NT, set the following registry key to have a value of 1:
    HKEY_CURRENT_USER\Control Panel\Mouse\Active Windows
    On NT it has some bugs: some apps auto-raise on focus, and alt-tab doesn't move the mouse.

    On Windows 2000, XP, or 2003, you need to change a binary-valued registry key:
    This is a little-endian bitmask. For focus-follows-mouse, add the flag 0x1. For example, my XP SP2 laptop originally had a value of 9E 3E 05 80, which is 0x80053E9E. To activate focus-follows-mouse I changed to 0x80053E9F, or 9F 3E 05 80 in regedit.

    According to you can also achieve raise-on-focus by adding the flag 0x40. I haven't tested that as I don't like raise-on-focus."
    Source: Making Windows Usable
    So, it is the first number that gets increased by 1 in regedit.

    Monday, June 22, 2009

    S.M.A.R.T. Software from WD

    Here is the download page for S.M.A.R.T. software from Western Digital. It reads other drives that support S.M.A.R.T. so the manufacturer is not the crucial point with these diagnostics.

    WD Support > Downloads > SATA Hard Drives > WD Caviar Blue / SE / SE16 (SATA II)

    Another tool for WD Elements hard drive is the Spindown or Stop Utility.
    WD Support > Downloads > WD Elements > WD Elements Portable

    Sunday, June 21, 2009

    More Firefox Goodies

    To enhance Firefox further, I went on to install...
    • Hide Menubar addon - hides the default menubar. Shortcut "Alt" displays teh menu bar temporarily if/when you need it. This gains some space at the top of the window.
    • Nightly Tester Tools - allows forced installation of addons that were not updated for version numbers. Risky but well worth it for some extensions.
    • Omnibar - enhances address/location bar functionality. "Alt+D" is the shortcut to move cursor to location bar. Now I use this instead of Ctrl+K for the search box. Ctrl+Up or Down changes the default search provider.
    • Hide Caption - another addon that provides screen real-estate. This one hides the title bar / caption. Minimize, Maximize, and Close buttons move to the next visible toolbar.
    Keyboard shortcuts

    Chrome & Firefox 3.5 Memory Usage

    In a very interesting experiment, Sam Allen tests the memory usage of today's leading edge browsers (except for IE8). As you can see below, the numbers are appalling and the graph says it all.


    Chrome and Firefox 3.5 Memory Usage

    Firefox Preloader

    With the help of this application, Firefox performance matches that of Google Chrome on my laptop. Preloader takes care of loading the Mozilla engine into memory so that, when I start Firefox through SlickRun, it appears almost instantaneously.
    I have earlier installed Firefox 3.5, which is much faster than the previous version in executing JavaScript. Now, this is Chrome on steroids. :) I really miss my Firefox addons when I use Chrome and now that is taken care of by making Firefox much faster. Terrific!

    So, in summary, this is what I did today... Installed Fasterfox Lite addon; installed Firefox Preloader, installed Firefox 3.5 RC2. Firefox Preloader

    Google's JavaScript Benchmarks

    Google Chrome JavaScript execution is currently the fastest. Below is the link to the benchmark suite where you can test your browser.
    I currently get 1578 with Chrome and only 130 with Firefox 3.0.11. Firefox 3.5 RC2 scores 212.
    Detailed comparison below:
    Google Chrome Mozilla Firefox 3.0.11 Firefox 3.5
    Richards: 1471
    DeltaBlue: 1297
    Crypto: 1555
    RayTrace: 1841
    EarleyBoyer: 2333
    RegExp: 554
    Splay: 3452
    Richards: 111
    DeltaBlue: 130
    Crypto: 62.5
    RayTrace: 131
    EarleyBoyer: 165
    RegExp: 92.3
    Splay: 352

    Richards: 750
    DeltaBlue: 52.6
    Crypto: 340
    RayTrace: 154
    EarleyBoyer: 186
    RegExp: 132
    Splay: 378

    Link to the tests:
    V8 Benchmark Suite
    Edit: Fortunately, this week there was an announcement (what a coincidence) that Mozilla will introduce new JavaScript Just-in-Time compiler with codename TraceMonkey, to replace their current SpiderMonkey engine, that should increase JavaScript performance in Firefox 3.1 anywhere from 2 to 37 times over the previous version of the browser (3.0). Average performance improvement is calculated to be 4.6 which is on par with, if not faster than, current Google Chrome.

    I have installed Firefox 3.5 RC2 and the subjective feeling of speed is greatly enhanced compared to Firefox 3.0. To turn the TraceMonkey on, read this article.

    For more good news about the next generation Web, read this post.

    Update 2009-07-21: Changed the Benchmark Suite link to point to the current suite version.

    Visual Color Picker & Pixel Measurer

    A couple of tools designers can't live without. Not only these are freeware but they are implemented so thoroughly, not leaving anything to desire.
    Visual Color Picker has more options than I ever needed. It is nice to have all the options ready should the need arise.

    NOVOSIB Software Co. LinxExplorer, LinxMonitor, Visual Color Picker

    Best 50 Firefox add-ons for Web developers

    Here is a list with 50 add-ons for Firefox, particularly useful if you're a web developer. I'm not using all of these add-ons at the moment but they might come in handy sometimes, so here's the link:

    The Best 50 Firefox add-ons for Web-developers! | 1stwebdesigner - Love In Design

    FlashGet - Best Download Manager

    I'm back to using FlashGet as my download manager of choice. This was my download manager years ago but I stopped using it after I found Free Download Manager. However, one thing I got used to with FlashGet was that the program closed itself once the downloads were completed. This was something I took for granted and could never understand why other download managers did not have that feature.
    Now that FlashGet is freeware I'm using it again. There are other great features added, like using BitTorrent and eDonkey (KAD) networks for download, which I find to be an excellent feature for a download manager, although I have no idea how usable these features are when put together.

    Best Download Manager - FlashGet

    Fasterfox Lite - Speed up your Firefox browsing

    Fasterfox Lite is a Firefox browser addon that significantly reduces page loading and rendering time. From my experience, the net effect is now quite comparable to Chrome, if not better.
    Lite, in this case, means this is version of Fasterfox that does not use page pre-fetching. I prefer not to load all the links on a page, whether it is done in the background or not.
    All I need now is find which addons cause Firefox to take ages to start up...

    Fasterfox Lite :: Add-ons for Firefox

    Saturday, June 20, 2009

    GeckoFX Forum / GeckoFX Discussion

    Mozilla Gecko (Firefox) rendering engine is available as a component for .Net. Should you want to render HTML with an engine other than Internet Explorer, use GeckoFX replacement for WebBrowser control.

    GeckoFX Forum / GeckoFX Discussion

    Prince: What's New

    One more option for HTML –> PDF conversion. They offer a free Personal license for interactive use on a single computer. Support for XHTML and CSS. The output formatting makes phenomenal documents. Samples can be seen on the Samples page.

    Will give it a try.

    Prince: What's New

    Friday, June 19, 2009

    Drop Shadow Examples

    Drop Shadow effect with jQuery. The effects are awesome. This might reduce load on images in web sites.

    Drop Shadow Examples

    Thursday, June 18, 2009

    Charts using jQuery and Canvas

    It is really amazing what can be produced with only HTML, CSS, and JavaScript now. Here is the demo on how to draw different types of charts using HTML canvas and jQuery.

    fgCharting library can be downloaded from the same page. Canvas is not supported by Internet Explorer, though, but there is a workaround. Google devs have created a JavaScript library that sorts that out.


    The above page demonstrates the concept and there must be quite a few good libraries available out there by now. One good example is Flot (link).

    jquery-in-place-editor - Google Code

    jQuery In Place Editor is a plugin for jQuery that makes text on the web page editable in a way similar to the way Flickr does. The editable text is highlighted on mouseover. Clicking the text turns it into a text box or text area for text input. Clicking outside the input text box submits (POST) the changed text to the preset URL.

    There are other controls with similar and extended functionality but I like the way this one actually does things in a way very similar to Flickr.

    jquery-in-place-editor - Google Code

    Wednesday, June 17, 2009 NFop

    Another approach in creating PDF documents in code is the XSL transformation with Formatting Objects Processor (FOP). NFop is .Net port of Java FOP library.

    FOP (Formatting Objects Processor) is a tool for formatting of impression controlled by XSL. It is an application which reads a tree of objects of formatting and which generates the resulting pages in a given format. For the moment the formats of returned according to are supported: Pdf, PCL, PS, SVG, XML, Print, AWT, MIF and TXT. pdf being the format of predilection.

    Some documentation available (link). Sample on Code Project (link). Additional documentation on Apache FOP site (link) NFop

    Tuesday, June 16, 2009

    Cassini 2

    Cassini 2 source code is available at Dmitryr’s blog. Although WebDev.WebServer.exe originates from Cassini code, they are not completely identical. Should you need a small (development) web server that does not require the whole Visual Studio installation, use the original Cassini instead of WebDev.WebServer. It runs aspx code and code-behind and is, therefore, very useful for small demo sites and ad-hoc development.

    dmitryr’s blog: Cassini Version 2

    My compiled binary version available here.

    Monday, June 15, 2009


    WebDev.WebServer.exe, with .Net Framework 3.5, is located in “%ProgramFiles%\Common Files\microsoft shared\DevServer\9.0\”.

    It is a handy small web server that executes .Net code. Combine jQuery UI with server-side support provided by WebServer and back-end code in .Net. Could this replace desktop applications soon?

    To run the web server from a batch file, using the folder where the batch file resides as a root, put the following line in the batch file:

    "%programfiles%\Common Files\microsoft shared\DevServer\9.0\WebDev.WebServer.exe" /path:"%cd%"

    To create a context menu for a folder that runs the web server in the selected folder, do the steps below. Alternatively, you can copy the following lines into a .reg file and run it:

    Windows Registry Editor Version 5.00

    @="Start Web Server here"

    @="\"c:\\program files\\Common Files\\microsoft shared\\DevServer\\9.0\\WebDev.WebServer.exe\" /path:\"%L\""

    Eventually change the path to %ProgramFiles%. The steps to do this manually are below:

    1. Open Registry Editor (regedit) and go to HKEY_CLASSES_ROOT\Directory\shell,
    2. Create a new Key and give it a meaningful name (WebServer, for example),
    3. Edit the (default) value and enter the description (i.e. "Start Web Server here"),
    4. Add the new sub-key called "command",
    5. Set the (default) value to
      "c:\program files\Common Files\microsoft shared\DevServer\9.0\WebDev.WebServer.exe" /path:"%L"
    The results will be visible immediately. Simply right-click any folder and your entry will be there. Clicking it will run the web server in the selected folder. [Check this article for registry locations for context menu handlers.]
    Edit the parameters (/port, /path, /vpath) additionally to suit your needs. These values will use default and run the Web Server at port 80 with the URL of "http://localhost/". There is no virtual (sub-)directory. The web server will crash if there is IIS (or another web server) occupying the port.

    Another possible way to do this is by using the Windows Scripting Host. Create a .js file with the following contents:

    var oShell = new ActiveXObject("WScript.Shell");
    var oFSO = new ActiveXObject("Scripting.FileSystemObject");

    var sCurFolder = oFSO.GetParentFolderName(WScript.ScriptFullName);
    oShell.CurrentDirectory = sCurFolder;

    // to display info, use:
    // WScript.Echo('wscript.echo');
    // oShell.Popup('test');

    var wshEnv = oShell.Environment("PROCESS");
    var sProgFiles = wshEnv("ProgramFiles");

    var cmd = '"' + sProgFiles + '\\Common Files\\microsoft shared\\DevServer\\9.0\\WebDev.WebServer.exe" /path:"' + sCurFolder + '"';

    // Run the web server.
    // Run the browser.

    Interface elements for jQuery - About Interface

    Interface is a collection of rich interface components which utilizes the lightweight JavaScript library jQuery. With this components you can build rich client web applications and interfaces with the same simplicity as writing JavaScript with jQuery.

    The collection is dual licensed with the MIT license and the GPL, which basically means you can use it for free for both non-commercial and commercial usage as long as you keep the copyright notice in each of Interface's JavaScript source file.

    Interface library contains some nice UI elements and effects such as: accordion, animation, carousel, cart, drag and drop, image boxes, menus, resizing areas, scrollbars, sliders, color picker, slide show, sorting, tooltips, tabs, and windows.

    I reckon that the Web UI is getting pretty close to desktop functionality.

    Interface elements for jQuery - About Interface

    Sunday, June 14, 2009

    pidgin-facebookchat - Google Code

    Since more and more people are on Facebook nowadays, here is the Facebook chat plugin for Pidgin, should you decide to have a centralized place for all your contact with Pidgin instant messenger.

    I have used this program (formerly Gaim) for ages and have almost all my chat accounts still in use – from ICQ in ‘99 to Facebook chat in 2009.  All my contacts from the various networks are in one messenger window.

    pidgin-facebookchat - Google Code

    Saturday, June 13, 2009

    File Upload Web Controls

    I am looking for a nice File Upload control for ASP.Net. Ajax calls that enable progressbar functionality are probably the standard at the time. Currently, I have found the following free solutions:

    • NeatUpload (link)
    • SWFUpload (link) – Flash based

    Thursday, June 11, 2009

    JavaScript Text Editors

    Here is the list of JavaScript text editors I have tried.

    • TinyMCE (link)
    • RichTextEditor for ASP.Net Control (link)
    • jQuery RichTextEditor (link)

    Sunday, June 07, 2009

    Windows 2008 Server - Tips

    • To enable autologin to a system, run “control userpasswords2”. Turn off the check box that requires users to log in to the system.

    Saturday, June 06, 2009

    Removing Namespace From WSDL

    If you need to remove the references to “” from the WSDL of your web service, the following are the steps to do so:

    • Add [ServiceContract(Namespace = "MyContractNamespace")] to the Interface definition. Example:
    [ServiceContract(Namespace = "MyContractNamespace")]
       public interface ITest
           string Echo(string str);
    • Add [ServiceBehavior(Namespace = "MyServiceNamespace")] to the service implementation. Example:

    [ServiceBehavior(Namespace = "MyServiceNamespace")]
       public class Service : ITest
           public string Echo(string str)
               return str;
    • Add bindingNamespace=”MyServiceNamespace” to each endpoint definition in the Web.config file. Example:

    <endpoint contract="ITest" binding="wsHttpBinding" address="" bindingNamespace="MyServiceNamespace">

    The above three points will make all the references to “” disappear from the WSDL contract of the service (i.e. http://localhost/MyService.svc?wsdl).

    References: eliminating in wsdl (link), wsdl:import namespace (link)

    What Files Make Up a Virtual Machine?

    Here is the list of the file extensions that may show up in your VMWare virtual machine directory. I am cleaning up the folder after migrating the virtual machine from VMWare to Virtual Box, still using the same disk image, and there are a few files I do not need anymore, even if I go back and run the same disk with a VMWare. Vmdk, nvram, vmem, vmxf, vmx... Which are safe to remove and which are not? Read in more details at the link below.

    What Files Make Up a Virtual Machine?

    I removed everything else except the virtual disk file (.vmdk) and virtual machine file (.vmx). There were no snapshots and the machine was shutdown properly so no virtual memory file either. In that case it was safe to delete everything besides the two main files. Since I’m already using the disk file with Virtual Box, I could have deleted the VMWare virtual machine file (.vmx) but I decided to keep it just in case.

    Friday, June 05, 2009

    Running OS on a VMDK disk in VirtualBox

    Running an OS that was installed with VMWare on a VMDK disk will not straightforward with Virtual Box. It might be a small but important change but what worked for me was to activate the I/O APIC. Running Windows 2008 Server worked, although I first booted in Safe Mode so I don’t know whether it would boot up in a regular mode. The next boot was OK, with OS installing different drivers, etc.

    The issue with this migration is that Windows will require re-activation as the (virtual) hardware signature has changed.

    HTML to PDF

    I am trying to save the contents of a Rich Text Editor control, which is HTML, into a PDF file. Below are some links to converters that do this sort of thing. I tested a few to find which one does what I need. The preference is to have a free one that can be used for hobby projects.

    And some other…

    An alternative is to use XML to XSL-FO transformation (link).

    "Hidden" Code Gen Tool in VS2008

    Did you know there was a "hidden" code-generation feature in VS2008?  Text Templating Transformation Toolkit  (aka T4) actually debuted in VS2005 Guidance Automation Toolkit, but shipped baked into VS2008.  This gives you CodeSmith-style code-generation templates that can be used in your projects to generate code from any source.  Simply add a text file with the extension ".tt", and VS will add a "Transform Templates" button to the solution explorer window.

    Thursday, June 04, 2009

    RTE (Rich Text Editor) ASP.NET Control - Home

    A Rich Text Editor control for ASP.Net. Haven’t tested the functionality yet but it seems to be good enough for my current needs.

    RTE (Rich Text Editor) ASP.NET Control - Home

    Thursday, May 14, 2009

    Project Management

    Project management (PM) involves a skill set useful in solving many problems, not only in the professional sphere. The skills used in project management can often be applied to a range of other areas.

    One of the first phases of project management is Project Definition. More details available here - link.

    Design Patterns

    Design patterns – article at Wikipedia – contains the list of categories in design patterns, as used in Computer Science.

    Wednesday, May 06, 2009

    Microsoft Office 2007 Service Pack 2

    Office 2007 SP2 is out. Direct download is here – link. This update improves the Outlook performance and adds support for Open Document Format (ODF) in Word, Excel, and PowerPoint. Save As PDF option is also added to all the programs in the suite. The full list of changes is available on Microsoft web site (link). The download is 290MB file.

    Thursday, April 30, 2009


    XUpdate was supposed to be an XML language for updating arbitrary XML documents. It used XPath for selecting a set of nodes to modify or remove.

    Unfortunately, there is not much development on either the specs or the implementations.


    Merging XML with XUpdate (link), XUpdate update (link), Editing XML Data Using XUpdate and HTML Forms (link)

    XML Diff and Patch GUI Tool

    Here is the GUI for the previously mentioned XML Diff and Patch library. There’s not  much to it, comparing to the console version, but the link is there, just in case someone needs it.

    The XML Diff and Patch GUI Tool

    Wednesday, April 29, 2009

    Using the XML Diff and Patch Tool in Your Applications

    I found an excellent piece of code that compares two XML documents. The difference to the in-built comparer in Linq to XML is that XMLDiff uses comparison options. Hence it is possible to say that the comparison of the XML is to be done ignoring whitespaces, or ignoring the child sort order. This last option is what I was looking for.

    At the same time, I prefer to use a common solution or a library than to write the same thing myself, assuming there is one out there.

    The project files were created in .Net 1.1 but are easily upgradeable to .Net 3.5.

    Usage is extremely easy and straightforward:

    public void xmldiff_test()
    XDocument doc1 = this.getDoc1();
    XDocument doc2 = this.getDoc1Inverse();

    // XMLDiff is using XMLDocument
    XmlDocument docx1 = new XmlDocument();
    XmlDocument docx2 = new XmlDocument();

    XmlDiff diff = new XmlDiff();
    diff.IgnoreChildOrder = true;
    diff.IgnoreXmlDecl = true;
    diff.IgnoreWhitespace = true;
    bool result = diff.Compare(docx1.DocumentElement, docx2.DocumentElement);


    And the two functions create two XML XDocuments with children in different order:

    private XDocument getDoc1()
    XDocument doc = new XDocument(
    new XElement("root",
    new XElement("child1"),
    new XElement("child2")

    return doc;

    private XDocument getDoc1Inverse()
    XDocument doc = new XDocument(
    new XElement("root",
    new XElement("child2"),
    new XElement("child1")

    return doc;

    The link to the text and the download are below:

    Using the XML Diff and Patch Tool in Your Applications

    Saturday, April 25, 2009

    Add a Blogger Label to a Post in Windows Live Writer

    Windows Live Writer now supports Blogger labels. I am using them to group related article because it gets difficult to find certain post over time.

    To insert a Blogger ( label to a post use the field “Set categories”, which is located just below the text editor area. This will insert the categories/labels with the post. Use comma (,) to separate the labels.

    Samsung OMNIA Review (Phone Arena Reviews)

    Here is an excellent review of Samsung Omnia mobile phone. If other reviews are as good and thorough as this one, this web site is an excellent reference as a source of information for other mobile phones, too.

    Updated on September 02, 2008 due to changes caused by a newer ROM version.

    Samsung OMNIA Review (Phone Arena Reviews)

    Samsung OMNIA Size Compare (Phone Arena)

    I just found out about Samsung’s Omnia. Finally a phone I really like. Has just about all the features I may want and at a decent price.

    Anyway, back to the topic. Here is a nice phone visual comparison tool. If you are concerned about the design or the dimension of a certain model of a mobile phone, you can compare it to its peers at the address below:

    Samsung OMNIA Size Compare (Phone Arena)

    Friday, April 24, 2009

    Google Chrome Search

    Now, this is a cool new feature for a web browser:


    I have just visited and searching for the Samsung Omnia mobile phone/PDA. Chrome remembered both sites and added them to the search providers list. Now, whether I type in the address bar, or open a new tab, I have the ability to search these, previously visited, web sites.


    This is excellent. Keep bringing on the new features! I'm already wondering how could I have lived without it...

    Wednesday, April 22, 2009

    My ToDo List Program

    I am actively using AbstractSpoon’s ToDoList. It is the best software for todo lists I have seen. Probably because it shares the same concepts about todo items with me. It had the most important features years ago and lately only continued refining the abilities it offers. Here are a few additional pieces of software that work with ToDoList files (.tdl):

    • Gantt Viewer for ToDoList (link)
    • Calendar View for ToDoList (link)

    Tuesday, April 21, 2009

    JAVA Developer’s Guide

    Here is a free book available online. Excellent guide for aspiring JAVA developers

    JAVA Developer’s Guide

    Friday, April 17, 2009

    SpringSource Team Blog » Write your Google App Engine applications in Groovy

    Here is a nice introductory article about Groovy on Google Apps. An example of Groovlet is here:

       html.html {    
    head {
           title "Hello"     }    
    body {
           p "Hello Groovy World!"     }

    SpringSource Team Blog » Write your Google App Engine applications in Groovy

    Thursday, April 16, 2009

    WebChunks :: Firefox Add-ons

    Webchunks is a Firefox3 implementation of Microsoft Webslices (feature appeared with IE8). It allows you to "follow" an area of a web page through a dedicated feed bookmarked in a new toolbar. Clicking on the toolbar entry shows the information related to your choice in a popup, without the need to open a complete web page. Should you follow information that can expire like eBay auctions, the style (bold or italic) of the toolbar's entry will reflect the status of your entry: new, expired, about to expire. With the help of an extra extension, Greasemonkey, you can insert webchunks/webslices markup into any web page so the Webchunks extension handles it. This is something the Microsoft implementation cannot do, it entirely relies on the server's markup. Please note Greasemonkey is not mandatory for Webchunks. A tutorial for Webchunks is available at

    WebChunks :: Firefox Add-ons

    After you install the extension, check it functionality at IE8 WebSlices site.

    Wednesday, April 15, 2009

    GWT Resources

    Here is the reference in order to use GWT successfully…

    GWT Project Basics

    GWT projects consist of three elements:

    1. Module, module-name.gwt.xml
    2. Host, module-name.html
    3. Code,

    Module defines the entry point, which is found inside the code file. After creating the code file, add line similar to:
    <entry-point class="MyProject.client.MyCodeClass" />
    to the module XML file.

    The code file implements the EntryPoint interface. This file contains onModuleLoad() function, which is similar to main() in C or Java. Additional classes can be implemented as simple Java classes. They should import needed namespaces. This is done automatically by Eclipse. The resulting code for the application is very similar to C# or Java. The only thing missing is the designer support for UI classes. It would be extremely nice to have a designer to produce user interface and event linking automatically and/or visually.

    HTML file contains a link to generated JavaScript file(s). This link is created automatically if you use Eclipse and GWT plugin. During the creation of HTML file in Eclipse there is an option to select the module(s) to be used. All the modules in the project get included in the HTML file by default. You should include only the modules that will be actually used on the host page. The other code files (.java) can be shared among different modules. HTML files can be left blank if the UI is to be manipulated completely in code, or it can contain some UI elements as well. These are usually only containers that will contain other elements which will be defined in code. One HTML host page can host multiple GWT applications. In that case, each application should have its separate container and not use the whole RootPanel (page body).

    GWT Concepts – No Multiple Pages

    Here is the first thing that is not obvious for newcomers to GWT: There are no multiple pages involved in development. I was wondering, just like many others I guess, how to add another page to my GWT application. The answer from is below. It will take some time to get used to it. And I still hope this changes in the near future.

    I am new to GWT, though I have dabbled in C#/Java before so the language itself doesn't boggle me that much, but it seems some of the simpler concepts aren't sticking. Im pretty sure the answer to my question is so obvious, as I have not seen it answered in any of the tutorials on GWT on the web. What I wanted to know is, how do you do page navigation in GWT? For example I have my new class, with its onModuleLoad function, which is fine, but say I want to click a link and load a new page with a different onModuleLoad function?

    As others have pointed out, the Right(TM) way to do this is using the History mechanism. There are many strategies for working this into your application's internal syntax and structure. However, there are a few other basic concepts I think you might want some clarification on.

    First, you should think of your GWT app as a single HTML page, in which user and application events cause PORTIONS of the page (ie DOM elements) to change, be replaced, or loaded with content from the server or internal application logic. In general you will not be sending the user/browser to another "real" URL. Your initial HTML page is basically a canvas on which your GWT application spews up content in response to user or server events (the typical AJAX model).

    In the example of your login function, when your app has successfully received authentication credentials from the user, its next job will be to kick the login widgets off the page, and replace them with "whatever is next".

    Second, you will probably find that the majority (if not all) of your user navigation paths are not coded in raw HTML. The GWT ui classes provide all the event handling and navigational connectivity that you would find in a typical desktop application. Although it is possible use raw HTML links to navigate your application, the GWT widgets are much easier to work with, test, and maintain than raw HTML files. So instead of following an <a href="blah blah">blah</a> and "going somewhere else", you will create event listeners that respond to mouse or key clicks which cause your app to change what is already there.

    Finally, you typically will only have one EntryPoint implementation with an onModuleLoad method in your application. That class will be responsible for initializing your application - probably by creating classes for the UI, classes for handling UI events, and classes for managing your applications internal state. In a lot of the samples, the class which implements EntryPoint also implements all of the UI, the event handlers, and the application logic, but that's only to reduce the amount of code you have to read. In any serious application you will want to factor those things out into different classes (as in MVC).

    It might be helpful to think of your EntryPoint.onModuleLoad() as if it were simply the main() method of a more traditional application.

    Tuesday, April 14, 2009

    Ajax on Java

    Since I’m working on a web application, using Java, I’m looking to enhance the functionality using Ajax on the client-side. So, the focus turns to a part of my development environment I wasn’t paying attention to – Google Web Toolkit.

    It offers the developers to develop the AJAX front-end by developing it in Java. This allows for edit-refresh-view cycle we’re used to. It also allows for easy debugging by stepping through the code. Using GWT’s built-in web browser allows the developer to view the changes in code effective immediately, just by refreshing the edited page. GWT then compiles the code into client-side JavaScript. The compiled JavaScript is highly optimized and is supposedly better than hand-maintained code.

    If you’re looking for more detailed list of features, check the GWT Overview.

    Sunday, April 12, 2009

    JavaServer Faces - My first encounter

    Playing with Google Apps templates and Eclipse led me to usage of Java Server Pages instead of servlets for output. For the first time, in Eclipse, when I used a wizard for creation of JSP page, I saw a few more options, which included Java Server Faces (JSF) pages. Wondering what that might be, I read the article JavaServer Faces - Wikipedia, the free encyclopedia which was a bit mind-boggling, after working with Microsoft technologies.

    JSF is a framework that should simplify development of user interfaces for Java EE applications. It uses UI components and saves their state after a user. The state is restored when a user activates the interface again. It can use JSP as a display technology but it can also use other technologies, like XUL. This combines into a powerful combination. JSP contain custom tag libraries which enable customization.

    This technology is meant to compete with Microsoft ASP.Net, being a component-based framework.

    Servlets and Java Server Pages

    Moving on with Google Apps engine. After I've ported some logic into Java, now I'm looking on how to render some output.

    There are nice introductory tutorials about Servlets and Java Server Pages but these are a bit outdated. Nonetheless, they represent an excellent introductory material. Then, there are intermediate and advanced tutorials, with material available in PDF. There is more than enough material to get you started.

    I have found the level where I got stuck and am going to enjoy some reading about templating and scripting.

    Photosynth is out!

    Photosynth, Microsoft's software that creates a 3D scene from a bunch of photographs taken at the same location is finally out! I remember looking at the initial videos a couple of years back, where the team was demonstrating the features by displaying a 3D synth of Piazza San Marco in Venice.

    The software package that allows you to create your own synths of places you've visited is available at the link below. There is also a short tutorial on how to prepare the pictures for a useful synth, like not photographing one-color areas, or shiny materials, etc. This could be exciting. The only drawback is that the initial version of Photosynth is implemented as a service so you have to upload all the photos to the site. If you have a high-speed Internet connection and are willing to try, enjoy it.