A Swarm of Angels: Remixing Cinema

I found out about this open source movie project last winter, and am happy to see that they are so far reaching their set targets.

A groundbreaking project to create a £1 million film and give it away to over 1 million people using the Internet and a global community of members.

  • P2P-friendly: free to download and share
  • No DRM: watch on anything
  • Creative-Commons licensed: remixable

A fantastic initiative, in my humble opinion.

See also: Elephants Dream, by the Orange Open Movie Project.

Mooooooo

I just have to let it all out: I love mootools!

I’m not going to get in a pi**ing match with prototype, jquery, dojo and company, since they’re all truly neat little bundles of joy, but as a write-all-javascript-from-scratch kinda guy, I wasn’t inclined on having to rely on such involved libraries in the past. Especially when coupling them with huge server-side code base that I must keep in mind might actually outlive me. Call it an ever-lasting “vendor” lock-in allergy.

Choosing the best contender to be included in the McGill web platform among the countless available options in the compact JS framework sphere was one of the most difficult tech decisions I’ve had to make in years. But so far, I sure am glad we opted for mootools. Bonus: I didn’t even have to force it on anyone either, and adoption by different levels of developer has proven smoother than in tests involving other potential choices.

Great docs, tight syntax, (close to) worry free platform compatibility and a lively dev community are all among the many benefits we are so far enjoying.

But beware! I’d advise anyone going the framework way to:

  • Do a lot of research before committing to anything, to really gauge what is best for you and your team(s).
  • Not be afraid to write a slew of tests to be implemented in the selected top choices to right away define what has more potential in your very context.
  • And most importantly, not get too comfortable and devolve into a one-lib-only coder.

On this, I’m going back to milking it for all its worth.

Neo 1973 + OpenMoko: It's Out!

The first open mobile solution is out and available for purchase (developer preview).

Neo Base US$300
The Neo Base kit contains everything the mobile application developer needs to enjoy the benefits of the first freed phone, the Neo 1973.

Neo Advanced US$450
The Neo Advanced Kit everything the mobile device hacker wants to get down and dirty with the first freed phone, the Neo 1973.

/happy-dance

parseMe 20070602 Update

Here’s another update to parseMe (back story), my little GPL’ed PHP-based RSS/Atom feed reader for mobile phones and other web-capable devices.

You can find the appropriate links below:

Release notes:

  • Moved my CVS repo to Subversion (svn), hence the revision number differences. I considered moving to a distributed revision control system, since they’re gaining in popularity, but I got lazy after the major rewrite. ;) Maybe for the next release.
  • This is a quasi-complete code rewrite. In this release, I have moved away from the initial goal of keeping within the 500 lines limit (including comments) and having an “educational” flavour, to focus instead on the code structure, the features, further increased security, etc. The security aspect does account for a lot of the extra lines, when coupled with the new features.
  • The parseMe class has now been substracted from the index.php script and has been moved to lib/php/parseMe.class.php.
  • One of the most significant features, on the user end, is that you can now request any number of feeds to be parsed at once. Keeping in mind that the main target audience for this tool is the mobile market (usually slow, tiny screens, low RAM, etc), the usual total number of feeds offered does not lead to major performance hits, unless of course the sources themselves are slow to answer the tool’s request(s). You can of course still set your feed selection in the cookie-based preferences, which now allow for multiple choices.
  • With the multiple feeds feature, the next logical step was to enable some sort of sorting options. You can sort the entries by feeds, or from new to old (descending) or from old to new (ascending). Your favourite sort order can be saved.
  • You can now opt in or out of using the Google Mobile Gateway for destination links, right from the query form, and save your preferred choice.
  • On the server end, self-contained caching is now done through PHP data serialization, since there is no point in reparsing the same XML at every page load, after all.
  • On the security front, and primarily with the concern that we do have an application-writable directory (cache), there are quite a few improvements. Since the data contained in the cache files is not very sensitive by design (and if it is, I’d suggest using ssl and password protecting the app), this is really more of an exercise in good coding practices. And there is of course the concern of php injection attacks.

    • The cache filenames are now generated as a sha1 sum, with the help of an admin-defined shared secret so that they cannot be easily guessed.
    • All cache files now start with a dot (.) so that most web servers will not even serve them, and to be invisible when directory listing is enabled at the server level.
    • On the other hand, there is still a very strong emphasis on user input sanitazation and usage in the logic itself (EG: no client-defined source URL, source validity tests, etc).
  • Fully valid class documentation can be leveraged in IDEs such Eclipse, auto-documentation tool such as phpDocumentor, etc.

It's SQLite-Mania Time!

Between the freshly announced Google Gears and the upcoming Firefox 3, I’m really happy to see the SQLite project picking up some massive and forefront industry momentum. And well deserved at that, since I’ve always thought it was an excellent venture in many respects, though often overlooked by the general development community.

Firefox will use it for their upcoming Places feature, which aims to be the evolution of bookmarks and history.

Google Gears, on the other hand, uses it for offline web app data storage. I have to say I’m getting a geeky kick out of seeing SQL queries passed directly via client-side Javascript (although as an offline app, I guess the client is the server too). And not even as a WTF post: bonus!

Kudos to the SQLite dev team, and good call to the two latest industry icons who chose it.

That install base sure is going to grow fast! Makes me giggle when I remember thinking that every PC would be running at least 6 different embedded copies of the tiny DB within a few years when I first played around with it, all without 99% of the end users even realizing this. I’d say we’re right on track. :)

Who’s taking bets on Adobe doing the same with Apollo?