Archive for October, 2006

+1 ;)

Sunday, October 29th, 2006

[Update]
Congratulations to our latest and happiest father - KRL. Today, at 16.14 a little girl was born, but she doesn’t have a name yet.
Here are my suggestions: “Bret“, “Eve” and “Jasmine“.
[End of update]
I finally got back the hour which was stolen from me in March. Happy until next time ;)
Oh yeah.. new Wordpress version too… upgrade using my previously invented process was easy, although I had to reverse few custom patches first (I had kept the patches available, so it wasn’t that hard). Fortunately most of these patches were incorporated into the new version, so in the end my installation is left with only one custom patch - lazy load database.

As they say…

Tuesday, October 24th, 2006

You have a classic style, but you’re up-to-date with the latest technology. You’re ambitious, competitive, and you love to win. Performance, precision, and prestige - you’re one of the elite, and you know it.

via Tomorrowland

Beating the Averages…

Sunday, October 22nd, 2006

For the past few weeks I have been a great fan for Iain’s Last-Exit music player. But before I fell love in this one there were many others I tried to use - Banshee, Rhythmbox, also Amarok. Plus also other players like BMPx (I couldn’t get this to work on Ubuntu) and Muine (doesn’t support online streaming at all).
I had two basic feature requirements for the player - the UI must be nice and small, and player should report its usage to Last.FM. Banshee does that, Rhythmbox does that, and Amarok almost did that (there were some kind of weird problems with Proxy handling between Amarok itself and its Xine backend. This is where Amarok failed for me, although it was simply the best one in other categories.)
But as I do not own much music, another requirement came up - player should support online streaming. This is where Banshee failed (yes, I also tried the 0.11 series). Although Rhythmbox worked fine with online streams, it didn’t report played songs to the Last.fm :(
Because I had already added my latest songlist info to my website, there was no turning back - I had to find a new favorite music player and this is where Last-Exit came in. Its UI is nice and small, it reports its usage and plays online streams. Case closed.
Well, almost. Because its a such a great program I wanted to give something back to it (actually I wanted one more feature…) so while browsing the list of open bugs I saw one that I was able to reproduce. I took the source, looked around a bit and finally fixed it.
As Last-Exit is written mostly in C# thanks to Mono project, it reminded me how I used this language first time two years ago in a school project. The syllabus was “Software Engineering” and the lab project was titled as “Component Technologies”. So the assignment was to create a component and a wrapper program which utilises the component. As the assignment date was coming nearer and nearer and I still didn’t have anything done (well, it was half because that I lacked ideas and half because of my general lazyness…). So when, there were only few days left (and most of the fellow students had already presented their programs most of them consisting thousands SLOCs ) I had still nothing done. But this didn’t mean that I hadn’t been working on it.. ;)
On one night while reading the Edd Dumbills “Mono - A developers notebook” I finally got the idea. In “Chapter 5 - Advanced Gtk#“, theres a topic called “Rendering HTML” which explains how to use Gecko Engine to render HTML in your programs. “Hmm.. lets create a browser :)”, crossed my mind. Armed with the fresh and new idea plus the book full of usable information I quickly created a component which wraps up a Gecko widget and created a wrapper program which utilized my custom HTML-component. It took less than an hour and ~60 lines of code. Yay! a working browser in less than 100 lines including all the Makefile and dll configuration stuff. As I felt a bit sorry for the other guys I tried to push the limits which included adding some more stuff to my wrapper program and even creating another wrapper program in Visual Basic language using Mono’s experimental VisualBasic.NET frontend.
Presenting my work was fun - teacher was quite amazed when I demoed my program and became even more amazed when I showed him the code. I hope most of the amazement was because of the features/SLOC ratio, not that I had Linux on my laptop. Although this wasn’t all - in order to pass the assignment I had to add a widget showing current time to the browser… It was quite tricky, but thanks to the Glib’s timeout functionality it wasn’t that hard to implement. :)
What I learned from this experience can be said: “To beat the averages - work smart, not hard… and don’t reinvent the wheel, but use the technology already available”.
Paul Graham has one essay which is quite related to this entry. And its also titled Beating the Averages :)