Older blog entries for prla (starting at number 106)

26 Feb 2006 (updated 22 May 2006 at 10:46 UTC) »
On Python and More

Paul Prescod has written an interesting article focusing on why he thinks Python is the way to go right now. He presents a lot of different reasons, most of which I identify myself with and despite the somewhat accented evangelical tone, I’m also a believer that Python is fundamentally the best language out there for most purposes. As for the other purposes, I think Paul nails some of them:

On the other hand, I can see a role for small, focused languages like ANSI C for speed, Python for ease and abstraction, Web template languages for Web delivery, and so forth.

I’ve been increasingly relying on Python lately (through heavy TurboGears usage - which, by the way, got itself a new alpha release) and even if I’ve only barely scratched the surface, it’s been one hell of a ride. Don’t you just love it when you’re writing code and the language insists in removing itself from your way while systematically getting the work done? I do. That’s one of the reasons why I’m constantly amazed - in a derogatory manner, of course - at people advocating Java for pretty much every conceivable purpose in the world. Repeat after me: Java is one of the most obtrusive mainstream programming language in existence. Don’t get me wrong, I don’t think Java is the reincarnation of evil. In fact, you can do pretty much everything you want to do with it. It’s just how painful it is most of the time that keeps me at bay.

Speaking of TurboGears, it seems there is work underway for allowing developers to use an ORM other than SQLObject, in this case SQLAlchemy. I confess that the former has never bit me during my development (maybe because in terms of database backend the app I’m working on is dead simple) but I’ve often read in various mailing lists that the latter does a much better job. The good thing here is that if you intended to develop using TurboGears, you can now use any of them with minimal fuss.

Finally, via Tim O'Reilly over at O'Reilly Radar, a very nice extension of Flickr usage called Zonetag straight from Yahoo! Research. With it, you can automatically tag your photos with the location they were taken at. All just by using your camera phone. Neat!


The Slightest Bit of Escapism

A few links I forgot to post last night, while I had my rant cap on…

  • Pre-orders for the new MacBook Pro are now reaching their respective owners and it seems dissecting them is a new favorite sport. These look incredibly slick, alright, but as somebody pointed out, there’s little point in paying good money to beta test it for Apple. On the other hand I’m considerably more interested in the upcoming Intel iBook, or some variation thereof.

  • Ever wondered how Google Earth does its magic? This article scratches the surface (no pun intended) in simple terms and goes some way to explain one of the tricks behind rendering the entire globe seamlessly on a regular desktop machine.

Back to the hacking bench, now.


Deceivingly Easy

Amidst trying to grok mathematical formulas and other assorted mischief from my university work, I came across this post commenting on how easy it is to install Plone on Ubuntu Linux nowadays and this got me thinking… so, let me put up the big red rant alert. You’ve been warned, now.

Despite all its virtues, Linux has always been known to not make things particularly easy for the end user when he’s attempting to install software. Traditionally, an operating system from hackers to hackers from day 0, desperately trying to adapt from the moment it perceived its own brilliance and how appealing to the layman computer user it could be. Surely this has improved over the years and perhaps I’m not even the best person in the world to talk about it considering all the years I spent using Slackware which is know for not having proper package management. That kind of spoilt me the wrong way, as I had this weird tendency to compile everything from source, frequently losing track of what I had - and had not - in my system.

Granted, nowadays software in Linux is becoming easier and easier to install:

  • Python applications are usually installed with minimal fuss simply by typing python setup.py install. More recently, setuptools even takes care of finding the most up-to-date package out there, downloading it, compiling it, if need be, and installing it in the appropriate location. All with a simple easy_install <package name>.
  • RPM-based distributions provide adequate package management and any given package is usually a breeze to install.
  • And of course, by now Debian and Debian-based distributions users are screaming bloody murder. sudo apt-get install <pkg> or its younger, more evolved cousin Synaptic pretty much rule their world.

I’m sure there are other kinds of apps that have entirely their own brand of easy installation. Now, this is all fine and dandy but I still see one slight itch: as with much else concerning Linux and the open source community in general, it lacks a unified view of what installing software should be. Afterall, the underlying OS is the same for everyone, is it not? Why then should installing different applications vary wildly, even if most are easy to begin with?

