Archive for September 2008

New computer

Actually not a new computer at this point, rather when I was about 12 or 13 years old.  My father went once in a while to England to participate in Kodak seminars that he had to take to be a certified Kodak repair all ills fixit man.  He took care of a lot of different equipment made by Kodak.  Mainly the one hour photo labs, but also a lot of other stuff.  I don’t think that the training in England was really needed, yes maybe in some instances.  I’m sure he wouldn’t have needed some of them and being able to fix whatever came up without a formal training.  The fact is that he liked going to England, because it was a cool place and just a fun to visit.

I had been campaigning for a computer at the time mainly to play video games.  The time came for my fathers next visit to England.  To my surprise he actually came back home with a Texas Instrument TI-99 that had the very first 16bit blazing processor.

The TI had a lot going for it plug in play hardware, voice module, cartridges etc.   I have to admit at first I was a little bit blown off because my friends had the Sinclair which boosted more of the popular games at the time like Decathlon

Which I had been playing at their house as I didn’t even have a computer.  But wait a minute, the TI had plenty of fun games too that I played for extended time.  Thank god for the pause button !  Once I played Parsec for 3-4 hrs without a restart.  I was motivated by some English computer magazine that covered games and people wrote in with their high score.  I also remember WarGames which appeared in the WarGames movie.  The game itself was kinda dull though I didn’t play it much.  The objective was to send nukes and defend nukes in the end everything blew up, end of story.  Which surprisingly leads us to Tom Anderson

You can find TI-99 emulator here it includes some of the games and other apps such as “Home Finance”.

My father said he wanted to get me somthing that wasn’t just a game console, rather a real computer that you could program.  Of course the programming language was Basic. After playing a lot of the games I became tired of them and wanted to do some programming.  I started by writing a game of my own, it was pretty primitive but it was playable.   I would also write some other small programs mostly something that had to do with graphics.  That’s how it started, how I got interested in programming.

Joel & Jeff Unite

I have read Joel for a long time, recently he started the buzz about his new upcoming Stack Overflow  This time around he isn’t alone though, he’s joining forces with Jeff Atwood.  Good for him I say, he’s probably a good developer otherwise Joel wouldn’t be working with him.  To only discover later that Jeff Atwood is the Coding Horror blogger.  The funny part is that I have been reading both of them and now they joined forces on their new project, kewl.  If  Stack Overflow doesn’t sell out, which is unlikely I’m sure it is going to be a big success.  Join the fun at Stack Overflow there sure is a need for that site.

Linux day#5

I tried to address the Skype issue today, not being able to use skype voice  from the linux box isn’t going to work.  At least not if all the daily tasks are to be included.  I snug over to the Mint forums and used an advise from a thread that gave better results than what I had tried before.  Still my father on the other end in Florida complained about some rattle sound from the mic etc, but a lot better than talking with a muffler on.  It’s usable but it’s not great as it is on the win box.

Then I started to setup the dual monitors, that has only given mixed results.  I was able to activate both monitors but they are still showing the same desktop.  Which doesn’t make it very usable… to be continued.

TeamCity gets thumbs up !

A fellow developer and I implemented TeamCity at work.  Before we had elaborate Nant build script, but the end result was limited.  We only got a fail / success email at the end of the build.  If you get a fail you will have to search for the failure, was it that the database didn’t build or the code ?  Not only are you bound to fail on bad check-ins but also on external factors.  Like the network drive not mounted, out of space or the local drive of the build machine itself.  It could even be an update to the build script which in many cases is harder to detect.  It could also be an UnitTest because of change in code.  Whoever is monitoring the build has to take the time to figure these things out right away and if you don’t they will snowball.

Enter TeamCity which will in most cases pinpoint the failures for you, in a easy to navigate web interface.  Not only that but there are endless useful features in TeamCity.  Such as how long each of your tests took to run with history back in time.  Before you run a build you can see the pending changes and you can even diff the changes to the files in the browser, again this history is kept through time .  Before with a single running nant script we would spit out to a text file the build success / failures to have a audit log.  To open up the audit log and figure out which build succeeded and what changes were in there, uhm just wasn’t that clean, besides not everybody remembers to tag the audit log with the relevant info.  However  with TeamCity all of that is right there on the main page, you just navigate through the configuration you want to see and all the stats are there.  Failure / success, how long it took to run, how long it took to run on the different build boxes, how many UnitTest were run etc.

Besides from that TeamCity offers pre-tested commit.  The way it works is that if your code compiles clean and the build succeeds your code will be checked into the repository.  If not you will get a failure and your code will not be checked in and your fellow developers won’t be affected by the offending bad checkins that you would have had normally in the repository.  We all know how frustrating it is when somebody checks in their code and leaves for the day just to break the build and leave everybody in a non compile state if they dared to get the latest code from the repository.  That leads to a lot of wasted time, we have all done it at some point, some more than others.  At work we are getting to the point were we can start testing the pre-tested commits, we are pretty excited about that.

