Category Archives: Techie

Extend your browser – ITWales

Snippet from Extend your browserLast year I gave a presentation to the ITWales group on Content Syndication. I have been bullied into giving another presentation next Tuesday. I have entitled it “Extending your browser”. Directly from the flyer –

Firefox and the Gecko family of browsers are not simply web browsers, they can be extended to provide custom functionality, and used as platforms for building standalone applications. During the presentation I will discuss the anatomy of the Gecko engine and the Firefox browser, extensions and how to create an extension for the Firefox 2.0 browser using Aggreg8 (http://aggreg8.mozdev.org ) as an example.

Philip is a 2003 Software Engineering graduate of Dublin City University. He has been working at Karova Ltd for two years, on ecommerce and custom web applications, and now holds the position of Senior Developer. Outside the office, he hacks on Firefox extensions and small Python or Perl based open source projects. He loves C#, XSLT, Python, MySQL, WxPython, SVG, XUL, Gecko, Javascript, RSS, CSS, his Labrador puppy, Ubuntu and Mono.

You can also download a PDF version of the flyer. I’m even half way through writing the presentation so this weekend will be a busy one. Once I’m done, I’ll upload the PDFs of the presentation.

Geek resolutions

As it’s new year and my motivation is at an all time low, I think a list of TODOs (or new years resultions) is needed. Some of those listed are techy and some are not but all of them are aimed at improving my life.

I will

  • Finish the new design of this site – as you can see, it’s still a work in progress
  • Comment my code
  • Finish projects I have started
  • Document my code properly
  • Use UML – even if it’s just in my head
  • Move to Ubuntu on my home machine
  • Caption all my photos – all 8500 of them
  • Read all the books I bought
  • Read non-techy books too
  • Cook more
  • Eat less
  • Eat healthier
  • Find some way of feeling healthier that I can actually stick to (Gym is a bit too much commitment)
  • Start to budget my outgoings properly
  • Stop calling my dog “the rodent”
  • Learn that Friday does not have to equal “getpissedday”
  • Stop watching soap operas – comedy series like King of Queens and Scrubs will remain on my Sky+ planner though
  • Contribute to an open source project
  • Help fellow developers more
  • Always keep in mind that I know only a fraction of what I think I know
  • Be in a good mood
  • Write another useful Firefox extension that uses a custom XPCOM component
  • Use Patterns in code more
  • Stop driving like an idiot just so I can get home quicker
  • Go to Ireland to see my friends and family more
  • Go to the summer house in Norway
  • Save money
  • And finally – keep this blog up to date

There’s quite a few there so I think it’s more of a two year plan. I have been working on an eight year plan with Gill too, but it’s still a bit up in the air but very exciting – as along as all goes well –

I will also (I thought of some more)

  • Move to IMAP instead of POP email
  • Backup more
  • Learn how to use SVN properly
  • Go to LinuxWorld in London (as long as it’s not on Gill’s birthday like last year)
  • Get a whiteboard at home
  • ……..I’ll add some more as I think of them

Going to the Linux World conference – NOT

I was very interested in going to Linux World this year. There were quite a few speakers and presentations I thought would be very interesting. I had hinted to my boss that I wanted to go but as we are currently a microsoft house, it was not really going to happen.

I figured I could do the whole thing myself for under GBP200 including train and YHA accommodation. I’d researched which YHAs had availability and found the train I was going to take.

There I was, watching TV with Gill, with my iBook on my knee ready to book the train when I called the YHA just to confirm they had a single room. Suddenly, I get a swift kick to the shin, WTF. I ended the call to see Gill giving me evils (a common occurrence I’m afraid), but why this time. I hadn’t got a clue. The day I was planning to go was only her bloody birthday. Doh! Doh! Doh!. So alas there was some apologising, and some postponement of Linux World. Maybe next year.

instLux saved my bacon

instLux, installing linux on a machine with no cd or floppy drive

I was very bored of my toshiba libretto L5 as WinXP was getting crazy slow on it so I never bothered to use it. I wanted to put Ubuntu on it but the live cd or the install would not recognise the PCMCIA cd rom I have.

Then I found instLux which installs a mini Grub onto your windows partition which you boot into. There are 4 versions of instLux, two for Ubuntu and two for OpenSuse. Each distro has a Net install and a CD ROM install version. I tried the CD ROM version first but it couldn’t find the CD rom either.

I booted back into windows and installed the Ubuntu Net install version of instLux. At first attempt, it fried my hard disk after stalling at 6% of install. A quick Win XP reinstall, reboot and retry was successful. I now have Ubuntu 6.06 installed with a very quick gnome theme with all icons turned off. Epiphany is super quick and will be my browser of choice on this machine (I haven’t installed Galeon yet though and Dillo is just minging). I did try to upgrade to Edgy Eft but it failed and after the hassles with the upgrade on my iBook (X wouldn’t start untill I managed to install the ATI drivers again), I’m not going to try again.  It’s a joy to use the machine again.

I’ve had a few freezes and hard reboots but it’s a hell of a lot faster than clunky win XP.

Ultimate dev laptop

I’ve been looking around at laptops for a while. I want the ultimate laptop.

  1. I want Core 2 Duo or similar AMD
  2. At least 2GB RAM
  3. A fast hard drive (7200rpm)
  4. Dual display out, DVI and VGA
  5. Ability to run 2 external 20″ monitors
  6. At least 15.4″ monitor
  7. Very good build quality
  8. DVD writer
  9. Onboard Wifi
  10. Optional: Bluetooth
  11. Optional: Card reader

Does anybody know of such a laptop that has had good reviews. I’ve looked at Asus, Acer, Rock, Alienware, Evesham, AJP and Dell. Each of them falls down on at least one of the above. I’ve been weighing up whether to push for a laptop in work or to bite the bullet and buy one myself. If I found the right one, I would have no hesitation paying GBP1500 of my own cash. The amount of time I spend on it, it’d be stupid not to. At the moment, the front runner is the Dell XPS m1710 but it tops out at GBP2000 which is a bit too much.
I need all suggestions, so please comment 🙂

Multiple instances of jEdit

I am a complete jEdit fanatic and it always has a place on my taskbar. jEdit is ver clever when running multiple versions each instance communicates over TCP IP so that all instances are identical. What if you don’t want that and want to have different file open in different instances of jEdit (or if you were using something like GoScreen). By default the shortcut for jEdit is something like:

“C:\Program Files\Java\jdk1.5.0_06\bin\javaw.exe” -jar “C:\Program Files\jEdit\jedit.jar”

But to stop the instances communicating to each other you need to use a “-noserver” switch:

“C:\Program Files\Java\jdk1.5.0_06\bin\javaw.exe” -jar “C:\Program Files\jEdit\jedit.jar” -noserver

I found the above in the wonderful jEdit userguide, chapter “starting jEdit“.

Graduate c# devleopers x2 wanted

As part of Karova‘s expansion, we are looking at taking on 2 more graduate developers. If you want to apply, you’ll need at least a 2:1 in a technical degree, knowledge of object oriented programming techniques, XML and XSLT, web standards and CSS. C# would be benifical, as would a good grasp of IIS. If you want good pay and a chance to be part of a growing and exciting company – please see http://www.karova.com/jobs for more detail. We are after a sales manager too for you sales guys.

ActiveCollab Windows Server 2003 IIS6

We are trying out ActiveCollab @ Karova instead of Basecamp. There was quite a few problems to get it working though. Mainly as it was PHP on IIS methinks. The first error was that none of the class files were not being loaded by autoloader as it didn’t know where to look so I had to tell it ->

[code lang=”php”]
private $parse_directories = array(‘%ABSOLUTEPATHTOWEBSITEDIRECTORY%’);
[/code]

in environment\classes\AutoLoader.class.php Line 36

The second error was that emails were not being sent. I reckon this was either our SMTP or PHP on windows not liking the format of the email addresses (“Philip Roche”<phil @philroche.net>)
[code lang=”php”]
function toString() {
if(trim($this->getName()) == ”) {
return trim($this->getEmail());
} else {
//return trim($this->getName()) . ‘ < ' . trim($this->getEmail()) . ‘>’;
return trim($this->getEmail());
} // if
} // toString
[/code]

in environment\library\simplemail\MailAddress.class.php Line 49

and finally, I could not upload public files as the isPrivate method was returning blank instead of 0.
[code lang=”php”]
static function setIsPrivateForObject(ProjectDataObject $object) {
$isPrivateVar = $object->isPrivate();
if($isPrivateVar!=1)
{
$isPrivateVar = 0;
}
return DB::execute(‘UPDATE ‘ . ApplicationLogs::instance()->getTableName(true) .
‘ SET `is_private` = ? WHERE `object_id` = ? AND `object_manager_class` = ?’,
$isPrivateVar, $object->getObjectId(), get_class($object->manager())
); // execute
} // setIsPrivateForObject
[/code]

in application\models\application_logs\ApplicationLogs.class.php line 61

It’s all sorted now and running and actually I am finding it alot nicer than basecamp and as it’s on our own server – a hell of a lot quicker.