Latest Publications

Reviewing 2010

More or less inspired by Jake’s 2010 Review and 2011 Goals article I decided I would do the same. With one exception, and that’s that I’m waiting to announce my goals, or rather plans, for 2011. As for 2010 I didn’t have much goals. But those I did didn’t really work out.

For me 2010 wasn’t a very good year. It was all fine and dandy until the beginning of May. Till the end of March or so I was busy trying to set up a small band for regular rehearsal. I had found a drummer and a bassist and we practiced a few times. The drummer bailed out soon enough with some lame excuses. After that the bassist and I lost contact and so the band project died. Even though this goal for 2010 failed we did manage to play a few times together so I don’t consider it a total failure. Rather a small one.

In the same period I was also studying to become LPIC-1 certified. Due to health issues I had to postpone it. These health issues consisted of having problems swallowing and having the feeling of a swollen throat. The root of this health issue was because stress which thanks to my doctor I was able to figure out. Luckily this problem has been solved after most stress factors were finally reduced to near 0. Still, not all are gone yet. Life’s such a joy :-P .

At the end of April I bought myself a nice new acoustic guitar. A Washburn D-10-SCE-N which I’m very fond of. For a image of it take a look at My Gear page.

Unfortunately shortly after that, around the 6th of May I started getting issues with my hands. I woke up with a lot of pain in my joints and wasn’t able to do much at all. After staying home for almost 2 weeks I went back to work but it wasn’t much more then being present and available for answering questions. Which is very frustrating considering I’m a programmer.

Not long after that my mother’s new friend was diagnosed with a brain tumor. Another big disappointment for the year and bringing lots of uncertainty. Aside from dealing with this, another stressful situation arose. My dog, a now 7 year old Bernese Mountain dog, is a dog that can’t be left alone for more than 5 minutes. As my mother wasn’t going to be home she couldn’t take care of him. I myself am working 40-hour workweeks and couldn’t just stay home. After a talk with my boss he suggested I’d took the dog to work. Which was a big relief, but yet something to try and see if it would work. To get to my office you need to walk a rather steep staircase. In his excitement my dog went up the stairs, ran around the offices over there barking around, and finally quieted down.

All was fine till lunch time arose. As this is his usual time to take a walk I took him downstairs and took a walk. After that he was afraid to go back up the stairs. I didn’t feel comfortable letting him walk around in the building without being able to watch over him. So we decided to make a place for him in our storage room. Which went fine for 10 minutes. He heard the ceiling making squeaking noises and entered total stress mode. Taking my dog to work clearly wasn’t going to work.

My final solution was trying a dog pension. To my BIG relief he did very well there the first day and so I had him there for about a month. Early in the morning I would bring him there and after work I’d pick him up again. If the daycare wouldn’t have worked out I would’ve gone as far as taking an unpaid vacation or quitting my job.

At the end of September my mothers friend got his surgery and the brain tumor was mostly removed. Which was another relief as it’s a risky operation. At the day before Christmas he had his final radiation treatment and is now recovering from it. Somewhere next year they’ll be doing a new scan to see if it’s all gone or if there’s still something left. The tumor was malign so I hope it will.

At the beginning of November I had once again a major setback with my hands. Which has brought me back to the same state as before. I’m currently following physiotherapy but am not seeing any improvements yet. Halfway January 2011 I’m supposed to be finished with it, but I’m not convinced I’ll be done by then.

So, all in all 2010 has been a total shitty year for me! Well, not total really. But could’ve been better. If there are things I am glad for is that the surgery of my mother’s friend was successful. My dog is doing good at the daycare and he finally is able to sleep through the night without keeping me awake or rampaging the house. It was also in November that I’ve made a big life changing decision. Which was necessary to get me out of the situation I’m stuck in now.

If there’s one word I can use to describe how I plan 2011 to be then it’s change. This life changing decision will change how my days are going to look, will make my financial income uncertain and will probably be a 3,5 to 5 year project. But it’s a change I need to stay alive and not turn mentally insane.

DiggEmailRedditShare

Touchpad not working after login – Ubuntu 10.10

This morning I had a nice surprise when I booted my laptop to Ubuntu 10.10. After the automatic login my mousepad had stopped working. My laptop, a HP Pavilion dv7, has a button to disable the mousepad. This button actually works under Ubuntu, albeit a bit slow. Pressing this a few times did not seem to help.

