Hey there, just a quick note to say this log is not quite dead yet. There’s just not much time to write down notes on what’s happened these days: between changing jobs, having to cope with PHP again (which reminded me how bad this language is :p), and exciting new projects in ruby.
Got my Neo Freerunner phone a few days ago, it’s still running the vanilla 2007.2 “distribution” openmoko shipped it with. I Think I’ll try the new “ASU” soon.
So far, I have mixed feelings about it. It took two years to do “just” that? It seems there are so many talented developers involved, that getting a device that can’t live on its batteries more than a couple of days is disappointing (that’s if you don’t use wifi or gps at all). I think what has been lacking is a general direction as maybe some kind of leader would give. But at the same time, it’s very exciting, because it all sounds so promising, and I’m glad I got one of these sweet sweet piece of hardware. :)
I just hope it will get better software in a couple of month. Shipping it now is probably a good way of achieving that.

TwitterUI’s development is still going well, even if I have been busy changing jobs lately.
I have a week-long holidays starting today, so I should be able to work on a few features/bug fixes. The project has been forked, watched, and tested here and there, even if I described as “small and experimental”. This is really cool in a “someone is watching what you do” way. :)
I’m unsure about sticking with shoes all the way, but I’ve yet to find another GUI lib that fun. Shoes + ruby, awesome!
There are no great desktop twitter clients for linux. At least I didn’t find one that fits me. A few weeks ago, I got curious about Shoes – a little cross-platform toolkit to build applications in ruby – and gave it a try by hacking a few lines of ruby into what is now called TwitterUI. Great name huh?
Anyway, the thing is hosted on github which I thought I’d give a try too. So far, it’s great in a “No need to setup anything” way. So I’ll stick to that. At least until I find the free 100Mo of storage are not enough.
I started updating guineapig to Freebsd 7.0-RELEASE yesterday in the evening. So far, I can tell:
Plus everything PHP got the httpd sick during portupgrade’s job. Thread problem it seems. I’ll investigate that when portupgrade stops working. Yet another clue, I should get away from this dreadful language fast. Too bad it’s THAT famous among web developers, and there are many cool apps written in PHP.
sigh
Finally we found time to release Stéphanie’s online portfolio, you can go check it out for yourself. I moved away from shared hosting, for lack of up to date libraries there, and too few options… The site’s hosted on a friend’s behalf (thanks jadawin!) until I receive my own.
Since I started the site with PHP’s Zend framework, it still is full PHP, rather than one of the fancier frameworks I usually work with in ruby or perl. But well, for now, it just works. :)
The Zend Framework is a nice piece of code for PHP 5 coders. I have been playing with recently to help a friend on a little project hosted on a PHP-only shared server (something really cheap… and kinda “shitty” yes).
Compared to the other PHP frameworks such as Symfony, or CakePHP?, it feels light, simpler, and also less complete : features such as views’ layouts are not included in the latest stable release (1.0.3), you have to try the next release candidate (1.5.x) to get something a little more… decent.
Anyway, I’m not a PHP expert – I’ve known the language for years without great interest nor love – but if I have another PHP job to get done, I’ll definitely look after it. Its simplicity is really nice, and although I still dislike coding in PHP, it suddenly becomes… a little less boring. Which means, it is a good framework ; or so I think today. :)
Tonight, I did an upgrade of my tiny server from FreeBSD 6.2 to FreeBSD 6.3 using the freebsd-update tool and following Colin Percival's short article on the matter… Well as advertised, all went well, and it was done in about 15 minutes.
God, I love when things are that simple. We’ll see how upgrading to FreeBSD 7 goes, when a stable version is out. :)
Working with Ruby on Rails, makes one used to how simple coding with the popular framework can be. Hence, when I found some time to play with Catalyst again, I was really disappointed by its “model” part. Although I guess DBIx::Class is a really fine piece of software, it’s just seem more complicated that ActiveRecord?.
For instance, let’s create a model in a rails application…
~/src/railsapp $ script/generate model candy
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/candy.rb
create test/unit/candy_test.rb
create test/fixtures/candies.yml
create db/migrate
create db/migrate/001_create_candies.rb
~/src/railsapp $And, that’s about it. Compare to Catalyst :
The official tutorials states you should do something like this:
~/src/catapp $ script/catapp_create.pl model CatAppDB DBIC::Schema CatAppDB dbi:SQLite:catapp.db '' '' '{ AutoCommit => 1 }'
exists "/tmp/catapp/script/../lib/catapp/Model"
exists "/tmp/catapp/script/../t"
created "/tmp/catapp/script/../lib/catapp/Model/CatAppDB.pm"
created "/tmp/catapp/script/../t/model_CatAppDB.t"But a shorter version has the same results:
~/src/catapp $ script/catapp_create.pl model CatAppDB
exists "/tmp/catapp/script/../lib/catapp/Model"
exists "/tmp/catapp/script/../t"
created "/tmp/catapp/script/../lib/catapp/Model/CatAppDB.pm"
created "/tmp/catapp/script/../t/model_CatAppDB.t"Cool. But hey, it seems there is a difference with rails here: because you have not created a “model” in an ActiveRecord?-ish way here, or you would just start hacking at it adding methods, and relations right now. No, you have merely created its skeleton: your cat-app now knows you’ll be using a DBIC model, but it does not know a thing about candy.
For this, you have to create another package within your favorite editor. No automagic-generation here… Why? come on, I want candy create this for me with totalitarian defaults! I’m a lazy! :p
Theses days, most catalyst devs seems to be calling this package “AppName::Schema”, and adding it next to the Model/Controller/View dirs. So you’ll end up writing by hand:
So, I guess there is still room for small improvements in Catalyst, to make it feel simple and fun at first. Being complicated is ok at some point, but doing simple things should be straight-forward. I wonder if you could come up with a patch that would change the default behavior. That’d be great. :)
UPDATE
This seems promising: http://perlalchemy.blogspot.com/2008/01/automatic-dbic-schema-creation-from.html
Checkout UpdateLog to add entries.