June 2007

You are currently browsing the monthly archive for June 2007.

[ Via Leon. ]

David Pogue has a wonderful little review of the iPhone. He’s an acquired taste, I think, but fits my sense of humor very well: silly, good points, and lots of over the top audience participation. I loved the punchline: But, uhh, is there an Apple logo? Great little dig about the value of brand and identity over rational decision making.

Also worth watching is his talk at TED. His talk is – wait for it – a musical. Very silly, but very enjoyable.

snapshots

Demitris Glezos has been doing some awesome work on the new Fedora Translation site. Unlike a lot of translation projects, where the focus has been on improving that one project (KDE, GNOME, Ubuntu, whatever) his approach has been different. In addition to supporting the packages which have lived with Red Hat + Fedora in the past (anaconda, rhgb, etc) he’s also added support so that you can pull translation information from external repositories as well. For example the OLPC Sugar Interface is hosted on laptop.org and RPM is hosted on rpm.org. Each of those projects are hosted with different revision control systems, but he hides that information to make things easier for translators. With an easy to download translation file for each project, it brings translators and upstream projects closer together and it’s a good first step as a service to upstream projects.

But now he’s taken it to the next level with Transifex. Here’s how it works. You’re a small project and you’re hosted somewhere. You want translators. Very often you have to build your own community by attracting people, setting up accounts, etc. This isn’t a problem for the larger projects like GNOME and KDE which have their own communities, but it’s harder for smaller projects. With Transifex what Dimitris has done is set it up so that a Fedora translator can, via the Fedora site, have new translations checked into the upstream project. This is done through a single “fedora” account that the project has set up and checkins through that account will contain account information about who checked it in and how to contact that person. He’s setting it up so that it will support the most common revision control systems (git, cvs, svn, hg) and it should be seamless from the standpoint of the upstream projects and the translators.

While I’m sure that a lot of projects won’t want to use this service, it’s likely to be very useful to a lot of people. And what I love about it is that it fits so well into the Fedora Way: it vastly improves the lives of both translators and upstream projects in a way that grows the entire pie for everyone. Connecting the hundreds of translators who are active in Fedora with the thousands of projects out there with a very low barrier to entry solution.

Great job, Dimitris!

I’m so glad that Richard Hughes took the lead on getting the system activation code in place and is trying to get it upstream into D-Bus. I think that David Zeuthen was starting to avoid me in the office. Every time I would see him I would just look at him and say “dbus activation patch?” No “hello.” No “how are you doing?” I was pretty focused. I’m sorry, David. So very sorry. But it sounds like you were busy. In any case I’m happy we’re going down the right path.

This is really going to help our story around OLPC. Right now the OLPC XO, like many machines, takes a long time to start up. Far too long. Part of this is the machine’s performance and the fact that we’re still loading a lot of legacy stuff. (RAID? Do we need to check for RAID partitions in the OLPC startup scripts? I’m guessing no!) But when both David and I started looking at it a year ago I think that we both came to the conclusion that the way that we start the desktop it was fundamentally broken, especially on that little machine. That’s why we (and when I mean we I really mean David with me looking over his shoulder) pursued things like mayflower and looking at what architectural improvements we could make to startup. That service activation patch is part of the eventual solution.

The last piece of the puzzle from where I sit is udev. The current set of Fedora startup scripts along with the way that udev is set up takes a whopping 20 seconds or so to start up on the OLPC XO. Why? Well it’s not udev, exactly. Mayflower embeds udev and it starts up in under a second. The problem appears to be the rules, the programs that are run as a result of the rules, and the way that kernel events are handled.

Right now kernel events are handled by udev. Those events are matched against rules in udev’s config files. Those config files specify certain actions. Some of those actions have terrible performance-destroying side effects. Sometimes the rules specify creating device nodes. The device nodes that we create we have to set the console permissions on those nodes. That’s done by running a program after the device is created. In addition there is a global rule that runs modprobe for every event that comes in no matter if it creates a device node. That also requires running a program. On startup, the kernel sends out anywhere from several dozen to several hundred events that result in device creation. Imagine running a program for each of those items. No do that on a machine that runs at about 466mhz. 20 seconds, indeed.

I honestly believe that we can achieve a 20 second startup time for a desktop machine in Fedora if we take an agressive notion to what startup means and continues down this path to a sane architecture. I also believe that we can get the OLPC XO machine started up in that same amount of time, if for no other reason than the number of things we need to load on startup is so much lower. I think that David has a good sense of the architectural things that need to change in udev to make it scale better. He and Kay had a roadmap at one point but I don’t know what happened to it. But it’s a key to getting to that 20 second number. I think we can do it.

