Monday, December 27, 2010

Troubles with Picasa People Albums and Folders

I wasted quite a few hours today figuring out how to restore some folders that have gone missing.
After installing Picasa, it did the face recognition and all. Then I moved some images from "Unnamed Person" to their respective owners' albums and deleted the Unnamed Person albums. Then I linked to Google contacts.
Somewhere during this process, some images have gone missing. Some folders were not shown anymore in the Folders list.
Funny, though, if I would search for these persons, the number of their photos in Picasa would come up right both in the search box and in the people organizer. But I could not get to them.
I tried adding files and folders manually, excluding and including them, changing folder monitoring preferences, turning on and off face recognition, and so on. None of it helped. Then I reinstalled and rescanned all the photos again and went through the ordeal of assigning the photos to people again.
However, the images from profiles would still not show in the albums nor in the folders list. Then I browsed through help forums and that was next to useless.

Finally, a tip from one of the forum questions, only somewhat related to what I was searching for, pointed me in the right direction ( The move that did the magic was to turn on the "Small Pictures" in the View menu!
And there they were - all the people's profile images from pidgin directories. Phew!

Thursday, December 16, 2010

Samsung Galaxy S Adventures

I've finally managed to settle everything down with the Samsung Galaxy S. After I won the item on Ebay for a good price in what was an exercise rather than a serious bid the surprises that followed were anything but expected. First I found that the device is next to useless without an internet connection that allows to link to a (Google) account. So first I tried to connect via Wi-Fi as that appeared as a supported way of accessing the Internet.

I had different experiences with Wi-Fi hardware. First I tried a USB Wi-Fi adapter but that did not support setting it up as an Access Point. Then I bought a wireless router and set that up as an AP. However, it took some time and a whole bunch of different software that did not work, to actually connect the device to the internet. For a while I used FreeProxy for connecting through the PC but most applications ignored the proxy settings, I guess, and simply did not connect to the sites on the Internet.

After suffering through different USB issues, I reinstalled Windows. Removed Windows 7 Ultimane N (wish it burns in Hell) with a regular Ultimate edition and *all* the problems were wiped away. All the devices were recognized correctly, all the software all of a sudden worked miraculously. Fantastic.

Then, after little fiddling around, it turns out that Internet Connection Sharing now worked, as well. So, disabling the proxy and a DHCP server and simply using Windows' ICS made it happen. The phone got an IP address and other settings and all the applications recognized that they now had a working Internet connection.

However, before figuring this out, I was lucky to also find an awesome prepaid plan with CrazyJohn's that I used for testing because it included data. So I used 3G connection for initial account setup and synchronization. Now I ported my number to this plan and am using it regularly. Now I'm getting used to being online almost all the time and having access to emails, maps, books, and other stuff wherever I am.

So, finally it is done. I have 3G network connection on the phone and can also connect through Wi-Fi at home. What a rollercoaster. Only two days ago none of the software worked (including Samsung Kies) so I could neither synchronize my data nor applications and the phone was pretty much a phone and an alarm clock. Now it is slowly becoming my main computing device. With 2x16GB of storage, there is more than enough to have all my important stuff with me at all times.

Wednesday, December 15, 2010

Outlook Duplicate Remover

Here's a neat tool for finding and removing duplicate items in Outlook. It does not delete duplicate items but moves them into a separate directory so they can be deleted manually after confirming the duplicates are valid.

Sync Outlook Contacts to Google

Here's a promising Open Source solution to synchronizing Outlook to Google contacts:

Tuesday, December 14, 2010

Run Android Emulator in Eclipse

Here's a quick overview on how to run an Android emulator from Eclipse. This assumes everything has been installed, which is a topic for a separate post.

First, confirm that the Android SDK location has been set up. Open preferences

Confirm that the SDK location points to a directory where you extracted the Android SDK zip.

Then, run AVD Manager from Window menu:

Monday, December 13, 2010

Android can't link to Google account

This is quite annoying. One thing to try today:

DHCP Server for Windows

Here's a nice little DHCP Server for Windows:

I used it to connect the phone to my PC via wireless connection. The thing simply works. Almost no settings required, apart from adding the MAC address of the connecting device.

Belkin router firmware upgrade instructions

Instructions on how to deploy a newer firmware onto a Belkin Wi-Fi router:

Sunday, December 12, 2010

Belkin N USB Wireless Adapter Drivers for Windows 7

Turn your Windows into a WiFi hotspot

Connectify is an easy to use software router for Windows 7 computers. After downloading and installing the lightweight application, Connectify utilizes your computers' built in Wi-Fi card to wirelessly share any available Internet connection: a cable modem, a cellular card, or even another Wi-Fi network. Other Wi-Fi enabled devices including laptops, smart phones, music players, and gaming systems can see and join your Connectify hotspot just like any other Wi-Fi access point and are kept safe and secure by password-protected WPA2 Encryption.

I certainly hope it is not using only the "built-in Wi-Fi card". Something to try out.

Keepass for Android

Android version of KeePass is here -

Source code at GitHub (link).

Saturday, December 11, 2010 - Fantastic chat client for Chrome is one of the best things I've seen lately. After first being surprised by the number of applications in the Chrome Web Store I was amazed to find an application that could almost fully replace my desktop Pidgin! A chat client that runs in a browser and supports most major chat services is a must everywhere I go now. 

I'd expect the sync to pick up the installed applications and make them available anywhere I run Chrome browser. This, firewall permitting, would enable contacting my friends, dispersed across various chat networks.

Wednesday, December 08, 2010

TekPub Videos

TekPub has a section with free videos -

There are some awesome presentations, including one of the best ASP.NET MVC introductions I've seen. Good overview of the concepts that should be known to any developer.

Samsung Galaxy S Unlocking

Here's a link to an XDA thread about unlocking Samsung Galaxy S -

Not sure whether it works but might come in handy should I decide to bid on one of these devices on eBay.

Monday, November 22, 2010

Sharp Architecture using MSpec for Unit Testing

Sharp Architecture, as of version 2.0, is moving to Machine Specifications as a tool of choice for unit testing. An article discussing this topic is also a nice reminder of the Behavior-Driven Develelopment practice.

Friday, November 19, 2010

Pidgin and

If you are having issues with Pidgin and MSN's certificate, go to, download and import the two new certificates into Pidgin to create a workaround. Either the server names changed or the certificates were renewed. The longer-term solution will probably come with the new version of Pidgin but the workaround at the given link works.

Tuesday, November 16, 2010


What a link to send to disinformed users in the 21st century: 


Sunday, November 14, 2010


As recommended by a friend:

Mipony is a free download manager specially designed to automate the downloading of files of free host sites such as Rapidshare, Megaupload, Hotfiles and many others...

Friday, November 12, 2010

AppBrain for Android Apps

AppBrain simplifies and makes better use of the Android application market. Recommended by a friend who uses Android on a day to day basis.

Wednesday, November 10, 2010

Visual Studio 2010 Color Schemes

Below is a link to the site hosting Visual Studio color schemes, in case you want to try something new. I prefer darker backgrounds because of the eye strain after hours of staring at the screen. As statet long time ago, dark text on white background was a consequence of technologies used at the time - pen and paper. Nowadays, with electronic screens, it makes sense to make the background dark and the content, the thing we are focusing on, lighter.

Monday, November 08, 2010

ScribeFire for Chrome

ScribeFire is now available as a Google Chrome extension. Still a few quirks but generally seems to work well. Quite useful substitute for Blogger extension since it appears broken in the latest dev versions of Chrome.


Free SSL Certificates

Free SSL certificates are now available from StartSSL. Increase the security on the internet without paying arm and leg.

Monday, November 01, 2010

Android CSV Contacts Import

Offline Contacts import for Android, an Open Source project, is hosted at GitHub (link). I haven’t tested it yet but looking forward to having a peek at the source code.


The FileHelpers are a free and easy to use .NET library toimport/export data from fixed length or delimited records in files, strings or streams.

The Library also has support for import/export data from differents storages like Excel, Access, SqlServer, etc.

This library is great if you want to simplify reading data from various sources, most notably flat files. It is great for reading CSV files. The library converts records from data sources into arrays of objects to which Linq queries can then be applied, making operation extremely simple and straightforward.


WebKit .NET is a WinForms control library wrapper for WebKit written in C#. The aim is to make it easy for developers to incorporate WebKit into their .NET applications.

For more information please visit the links to the left or the project homepage on SourceForge.

Source code repository is now hosted on GitHub (


To work with the new Excel’s file format (.xlsx), Microsoft has released version 2 of Open XML SDK.

Documentation – link 

Download - link

This package depends on System.IO.Packaging, which is located in WindowsBase assembly.

Sunday, October 31, 2010

CKEditor for jQuery | CKEditor

CKEditor integrates with jQuery for easy operation. Below is the link to documentation which is quite straightforward.

CKEditor for jQuery | CKEditor

Wednesday, October 27, 2010

Hg-Git Mercurial Plugin

How awesome is this?! It was bound to happen sooner or later. Interoperability between Git and Hg (Mercurial) should be an obvious thing as they support quite similar features.

Hg-Git Mercurial Plugin: "This is the Hg-Git plugin for Mercurial, adding the ability to push to and pull from a Git server repository from Mercurial. This means you can collaborate on Git based projects from Mercurial, or use a Git server as a collaboration point for a team with developers using both Git and Mercurial."

If using TortoiseHg, the instructions on enabling the plugin are here. As dulwich is already installed with TortoiseHg, all you need to do is clone the hg-git repository and enable the extension in your mercurial.ini.

An important feature this plugin brings is the sharing of bookmarks, similar to Git branches.

"It is intended that Hg users may wish to use this to collaborate even if no Git users are involved in the project, as it may provide some advantages if you're using Bookmarks (it will transfer bookmarks on push, which Mercurial doesn't do)."

Thursday, October 21, 2010

OpenWrap – A Package Management System for .NET

OpenWrap – A Package Management System for .NET

Interesting discussions going on about Open Source projects in .NET arena. Open Wrap, apart from being one of those, is an interesting idea. It is also a missing piece for .NET platform. Something Linux users are very accustomed to by now. Version management for different components (or DLL hell) is back with .NET and package managers like OpenWrap are here to ease the pain.

Monday, October 18, 2010

The Web Is Dead. Long Live the Internet | Magazine

Aside from an interesting opinion on the topic of WWW, the top of the page contains a chart displaying the proportion of total US internet traffic broken down by largest uses/protocols. It is obvious that the web is getting rapidly less used since the year 2000. FTP, newsgroups, email and similar rarities today resemble dinosaurs.

The Web Is Dead. Long Live the Internet | Magazine

Wednesday, September 29, 2010

WADL: The REST answer to WSDL - Web Forefront

WADL: The REST answer to WSDL - Web Forefront
Web Application Description Language (WADL) is meant to be the descriptor for REST services. A tool at Codeplex ( does not seem to be actively developed for years now.

Friday, September 03, 2010

ASP.NET Forum by Martin Xie!

I've been having strange problems in Test environment after I started using Transactions for multiple-database commit safety. Below is the answer to one of the problems I had...

The partner transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D025) (System.Transactions.TransactionException)

ASP.NET Forum by Martin Xie!

First verify the "Distribute Transaction Coordinator" Service is
running on both database server computer and client computers
1. Go to "Administrative Tools > Services"
2. Turn on the "Distribute Transaction Coordinator" Service if it is not running

If it is running and client application is not on the same computer as
the database server, on the computer running database server
1. Go to "Administrative Tools > Component Services"
2. On the left navigation tree, go to "Component Services > Computers
> My Computer" (you may need to double click and wait as some nodes
need time to expand)
3. Right click on "My Computer", select "Properties"
4. Select "MSDTC" tab
5. Click "Security Configuration"
6. Make sure you check "Network DTC Access", "Allow Remote Client",
"Allow Inbound/Outbound", "Enable TIP" (Some option may not be
necessary, have a try to get your configuration)
7. The service will restart
(This is the thing drove me crazy before)

On your client computer use the same above procedure to open the
"Security Configuration" setting, make sure you check "Network DTC
Access", "Allow Inbound/Outbound" option, restart service and computer
if necessary.

On you SQL server service manager, click "Service" dropdown, select
"Distribute Transaction Coordinator", it should be also running on
your server computer.

Tuesday, August 31, 2010

Downloads - selenium - Project Hosting on Google Code

Downloads - selenium - Project Hosting on Google Code
This is the Selenium project's downloads page. The new IDE, a Firefox plugin, has just received a patch to support the new Firefox 4.

Monday, August 30, 2010

log4net UdpAppender with IPv6 on Windows Vista and 7 � Alteridem Consulting

log4net UdpAppender with IPv6 on Windows Vista and 7 � Alteridem Consulting

Having problems with log4net working on a Windows 2008 R2 machine with IPv6. Above is the link to a recompiled version of log4net.

Using Remote Desktop with Dual Monitors | SplitView

Using Remote Desktop with Dual Monitors | SplitView
Here's a description on how to span an RDP session on two monitors and edit the .rdp file to enable the feature.
Basically, if all the prerequisites are correct, add the following line to the end of the file:
span monitors:i:1

Sunday, August 29, 2010

Sunday, August 15, 2010

NUnit isn't running VS10 code - Stack Overflow

I have issues with NUnit not running .NET v4 code on the Continuous Integration server. The solution is listed at the link below. The trick is to modify nunit configuration file on the executing machine.

NUnit isn't running VS10 code - Stack Overflow

Update: A more complete solution is here. There is a practical difference in that attribute in the 'startup' tag.

How to copy/install assembly in a GAC? (Some problem running NUnit)

I've just had a weird problem on the build server. For one of the test projects, it would not build at all. The error message was the following:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "nunit.framework, Version=, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 

Apparently, no NUnit library could be found. Checking the GAC manually, this appears to be true. How weird. Tried reinstalling and repairing NUnit 2.5.5 a few times with no result. Then, in Visual Studio Command Prompt, adding NUnit dll to GAC manually with

gacutil /i nunit.framework.dll

solved the issue.

How to copy/install assembly in a GAC? (Some problem running NUnit) - Stack Overflow

Tuesday, August 10, 2010

Installing Windows Mobile Device Center on Windows 7 64-bit

The installation of Windows Mobile Device Center is a bit confusing to say the least. After you plug in your Windows Mobile phone into USB port it will greet you with an error after it fails to install the driver. Well, this was the main reason I removed Linux and installed Windows. However, it appears it was unnecessary move. I thought the virtual machine Windows did not see the phone as a USB device but I was wrong. The thing does not install even on Windows box.
So, the solution is to plug in the phone, wait for the error message, then enable downloading of drivers from Windows Update.
One more trouble I've had is the N edition of Windows 7. Apparently, WMDC requires Windows Media Player to be installed, which is not the case in the N edition. WMC can be downloaded from

SSMS Tools Pack causing errors when installing SQL 2008

I had a strange error trying to install SQL 2008. It complained that there are SQL 2005 Express Tools installed. Even after uninstalling all traces of anything that has to do with SQL 2005, the error was still the same.
As per article below, I found registry keys in
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM

Sql2005SsmsExpressFacet - How to continue your SQL 2008 installation - Administration - SQL Server Nation

The reason was SSMSToolsPack that I installed some time ago and (probably) never used. Uninstalling that made the SQL 2008 installation proceed.

Monday, August 09, 2010

Setting up Proxy Server on Linux in 2 minutes

Now the roles have inversed and Linux is now my main box while Windows laptop is secondary. Linux box is the one connected to the Internet. While I yesterday installed FreeProxy for the reverse role, now was the time to set up Linux as a proxy for the Windows box.

Getting a transparent proxy running in Linux was a piece of cake. All it takes is to install squid, squidGuard, and yast2-squid packages. Then, in Yast, go to Network Services –> Squid for configuration.

What I needed to add was another local network, which is not there by default. This is just because of the default network settings on Windows, where my adapter automatically got address So, in Access Control, I added a new ACL group “localnet” for the range “”.

Also, in HTTP Ports, I added the option “Transparent” to the default port 3128. Then, in Windows, simply set this box and port as the proxy settings in Internet Settings and off you go.


Sunday, August 08, 2010

Microsoft WebCam VX 1000 in Linux

I was a bit upset when I purchased Microsoft's web camera, knowing that I am going to use it on a Linux system. Those two brand names simply don't go well together. :)
However, as listed in this thread (Microsoft WebCam VX 1000) the camera works well under Linux as there are drivers available.
There are glitches, in Linux with some software, that are not apparent and intuitive. Like Vodafone's modem, where the USB memory on it needs be disabled by running "eject sr1" and then re-inserting the device, after which the system recognizes it as a modem and everything works perfectly.
With this camera, the trick is to run


