Archive for the ‘Programming’ Category

Django People (voodoo people)

Thursday, January 24th, 2008

Any Django heads should scoot over to Django People, a new community website centered around the popular Python web framework. Nice site - I love how your location is shown in a strip of Google maps on your profile page. For example, my profile (here) has a ~100px high strip of Cork City extending as far west as Dripsey and east to Barryscourt on my wide 1440×900 resolution. Apparently I’m 1 mile away from John Handelaar and 0 miles away from a guy called Dan, and that’s about all the Django guys in the immediate area for now (I know there are more than that!) Great use of Google Maps, and overall a very nice resource for Django, it will be a huge benefit to anyone looking for a local freelancer.

Freevo Home Theatre Platform

Thursday, July 13th, 2006

Today my boss introduced me to Freevo - an open source home theatre system for linux, written in Python. Record your TV shows and save them for later, accessible via the web interface if you’re at work and you forgot that The Return of Howard the Duck is on. A localised and accurate TV guide is provided on the system by XMLTV.

Play mp3’s, dvd’s, divx, and whatever else your average media centre does. Maybe install it on a modded Xbox for the ultimate entertainment system. I like the sound of Freevo, I think I will have to give it a bash.

Freevo

Scapy for Windows

Sunday, June 18th, 2006

I spent many hours this week trying to port the python-based network tool Scapy to Windows. After a number of slow downloads, red herrings, and lot of messing around, I finally had the end in sight. Thats when some guy posted this with everything I needed. Thanks Andrew - nice one, just wish you had posted it three days earlier and I would have been able to watch an extra few World Cup games.

Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more. It can easily handle most classical tasks like scanning, tracerouting, probing, unit tests, attacks or network discovery (it can replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very well at a lot of other specific tasks that most other tools can’t handle, like sending invalid frames, injecting your own 802.11 frames, combining technics (VLAN hopping+ARP cache poisoning, VOIP decoding on WEP encrypted channel, …

And in case you are wondering, I didn’t get clamped \o/

Algorithmic Composition of Music

Wednesday, March 29th, 2006

I posted a few days ago about some of the projects that I found interesting at the UCC Open Day for Computer Science fourth year projects. The one which I expected to see more of in the future was Mark O’Brien’s project on the algorithmic composition of music. He has sent on some midi files that were automatically composed at the touch of a button (and maybe a couple of slider bars) by his program.

The interface also has a “risk” slider which, if set to “low”, would come out with a tune that conforms perfectly to our rules of music, akin to Mary Had a Little Lamb. Increasing the risk will allow the computer to stray more from the predefined rules to create either a unique inspirational work, or an absolute disaster. Take a listen to this Shins-esque one (which I think had risk factor set to “medium”)… I think its class:

If you’re not into the sinister bells genre, there are pianos, guitars and more on the zip file here (3kb). Mark says he’s currently accepting donations ;)

UCC Open Day

Saturday, March 25th, 2006

Despite having just two hours sleep last night, today was very enjoyable thanks to the fourth year projects on display at the UCC Computer Science Open Day.

My own project was an Ad-hoc Network Management System, designing and implementing a protocol for wireless ad-hoc networks, independent of IP, with a service-oriented naming scheme. As wireless-enabled devices continue to get smaller and more numerous, IP routing cannot meet the future requirements of ad-hoc networks. My protocol is an alternative to IP. It reduces processing and memory overhead by eliminating the costly updating of routing tables, the large packet headers, the address conflicts, and the unnecessary restrictions that IP routing brings to an ad-hoc network. The service-oriented naming scheme introduces a whole new host of improvements and possibilities for the future, although at the moment I have only its most basic implementation.

The guy in front of me had an interesting project, 17,000 lines of code examining the algorithmic composition of music. When I was greeted by midi music at 9am, I thought I would be in for a long day. Turned out it was quite the opposite - he had really done his research and the results were amazing. The program used random numbers to generate a unique tune within the constraints of an algorithm which conforms to our idea of what good music is. There were loads of different controls to vary the output, but even some of the computer’s own work was really good. One tune in particular which used a slow, bluesy rhythm could easily have been a movie sound track. Even if you’re an AI skeptic who believes that a computer could never generate genuinely good music, there is no doubting that this tool could be a source of inspiration for artists, or a powerful background music generator for games, for example. The author of the project is looking to do a PHD, so it is in safe hands and it is possible that we could be seeing more of it in the future.

Music and Artificial Intelligence were also central to Mood Musik, a Java based music player which recommended songs to the user based not only on musical patterns (as some existing mp3 players can do) but also by analysing lyrical content.

There were several robotics projects. As far as I could tell, one such project involved a wheeled robot navigating his way through a red-brick maze. Maybe I got the idea wrong, but robots are always cool anyway.

Games development was big this year, with most of the guys that were at Intel with me taking this option. One group made a PC game, another made an Xbox game, and a third group who developed a PS2 game (although I did not get to see that one).

Homer SimpsonThe multiplayer PC game looked like Quake and felt like Unreal. Perfectly rendered machinegun with realistic sounds, and great graphics except for the disproportionate enemy models that provided comic effect akin to using the ‘homer simpson’ model in Half-life Deathmatch and Quake 3.

The Xbox game, called ‘Revelation’ had a religious theme. You are are monk who runs around banishing demons, in the true spirit of oldschool classic FPS games. A great theme and atmosphere, with a first rate introduction (the holy tome opening with a freaky otherwordly narration).

These projects were really inspirational - the things you can do in just a couple of months if you put your mind to it. Revelation inspired me to go straight to GAME and buy Oblivion, which was released today. So I braved the Friday evening South Ring traffic to Mahon Point. And by the time I got there, they were sold out. I’ve never seen this happen before… I bought Halflife 2 the day it came out, at 8pm in the evening. I bought World of Warcraft the day it came out… and Doom 3, and Quake 4. None of these came close to selling out on their opening day.
I rang GameStop in Blackpool and asked if they had it in stock.

Norry: “Yeah we have that, no bother.”
Me: “Should I reserve it? Like, is there any danger of it selling out between now and the time I get there?”
Norry: “Nah we have loads of copies.”

So I braved the Friday evening North Ring traffic to Blackpool. They had one copy left when I got there.

I am from Cork, Ireland. A fan of the Big Lebowski, Mac OS X, Linux, Cork hurling, Munster rugby, Irish football. Interests include QuakeWorld, Python (lately Django), network security, web applications and technology in general.

Leave a comment if you come across something that interests you. My contact details are here. Alternatively, you can connect on LinkedIn or Twitter.