The UpFront Section


LJ Index, November 2007

1. Average measured speed in MBps of a broadband connection with “up to 8Mbps” download speed: 2.7

2. Lowest measured speed in KBps of a broadband connection with “up to 8Mbps” download speed: 90

3. Number of consumers out of five who get the broadband speed they signed up for: 1

4. Percent of surveyed consumers who have felt misled by providers' advertising: 30

5. Billions of Internet users in 2006: 1.1

6. Additional millions of Internet users expected by 2010: 500

7. Millions of video streams per day served by YouTube: 100

8. Number of surveillance cameras in London: 200

9. Trillions of bits sent by London surveillance cameras to their data center: 64

10. Terabytes accumulated per day by Chevron: 2

11. Total exabytes of data in 2006: 161

12. Multiple in millions of 2006 data total to all information in all books ever written: 3

13. Percentage of the digital universe that will be created by individuals by 2010: 70

14. Percentage of the current digital universe that is subject to compliance rules and standards: 20

15. Percentage of the current digital universe that is potentially subject to security applications: 30

16. Exabytes of “user-generated content” expected by 2010: 692

17. Total exabytes of data expected by 2010: 988

18. Percentage of the 2010 digital universe for which organizations will be responsible for security, privacy, reliability and compliance: 85

19. Exabyte capacity of media ready to store newly created and replicated data in the 2010 digital universe: 601

20. Year in which the amount of information created will surpass available storage capacity for the first time: 2007

1, 2: which.co.uk, sourced by David Meyer for ZDNet UK

3, 4: moneysupermarket.com, sourced by David Meyer for ZDNet UK

5–20: “Expanding the Digital Universe”, by John F. Gantz, et al., a March 2007 IDC whitepaper

Raising the Social Tide

Brad Fitzpatrick has a long pedigree for a young guy. Besides creating LiveJournal—one of the earliest and most popular blogging services (and an open-source one at that)—he is the creator of OpenID, Perlbal, MogileFS, memcached, djabberd and many other fine hacks. Astute readers may recall “Distributed Caching with Memcached”, which Brad wrote for Linux Journal in 2004. Today, memcached is one of the world's most widely used distributed caching methods, while OpenID is a breakaway leader in the user-centric identity field.

In August 2007, Brad published “Thoughts on the Social Graph” (bradfitz.com/social-graph-problem), which presents this problem statement:

There are an increasing number of new “social applications” as well as traditional applications that either require the “social graph” or that could provide better value to users by utilizing information in the social graph. What I mean by “social graph” is the global mapping of everybody and how they're related, as Wikipedia describes it (en.wikipedia.org/wiki/Social_graph). Unfortunately, there doesn't exist a single social graph (or even multiple graphs that interoperate) that's comprehensive and decentralized. Rather, there exists hundreds of disperse social graphs, most of dubious quality and many of them walled gardens.

At the time, Wikipedia's “social network” entry (same as its “social graph” entry) said, “Social network analysis views social relationships in terms of nodes and ties. Nodes are the individual actors within the networks, and ties are the relationships between the actors.” Elsewhere in Wikipedia, “Graph” is explained as a mathematical concept, “a set of objects called points, nodes, or vertices connected by links called lines or edges”.

So, the first idea is to move the center of social networking gravity outside the silo'd sites, each of which impose inconveniences on themselves as well as their members. As Brad says, “People are getting sick of registering and re-declaring their friends on every site.” The process is also silly. Not long after Google's Orkut social network site went up, Rael Dornfest made fun of the friendship-declaring protocol by walking up to people he knew and saying, “You are my friend? Yes or no?”

The second idea is to make society itself a platform. Or, in Brad's terms, to “make the social graph a community asset”, and “to build the guts that allow a thousand new social applications to bloom”.

Significantly, most social network sites (all but MySpace, I believe) run on Linux. Wikipedia too. If Brad's right, we can equip the rising social network tide that lifts all boats. There should even be plenty of work converting today's silos into tomorrow's arks.

