Me, a celebrity cartoon character, well ofcourse.
My good friend and colleague Darryl has discovered a wonderful service called bitstrips.com. Basically this service lets you create your own cartoons. The first cartoon he created, has Darryl and myself in it (just to clarify things, I’m the Ruby guy).
Click on the image to view the full size version on Darryl’s Blog.
No commentsStrange TFS behaviour (goes offline for some reason)
I’ve started a new .NET project. Actually it was the first project the we started within Team Foundation Server environment. After creating five VS2008 projects (Data tier, Business Tier, Web Application, etc) I added the projects to TFS.
Another developer then successfully gained access to these projects and was able to work on them. However, on my machine, when I tried to get the source code out of TFS to work on it, VS would download the latest code and then tell me the Solution is not attached to source control. After digging around, I found that VS thought the TFS was offline. I still don’t know how or why this happened, but I have found the solution (after few hours of bashing my head against the wall).
The environment I am using is Visual Studio 2008 running on Vista Ultimate (actually its ubuntu running Virtual Box and Vista as guest). For all those distinguished colegues who suggested its Ubuntu’s fault, I have nothing so say.
So here goes the solution.
Step 1. Download the Visual Studio Team System 2008 Team Foundation Server Power Tools
Step 2. Open command prompt and go to:
C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools
Step 3. Run command: TFPT TweakUI
Step 4. Select the TFS entry in question and click the edit button.

Step 5. Make sure the “Server is offline” checkbox is not checked.

If anyone knows why this happened, please leave a comment. Also, if the issue occurs with Visual Studio 2005, the only way to fix it is to hack some registry values. The manual solution is described here.
1 commentPerl script I use again and again
There comes a time when you realize there are pieces of programming you created years ago that are still in use today. My little templater.pl perl script is such a piece of software, and so I share it with the world.
Basically the script uses a CSV file (where the first row contains column names) to merge it with a directory structure and template files. The directory names, file names and file contents can all contain tags with column names like so _[ColumnName]_. The script will create files and directories, based on data in the csv file.
Its released under the MIT license.
No commentsFuture of web interfaces and the RESTful world
Over last month or so I’ve spend most of my time designing interfaces with my business partner. Basically we take on a screen and attempt to design a web page that we think would service us and our customers. In general we follow the rules (generally, we are not that strict about it).
- The page should make what ever the user does 90% of the time dead obvious how to do.
- The page is not finished when we stop adding features to it, it is finished when we stop removing features.
- Keep it simple and clean and never over clutter the page.
In theory we feel following these rules we will design and implement very simple to use clean interfaces for our features. There are however the following constraints, mainly imposed on me/by me. I am a technical director of the company while my business partner is a managing director, so technical restrictions mainly fall on me. So here go the restrictions.
- The application is written using Ruby and Ruby on Rails web framework, so I’ve decided to make the application RESTful. This means navigation and pages where ever possible follow the RESTful principles.
- Do what can be done on client side on client side. I use JavaScript and prototypejs library to do most of the client side work.
- Keep it simple and clean and never over clutter the code.
So now, we have been happily designing our screens, and while they have some nice JavaScript features, at the end of the day most are forms, lists, etc. I feel happy for this to be the interface for version 1 of our product (which is a web based application), but deep down, I hate standard looking view (list/grid), edit/add (form) web pages. Like with most things we do, I ask a question, is there a better way. Now, I am not going to blame REST for anything, but it does make it easy to follow the pattern of list/form design, especially within Ruby on Rails.
Have a look at the following video. The video shows a concept of using a shadow/hologram that follows you around and is basically an interface into your mobile phone, music player, GPS, etc..
Ringo, the interface shown in the video above is developed by a guy called Ivan Tihienk. I love the concept and would love to do something like that for our application (ok, running in a browser). The idea of me attempting something like that would mean having to learn something like Flash or Silverlight, or attempt to do it in JavaScript (which I think could be possible).
Since I write applications for people, to be used by people, to me the interface is the most important part of the application.
Trying to get a startup off the ground while consulting %60 of the time to pay the bills is hard, and its hard simply because I feel I can bring many more ideas to fruition, simply if I had more time. So step one is to get the startup profitable and then allocate time to play with REST, interfaces, Ruby on Rails, not for building applications, but to enhance these great technologies to offer more for humans who use them (unknowingly most of the time), not humans who use these technologies to write applications.
No commentsUbuntu, Sun VirtualBox and bridged networking
I am running VirtualBox on my laptop (host OS is Ubuntu Hardy). Currently I use VirtualBox to run a Windows Vista Ultimate guest OS (for all those times when I need windows).
One annoying thing about VirtualBox is that it does not give you an easy way to setup a network bridge like vmware does. So after digging around the web I found the following script does the job nicely.
-
#!/bin/shUSERNAME=user # login name of HOST system
-
DHCP=0 # set to 1 to use dynamic ip for bridge
-
IP_ADDRESS=192.168.0.4 # static ip address of bridge (only used if DHCP set to 0)
-
tunctl -t tap1 -u $USERNAME
-
brctl addbr br0
-
ifconfig eth0 0.0.0.0 promisc
-
brctl addif br0 eth0
-
if [ DHCP = 1 ]; then
-
dhclient br0
-
else
-
ifconfig br0 $IP_ADDRESS
-
fi
-
brctl addif br0 tap1
-
ifconfig tap1 up
-
chmod 0666 /dev/net/tun
This script must be run with elevated privileges (sudo). Since I connect to different networks at home and at work (home uses static IP, work uses DHCP), I created two scripts, one for home and one for work. Within Ubuntu I use wicd as my network manager and it has the ability to run scripts before/after connect, etc… but I can’t seem to get it to execute the above script automatically when I pick a profile, so for now I have to run the script manually.
3 comments