So, to run Skype with usb camera support for Microsoft LifeCam VX-1000, simply run the above command, replacing with "skype" (without quotes). The camera works great!

And an additional note... Since Skype is 32-bit application, if you happen to run 64-bit system, make sure you install "libv4l-32bit" package first.


FreeProxy (link) is an awesome little program that works nicely, is simple to install and run, requiring no extra configuration if you want a foolproof operation. I took me 2 minutes to get my Linux machine going through FreeProxy on my Windows laptop.

FreeProxy is a free proxy server for Windows.

What a bad hardware can do to your psychological health

I’ve spent the last week struggling with the components for my PC. I’ve taken the minimum components that I need for an operating PC so that I could transfer the data from my old laptop to it. Then, after holidays, I would get additional RAM, graphics card, and what not. I was looking forward to installing Linux on the new box as it seemed to have advanced much more than Windows in the past several years.

However, I started to have troubles from the very beginning. The video signal would disappear at random intervals and the machine would freeze. I could still operate the DVD drive but that was it. The power was still on but the computer would not react to anything but power off or reset switch. After reset it would continue normally for an arbitrary period of time. The strangest thing was that, while freezing mid any OS installation, I managed to install Linux when I’d select Fail Safe kernel settings. At the same time, simply running memtest – either from the Linux installation DVD or a flash USB card – would never complete.