TeamCity is one of those product were you take a look and you just like it at first sight.  Then you start looking deeper and you find out it’s pretty solid.  It’s true that I would have offered a couple of things out of the box, but they actually built it so it can be extended via plugins, which is always a bonus.  If  you can’t find the feature your looking for odds are that you can write a little plugin to do the task.  TeamCity works with all major repos and databases to keep it’s data.

For a full feature set you should visit TeamCity for the whole story and guess what, if you are in a small to mid size development shop it’s actually FREE.  Check the professional edition On the other hand if your a bigger shop you need to shell out some $$ it’s definetely worth it.

Pair programming – on the bad list

A fellow developer and I were working in a small shop way back in 1995.  The project was small and there was no repository, it got to the point that sometimes we could not code separately as we would have stepped on each other toes and it would be hard to merge the codebase together with the contribution from the two of us.  So we figured out something else, we would sit down together and solve the problems as we talked them through I would often start the coding right there.  We actually became pretty good at this and did this frequently on this one project.

Our manager comes around the corner sees us doing our thing, he goes  “What are you guys doing ?”  And we answer him “working” further we try to explain to him that there are many problems to be solved and that’s what we are talking about, just solving and implementing the solutions to the problems.  Some days later he comes around the corner again and the same question it goes without saying we give him the same answer.  The strange part was that our manager could not grasp the idea of what we were doing and he thought it was a total waste of time.  Two developers one keyboard and one guy just talking, he also probably thought we were just talking about what movie was good or whatever else.

Then as we are getting tired of this ignorance by the manager as he clearly didn’t get it, we decide to stir things up a little.  Next time he comes around the corner with the usual “What are you guys doing ?” we just said “Nothing” and keep solving the problem as he stood in disbelieve looking on, after a moment he was gone as quickly as he had appeared.

To bad we didn’t have a name for it something cool like pair programming  which of course we had never heard of at the time.  It  would have been great if we could have just told the manager to go read an article on the subject and he probably would have been full of praises instead of us being on his bad list.

Just as Al Gore invented the Internet we invented pair programming !

I have only used pair programming on two projects which tends to be on smaller projects were it worked well.  First of all you have to both like and trust your fellow developer for it to be really effective.  It doesn’t matter if the more experienced developer is at the keyboard or the other way around it works equally well.  Also you only tend to use pair programming when there is a problem or directional discissions to be made, after the session both developers go there own way coding the day to day stuff.

Win house cleaning

I had a little bit of time today so I started those cleaning tasks that you put off forever until it’s finally time to do it, I guess your puter is a bit like your house.  I had installed the MSDN subscription center to get the MSDN content, but it starts automatically and plunks in the tray on startup.   Not by sitting in the startup folder rather in the registry, you have to open up regedit and navigate all the way to win/currentversion/run then delete the key, bad.  Disabling by clicking settings isn’t going to help.

With that out of the way lately when I tried to shutdown the computer it was sometimes unsuccessful because of google chrome updater running.  So let’s take a look, sure enough googleupdate is also in the registry on startup, remove that but then there is a surprise.  They also sneaked in a schedule task, which will run any time your machine is idle and yes it will wake up the google updater, let’s take a look at the description of the task.

Google Update Task keeps your Google software up to date. If Google Update Task is disabled or stopped, your Google software may not be kept up to date, meaning we can’t fix security vulnerabilities that may arise, and features in your Google software may not work. Google Update Task uninstalls itself when there is no Google software using it. It may take a few hours for Google Update to detect it is time to uninstall.

I guess that’s why they leave the updater running after you uninstall google chrome.  Further they have a win service “Google Updater Service” running.  That might be uninstalled by the installer, I did not test for that.

I actually do have another task, which is for the quicktime updater, that only runs at 8:59 on Sunday evenings, maybe google got the idea from Apple ?  I also found an Apple win service Apple Mobile Device.  I do not need that running at all, I don’t even have mobile device.  Description – Provides the interface to Apple mobile devices.

The very first thing you do after a win install is to turn of the auto update so your computer won’t get knocked down by first time upgrades from MS.  If you want to be a tester for MS or any other software by all means keep the auto update ON.  The best rule is not to update software unless you have to or if you actually want to.  Software usually becomes slower and bulkier as a new version comes out because there is more code and more features to be had.  Unless there is a version that focused specifically on speeding things up, which is sometimes the case.

What we need is a control over the updates any decent software used to have that in their preferences / settings and they still do.  When you get leached like that you are likely not to use the software.