Bamboo IRC bot

September 22nd, 2008 Alexander Posted in Agile | No Comments »

fat robot
We use IRC as our main communication channel here at the office. And after setting up Bamboo as our continuous integration server I wanted to hook it up to our channel so I could get some automatic flaming of those build-breakers.

Its been some years since I last wrote anything for IRC. And the only thing I had ever programmed in before was eggdrop. But I wanted something leaner - and preferably written in python. I ended up with Kibot. It seemed to have everything I needed - namely timer support.

Bamboo have several RSS feeds you can tap into. I wanted to use the feed for all failed builds. Have the bot iterate over these items (I used feedparser for this) and send a message to a channel.

I finally ended up with Murphy. A chap who will give full notice of your shortcomings as a programmer.

You can grab the source and play around with it yourself if you like.

Now I just need to plug in an insult generator. Anyone have any ideas where I can find a particularily nasty dictionary?

AddThis Social Bookmark Button

Analyzing your website for search engine optimization

June 26th, 2008 Alexander Posted in Web development | No Comments »

Google Toolbar Pagerank

In accordance with my previous article about search engine optimization tips, I will in this article concentrate on how to dissect your website and figure out what needs to be done. And I'll only use free tools doing it :)

Read the rest of this entry »

AddThis Social Bookmark Button

Search Engine Optimization Tips

June 20th, 2008 Alexander Posted in Web development | 1 Comment »

Optimus Prime - Prime OptimizerI'm doing search engine optimization on some of our sites now. And in that process I have collected some tips about what helps the crawler do its job.

You are looking for new readers for your glorious content, but nobody is finding their way to your site. Did you wall yourself in by an accident?

SEO is usually a lot of common sense, really, and if you have good developers on your site with a bit of time on their hands you can do the job yourself instead of contracting this out.

Read the rest of this entry »

AddThis Social Bookmark Button

Creating Automatic Acceptance Tests - FIT vs Selenium

June 13th, 2008 Alexander Posted in Agile | No Comments »

I wanted a tool to write acceptance tests with. Something easy to set up, and of course, flexible. What gets churned out here at my company are webapps, so I had this in mind when I went ahead looking for the right tool. After browsing around I came to the conclusion that the tools with most drive behind them was FIT and Selenium. Here follows my encounter with them.

Read the rest of this entry »

AddThis Social Bookmark Button

Continuous Integration Engine Comparison

June 13th, 2008 Alexander Posted in Agile | 4 Comments »

In lieu of my task of setting up a testing workbench at our development office I've been checking out various integration servers. Focusing on Bamboo, Continuum and Hudson. What follows is an informal look on various continuous integration servers.

Read the rest of this entry »

AddThis Social Bookmark Button

Agile project management tools - Digital vs Post-it

June 12th, 2008 Alexander Posted in Agile | 2 Comments »

At work I've been set at the task to evaluate and come up with a continous integration strategy. Right now we have a mish-mash of an development structure trying to utilize agile development, and using scrum to do our project management. However, test-driven development is not our native tongue, and the tools we are using aren't helping our productivity.

First of all we are looking for tools to keep our issues on track. The company I work for is a media company, delivering a range of newspapers, both digital and paper. And as a media company you have to roll with the waves, because changes come quickly in a ad-driven environment. There is a myriad of feature requests from other departments in our company. And we, as the development department have to sort out all of these and assign work effort to them. There are shared packages across domains, and there are of course domain centered ones. Things change all the time, and we need to get our QA up and running so we can handle this. So this article will in effect become a sort of lucid discussion over digital vs post-it planning boards.

Read the rest of this entry »

AddThis Social Bookmark Button

AJAX event handling with prototype

January 21st, 2008 Alexander Posted in Web development | No Comments »

Separating CSS and HTML has been the big fuss for a while now. So why not separate your Javascript and HTML as well? Using event handlers instead of using the old onclick="somefunction()" can make your codebase a lot more manageable and clean. I'll demonstrate this technique by using prototype.js, a very nice and lean AJAX framework.

My goal is to create two lists (ul elements) with several <li>. Each of these li elements have checkboxes. And when you click on these checkboxes they will move from one list to the other. Okay, lets get cracking...

Read the rest of this entry »

AddThis Social Bookmark Button

Breaking into the Spring container with singletons

January 15th, 2008 Alexander Posted in Programming | 1 Comment »

I was faced with a pesky security library at work. I had written my application with the help of Spring, but the security library was tightly coupled - and I really had viable option of rewriting it as it would break a lot of other applications depending on it. The only bit I could implement myself was the login module - which had to implement an interface with no constructor arguments. So I had to go out and figure out how to break into my Spring container from this login implementation and get a hold of some Hibernate DAOs to do the actual login procedure.

Read the rest of this entry »

AddThis Social Bookmark Button

Maven, Tomcat and Eclipse

January 15th, 2008 Alexander Posted in Programming | 10 Comments »

Setting up a productive environment for your web programming experience is going to be a real timesaver once you get it set up correctly. And with Eclipse you can have that Tomcat container of yours up and running with automatic deployment of beans and jsp pages in a snap. Add Maven dependency management into the mix and you have yourself a good coctail to take your mind off those tedious deploy sequences, and instead concentrate on what you love most - hacking the code.

Read the rest of this entry »

AddThis Social Bookmark Button

Creating a folder symlink

February 18th, 2007 Alexander Posted in Programming | No Comments »

I've been fiddling about with Applescript recently. And since I have a problem with using iTunes (due to its lack of ogg and flac support), I thought about writing a script which would create a symbolic link to any new artists/albums I added to my music collection.

This would leave me with a list of the newest additions to my music collection as a list of folders in Music:New, for easy playing with Cog.

I wrote the script, but still haven't really gotten past the issue of my need to have a folder action to be recursive. So because I have a "Music:Artist:Album:" structure only new artists are added to my New folder. The only solution I have found is to add this script as a folder action to every Artist folder I got...

Anyways. To use it: ctrl+mouse a folder, select "Attach folder action" and use this script as that folder action. You probably want to edit the paths a bit as well before using it. Its not really production ready.

on adding folder items to this_folder after receiving these_items
tell application "Finder"
if not (exists folder "New" of folder "Music" of folder "kiowa" of folder "Users" of startup disk) then
make new folder at folder "Music" of folder "kiowa" of folder "Users" of startup disk with properties {name:"New"}
end if
repeat with i from 1 to number of items in these_items
try
set this_item to item i of these_items
set the dest to folder "New" of folder "Music" of folder "kiowa" of folder "Users" of startup disk if the container of this_item as alias is this_folder as alias then
make new alias file to this_item at dest
else
display dialog the "container is not root"
end if
on error error_message number error_number
display dialog the error_message
end try end repeat end tell
end adding folder items to

AddThis Social Bookmark Button