My first suspicion was the integrated GPU. So, the first thing I did was to get a separate video card. Tried running the memtest after that and at least the video would not go off this time. The freezes continued, though. The normal PC operation would go anywhere from 2 minutes to half an hour and that was it. Then it would freeze.

When I was talking to the techs in the shop where I got the video card, they expressed concerns that it would be faulty RAM that is causing the issue. I still thought it was the motherboard and the chipset on it. So I got a new motherboard. Tried running the system with motherboard replaced but the behavior was exactly the same! RAM situation was weird because I could not test either of the RAM sticks completely so I thought it would have been a strange coincidence that both sticks were bad. Anyway, I went and bought a new RAM stick. I could not finish the memtest with that one, either.

I was beginning to lose hope. The only things I haven’t replaced were processor and the Power Supply Unit (PSU). The processor would make the whole system simply be dead, rather than freezing. Also, neither processor, nor the integrated chipset cooler, nor the PSU were ever hot. So, a temperature was OK. I also checked the voltage reported by BIOS and everything seemed OK.

The next thing I decided to change was the PSU. The processor was the most expensive item and I left that for the very end. To test the PSU, I tried disconnecting the DVD and the hard drive. Did not help. Removed also the external video card to reduce the power consumption by the devices. No help, either. So I bought a new PSU. When I compared the new PSU to the old one I was amazed! It was much heavier and had heaps more connectors. And it was completely silent, which is a useful addition. Now the desktop PC was as quiet as the laptop. The first thing I noticed was that the system was much more responsive even on the boot screen. It would enter the BIOS instantly, which was never the case with the old one. Then I ran the memtest and appeared to be running much faster than ever before. The faith was starting to come back. Anticipation while looking at the progress bar and wondering whether it will suddenly stop and prolong my misery was awesome…