OK, I hear you say: “hey, I’ve been using Debian for so long and I just apt-get install everything the same way, be it Python apps, or anything else.” Sure you do, but then there’s a dozen other major distributions which do things their own easy way, which differs in subtle and often deceiving ways. Plus, Linux is not just Debian, though it properly includes it.

The point may be moot but honestly, coming from a Linux background I find that this is one of the biggest problems keeping it from seriously challenging both MacOS X and XP/Vista on the desktop. If the single most used aspect of any OS for the end user, which is installing software, can be enigmatic, how can the OS truly be from hackers to users and not just to other hackers?

Unfortunately, different installation procedures for different apps on the same operating system is just one of example of many such disparities - surely freedom and multitude of choice can be good things, but why are there so many full-featured window managers for Linux and none getting it fundamentally right after all these years?

This is not bashing any project in particular, not even the community in general. Like, don’t bite the hand that feeds you, in a way. The very nature of Linux, its development being highly distributed, instigates design by comittee which, more often than not, doesn’t yield optimal results - thus both GNOME and KDE being good pieces of software, but hardly posing a real challenge to the big players in their market. Obviously, this reasoning doesn’t apply to smaller pieces of software such as blog, wiki, chat or mail software - no one can beat open source on that in my book. I’m talking larger-scale engineering here, afterall the building blocks of the OS for the consumer.

So, it seems the problem is far from trivial - otherwise it would have been solved already, right? It seems the reason why the open source community has worked so well thus far is the very same that ultimately keeps it from truly conquering the real market out there in its many fronts. How can the open source community work towards this unified view I find lacking without losing its most valuable asset? Not tooting anyone’s horn, but one such example comes precisely from the Debian community: the DCC Alliance aims to unify Debian-based distributions into a cohesive whole while promoting independent development of its individual members. Shouldn’t an effort like this be amplified and applied to the community as a whole bringing together the best players in the different key areas while leveraging their own individual virtues at the same time?


Cleaning Out The Closet

And while we’re at it, there’s some things I’d like… me to know. And you too, possibly.

I used to follow the Linux Kernel development very closely (I’ve subscribe and unsubscribed to the Linux Kernel Mailing List countless times in the past, because either you follow it or you better unsubscribe considering the insane traffic) but since a couple of years ago my focus pretty much shifted. I still have a soft spot for operating system theory and implementation, though, so if you’re a major Linux distribution willing to splash, oh say a fifty grand per month, on a fairly average kernel programmer, by all means, drop me a line. ;-)

Anyway, the point here is that somehow I got to know that Linus has put out 2.6.16-rc4 and the release email to the list is hilarious:

The bulk of it is some SCSI driver updates (have you ever seen a diffstat without the qla driver taking the top spot? No? Neither have I), with a few architectures thrown in, and a number of mostly trivial fixes for good measure. (…) It is, as we say in the business, a “perfect” release. No bugs. No sirree. But just to verify that, you should all immediately download and test it. Since, quite frankly, what else do you have to do over the weekend?

The Linux Kernel humor can be quite twisted indeed - I need to find a collection of pearls from the LKML me and a friend put together a few years back and post them here - and probably this doesn’t really strike my meager blog audience as particularly funny. No worries. This is not public service anyway, now is it?

Other pointers tonight:

  • Time magazine has an interesting article on Google, which I was fortunate enough to get my hands on (thanks, honey). Early this evening I found out that the photos from that piece are up on their website, so you can take a peek at the lovely swim-in-place pool or other lovely areas that comprise the Googleplex.

  • Javascript development is gearing towards version 2 (ECMAScript Edition 4) and how lovely it is to see it looking like Python.

  • This is obviously legally loaded, but automatically downloading new episodes of selected TV shows via BitTorrent (pretty much like iTunes deals with podcasts) is neat.

And last, but definitely not least, it’s cool to see the birth of Tiago’s first Dashboard Widget: the GameKnot Widget. If you like playing chess but have trouble finding a challenger, GameKnot is the way to go. This widget allows you to follow your ongoing challenges from the Dashboard, see its page for more info. He also took the chance to write some lengthy but insightful documentation on coding for Dashboard. Much appreciated.


21 Feb 2006 (updated 28 Feb 2007 at 20:47 UTC) »
Combinatorial Explosion

