CruiseControl Monitors – Graphs and Configuration
cc_monitor now has graphs with the success and failure showing as below

Not only that it is now configurable with a config file to set variables at startup. And now it is also armed with activerecord mgirations. So if you want to look at a working example of activerecord migrations outside of rails you can use this code.
CruiseControl Monitors – Gotchas and repost
When trying to use cc_monitor on my current project(which is completely ruby) I hit the known snag of making it work with cruisecontrol.rb. For the umpteenth time I was not able to find any documentation on making it publish cc_tray compatible xml, which would make cc_monitor work with cc.rb.
After some googling and mucking around I downloaded latest cruisecontrol.rb and looked at its routes. I found a route “XmlServerReport.aspx” which does publish in ‘cctray’ format. I plugged it in to cc_monitor and it works like a charm.
So now I can announce that cc_monitor works with any java/ruby versions of cruisecontrol. If you would like to use cc_monitor with a continuous integration tool make sure it publishes a cc_tray compatible xml and you are all set.
Recently I successfully added ‘bacon’ to test my ramaze code for cc_monitor. The repository has been updated so check it out.
I was also suggested to check out cc_board which is a build monitor written in sinatra by David Vollbracht. Another app to make big visible charts for your team!
Flash on Linux
Last night when struggling to get Firefox to play with Ubuntu and Flash I found this
forum.
The instructions that worked for me are as follows
1. Remove all installations of flash (9, 10.. )
2. Remove all installations of gnash
3. Remove all installations of swfdec
4. (Basically remove everything that conflicts with flash player – some of these things come bundled with Ubuntu)
5. Remove any file in “/usr/lib/firefox/plugins” with the word flash in its name.
eg. libflashplayer.so or in my case alternate-flashplugin.so.
6. Once you have verified that all this has gone (You could use about:plugins url in your firefox to see all the plugins you have along with their associated file types) – reinstall the latest version of flash player from adobe website.
7. You should have Hulu.com working.
Hope this helps someone who is trying to do the same.
“Now when someone asks – Do you have Flash working on Linux – you know what to say”
Learn Git
One big repository and one big repository on learning it all about git.
Now you can’t say you do not know enough not to try it.
“May the Git be with you!”
Agile Conference 2009 – TDD with Iphone
On the last day I had just enough time to listen to Eric Smith and Eric Meyer from 8th light where they talked about TDD with IPhone.
What was interesting was even while working with this difficult technology (Objective C is not hard but Xcode is nothing but cryptic – XIB files really?) they were able to build iPhone apps without giving up of basic principles of TDD.
They demonstrated their struggle before any tools were available for Unit testing with iPhone.
Couple of tools they mentioned were
1. Google Toolbox for the Mac
2. OCUnit
Something to make life less miserable when building better applications with iPhone.
Agile Conference 2009 – day 1
Very busy even though I started at 11:00am.
Met a number of ThoughtWorkers, ex-ThoughtWorkers(talking about Aslak, Liz, h, Foemmel, Glenn Bernsohn, Naresh Jain) and many people I did not know before.
ThoughtWorks booth is a hit – atleast 25 entries for the free ipod touch.
Met people from Moscow, Israel, Brazil, India, UK.
Met people from different Agile organizations. So wonderful to see so much activity in the agile space. Just proves that ThoughtWorks has been right all along and we can say “We told you so”.
Went to interesting session from Mary Poppendieck – impressed by her speaking
skills. (Hope I can come close to those skills during my talk with Paulo).
Hope to see many more at the Agile Open office at the ThoughtWorks Chicago office tomorrow.
Speaking at Agile Conf 2009 in Chicago
I will be speaking at Agile Conference 2009 in Chicago between August 24-28. You will find all the other speakers from ThoughtWorks on ThoughtWorks website.
My colleague and compadre from my TWU trainer stint Paulo Caroli and Sumeet Moghe will be there too.
See you there.
After Print: Want to attend my session … there is an app for that(Agile 2009 Conference Connection at the AppStore – written by ThoughtWorks)
top ten reasons why maven sucks
10. maven corrupts – software, people.
9. maven uses an archetype(appfuse) and expects that all your projects look like the apache projects – even those that are not webservers.
8. maven has only four build stages – compile, test, install, package – if you have a requirement to automate performance testing you are out of luck
7. maven requires you to have a standard directory structure that is 5 subdirectories deep – regardless of the fact that your project only has 10 java files.
6. tasks that are not implemented in maven have to be implemented in ant and need to be integrated with maven – a big nightmare.
5. maven encourages you to integrate via binaries – thus making continuous integration difficult
4. every time maven builds it connects to the internet (to verify/update dependencies) – building your project without the internet is extremely hard.
3. maven manages the projects and subprojects implicitly (since there is convention and then there are overrides) – it makes debugging your build impossible.
2. maven manages the project dependencies in its own repository – called the .m2 repository – which is not part of your application folder – thus making it impossible to track and package development environments.
1. maven always downloads the whole internet – to keep its dependencies up to date – even though you don’t want to.
itunes settings
If you are using iTunes to play your music be careful when adding music to the library. iTunes tries to be smart and by default it makes a copy of the music you have as well as tries to organise it the way it likes. So if you do not like your music organised by artist/album and so on it will render your music unsearchable. (This is true for me since I do not organise my music by the artist album and such.)
To save the whole lot of mess it creates set the following in your iTunes preferences
.
This way iTunes will make a list of songs but not process them the way it likes. You can have your own organisation of music and save a lot of trouble for yourself.
javascript testing with seacucumber
Seacucumber was a project that was a tool we used on a previous rails project. My friends Mike Ward and <a href= “http://www.peterryan.net/”>Peter Ryan opensourced it some time back. It was dormant for awhile since it worked great with prototype. Another thing was that it looked and behaved very similar to Dr. Nic’s javascript testing that you can download for rails. Recently I was on a project where we used jquery and we did not have anything to run javascript tests and break the build on failure.
So I revived seacucumber development and added jquery support to it. I had to modify jquery test runner to postback results as prototype does. So if you need a tool to automate your javascript testing you should use seacucumber. It has been moved to github. Feel free to download it, fork it and use it. Let me know what you would like added to this tool.
MySQL Triggers
MySQL added triggers to its portfolio in version 5.0. I am thinking this was a lot of database gurus have been wanting for so long. A little primer on how to use MySQL trigger follows : Trigger 101 follows – so detune if you are a guru already.
Your database can perform a decent number of arithmetic and logical operations on your data. All this can be done by using the features of your database engine and without writing any code. One of the features I used in a recent write up is triggers.
I have some tables – models with relationships. When these models change I want to effect some calculations and update relevant tables.This can all be done through triggers.
Lets take it up with an example
1 create table voters(name varchar(30), id integer, ward varchar(30), gender integer);
2 create table voter_ward(ward varchar(30), male integer, female integer);
3
4 -- adding trigger to update voter count by gender automatically
5 create trigger TOTAL AFTER UPDATE on voters for each row
6 BEGIN
7 update voter_ward set male = (select sum(voters.gender)
8 from voters where ward = new.ward) where ward = new.ward;
9
10 update voter_ward set female = (select sum(voters.gender)
11 from voters where ward = new.ward) where ward = new.ward;
12 END;
13 //
14 delimiter ;
This will add a trigger to your voters table and update the voter_ward table with the genderwise count. As you can imagine you can add a lot of simple logic into these triggers to build simple and efficient update based on such events. Another thing that should be apparent is being cautious about using these triggers every chance you get to use it – They will bring the database performance down with these frequent queries.
accordion.js that is simple and works with prototype1.6
Released accordion.js on github. We were quite frustrated with the way accordion v2.0 behaved with prototype1.6. Upgrading that from prototype1.5 broke the accordion when using with images. Our simple version does not have any effects yet but work beautifully and is completely tested.
Try it out!!
Moved my blog to github pages, and how I did it
I have moved my personal blog from blogspot to github pages. Dr. Nic and Mojombo helped me do it with Jekyll.
Moved my blog to github pages
My old blog on blogger will still be available with all the posts and comments.
http://betarelease.blogspot.com