All too often I need to release changes to a staging or live server and I always felt the releases were taking too long.
At Karova we use SVN and I always try and commit any releases in one changeset. I wrote a python script to archive all the files listed in a changeset. It’s been very very useful so far. Simply run the python script in the root of your repos and you will be prompted for the changeset number. The script then archives all the files in that changeset in a zip file named by changeset. You’ll need the svn client in your path for it to work though.
I’d played with all three before but never really got past prototype stage. I’ve spent the last day learning wix and all the elements relevant to me. The Web Application Installer is collection of scripts and a template for different types of web applications. Firstly you use WAI to generate a list of files to install and the use WixEdit to edit that list and many other properties of the wix installation. Once happy with the configuration of the installation WixEdit will generate an msi for installation on your target machine. They truly are an excellent collection of tools. I now have an msi installer that sets up a web site in IIS, sets the ASP.NET version to 2, sets all the required permissions, creates a DB in SQL Server Express (specifying where to save the mdf and ldf files too) and changes the connection string in web.config accordingly. Todays quota of job satisfaction has now been achieved – saving about an hour per install (I’ve to install this app 28 times for different clients so the work was definitely worth while).
One huge pit fall which made me silly amounts of angry was that the SQL script you use to generate the tables and initial data for your database MUST be saved in Unicode (UTF-8). If it’s not then wix won’t be able to read it. I lost 3 hours yesterday with this!!!! as SQL server management studio express by default saves to UCS-2 Big Endian. Very little documentation on this fact so hopefully this post will help a little.
We had a support ticket at Karova which resulted in me having to look at the http data being sent between two servers via Soap over http. I’d read about Wireshark before and had it downloaded already. I installed it – found a way to filter the captured data by IP address and logged all traffic between both servers. All in under three minutes. It’s a awesome piece of software, I’ve been meaning for so long to re-visit the workings of the http protocol but always let it slide down my list. With Wireshark you can at least see what you’re learning in practice.
Since coming back to Karova, I’ve been doing ALOT more management of projects than I did before. Usually what happens is I get the projects once they’ve been spec’d (and prototype’d if appropriate) and then I manage the completion of the project from dev->staging->live and then pass it back to billing.
We always have a good number of projects on the go and my stack is always packed full of project details. The problem I’m having though is being able to step away from the code. I love coding and I know of no other feeling (achievable in an office environment) better than being in the "zone". With so many projects on-going it’s imperative that I delegate rather than try and get stuck in too much even if I know I am most familiar with a piece of software or technology.
It’s a great opportunity for me to step back from code and focus more on managaing and looking at things from a technologist point of view rather than a coder. Under that role I have already been able to play with Linq, ASP.NET 3.5 and SubSonic. Has anybody been in the same situation and have some advice?. For now I just know I need to stay disciplined and step away from the urge to start ‘xslt’ing and coding my ass off.
Outlook is awesomely crap. I really do hate it. It hangs all the time. It’s rules are rubbish and not very intuitive to set up. I can’t “edit as new” and it’s tagging/flagging is not very good as the flagged state of an email is not very apparent. It also irks me that it insists on SHOUTING it’s process name to me in the task manager “OUTLOOK.EXE”. Where are thou oh loveliest of loveliest thunderbird :). Rant over
As it’s new year and my motivation is at an all time low, I think a list of TODOs (or new years resultions) is needed. Some of those listed are techy and some are not but all of them are aimed at improving my life.
Finish the new design of this site – as you can see, it’s still a work in progress
Find some way of feeling healthier that I can actually stick to (Gym is a bit too much commitment)
Start to budget my outgoings properly
Stop calling my dog “the rodent”
Learn that Friday does not have to equal “getpissedday”
Stop watching soap operas – comedy series like King of Queens and Scrubs will remain on my Sky+ planner though
Contribute to an open source project
Help fellow developers more
Always keep in mind that I know only a fraction of what I think I know
Be in a good mood
Write another useful Firefox extension that uses a custom XPCOM component
Use Patterns in code more
Stop driving like an idiot just so I can get home quicker
Go to Ireland to see my friends and family more
Go to the summer house in Norway
And finally – keep this blog up to date
There’s quite a few there so I think it’s more of a two year plan. I have been working on an eight year plan with Gill too, but it’s still a bit up in the air but very exciting – as along as all goes well –
I will also (I thought of some more)
Move to IMAP instead of POP email
Learn how to use SVN properly
Go to LinuxWorld in London (as long as it’s not on Gill’s birthday like last year)
Every year for the last few years I have given to charity at Christmas. Last year it was Oxfam but this year I wanted to do something a bit different. In the early days of Aggreg8 development, I got a $10 donation and it freaked me out, I coded for days with a crazy energy and a boosted ego, knowing that someone thought that what I was doing was worth some of their hard earned cash. So this year, I have decided to give $5 to 10 different Open Source projects. The projects I have chosen are ones that I use on a day to day basis and really admire.
Jedit (once I figure out what their paypal account is)
If we could all do something like this then Open source would continue to thrive and we will all reap the benefits for years and years to come. Joel noted that most people don’t want credit for donating but I do as donating is clearly not a selfless act ;).
In planning software projects I have found that there is a fine line between planning too much and too little. The worst of course is planning too little where you just start coding like a headless chicken. There’s a nice parable that illustrates this perfectly.