Self-replicating Linux


I often wonder whether computers will one day be alive... is this a serious condition Doctor? This of course begs the question of what life is, something that we don't have a simple answer for. We can certainly talk about the features of being alive, as far as we can see.

One of them is self-replication. The ability of living cells (of any size) to expand geographically by creating copies of themselves that colonize the neighbourhood. Scary, but true.

Well, what if Linux could self-replicate?

Business -1: Linux flavours

The power of Linux comes from its adaptability (to the will of the system administrator). That's what Windows and MacOS X cannot offer. Instead, they offer a one-size-fits-all solution. Linux, on the other hand, offers a multitude of distros (cf DistroWatch

The problem is that it takes a long time and/or a lot of experience to achieve the customization of Linux needed for one's evolving needs, let alone a whole society's. If we want the Linux userbase to grow, all users shouldn't be required to be system administrators.

Are there too many Linux distros?

TuxRadar asks that interesting question. Here's what I said:

A Linux distro is like having your own customized OS. So one would imagine a loooong wizard that asks you what you plan to do with your new machine, and then selects the best distro to suit your needs.

Linux Multimedia


Linux Arcade


Take a Linux PC, put it in an arcade cabinet (you can find them second-hand around Cairo), get a huge monitor, hook them to a 2-player joystick pad (X-Arcade), and host the Multi Arcade Machine Emulator (MAME) software. You can play all those old arcade games forever and for free! This is not a new idea, many people are already doing it, but it can be an amazing party gadget.

Workflow Linux


Operating systems and workflow systems have many concepts in common:

    * Processes
    * Threads <=> subprocesses
    * Files <=> documents
    * Applications <=> forms
    * Commands <=> actions
    * Authentication and security
It is proposed here to create a Linux variant where workflow features are explicitly coded at the operating system level. The aim is to make all applications workflow-ready, and to unify the workflow across all applications.



vi /etc/php.ini
and save then discover that you want to revert to the earlier version. You can then

Don't fight Windows, assimilate it!


Windows is an operating system that works. Not flawlessly, but then neither does Linux, its flagship open source "competitor". One of the main promises of open source is to integrate heterogeneous systems, and Windows is definitely heterogeneous. But its user interface, however restrictively linear it can appear to Linux users, is within the grasp of most of today's humanity, which is in itself no small feat.

What's my point? A company that wants to be based on open source software must be able to use Windows as part of its standards-based network, not insist on rooting out Windows completely. To start with, all servers should be Linux-based. Open server systems are equivalent if not superior to their closed counterparts. The choice to use Windows on the workstations is made case-by-case, depending on the needs of each user or department. For example, Windows is still needed for tasks like graphic design. Shifting the designers from using software like Photoshop, Freehand or 3ds Max to their still-clunky open source equivalents will result in a massive creative and operational disruption that is unwarranted. Same goes for sound and video design. Other options here include the Macintosh/Macintel as it is based on an open source variant of UNIX and much easier to integrate (TO VERIFY). Of course, the Mac is more expensive but I don't think the markup is only for Apple's brand name.

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.

Find in jar, zip or any archive


Finding classes in jar files must be one of the main activities of Java developers.

Here's my version of the "find in jars" utility. Note that the same idea can be used to find files inside zip or any other archive file.

for f in `find -name '*.jar'`; do (unzip -t "$f" | grep $1) && echo "Found in: $f"; done

* I used `unzip` instead of `jar` because the machine I was using at the time did not have the JDK. It's too complicated to explain. To use `jar` just replace

unzip -t "$f"


jar tf "$f"

* The script searches in the current folder and subfolders for .jar files only. Change as appropriate.

udev rulez!


If you're using USB drives on a Linux server, then you probably ran into the problem of mounting those drives consistently. The problem comes from the fact that the USB mounting order can change from one reboot to the next, rendering your fstab entries stale.

Fortunately, udev comes to the rescue. Just do a

ls -la /dev/disk/by-id/

and you'll find human-friendly and persistent symbolic links to the USB device nodes. For example, mine has

lrwxrwxrwx 1 root root 10 2006-09-07 08:40 usb-Maxtor_6_Y120L0_############ -> ../../sda
lrwxrwxrwx 1 root root 10 2006-09-07 08:40 usb-Maxtor_6_Y120L0_############-part1 -> ../../sda1

Syndicate content