First of all, a quick thank you to Rui for opening the gates of Planet Tao for me and a quick hello to everyone there. I’m proud to be among a bunch of great bloggers. Spend the day playing around with TurboGears and Ajax and I guess I’m falling in love with these newer web frameworks. The small application I’m developing - which derives from the bigger project I’ve been hinting about for a while now - relies on some DOM manipulation, asynchronous requests and whatnot. It’s the first time I’m using TurboGears to build a web app and so far, it’s been very helpful, not getting in the way at all. I’ll be blogging more extensively about this framework at some point in the future - after I get the chance of getting to the bottom of it - but for now suffice to say that it implements the MVC (Model-View-Controller) architecture fairly well and that contributes to a definite speed-up in development. This surely comes across as old news to the majority of people, but sadly this reasoning hardly applies to where I come from. On another note, I’ve been increasingly thinking about all the Web Service frenzy out there and wondering what cool ideas are just waiting to be had by people. What I mean is, we already know of a lot of interesting so-called “mashups” among different web services: take HousingMaps for instance, which glues Google Maps and Craigslist together in dazzling fashion. Now, the idea of moving applications “up the stack” is also not new, but it’s a fact that the major services in different key areas are exposing APIs and otherwise their data to the world at large: Amazon provides their data through REST, the same is true for IMDb, not to mention how the major players, Google and Yahoo! are exposing APIs for a lot of their great services - Flickr being a good example. So my point is: take all these web services out there and all possible combinations between them. While many such mashups have already been implemented to great effect, many more are still out there dying to be found and realized - given the technical know-how, but more importantly the business accuracy and sense of opportunity. In a talk on the Web 2.0 Conference back in 2004, Jeff Bezos, Amazon CEO, said that unlike Web 1.0, the next generation is about making the Web better for computers. I concur. The means for bringing web applications up a notch, by relying on interesting third-party data - mostly made by users - is out there, up for grabs. And the possibilities are far from being exhausted.


Is There Anybody Out... Here?

I’ve been increasingly flaky updating my humble corner of the web but I guess that’s for a good reason. The stuff I’m working on - apart from University - has picked up a lot of speed and we’re actively pushing the proverbial envelope. Hopefully, I’ll be able to talk about it at greater length soon.

Anyway, while we’re at it…

  • Ajax is one year old. Well, not really, considering the underlying technologies have all been around for a good while. But the term was coined exactly a year ago, so happy birthday to the stuff that enabled a true revolution on the web.
  • Apple has switched to Intel and all, but why should you wait for tomorrow when you can get yourself a used - but perfectly fine - 17" PPC Powerbook today? Sure, it’s got a cracked screen, but with 17 inches, who needs it all? (via BoingBoing, where else…)
  • The ultimate geek desk. I’m very picky about my work space and I don’t really know how something like this would do for me, but it’s still cool as hell. Check out the Aura one. Groovy…
  • I never tried doing any SDL programming, but being able to do it using Perl sounds alright. Might give it a shot sometime just for kicks.

There’s a few reflections of my own about the so-called Web 2.0 I want to post on this weblog, but that’ll have to be postponed until a) I get some more free time and b) I get my ideas together, something clearly lacking right now.

Technorati Tags: ajax <apple powerbook sdl perl web2.0


A Quick One

I think it’s well worth to give a little more emphasis around here to Yahoo!’s release of their User Interface library, after no more than a passing reference in this morning's post. Alongside this library, they also released a comprehensive resource on web development patterns: see the Yahoo! Design Pattern Library. Together, this is an invaluable addition to the open source community and personally something I welcome with wide open arms. Not that there was any shortage of Ajax development tools, but having a big player like Yahoo! opening up at least part of their Web 2.0 development arsenal is a rather welcome event in many different ways. In effect, the proverbial win-win situation.

Insightful as always - I can’t get tired of lavishing praise over his blog posts - Simon Willison has posted about this release. Despite being a Yahoo! employee he maintains an objective view of this new release with additional pointers of interest.

And finally, to accompany this, Yahoo! also launched the User Interface Blog. Cool stuff!

In other news…

Finally, a passing remark to something that’s been bothering me, to a certain degree of course, for a while. I’ve been following Jeremy Zawodny’s writings for some time now and despite respecting him a lot I can’t help feeling tired of reading his posts mentioning or linking to Google bashing articles or other blog posts. Everyone in the technological blogosphore, so to speak, knows him - he’s a key figure within Yahoo! search department - and his blog audience is huge but it strikes me as kinda lame (for lack of a better adjective) to be taking advantage of his large auditorium to throw dirt at a direct competitor. Of course, there’s all the free speech and the “stop reading if you don’t like it” rant but that’s not the point here. As an avid of all his other work-unrelated posts, I feel a bit cheated as this is something I do not see in any other important blog (maybe I’m blind or not looking hard enough?). In case you think I’m fundamentally wrong or missing some important point here, let me know.

