Learning Erlang
It all started way back when I was doing concurrent programming in Java for the MMORPG when a buddy of mine pointed out CouchDB. It's a neat project, but was written in some strange language called Erlang. I started to look more into Erlang and found that the language was designed to addressed some of the more complicated aspects of concurrent programming. This appealed to me because those were my current pain points with the game. When do we lock around what data, which threads are changing what, do I need to use volatile for this variable too. It's a lot to think about, it's hard to get right, and Erlang solves those problems for you if you're willing to think differently.
I started by reading Programming Erlang by Joe Armstrong and now I'm reading through Erlang Programming by Francesco Cesarini and Simon Thompson. I'm enjoying the second book more than the first one, but this could be a side effect of being more comfortable with Erlang because I read the first book. I'm so taken with this bizarre language that I've decided to work through all of the exercises in Erlang Programming. I'll be posting my solutions and hopefully, by the time I get through all of them I'll feel comfortable enough with Erlang to build something with it.
Cheers,
- Halzy
Subversion loves Araxis Merge (or, How I finally configured subversion to use Araxis Merge in a not so stupid way.)
Araxis suggests modifying subversions diff-cmd and diff3-cmd settings to get it to use Araxis Merge instead of the defaults. Here is a snippet from their docs. (You can skip it, it's just here to make my post look bigger.):
Open your ‘SVN configuration area’ configuration file in a text editor. The default location for this file is ~/.subversion.
Uncomment the line that specifies the
diff-cmdand set its value to the path of the Merge araxissvndiff executable that you have installed on your machine:diff-cmd = /Users/<userid>/bin/araxissvndiffNote: in the above path, replace /Users/<userid>/bin/araxissvndiff with the full path to the Merge Merge araxissvndiff command-line utility that you have installed on your machine.
Also uncomment the line that specifies the
diff-cmd3and set its value to the path of the Merge araxissvndiff3 executable that you have installed on your machine:diff3-cmd = /Users/<userid>/bin/araxissvndiff3Note: in the above path, replace /Users/<userid>/bin/araxissvndiff3 with the full path to the Merge Merge araxissvndiff3 command-line utility that you have installed on your machine.
By doing what they say, you tell svn to use Araxis Merge every time it needs to merge a file. The problem with this is that svn will open Araxis Merge to make every merge. When you have a couple hundred files, you want svn to merge everything it can without opening Araxis Merge, and to only open it when there is a conflict. There is a way to do this, but it is not obvious.
Shock & Awe @ Google

2009.10.7 Google Homepage
Today Googles homepage has a nice look to it, so much different that I was shocked when I arrived. The navigation and footer links faded in when you move your mouse. Very nice Google, I applaud you.
I’ll be late…
Dearest Love of My Life,
I know how much it can negatively affect life at home when I'm unable to arrive at a reasonable hour. Please understand my regrets that I will be late this evening..
Quick math game.
Yesterday I made a quick math game to help with some math studies. You have to click on the game, then type in the answer and hit enter (or click GO!).



