computing (104)

Software quality in the open source layers

It can be argued that open source software falls within 3 main categories: server, middleware and applications. Whereas the server and middleware layers have been adequately served by FOSS, open source end-user applications exhibit weaknesses that have been overcome decades ago by closed software development. Some recommendations are given here to improve this situation.

EXAMPLES of WEAKNESSES in FOSS APPLICATIONS

  * OpenOffice.org: performance problems
  * eGroupware: immature modules
  * openCRX: unfriendly user interface
  * Gnome Nautilus File Manager: immature user interface
RECOMMENDATIONS for BETTER APPLICATIONS

Children computing

How can computers and computing assist children? Imagine this: if you were to give your daughter a computer, what would you wish it did, and what would you wish it didn't?

I would like a computer to help my child develop her thinking skills. I don't know all the thinking skills, nor their classification, so here are a few of them in no particular order:

  • Memory: there are many ways to assist in memory training, one example among many being the method of loci.
  • Classification: things that belong together go together.

Linux as Jazz

Perhaps better entitled "Open Source as Jazz, and Linux as its popular standard".

In jazz, each musician improvises his part in the tune's performance. Knowing the skeletal structure of the tune, the musician applies his knowledge of harmony, rhythm and melody, along with some social knowledge of his fellow musicians, to produce meaningful phrases, amounting to intelligible overall statements. In doing so, the jazz band collectively creates a spontaneously original variation on a theme.

A Linux user also participates in the continuous recreation of his system. From writing shell scripts to automating simple tasks, through submitting bug reports and code patches to open source projects, to hacking kernel modules or desktop environments, nothing in Linux is the last word and thus improvisation is always needed.

More accurate node view statistics

in

I noticed that the Drupal content view statistics increments the view count even when the author of the node is the one viewing the page. That's not very useful is it? I decided to change that:

In statistics.module, function statistics_exit(), add an extra if statement before updating the totalcount on {node_counter}:


if ((arg(0) == 'node') && is_numeric(arg(1)) && arg(2) == '') {
// Discard count if current user is the same as node author.
$author_uid = db_result(db_query('SELECT uid FROM {node} WHERE nid = %d', arg(1)));

Intel jingle

Music is a great mnemonic tool to establish mind share. Technology companies have been using it successfully: the Nokia ring tones, the Microsoft Windows startup and shutdown tunes and the Intel Inside jingle have become almost universally recognizable.

It is a creative challenge to devise a short (~5 secs) musical sequence that has a strong enough individuality to be remembered and associated with a brand. As an amateur musician and professional software developer, I am interested to find the logic/art behind these jingles, so I looked for a transcription of existing ones. Here's what we found:

Simplicity and perfection

Antoine de Saint Exupéry:

La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever. Perfection is achieved not when there's nothing more to add, but when there's nothing left to remove.

Found in the very good programming book, Programming Pearls, by Jon Bentley.

Better electronic reading, step 1

For the past 2 years I've been fantasizing about buying a tablet PC or a portrait monitor, that would enable me to use the full screen to read e-books or similarly laid-out documents.

A couple of months ago I found the poor man's portrait monitor. Here it is.

To read PDFs in portrait mode, I just rotate the document inside Acrobat Reader and switch to fullscreen mode. To read other formats (like Web pages) I flip the Windows orientation, with the help of my video driver. I also a wireless mouse that helps with flipping pages remotely. I think a wireless keyboard would also help.

Idea: Drupalizing applications

in

The problem is this: on one hand you've got a PHP application that does one thing only, but does it great, and on the other hand you've got Drupal, the Lego of computing which lets you do anything, but from scratch. And the applications that you are required to build are never fulfilled by just one existing PHP system, so using Drupal is tempting as a universal container.

For example: phpBB is a mature, full-featured bulletin-board system that's been around since 2000 and has a huge community. In constrast, the Drupal forum module is rather immature, clunky, and buggy. But it's integrated with all other nifty features of Drupal. What to do?

Graphviz for software visualization

Graphviz is an open source graph diagramming system. From an input description of a graph, the system generates an automatically laid-out diagram to one of several output formats including PNG, SVG, and HTML image maps.

The open source domain has created an explosion of source code to be examined and used. The potential savings in terms of development effort are huge, but they don't come for free: it is essential to build an understanding of the downloaded source code before attempting to use it or modify it. The difficulty is compounded by the fact that typical open source projects produce very little technical documentation, so the interested developer must go through the source code unassisted to build understanding.

Geek joke

I remembered this from my youth, and kudos to IG for finding it! Taken from MAD Magazine, issue unknown, volume unknown, year unknown. Drawing by Sergio Aragonés.

In the same vein:
There are 10 kinds of people in the world: those who understand binary and those who don't.

Syndicate content