Apparently my mousepad was disabled before my laptop was shutdown. I did not do this and I still don’t know what caused it. After a little searching I came across a community docs page giving this solution:

  1. $ gconftool-2settype boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled true

ps: The commandline options are double-dashes. My website template seems to convert this…

DiggEmailRedditShare

Nice article about functional programming

In a search for some information about functional programming I found an article by Slava Akhmechet called Functional Programming For The Rest of Us. It’s quite a long article but worth it’s worth the time to read it if you’re interested in learning functional programming but don’t really understand what it’s about yet. The article isn’t a tutorial which teaches you a functional programming language. Instead, it’s a nice introduction to some basic concepts of functional programming.

Stuff like concurrency and lazy evaluation have caught my eye. As well as how Pattern Matching can be done in a functional programming language. You can look up the article for explanations of these concepts.

DiggEmailRedditShare

So that’s what ShipIt is!

In the last year or so I’ve been noticing that a lot of Perl modules contain a .shipit file. As I had no clue what it was about I searched the internet to see what ShipIt was and were to get it. But as you can see Google (or any other search engine) doesn’t return a link that describes. The name seems to be very common.

I figured as much that it was used to package up a module and simplify doing releases to CPAN. As well as integration with your SCM.

But never, never ever(!), did I think about looking up the name ShipIt on CPAN till today. I don’t know why I did so, but perhaps it’s because I’m still not very used to Perl modules being named anything different than Some::Long::Module::Name. Weird thing is that ShipIt first saw the light in 2007 (probably earlier, but the changelog doesn’t contain dates) so it’s out there for quite some time now. I must say I like these more decent names, as long as it doesn’t get as out of hand as it is with Ruby gems… How they name every single small gem as if it’s some sort of big ass application is beyond me. But who am I to judge about naming.

But that’s not why I’m writing this post. The main reason is for people, like me, to get to know the tool. I’m looking forward to using it to manage my modules so I don’t have to worry about updating version numbers, tagging the release in my SCM, test the final package and upload it to CPAN (or not). I know Dist::Zilla does this and a whole lot more as well, but I like Module::Install better. At least for now.

DiggEmailRedditShare

Console2

One feature of Windows 7 I like is the new taskbar. At work I’ve configured it to only show the icons and this works surprisingly well. I can easily have multiple command line shells open. However, that is work. At home I’m using Windows Vista and the grouping feature in Windows XP and Vista at the toolbar is something I always turn off, as it annoys me to no end.

But when I’m working on some Perl related stuff I usually have multiple consoles open. One for my Catalyst test server, one for Gearman and another one for my Gearman worker. As mentioned earlier having multiple consoles open is a major pain in the ass on Windows Vista (or XP). So I’ve taken a quick look on the internet and found this lovely open source project called Console2.

Console2 is a simple but powerful tool. It allows me to have multiple consoles open with tabular navigation. Which results in only 1 window open. Yay!

DiggEmailRedditShare

Handy hands

As some might now I’ve been having issues with my hands for over 6 months now. A couple of weeks ago I was finally able to see a specialist and a bunch of blood tests and X-Rays were done. The verdict was that my joints have too much space to move in, causing friction which causes pain. To recover from this I need to do some physiotherapy to strengthen the muscles in my hands and arms. The muscles in turn will need to keep the joints better positioned.

Although I’m not convinced myself this diagnoses is correct, I’ll be doing the physiotherapy anyway. Personally I think the problem lies in the attachment of my tendons. But we’ll just have to see.

Hopefully I’ll be fully recovered somewhere mid-January. I’m afraid though this means I won’t be able to finish the first public version of Maximus by the end of this year.

DiggEmailRedditShare

Rackspace Cloud Files Sync 1.01 released

Rackspace Cloud Files Sync 1.01 was released today. Due to undocumented changes in the Cloud Files API the Sync application stopped working. Making backups and recovering them should now work again once more.

DiggEmailRedditShare

htbaapub.rackspacecloudfiles v1.08 released

I’ve updated htbaapub.rackspacecloudfiles to version 1.08 to support the undocumented changes to the Cloud Files API. This release depends on the version 1.04 of htbaapub.rest.

DiggEmailRedditShare

htbaapub.rest v1.04 released