As Max points out, someone composed a complete set of Fedora 7 CDs: 11 in total. Our last release, Fedora Core 6 only included 5 CDs. So that gives you a sense of the number of packages that have been grown and maintained by the community. Also what’s interesting to me is that they were able to do this without any special tools. They were able to compose them using the tools that were developed for building livecds by the community and are available to anyone.

Dan Williams, John Palmieri and Miguel Alvarez talk about the mesh networking in the laptop. They talk about the low level connectivity bits as well as the higher level set of activities and architecture that we’re building. Great job guys!

Download this video: [Ogg Theora]

Video by Simple Coat.
Produced by Julie Bryce and Kristin Hondros.

startup times

There’s a lot of work in Fedora now to try and fix init scripts. Adding dependencies, hooking up event systems, lots of shell scripting, etc. In the desktop case, why isn’t the actual solution to start up times just starting up less stuff?

Here’s what we’re going to do for OLPC:

  1. Boot the kernel.
  2. Start udev.
  3. Start d-bus.
  4. Start X.
  5. Start the UI.

Based on that how fast do you think startup will appear to be? When you need something started up you ask d-bus to start it. This includes things like avahi, network manager, printing, etc. For desktop, isn’t this the right direction to go? Hughsie is working on the d-bus startup patch and once that’s in we can start ripping things out.

I have a macbook. It starts in 25 seconds. Linux on the same computer takes 2 minutes. I don’t think that dependencies will help that.

Yesterday, like thousands of other people, I downloaded a copy of Fedora 7 and installed it. In the past I’ve always had to download a few CDs or a huge DVD – and a lot of people are doing that – but this time I just used the Fedora 7 LiveCD. It’s just so much simpler to just drop in a pre-configured desktop and just start using it. (Hats off to Klaus Knoppix who really started the idea of using the livecd. I can’t believe how long it took for us to do this. You were so far ahead of us, Klaus.)

The new theme, fonts and graphics in Fedora 7 are just stunning. Many thanks to the Fedora Art team who did a great job on all of this. So many small improvements. My news reader of choice, liferea, got a major upgrade and it’s so much more pleasant to use.

But of course, these are not the most important qualities of Fedora 7. The qualities that I’m interested in are somewhat intangible. What this release represents is a first step down a long path. Fedora is no longer something that just Red Hat produces. Those of us who work for the company have been long since eclipsed by the sheer number of people involved in Fedora from outside of the corporate firewall. It’s simple: Fedora is now an open source project. What’s interesting to me is how long we’ve been able to say this – a few months at best – but the number of people that have shown up who show a unique passion for the success of the project is just amazing. For a good view of some of them check out the Fedora Award Winners for 2007. Every one of those guys just showed up and started making a difference.

Just some simple examples of this:

Check out the yum presto work by Jonathan and Ahmed. Being done entirely by community folks and based on the original deltarpm code (that I think SuSE originally did?) they aim to integrate it directly into the Fedora base. I’m hoping that we get this landed in our next release so that people downloading updates will save roughly 75% of the bandwith costs involved in doing an update. This will be huge for our user base. And it’s being done entirely by some rocking Fedora community folks.

Check out Revisor. (Good article in Red Hat Magazine is here.)

Another great project by a different set of people: Chunks of code from Pirut, the livecd utils and yum and managed to put together a tool that anyone can use to put together their own spin of Fedora. With the growing depth of software lovingly maintained by hundreds of people, you can really make a livecd or distribution that does exactly what you need. And if you need a fixed package in Fedora to support something new or different, you can just jump in an participate. No more barriers. This is the perfect expression of what being an open source project means.

Max talks about the new release. But I think this is the most interesting bit:

Red Hat, Fedora, Fedora Wiki, Fedora Docs, Fedora Planet, torrents, etc. Everything is still up, and (at least as far as I can tell) as fast as always. And the even better part is, that there was almost zero downtime along the way.

Credit for this falls completely into the hands of our very dedicated, and very skilled Fedora Infrastructure team.

Did you know that almost all of the people on that team are volunteers? Did you know that the volunteer group that we have is so geographically diversified that we almost have 24×7 sysadmin coverage of Fedora infrastructure machines?

It’s awesome. Fedora’s infrastructure is largely volunteer-driven. Lots of Xen instances running in a data center with people who care keeping things healthy and alive. What could be a better indication of the health of a project?

As I said, Fedora 7 is a great start. With improving support for laptops, a large and growing base of developers and packagers, a commitment to free software and led by passionate people, I can’t think of a better position we could be in to make a difference in the future.