Not that it matters. I’m just another guy out there and an humble blog writer.


14 Feb 2006 (updated 14 Feb 2006 at 09:42 UTC) »
Where Does The Time Go?

No, I mean seriously. Lately I’m under the impression someone in a high place rev’ed up the time and it’s all going like twice faster. Not funny. Well, I guess that gives even more meaning to the Carpe Diem stuff, right?

Truth is, I haven’t really had much inclination for writing the past few days and that’s basically down to my focus shifting to reading instead of writing. Mostly technical stuff, opinion on the current trends of technology and all that. For the project I’m working on (I can’t disclose any details yet, not that you really wanted to know anyway) I’m all over the current trend of so-called Web 2.0 applications. What I’m working on is not exactly Web 2.0 in the same sense services as Flickr are, but it does share a lot of the same principles - or at least I’m trying to make it head that way.

I’ve read an interesting observation a couple of days ago on why Ajax may in fact be the Real Deal™ and that’s naturally due to Paul Graham:

(…) in 1996 the story about Java was that it represented a new model of software. Instead of desktop applications, you’d run Java “applets” delivered from a server.

This plan collapsed under its own weight. Microsoft helped kill it, but it would have died anyway. There was no uptake among hackers. When you find PR firms promoting something as the next development platform, you can be sure it’s not. If it were, you wouldn’t need PR firms to tell you, because hackers would already be writing stuff on top of it, the way sites like Busmonster used Google Maps as a platform before Google even meant it to be one.

The proof that Ajax is the next hot platform is that thousands of hackers have spontaneously started building things on top of it. Mikey likes it.

It seems particularly trendy these days to be exploiting the Google Maps API and building different applications on top of it. Bus Monster is an example, but so is HousingMaps and I’m sure a few others I haven’t heard of yet. So it’s interesting to see how the value is shifting up the stack in many ways and different levels:

  • profitable businesses can be built from simply gluing together different powerful components - themselves built around Web 2.0 principles - and coming up with a cohesive whole that is at least equal to the sum of its parts. Obviously, the better the components you’re working with are, the more valuable your application potentially is.

  • On the other hand, the “big fish” are, by default, not getting new programmers to work on the next ground-breaking feature of their services but instead buying out that two-kid startup that did just The Right Thing™. And everyone is happy in the end, especially the kids who turned millionaires - and wonder-kids-media-darlings sometimes. So, again, value shifting up the stack and the game being played one level above than it used to be.

  • Even on the pure technological arena, implementing products and applications from the ground up sounds just so old-fashioned now. “Design patterns” are a hot buzzword these days - Yahoo! has just released their Design Pattern Library aswell as their UI Library - and developing Ajax apps can become quite a hairy business. Libraries have been sprouting from everywhere and many seem to do wonders - being more, or less, difficult to work with. Web Frameworks have also become better abstractions in the sense that they too harness the power of different lower level components ending up with a final product that enables developers to do a lot of stuff at once - take TurboGears for instance, which seems to do a pretty good job at stitching together a template system, an object-relational mapper, a Javascript library and a Python interface for good measure.

So these are definitely interesting times we’re living in. While performing cool hacks with Ajax technologies doesn’t seem to be too hard - and therein probably lies one of the secrets of its widespread acceptance - developing big apps using them seems to be an entirely different matter. As the amount of (mostly Javascript) code increases exponentially, careful structuring needs to be taken into account - something with which I find myself struggling with lately but is in a way understandable providing we’re dealing with a new technology, which is in fact a bundle of a lot of different components (see? Again!).

So for me, I guess it’s time to take a good look at the current state of frameworks/libraries out there and actually find the one that works best for what I want to do.


10 Feb 2006 (updated 10 Feb 2006 at 00:24 UTC) »

Finally taking the resolution of getting up earlier than usual, I managed to rise at 7am, bright and early. Actually, forget the bright part because it was still dark outside. And considering the damn kitchen lights have gone tits up, I had to wait a while before I could grab breakfast. Not good.