My REST module htbaapub.rest has been updated with a set of response code helper methods. Instead of doing a precise check on the status code (e.g. 202) you can now check if it’s inside the 2xx range. This release brings the IsInfo(), IsSuccess(), IsError(), IsRedirect(), IsClientError() and IsServerError() helper methods.

DiggEmailRedditShare

Choosing Zend Framework was a mistake

About 2,5 years ago at work we were still using PHP for new applications. With PHP being the language of choice I was looking at what MVC frameworks were available. At the time only Zend Framework (which was at version 1.5) seemed to be the only PHP5 framework. Aside from that it was a mature project and being developed by Zend made me decide to use it. I also reviewed the feature set at the time, of course.

Zend Framework has a steep learning curve but in my experience most OOP based MVC frameworks do. If I remember correctly I first used Zend Framework for an admin panel for a website. Aside from the time to learn the framework it sped up development. At the end I had created a nifty little admin panel for managing company profiles. Administrators were able to manage all accounts (information, pictures) and set-up permissions. A company could in turn manage its own details and pictures.

Programming with PHP became a bit more fun again. Zend Framework provided a mostly consistent API and came with pretty good documentation, although some parts lacked and still do at times.

Being convinced by Zend Framework I started working on the rewrite of a big internal application. This application was written in old procedural PHP4 code. That in itself can work, but only if there’s a decent structure. Which is what this application was missing. Basically it was plain old spaghetti code. Views and logic weren’t separated. HTML, styles, Javascript and PHP were tightly intermingled making it a pain to extend and maintain. The database scheme was a nightmare as well, but with it being a rewrite I could nicely convert it to something more sane and get it normalized. I used Perl and DBIx::Class for this by the way. I should have sticked with it…

It took about 4 or 5 months or so to fully rewrite the application. It probably could’ve been done in 3 months but as I said I found the learning curve for Zend Framework steep. I’ve even reported some bugs I found! Anyway, after several meetings with my colleagues we re-factored a lot of the application to get rid of old nasty hacks and incorrect work procedures of the old application. With the application being written in Zend Framework much of this was easy and fast to realize. Now, 2 years later we’ve added a lot more functionality. The application is still easy to maintain and to extend. And more and more plans are in the making for added functionality.

So, why is it that I think choosing Zend Framework was a mistake? Of course, it’s PHP but as I posted in earlier rants is that only recently I got the green light to use Perl instead of PHP. One problem comes from PHP though. With their latest release in the 5.2 series they suddenly announced end-of-life of PHP 5.2. Long before that it was announced that Zend Framework 2.0 would use PHP 5.3 exclusively. I knew that. But with instantly declaring PHP 5.2 dead and deprecated supporting Zend Framework 1.x after releasing 2.0 doesn’t seem to be required anymore… Why? Because after they’ll release Zend Framework 1.11 they stop doing major releases of the 1.x series. Even if I would be able to use PHP 5.3 it would be a lot of work to refactor the code to be compatible with 2.0.

Now this doesn’t directly imply that Zend Framework 1.11 will stop receiving updates in the form of minor releases. But looking at its history I fear the worst. At one point it was said that the current and the last 2 major versions would receive security updates. Out of 2 times this happened once. The second time it was supposed to happen only the current and last version were updated (I believe this was version 1.10 and 1.9. Luckily I already upgraded tot 1.9 when this happened).

Talking about upgrading, moving from Zend Framework 1.5, 1.6, 1.7, 1.8, 1.9 and 1.10 hasn’t always been painless. A couple of times sudden changes to their API have been made. At some times temporary backwards compatibility was provided, but not always. But that I can forgive, that’s why they’re major releases.

So currently I’ll probably be stuck (as in bug fixes and security updates) with Zend Framework 1.11 when it’s out. Zend Framework is a open-source project so I could always fork the project myself and customize it myself for our own purposes. Even so I’m disappointed with the course Zend Framework went (or seems to be going). The biggest problem with Zend Framework I think is that it’s more of a big collection of classes than a solid framework. Don’t mistake me here, most of the components are very solid. But if they would’ve kept the core small (that being the MVC part and related components) and had moved most classes to the ZendX namespace, such as the webservice classes, they could’ve kept the major releases to a minimum.

DiggEmailRedditShare
Get Adobe Flash player