November 20th, 2008

Although Mono 2.0.1 has been out for some time now it will take another major upgrade for Ubuntu to actually include it. Currently Ubuntu includes Mono 1.2.6.
If you would like to work with the newer Mono version you need to compile it yourself for now. Thankfully this is easier than it sounds. The following will upgrade your Ubuntu installation but note: this does not cover MonoDevelop, which will stay at the old version.
Read the rest of this entry »
Tags: 2.01, Learn C#, mono
Posted in Beginner, Learn C# | No Comments, yet!
November 20th, 2008

The problem with World of Warcraft is that its too addictive. So to avoid that certain family members skip their homework and team up to burn unsavory characters to crisps in world I am very much reduced to playing in the middle of the night. Chances of that happening, well about once a week at most.
So I had mostly overlooked the Lich King upgrade until I tried to enter the game tonight. My English version of Word of Warcraft, playing on the Taiwan server cheerfully reported that my account had been upgraded for Lich King but that it couldn’t find the content.
The Chinese version on my wife’s computer automatically started downloading a paltry 1.9Gb of data (@ 1000Kb/sec, sweet), but I was referred to the US website.
It turns out that you can actually download the content from:www.worldofwarcraft.com/lichking/download
Of course it asks for a username & password, and my heart sank at this point — no US account, no download.
Miracles do happen, and (a fluke? design?) it accepted my Taiwanese username & password to download the upgrading installer.
Installation went smoothly, although at 50Kb/sec it took a long time. It also did reset realmlist.wtf again so that after the upgrade it tried to verify the account against the US server instead of the Taiwanese one.
The fix was simple enough — on your hard disk find the following file:
c:\Program Files\World of Warcraft\Data\enUS\realmlist.wtf
Then change the contents to:
set realmlist tw.logon.worldofwarcraft.com
set patchlist us.version.worldofwarcraft.com
set portal tw
Now I just need to find another quiet night…
Tags: chinese, Lich King, taiwan, warcraft
Posted in Uncategorized | No Comments, yet!
November 19th, 2008

Multi-tasking / multi-threaded applications have always been a bit of a nightmare to create. Different operating systems and sometimes even different compilers and class libraries tends to have their own implementations. Fortunately the .NET / C# implementation of threading is extremely straightforward and makes it simple to create a multi threaded application. In this article we look at building some very simple threaded applications. We go into how to create them, synchronize them and how we can ensure that things such as shared variables are properly protected.
Read the rest of this entry »
Tags: c-sharp, Learn C#, multi threading, Thread
Posted in Intermediate, Learn C# | No Comments, yet!
November 19th, 2008
Google Taiwan must have noticed that not many of Taipei’s shoppers started downloading Google Chrome following them putting up one massive billboard last month. (On one of my Taiwanese websites Chrome has so far grown to 0.54% of the visitors).
They dropped complicated and went for the KISS concept. Instead of instructions on how to download Google Chrome they now simply ask “What can you do with Google?”. The TV screen has dropped animated Google Earth flyovers and now focuses on Google Mail instead.

With most Taiwanese website visitors coming from Yahoo Taiwan (2/3) versus Google Taiwan (1/3) they still have some catching up to do. Sticking to promoting the basics might be the best decision.
Tags: advertising, chrome, google
Posted in Personal | No Comments, yet!
November 18th, 2008
What is a delegate and why would you want to use them?
Calling methods with parameters comes natural in programming, but what if you would like to pass the methods themselves to another method?
To give an example: You might want to set a timer and have the timer call a particular method when the time comes. To avoid having to hard code each possible action together with its own timer you might want to pass the action method in your call to the timer itself. In C# this is called delegation.
Read the rest of this entry »
Tags: c-sharp, delegate, delegation, Learn C#
Posted in Beginner, Learn C# | 1 Comment already!»
November 17th, 2008

Dozens of protocols have come and gone (does anyone even remember IPX/SPX?) but both TCP & UDP over IP survive. C# offers a good deal of libraries for handling connections both on the server and client side. Here we look at how to build a simple server in increasing steps of complexity.
Read the rest of this entry »
Tags: Learn C#, listener, sockets, tcp
Posted in Beginner, Learn C# | 10 Comments - getting there! »
November 17th, 2008
Several bits of basic system related information on the environment, working directory, memory use etc can be retrieved through the Sytem.Environment class. The class also contains functions that allow you to quickly terminate your program for when don’t want to properly clean up.
Read the rest of this entry »
Tags: environment, getenvironmentvariables, system.environment
Posted in Beginner, Learn C# | No Comments, yet!
November 15th, 2008

C# might look a lot like C++ but that doesn’t mean that everything is as it appears to be. There are some gotcha’s that can trip you up.
Read the rest of this entry »
Tags: Learn C#, refernence, value
Posted in Beginner, Learn C# | 2 Comments - getting there! »
November 15th, 2008

You heard might have heard about generics, but how do they work in C# ? And what is that <T> doing in the class definition? This article shows you the benefits of using generics, and how to implement them yourself.
Read the rest of this entry »
Tags: generics, Learn C#
Posted in Intermediate, Learn C# | No Comments, yet!
November 15th, 2008

When writing new code everything seems so obvious that there is hardly a need to code any comments. But then you get that highly tuned and several times rewritten code library the company has been using for 20+ years. Attached to it is a note asking you to recode it in C# before the weekend.
Read the rest of this entry »
Tags: commenting, Learn C#
Posted in Beginner, Learn C# | No Comments, yet!