But anyway, the morning was decidedly productive so I’ll definitely keep doing this and see how I get on in the next few days. Today I feel fine despite having somehow managed to partake in four football (5-a-side) matches since Monday. Somehow, I don’t feel tired at all, so either I’m doing something right or I will irretrievably crash soon. Time will tell.

Perhaps it is because my current main project focus so much on web application building that I feel the Ajax hype is reaching an all-time high. Web calendars in particular seem to be a dime a dozen these days and that seems to have tickled Joel Spolsky somewhat, I kid you not. He raises interesting points - though curiously none of those, in my opinion, are related to web calendars - especially when he mentions that a lot of companies nowadays are simply working towards getting bought by bigger fish. Is that a bad thing? Of course whoever works that way is basically throwing pride and enjoyment out of the window, but still, it simply comes down to business in the end of the day, doesn’t it? I see it as a great bonus, depending on where you find yourself after your startup has been acquired.

In the meantime, the web is burgeoning with interesting stuff, as far as I’m concerned:

  • Still on the topic of Ajax, check out this cool tutorial about an even cooler RSS Ticker. The possibilities just seem to be limitless…
  • I’ve been keeping an eye on Zimbra for a while now, despite not being a potential user, and it seems they have just released their collaboration suite after being alpha and beta for over a year now. Alongside heavy use of Ajax, it supports a plugin architecture (plugins that go by the catchy name of Zimlets), iCal, RSS/Atom plus clustering, fault tolerance and disaster recovery on its paid Network Edition. The free edition doesn’t include these but on the other hand is open source. In short, I really like how these guys work, how they present themselves and their product and how they integrate themselves within the open source community.
  • Think Secret is adding fuel to the rumours of a 6G iPod - the so-called “true” video iPod - being in the works. According to undisclosed sources it will sport a virtual digital click wheel built on the display itself which “appears when a finger touches it and disappears when the finger is removed”. Wow. It seems possible that Apple will announce and roll out these babies from April 1st, as Steve Jobs promised a big announcement by then celebrating the company’s 30 years. Engadget is showing off this cool mockup:

  • Finally, if you’ve ever wondered what is behind those cool Emacs programming modes, today is your lucky day.

And how about a brain teaser to end this post on a high note?

You look in a mirror, and let’s say you part your hair on the right side. You look in the mirror, and your image has its hair parted on the left side, so the image is left-to-right mixed up. But it’s not top-to-bottom mixed up, because the top of the head of the image is there at the top, and the feet are down at the bottom. The question is: how does the mirror know to get the left and right mixed up, but not the up and down?


Distant Early Morning

That’s a Rush song, by the way.

  • You’ve probably bumped into these pictures already but I can’t resist blogging about them here. Sure they’re heavily photoshop’ed but what the hell, those are awe-inspiring.
  • Simon Willison posts so infrequently it’s a shame. I love his writings and find his posts to be always really insightful. This time around he was at the Future of Web Apps Summit (when do I attend something like this, anyway?) and him and a handful of other attendees took a bunch of notes about the talks in a collaborative fashion. Apparently, SubEthaEdit is good with that. It’s a good example of note-taking, too.
  • Miguel has posted about the recent Xgl code release by Novell. It’s a good one-stop place to check in the demo videos of Xgl goodness. On the other hand, Linux desktops at large seem to be taking quantum leaps recently (just how quantum I don’t really know because one thing is eye-candy and usability is altogether another). A bunch of new KDE 4 screenshots have recently surfaced. They look good and simple, yeah, but I can’t see what the fuss is all about. Maybe I’m spoiled since I got into MacOS X?
  • For those of you just dying to get iTunes going on Linux, there’s a somewhat hacky way of getting version 6.0 (not 6.0.2) running using Wine.

On a different note, I’ve been reading Ajax in Action and generally having a blast. I’ve read a few technical heavyweight books in my time and I can’t recommend this one enough if you are in one way or another intrigued by the whole Web 2.0 hype. And while we’re at it, check out Tim O'Reilly talk about Web 2.0 at the MySQL User Conference last year. Insightful.

Incidentally, Tiago has also been playing with Ajax lately and he’s already managed to get the XmlHttpRequest going. Cool stuff and it’s indeed very exciting that we’re clearly living in the dawn of a new era. It’s probably the first big revolution in the computing world I’m experiencing with my eyes wide open. It’s a time to learn as much as possible and make the most out of it, I guess.


97 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!