And, yes – at 41% the machine froze again. :( The only thing remaining is the processor. Tomorrow is the last day of the 7-day warranty and I think I’ll have to bring the processor back although I have not confirmed that it is the exact problem as I don’t have another one to try out.

Edit: Yes, as the Murphy’s Law states, the component that is faulty is to be the LAST one remaining and also the most expensive one. Yes, the processor was the problem the whole time.

Thursday, August 05, 2010

Vodafone 3G Connection on Linux

I just managed to get the Vodafone 3G mobile connection on my Linux box. Basically, BetaVine Forge site has all the drivers ready – here.


If the software does not recognize the modem, run
sudo eject sr1
Then unplug the device and plug it back in. Run vodafone software again and it will see the device.
Log in with your mobile phone number and pin and voila, you should be online.

Wednesday, August 04, 2010

PackMan :: home

PackMan :: home

Packman team packages latest software packages and those that are not already part of openSuse distribution. They are mentioned at various places as THE source for RPM packages.

Tuesday, August 03, 2010

Win32DiskImager - Ubuntu Wiki

Win32DiskImager - Ubuntu Wiki

Win32DiskImager is a Windows program that creates a bootable USB drive from a Linux ISO file. Apparently unetbootin has some bugs with latest openSuse distributions and people on forums advise using this. I can confirm having trouble using unetbootin-created image on the machine where I want to install Linux. However, the same thing worked in a VM when I was testing the USB stick. Weird.
And, yay! I can confirm that creating a bootable openSuse 11.3 USB with Win32DiskImager works perfectly!!!

Monday, August 02, 2010

Turn Off Weather Animation

PocketPC - If you have Cookie Home Tab (+Editor) and want to preserve some battery power by turning off the weather animation on the home screen, the solution is very simple although maybe not so obvious.

In Cookie Home Tab add a new shortcut to a Switch and then select Weather On/Off. After you do that, there will be a new switch icon that can be used to turn off the weather animation.

I see the animation as annoying. If its raining where I am already, I don’t need my phone to be wet. :)

Sunday, August 01, 2010

Internet on PocketPC through USB Connection

The internet connection on my mobile device, while connected to via USB to my PC, has been an interesting ride. Switching off the ‘faster data connection (RNDIS)’ fixed the network routes, apparently. Now I have a slower connection but I can access the internet and perform updates directly from the phone while it is connected to the PC.

UNetbootin - Homepage and Downloads

