warning: Creating default object from empty value in /home/kourge/kourge.net/modules/taxonomy/taxonomy.pages.inc on line 34.

Ubiquity commands for Drupal

Ubiquity is a dynamic command and quasi-natural language add-on for Firefox, recently released by Mozilla Labs. It sure is getting ever so popular, so I decided to write two Drupal-related Ubiquity commands in one shot: drupal and drupal-api.

Google Chrome SunSpider benchmark results

I promised to post the SunSpider benchmarks for Google Chrome, and boy, V8 surely blew away other browsers in many aspects! For the visual learners, here's a pretty chart to show just how monstrous Chrome is when it comes to JS perfs (as Intchanter noted, smaller is better):

Here are some nicely formatted raw numbers:

What Google Chrome means to web developers

With the release of Google Chrome just coming up tomorrow, by now the blogosphere should be on fire with all the screenshots and juicy details. Even though I see Google Chrome as something that means more to the user than to the developer, there are certain goodies in Google Chrome that aim to provide a better platform for developers. What's the implication for web developers here?

Prototype Essentials: just the essence

One of my recent efforts is Prototype Essentials. It is, pardon my pun, essentially Prototype stripped of its browser-specific parts such as Ajax, DOM stuff, selectors, form helpers, and an event system. Why would anyone want a stripped down version of Prototype?

The big idea is that sometimes your preferred JavaScript library or your JavaScript environment has an underpowered API when it comes to pure programming. I'll draw two of my personal examples. I find jQuery to be awesome for intuitive DOM traversal and manipulation, but when it comes to non-DOM objects, what jQuery can do is limited (and also, in my own opinion, not as intuitive). Drupal is a great platform to build web apps on, but its simplicity (bundling jQuery) comes with a cost, and I find myself constrained because of this. Not anymore.

My second example is when I'd like to throw together a quick and dirty shell script using JavaScript on Rhino. I frequently find myself in need of an intuitive way to get the last element of an array (Array.last in Prototype), interpolate strings (String.interpolate in Prototype), or construct ranges ($R or ObjectRange in Prototype). Now all I need to do now is load Prototype Essentials and I'd have a much richer set of utilities.

So please check out the website I set up for Prototype Essentials. I also plan to wrap this into a Drupal module so I can ease my pains (and hopefully those of others) in JavaScripting in Drupal.

History meme

It seems that a shell history meme is passing around the blogosphere. I first saw it on Dan Mills' blog post via Planet Mozilla. There are already 10 Mozilla hackers posting their top used shell commands, so I thought I'd do it too.

koeji:~ kourge$ uname -a
Darwin koeji.local 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar  4 21:17:34 PST 20
08; root:xnu-1228.4.31~1/RELEASE_I386 i386
koeji:~ kourge$ history | awk '{a[$2]++} END {for(i in a){print a[i] " " i}}' | 
sort -rn | head
88 ls
81 cd
28 cvs
26 rm
26 md5sum
23 ./firefox-bin
22 sudo
12 ssh
12 js
9 less

A few notes:

  • md5sum is actually md5 on Mac OS X. I aliased md5 so that I wouldn't suddenly have a hard time adapting should I start using a Linux system.
  • js is an alias of java -Xms256m -Xmx512m org.mozilla.javascript.tools.shell.Main, which is the command to invoke the Rhino shell, which I sometimes use when I write shell scripts in JavaScript. Rhino is an awesome JavaScript implementation in Java.
  • You can see from the cvs count that I'm slacking off recently when it comes to maintaining Drupal modules.

So, fellow Drupalers / Drupalites, what are your most commonly used terminal commands? Beware of the line break before sort -rn when pasting the command into your terminal.

DROP Continues GHOP's Beat

After the Google Highly Open Participation (GHOP) contest ended, we've got a huge influx of new contributors in Drupal. The positive influence the GHOP brought was truly amazing. To keep the beat rolling, DROP was created. Standing for Drupal Really Open Participation, we continue the goodness of a task-based system and pancakes.

This is a really brilliant idea. It serves as an incentive for regular contributors. It interests new contributors. It gives recognition. These are all successful traits of GHOP that DROP wishes to carry on. I've personally already claimed one task and plan to work on more once I have the first one cleared.

So what can you do to help? Read on.

5 Great, New Features in Drupal 6

With the release of Drupal 6 around the horizon, I made a presentation (as part of GHOP) that (attractively) outlines 5 new features in Drupal 6 that I deemed "awesome".

The following features are outlined:

  1. OpenID support
  2. Module update status
  3. Improved usability
  4. Alias filtering
  5. Internationalization

Get the presentation.

Comparison of CCK/Taxonomy Modules in Drupal

This is a cross-posting from a handbook page I wrote on drupal.org. It may or may not accurately reflect the latest revision; for the latest revision, please view the original handbook page.

"There is more than one way to do it." This philosophy isn’t limited to Perl; it generally extends to open source software itself. Likewise, there are four modules that are intended to integrate taxonomy fields into the Content Construction Kit (CCK) for Drupal; these modules have been identified to have similar or overlapping functionality. Below is a list of the 4 modules.

  • Content Taxonomy (content_taxonomy)
  • CCK Taxonomy Fields (cck_taxonomy)
  • Taxonomy Super Select (taxonomy_super_select)
  • CCK Taxonomy Super Select Ultra (cck_taxonomy_ssu)

This document serves to compare and contrast these modules in order to make it easier for site owners to choose one to suit their site development needs. The following issues are addressed for each module:

  • ease of installation and ease of use
  • list of any dependencies or companion modules associated with each module (CCK, Taxonomy, Views, API modules, externally hosted code, etc.)
  • features and functionality
  • pros and cons
  • list of access permissions
  • evaluation of the documentation/handbook (if any)
  • status of the most stable release (development, alpha, beta, official)
  • if it is still in development, an evaluation for its potential for successful completion
  • a brief examination of the its issue queues for any glaring or recurring problems

Drupal 5.1 Upgrade

Following along with the fresh release of Drupal 5.1, I upgraded this site shortly. There are two pages of minor bugs fixed, along with a Comment module vulnerability patched. There seems to be no database scheme changes when compared to Drupal 5.0.

Migration from WordPress to Drupal

As I grow more and more liking on Drupal, I decided to truly integrate my WordPress-powered blog with my main site. This is quite challenging, since database schemas differ between different content management systems.

With the wp2drupal module, this can be easily achieved, and the only thing that matters would be how much would be migrated. My case was a pretty exceptional one, since I maintain the WordPress blog on a different subdomain with customized permalinks.

Syndicate content