For more, visit bradfitz.com/social-graph-problem, or just look up “social graph” on the vast Linux hack called Google. The lucky top result probably will be Brad's.

Frisky N800 Hack

Keijo Lähetkangas has a fun job at Nokia: taking the company's N800 handheld computer (subject of our September 2007 cover story) and turning it into the brains, faces and controllers of Robot pets. His Puppy and a four-wheeled Rover companion were stars in the demo room at this year's Guadec conference in Birmingham (UK). Puppy is remarkably flexible and expressive. It walks, sits, smiles, dances, sleeps and even—how can we put this politely?—lifts one leg (meaning that Puppy is a male, or at least acts like one).

Several Guadec attendees compared Puppy with Sony's Aibo, the most notable difference (besides looks) being the Puppy's openness. It's a pure DIY pet—make of him what you like. Also, Aibo had no eyes. Puppy not only has eyes on his display, but he also can look at the world through the N800's built-in camera, which is in a barely noticeable black cylinder that pops out the side of the N800. It got confusing to take pictures of Puppy and Rover while they took pictures of me, which appeared on other N800s over wireless connections.

Puppy and Rover's non-N800 hardware is all from the Robotics.com catalog. The controlling software, all open source, is at https://garage.maemo.org/projects/robot. You also can see Puppy in action at youtube.com/puppyrobot.

From ACCESS to Excess

The first shoe dropped in September 2005, when ACCESS Co. Ltd. of Japan announced that it would acquire Palm OS developer PalmSource for $324 million. The next shoe dropped in February 2006, when PalmSource detailed the ACCESS Linux Platform (ALP), as an environment open to running Palm OS binaries and Java applications, in addition to native Linux apps. Enough other shoes have dropped since then to give the clear message that ALP has legs. The latest was at LinuxWorld Expo in August 2007, when the company showed screenshots of an iPhone-like UI and provided more details around its plan to make Linux the most supportive environment for mobile device and application development. Chief among these is the Hiker Application framework that fills in some of the formerly missing APIs for mobile applications. Hiker originally was available through the MPL (Mozilla Public License), but it reportedly will be dual-licensed with the LGPL (v2) license as well.

Looking beyond the superficial resemblances between what ACCESS showed and the now-familiar iPhone, it's clear that the mobile application market will divide between Web-based (iPhone) and native OS-based (ACCESS, OpenMoko, maemo)—with the latter embracing legacy apps developed for other platforms as well. Thus, the pavement gets wider on the road to truly open mobile devices and markets that grow on them.

Bring SMS to the Live Web with a FoxBox

The forces at Acme Systems and KDev, two veteran embedded Linux system and software developers based in Italy, have conspired to bring the world SMS FoxBox. It's a Linux-based box dedicated to sending and receiving SMS messages that can be managed through a Web interface. It can handle up to 30 incoming messages at a time on a common SIM card. It also works as an SMS to TCP/IP gateway, so you can combine SMS messaging with network and user applications. You can SMS to and from e-mail, MySQL, Web scripts, desktop widgets, whatever.

Acme's SMS FoxBox

SMS FoxBox is ideal for use in Live Web conditions. Broadcasters can use it to interact with their audiences. Emergency services can use it to flow live reports onto Web sites or broadcasts. Lightweight monitoring, alarm sending, trouble ticketing and remote device management can be moved to SMS from other methods. Databases and address books can be kept current.

The unit comes with a GSM quad-band modem, an SD/MMC card for storing messages (it comes default with a 512MB card). It runs on the 2.6 Linux kernel, has a BIS module for failover to up to two backup appliances and an internal clock with a backup battery and NTP support.

By the way, you might remember Acme as the source not only of the tiny Acme Fox embedded Linux system board, but for its optional Tux Case as well. Today, that also can come with an Acme Fox SBC (single-board computer). With Kdev's FoxServe firmware, it can work as a dynamic Web server (Apache, PHP, SQLite, SSL/TLS and so on).