UNetbootin seems to be a solution for creating an USB installation media for openSuse (11.3). It performs the necessary modifications to the device and burns the image onto the USB device just as it was listed in the instructions on different wiki pages.
UNetbootin allows you to create bootable Live USB drives for Ubuntu, Fedora, and other Linux distributions without burning a CD. It runs on both Windows and Linux. You can either let UNetbootin download one of the many distributions supported out-of-the-box for you, or supply your own Linux .iso file if you've already downloaded one or your preferred distribution isn't on the list.

UNetbootin - Homepage and Downloads

Monday, July 26, 2010

Old School Color Cycling with HTML5 |

How cool is old school?!
Check these demos to see what HTML5 offers in terms of graphics. Hope we see some real games coming to browsers near you soon!

Old School Color Cycling with HTML5 |

Friday, July 23, 2010

Betavine Forge: Vodafone Mobile Connect Card driver: Project Info

Betavine Forge: Vodafone Mobile Connect Card driver: Project Info

Vodafone drivers for Mobile Connect Card. Guess these are not the USB stick drivers but it is worth testing with Live CD. Still deciding whether to go with Linux on the new box.

Sunday, July 18, 2010

Enterprise Mobile

Some cool tools for troubleshooting connection issues on Windows Mobile device.
I'm trying to figure out why I can't connect to Internet from the phone. :S

Enterprise Mobile

[APP] CHTEditor v1.8.5.1 [UPDATE 19-JUN-2010] - xda-developers

[APP] CHTEditor v1.8.5.1 [UPDATE 19-JUN-2010] - xda-developers
Cookie Home Tab Editor. A great tool for customizing Manilla on Windows Mobile phones.

Thursday, July 15, 2010

Getfirebug Blog » Blog Archive » Firebug 1.6a17

Wohoo, just found out there is a bleeding-edge Firebug available and it works with the latest Firefox 4.0 nightly build. Awesome!

Getfirebug Blog » Blog Archive » Firebug 1.6a17

Wednesday, July 14, 2010

How to: Generate a Web Service Proxy

The easiest way to generate a WCF service proxy class is to...
- create a service project,
- create a client project,
- reference the service from the client project

This will create the proxy class. To get to it, show hidden files in the project and find Reference.cs. This is the proxy code that can be sent to clients or compiled into an assembly. The endpoint configuration needs to be passed as well.

How to: Generate a Web Service Proxy

Monday, July 12, 2010

There are some interesting MSBuild tasks in this project -
I'm going to play with FTPUpload and try to add this task to the Continuous Integration server to automatically upload the published package *or* deploy the web site to the test server.

An awesome thing is that automatic FTP can be done conditionally. Check MSBuild Conditions (link) to see how to conditionally execute tasks.
My idea is to run auto-deployment for Test configurations, that would deploy the web application every time it is built and tested, but generate a package for Release builds. The package is to be archived and given to the Ops team for deployment into Production environment.

Edit: Since the solutions for FTP upload above were a bit of a pain to implement, I found another one that works great:

Edit2: The FTP task above actually works but has a bug in Cleanup command when working with FileZilla server. Fortunately the project is Open Source so I was able to download the code and fix. :)

Sunday, July 11, 2010

FXP Client (Server to Server FTP)

It seems hard to find an FTP client that does server-to-server transfer. Finally found this gem, whose name I forgot. Its been a while since I last used it, years ago. FlashFXP is one of those tools so I'm about to start using it again. The idea is to utilize FTP servers for web application deployment and a tool like this seems to be a very important piece of the puzzle.

FlashFXP Download
Since there is no free version, I decided to look further. As per Wikipedia page (link), I decided to try CoreFTP, which is both free and supports FXP. Testing it gave me a warm, fuzzy feeling of a smooth deployment from Continuous Integration server to Test or Production environment.

Well, it turns out the things can get even better - FireFTP is a Firefox addon that supports FXP! (link)
The problem, however, is that it does not work with my 4.0 build of Firefox. Continuing search...
BitKinetix (link) looks promising. Need to test later.
Another thing I need to confirm is whether FileZilla server supports FXP at all. If not, I might utilize BitKinetix and WebDAV->FTP transfer.

Saturday, July 10, 2010

Darts from the iPhone to the iPad

Darts from the iPhone to the iPad
The devices are interacting more and more. Wait until Kinect stuff comes to mobile devices! :)

Friday, July 09, 2010

Install SSHd with Cygwin

Here are some instructions (link) on how to set up SSHd with Cygwin on Windows 7/2008 series.
Also, check this HowTo (link).

Check more detailed notes on my Security page (link).

Thursday, July 08, 2010

Packaging Web Sites through CI

Currently looking for a task that will execute an equivalent of "Build Deployment Package", but from a command line. This should be available as an MSBuild task.
So far I'm having more luck finding instructions on how to do the same for Web Site, rather than Application...

Continuous integration with Team City and MSBuild

The following article - (link) -  contains the command line that executes what I want. It is fairly easy:
MSBuild MvcApplication1.csproj /T:Package
There's a good reference for command-line parameters for MSBuild here.
A useful article: Web Packaging:Creating web packages using MSBuild (link).

Using the MSDN reference (link), I tried adding
MSBuild Targets="Package"
task to the AfterBuild target in .csproj file but that did not work, creating a circular reference.
This MSDN page shows how to override default targets (link).

The batch file that does the job right contains only:
msbuild MvcApplication1.csproj /target:package /p:Configuration=Debug
This StackOverflow question (link) contains a sample MSBuild configuration.

So, the solution I'm currently happy with is to use a custom MSBuild configuration file and call the project targets from that.

After making breakthrough I updated my Deployment page (link).

Wednesday, July 07, 2010

Glenn's Eclectic Freeware

Glenn's Eclectic Freeware contains several interesting utilities, including DesktopInfo - a very neat diagnostics program, displaying stats like CPU usage, top process CPU, OS version, service pack applied, amount of RAM, disk space, IP address and settings, hostname etc.
Very useful for (virtual) servers.

Tuesday, July 06, 2010

Cryptography Basics - Techotopia

Cryptography Basics - Techotopia
Very nice introduction to cryptography, my first profession.

Gpg4win - Secure E-Mail and File Encryption using GnuPG for Windows

Gpg4win - Secure E-Mail and File Encryption using GnuPG for Windows
"Gpg4win is an installer package for Windows (2000/XP/2003/Vista) with computer programs and handbooks for email and file encryption. Both relevant cryptography standards are supported, OpenPGP and S/MIME. Gpg4win and the software included with Gpg4win are Free Software (among other things free of charge for all commercial and non-commercial purposes).

You can choose all or some of the following modules during installation:

GnuPG: The core; this is the actual encryption tool.
Kleopatra: A certificate manager for OpenPGP and X.509 (S/MIME) and common crypto dialogs.
GPA: Another certificate manager for OpenPGP and X.509 (S/MIME).
GpgOL: A plugin for Microsoft Outlook 2003 and 2007 (email encryption).
GpgEX: A plugin for Microsoft Explorer (file encryption).
Claws Mail: A complete email program including the plugin for GnuPG.
Gpg4win Compendium: The new (German!) documentation about Gpg4win2 (translation already scheduled).
Gpg4win for Novices: The old English handbook about Gpg4win1 (for newbies).

My List of Firefox Addons for 4.0

Sunset Over Water

Firefox 4.0b2
Adblock Plus
Add-on Compatibility Reporter
* Fasterfox Lite
* Firecookie
Firefox Sync
Link Target Display
* NoScript
* Walnut
Webmail Notifier


Selenium IDE
* Molybdenum


:: Home
FreeProxy (link) :
"FreeProxy is professional Freeware which channels requests for internet pages via a single computer and enables many computers to share an internet connection. If you have dial-up internet access, you can use the Demand Dial or Auto-Dial feature to dial up the internet either when it detects you want to access the internet (demand) or maintain a strict schedule of connection times (auto). Otherwise is works with Cable/Broadband."

Saturday, July 03, 2010

Thursday, July 01, 2010

Add-on Compatibility Reporter :: Add-ons for Firefox

Add-on Compatibility Reporter :: Add-ons for Firefox
This add-on for Firefox is the missing link if you're using alpha or beta builds of the browser. With this little thing your addons will be enabled although they are not yet updated to work with the latest version of the browser. You have an opportunity to report whether the addons still work or not with the latest build. Now I can again install all the addons I'm used to. Firefox will happily allow you to install extensions that would not install because of incompatibility.

Tuesday, June 29, 2010

Another Browser Test Suite

FutureMarks is another browser test suite I’m adding to my collection.

See benchmarks (link).

Should really list these on one page sometimes.

Firefox 4.0 beta 1 is out!

Mozilla Firefox guys have redefined the release plan a bit. Firefox 3.7 is to be merged with 3.6 line as the features are almost complete and focus on out-of-process plugins. So, now we have Firefox 4.0 line with other changes. The focus is on speed.
I’m trying out the IE9 tests (link) with Direct2D enabled (link), Google V8 Benchmark Suite (link) and checking out the new features of HTML5, CSS3, and JavaScript at HTMLRocks presentation (link).
See Firefox presentation here or get the 4.0 beta 1 candidates from here.

Edit: Wow, the startup is faster than current Dev version of Chrome. Even without Firefox Preloader! This is definitely my new default web browser and HTML viewer.

Monday, June 28, 2010

Goodbye, Mesh