Acme's Tux Case (Showing Separate Parts)

They Said It

If our customers buy bandwidth from us, and they want to share it with neighbors, or publicly, that doesn't make them bad customers.

...the commercial concerns from the very beginning, even when they were small, were really very important. The commercial distributions were what drove a lot of the nice installers, and pushed people to improve usability....I think commercial users of Linux have been very important in actually improving the product. I think all the technical people who have been involved have been hugely important, but I think that the kind of commercial use that you can get with the GPLv2 is also important—you need a balance between pure technology, and the kinds of pressures you get from users through the market....If you have a purely marketing (or customer) driven approach, you end up with crap technology in the end. But I think that something that is purely driven by technical people will also end up as crap technology in the end, and you really need a balance here.

It's exciting to go to work each day knowing that scads of companies are using your software, then contacting you to get additional value. It's not easy by any stretch, but it's a lot more efficient and productive than the proprietary model.

diff -u: What's New in Kernel Development

Linus Torvalds has expressed keen interest in finding someone to put together a full git repository of the kernel, going all the way back to version 0.01. He's tried this himself a couple times, and other folks have made various efforts, but it's a hard problem. Certainly, it would not be possible to include every patch that went into the kernel, in the order it was included, because many patches never were sent to any public forum. Even finding the release announcements for all the numbered versions will be difficult, and some official releases are thought to be lost as well. It's a daunting task, but a very valuable one, even if done incompletely. If someone can do it, Linus has offered to comment the various early patches and releases, from memory.

Mingming Cao has submitted patches to allow the ext4 filesystem to perform checksum calculations on its journal to make sure that any corruption is identified as quickly as possible. With interest from various folks, including Andrew Morton, it looks like this feature quickly will be adopted into the official tree, although ext4 still remains a fairly experimental filesystem.

LinuxConf Europe 2007 (LCE) will host a semi-formal discussion of containers within the kernel. Serge E. Hallyn recently announced plans to arrange for a conference room (including phone lines for anyone who can't be present but still wants to participate) and a series of half-hour presentations. Containers provide a way to cluster processes into specific namespaces that are isolated from the rest of the system and are related to virtualization projects like Xen.

Michal Piotrowski has announced the “Linux Kernel Tester's Guide”, translated by Rafael J. Wysocki, at www.stardust.webpages.pl/files/handbook/handbook-en-0.3-rc1.pdf. It is a long document representing much work, it reads like a book, and it clearly explains a lot of material that most discussions on the linux-kernel mailing list tend to assume—for example, how to do a binary search with git to identify precisely when a particular bug was introduced into the tree.

Several projects have changed hands recently. Valerie Henson has had to abandon the Tulip driver, and now it looks like Kyle McMartin may become the official maintainer. Wim Van Sebroeck has submitted a patch to make Mike Frysinger the official maintainer of the Blackfin Watchdog driver. Mike Sharkey of Pike Aerospace Research Corporation has volunteered to take over the otherwise unmaintained Parallel Port driver on behalf of his company. And, Anton Vorontsov recently became a co-maintainer of the Power Supply subsystem, along with David Woodhouse.

Over time, various features have gone into the kernel to support more and more modern architectures. But, for some of these features that have no serious negative impact on older hardware, such as the 386 processor, there's been no real effort to isolate the unneeded features from that older hardware. Kernels compiled for those systems, therefore, have tended to have larger and larger binaries and to require more and more RAM to run. For the most part, no one notices or cares, because most people don't bother running Linux on the 386 anymore. But, the effect has been there, building gradually.

Jonathan Campbell recently started submitting patches to ensure that architectures like the 386 would compile only features that actually would work on those systems. So, things like the Pentium TSC register would not be included in compiled 386 kernel binaries. The result of his work was a much smaller binary, and his patches probably will be adopted into the main kernel tree. This kind of support for legacy systems might have an impact on projects to bring computing resources to third-world countries and impoverished neighborhoods or lower the cost of experimenting with clustered solutions.