Windows Live Mesh is soon to be replaced with Windows Live Sync service. These two services are basically merging into a hybrid of both that does not look too good.
The product is still in beta. The most significant effect that I can see is that the 5GB (from what I remember) of storage/sync space is now becoming 2GB and it is taken from your SkyDrive account. Device view is being replaced with another service – Devices (see link below). This service will also replace the remote connection from Mesh. What is left is only the Sync functionality with less online storage space. While I admit I used way less than even 2GB, it is always nice to know there is this space if/when you happen to need it. Hopefully Microsoft will do something similar to Hotmail with “ever increasing storage space” once the usage stats are on for the new service.
I haven’t yet upgraded but will soon have to, I guess. If the features are as crippled as they sound now, Dropbox could become my new old friend (again). Actually, going through the FAQ, I see Windows XP is not supported so I can’t use it at work. This means that Dropbox is definitely my new old friend…
Check the following links:
  • Announcement on Inside Windows Live (link),
  • Live Mesh FAQ (link),
  • Windows Live Sync home page (link)
  • Devices (link
Edit: Oh, yeah, have to add that I've already replaced the remote access of Mesh with LogMeIn recently.

    WCF Extras

    " A collection of useful WCF extensions including Soap Header support, WSDL documentation and more.

    The WCF platform is very extensible and allows you to easily add features that are not part of the core product.
    This project contains some extensions I needed in a WCF based project:
    • SOAP Header support for WCF
    • Adding WSDL Documentation from Source Code XML Comments
    • Override SOAP Address Location URL
    • Single WSDL file for better compatibility with older SOAP tools."

    Saturday, June 26, 2010

    Android on HTC

    Android on HTC
    This site is dedicated to running Android on HTC devices. There are two flavors of Android on HTC - one that replaces WM on the device and one that runs inside Windows Mobile from the external memory card.
    Time to start looking for software, I reckon...

    Thursday, June 24, 2010

    Using ASP.NET MVC with Different Versions of IIS: The Official Microsoft ASP.NET Site

    Using ASP.NET MVC with Different Versions of IIS: The Official Microsoft ASP.NET Site
    The downside of (still) using Windows XP for debugging ASP.NET MVC 2 applications is that IIS 5 does not support this setup out of the box. At the link above are the instructions on how to set up IIS for supporting Routing, etc.

    Wednesday, June 23, 2010

    TANDBERG Content Server

    TANDBERG Content Server
    Great presentations from NDC 2010 on Scrum/Agile, Ruby, MVC, jQuery, and other cool stuff.

    Tuesday, June 22, 2010

    PuTTY Connection Manager

    Here is a great program that helps automate PuTTY logins to remote sites. Excellent helper if you're using SSH all the time.


    No OpenID endpoint found - Stack Overflow

    No OpenID endpoint found - Stack Overflow:
    Setting up an OpenID server and Relying Party site to use it. One of the key pieces of the puzzle is to allow the RP (in web.config) to authenticate users at certain site. In my example, I had to add the site's IP (since it is a test site) to the web.config:

               <add name="localhost"/>
               <add name="" />

    Sunday, June 20, 2010

    Multithreaded Programs

    Multithreaded Programs
    Nice overview of multithreaded programming, with Java.

    Dr Dobbs - OpenID Single Sign-On

    Dr Dobbs - OpenID Single Sign-On
    Good brief about principles behind implementing a Single Sign-On with OpenID.

    [New Ext] SessionSaver - Google Chrome Forums

    [New Ext] SessionSaver - Google Chrome Forums
    SessionSaver Chrome extension saves the session - open tabs - so that it can be resumed later. Chrome, sort of, does this on its own when browser closes or crashes. However, check the list of features:

    * Saves all tab urls for all chrome windows.
    * Saves multiple sessions with custom names.
    * Loads all urls from saved session to current window in new tabs.
    * Can view all urls to copy/paste from.
    * Can save tabs just for current window.
    * Can close saved tabs.
    * Export all saved sessions to bookmarks.

    Saturday, June 19, 2010

    The Unofficial Cookie FAQ

    The Unofficial Cookie FAQ
    All about (HTTP) cookies. :)

    W. Edwards Deming: Definition from

    W. Edwards Deming: Definition from
    Key Principles section in the article about W. Edwards Deming, American engineer and statistician, pioneer of quality control. There are some great quotes and ideas.

    Download @ Desktop Gadgets by Benjamin Schirmer

    Download @ Desktop Gadgets by Benjamin Schirmer
    A few interesting gadgets for Google Desktop, including Separator and Indexing Status.
    I'm trying out Google Desktop on Windows 7 and comparing to Windows Search.

    eclipse-cs: The Checkstyle Plug-in for Eclipse

    eclipse-cs: The Checkstyle Plug-in for Eclipse: "The eclipse-cs Checkstyle plug-in integrates the well-known source code analyzer Checkstyle into today's leading IDE - Eclipse.
    Checkstyle is a Open Source development tool written by Oliver Burn, Lars K�hne and others to help you ensure that your Java code adheres to a set of coding standards. Checkstyle does this by inspecting your Java source code and pointing out items that deviate from a defined set of coding rules.
    Apart from using the Eclipse Checkstyle plug-in you can also use Checkstyle from the command line or as part of an Ant build.
    For more information about using Checkstyle outside of Eclipse see the Checkstyle documentation.
    With the Checkstyle Eclipse plug-in your code is constantly inspected for problems. Within the Eclipse workbench you are notified of problems via the Eclipse Problems View and source code annotations just as you would see with compiler errors or warnings.
    Visit the screenshots page to get a clue."

    Java theory and practice: Where's your point?

    Java theory and practice: Where's your point?
    Great overview of the non-integral numeric values in Java.
    Explains the floating-point types (float and double) and arbitrary-precision decimal (java.math.BigDecimal).

    Wednesday, June 16, 2010

    Google C Style Guide

    A coding style guide (coding standards) from Google: Google C Style Guide.
    Some useful recommendations, no matter which language you code in.

    Thursday, June 10, 2010

    Redmine - RedmineUpgrade - Redmine

    Original Redmine Upgrade instructions: Redmine - RedmineUpgrade - Redmine
    These instructions explain how to perform a Redmine upgrade. The version I deployed today does not have subtask support so I might need to get the latest one from the source code repository directly.

    Edit: My tailored version of the instructions: Redmine Upgrade.

    RedMine Installation on Windows (issue tracker)


    The current version of the installation instructions are at my RedMine page.

    The instructions below are now obsolete!



    Official document (link).
    Install Ruby 1.8.7.
    Extract RubyGems, then run "ruby setup.rb" to install.
    Install Rails: "gem install rails" or, in the command line, run:
    gem install rails -v=2.3.5

    Install Rack: "gem install rack -v=1.0.1"
    (try to Install "gem install sqlite3-ruby".)

    Set configuration. Copy config/database.yml.example to config/database.yml. Set the following:
    #  adapter: mysql
    #  database: redmine
    #  host: localhost
    #  username: root
    #  password:
    #  encoding: utf8

    adapter: sqlite3
    dbfile: db/redmine.db

    Set the environment: "set RAILS_ENV=production"
    Initialize session store: "rake config/initializers/session_store.rb"
    Copy sqlite3.dll into ruby/bin directory.
    Initialize the database. Run "rake db:migrate RAILS_ENV="production" --trace"
    Install sqlite ruby. "gem install sqlite3-ruby"
    Populate the database. Run "rake redmine:load_default_data RAILS_ENV="production" " and press enter (or select another languge).
    Run Redmine. Go to Redmine installation directory and type
    "ruby script/server webrick -e production"

    Tuesday, June 08, 2010

    US Immigration – A Guide for Employees

    US Immigration – A Guide for Employees: "E-3 Visa for Australians

    In 2005, the US announced a new visa called the E-3, for Australians only. The E3 visa allows Australian nationals, along with their spouses and children, to come to the US to work in a specialty occupation.

    This should be welcome news for Australians interested in working in the US. Until now, Australians have had to battle it out with others around the world for the highly desired H1B Visa. Last year only 900 Australians obtained an H1B - now Australians have 10,500 E3 visas just for themselves. A specialty occupation is one that requires a body of knowledge in a professional field, and at least a bachelor's degree or its equivalent, as a minimum for entry into the occupation in the United States. For Australians interested in the E3 visa, the process is actually quite similar to the H1B visa. You must first find a job with a company who will then sponsor your visa. There are 10,500 E-3 visas available per year.

    Spouses of an E-3 visa holder are permitted to come to the US and work also. A spouse's employment may be in a position other than a specialty occupation."

    Running a web server (Cassini)

    My favorite way of starting the Cassini web server is by creating a batch file in SendTo directory. The content of the file is:
    "C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\WebDev.WebServer40.EXE" /path:"%1"
    You can name it "start web server here.cmd". Then, simply right-click a folder in Windows Explorer, select Send To and "start web server here.cmd".

    Monday, June 07, 2010

    Scott Hanselman - The Weekly Source Code 25 - OpenID Edition

    Scott Hanselman - The Weekly Source Code 25 - OpenID Edition
    Cool post about implementing OpenID. Adding the following two lines to your blog/site will make it your OpenID:

    <link rel="openid.server" href="" />
    <link rel="openid.delegate" href= />

    There is also a part discussing implementation of OpenID authentication in .Net.

    Tuesday, June 01, 2010

    Upgrading Persisted Workflows (WF 4.0)

    When changing workflows, Microsoft does not support direct data migration from the long-running and persisted workflows instances. This means that every change to the workflows necessitates recompilation of the project and redeployment of the code/site. This may pose a problem for workflows that are persisted to the data store. If the changes to the workflow do not result in changes to the serialization of the workflow instance to the persistance store (database), you may be ok with updating the workflows and survive the exercise.
    But, if those changes result in different serialization - meaning there are new states, activities, fields, etc. - then upgrading the workflow assembly and trying to resume persisted instances will not go all that well.
    One of the ways to mitigate this in a state machine activity is to short-circuit the states. Meaning, apart from the initial trigger, there would be an additional trigger for short-circuiting the flow. The Receive activity, the trigger, could accept just the case identifier if your case data is stored in a database anyway. Then the case would travel directly to the state it was left in, before it was persisted, rather than go through the state machine all over again.
    In the destination state activity itself a workaround is required in the Entry activity. There could be a simple If activity that does not perform any particular actions if we are short-circuiting *or* perform all the normal activities if the case came into the state the regular way.
    Hopefully things get easier in the future.

    Sunday, May 30, 2010

    All your base are belong to us - Wikipedia, the free encyclopedia

    Another display of just how awesome can some companies be...

    All your base are belong to us - Wikipedia, the free encyclopedia: "On June 1, 2006, the video hosting website YouTube was taken down temporarily for maintenance. The phrase 'ALL YOUR VIDEO ARE BELONG TO US' appeared below the YouTube logo as a placeholder while the site was down. Some users believed the site had been hacked, leading the host to add the message 'No, we haven't been hacked. Get a sense of humor.'[7]"

    Modifying a sharepoint workflow while it's running - Stack Overflow

    Here is a testimonial that, with only simple changes in the workflow that do not affect the serialization of it, workflow assemblies can be simply replaced by copying over the new version.

    Modifying a sharepoint workflow while it's running - Stack Overflow

    Something to play with next week.

    Versioning long running workfows part 1 - The Problem Solver

    Versioning the long running workflows seems to be the way the workflows get upgraded nowadays. While there still might be an option to "modify workflows on the fly" (whatever that means, in fact), it may as well be too cumbersome and tedious to implement.
    Versioning the workflows and WCF message routing seem to be the preferred way. Here is a series of articles on the topic. This series works on the Workflow Foundation 1 (.Net 3.5) but should be applicable today. Keep in mind there is WCF routing available today to help with the transition between the two workflow versions.

    Wednesday, May 26, 2010

    jQuery and session

    How to get Session value in jquery method? - Stack Overflow
    In this Stack Overflow discussion there is an example on how to communicate from client-side JavaScript (jQuery) and server-side code. The application of this is to exchange values from ASP.NET session, which are not directly available to JavaScript.
    This is a neat way to store and retrieve values in the Session if you don't mind the extra traffic.

    Effectively, this is what you do...
    Server side:
    using System.Web.Services;
    public static string GetSession()
    return Session["CoBrowse"].ToString();
    then call this method client side using jQuery:
    type: "POST",
    url: "./Default.aspx/GetSession",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(result){
    ('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', result.d);
    Or, alternatively, you could use the simpler jQuery call:

    $.post(url, data, callback, type)


    Unfortunately, the approach above does not really work in my environment. After reading about a few more cases I'm inclined to put my faith in cookies. That solution seems to work better as a media for client-server information exchange.
    When using cookies, however, pay attention on the Path value. If you are redirecting from one page to another, you have to use '/' as the cookie path.

    $.cookie('MyPhoto_SelectedTab', 'yo, mate', { path: '/' } );
    top.location = 'http://' + + '/MyPhotos/photos.aspx';