August 28, 2008

comcast says no to competing video services and imposes bandwidth caps

Comcast has decided to impose a 250GB/month limit on their customers. I have a lot of friends that use Comcast for their internet service provider and are likely to hit this limit, even counting fully legit data. Linux isos aren’t small. And I know that I do a lot of backups and whoisi testing that uses a decent amount of bandwidth. I’m sure I’m well past this limit. [ Note: I am a very happy Verizon FIOS user. ]

But the real story is about what this does to competitive video services. Want to get access to better, lower-cost video than Comcast cable service from somewhere like Amazon, Netflix or Hulu? Nope, welcome to the world of false scarcity. You will use their video service and you will like it.

Om calls this “the enemy of innovation” and he’s right. Part of the explosion of video, services and data via the web has come because of the growth and availability of broadband into people’s homes. What this says is “growth is fine as long as it doesn’t compete with our video offerings.”

I am reminded of the oldest story of this behaviour when AT&T didn’t want to support the Internet because they didn’t want competition to their proprietary long haul services. And rightfully so. It’s a good thing that AT&T didn’t win that battle, right?

Also, they list how many pieces of email you can send with a 250GB limit. (Huh? Seriously?) I wonder how many youtube videos or hulu videos that amounts to. Anyone know the avg size of one of those? That might make for a more interesting number.

What have I been up to?

Things have quieted down on the livecd-tools front -- it is mostly to a point where it's pretty stable and works fairly well. Also, I did not run for election to either the Board or FESCo this time around. Instead, I've tried to free up my time a bit so that I can spend more time looking into some "new and different" things, while still managing to spend most of my time on Fedora.

And after some time looking, it's mostly ending up being spending time helping to get Fedora working better on various "small" form-factor x86 machines. I sent out a message to fedora-devel-list about two weeks ago now seeing who else was interested and got a bit of a gamut of responses. Some were right along the lines of what I'm thinking with things such as Netbooks, UMPCs, MIDs and the XO. Others were more things like the OpenMoko. And while the latter is perhaps interesting to Fedora in the longer-term, it's not really a space that we're well equipped to work in at present.

So basically, I'm hoping to spend time in the lead-up to Fedora 10 helping to make Fedora work as well as possible on some of this hardware. Luckily, a lot of the drivers for these devices have made it into Linus's tree for 2.6.27, so this will be a lot less painful than it would have been previously.

I'm also spending some time with the OLPC people to help reconcile some of the forks which have occurred. I've spent some time over the past couple of days helping to get a live image which is bootable using the stock livecd-creator and booting into the "normal" Fedora environment. I also started a little while ago on helping to get more Sugar activities packaged up so that they can be built and installed as normal packages within Fedora.

Now, how are these things related you might ask? Well, longer term, I think that it could make a lot of sense to have a spin of Fedora available which is better suited for some of these smaller form-factor, internet always available devices. The idea being that with the resolutions in question, you may well not want to be running a stock GNOME or KDE. Instead, something like Sugar really is nicer, although there are definitely rough edges on Sugar right now. So maybe these new emerging form-factor devices can give a good additional place for Sugar to be deployed and used. And more people using Sugar means more people writing Sugar activities which means more things for the kids :-) But, that's likely Fedora 11 before it becomes a reality.

New libcanberra backends

I released libcanberra 0.8 a few hours ago. Biggest changes are some portability fixes for Solaris/FreeBSD, inclusion of an OSS backend (contributed by Joe Marcus Clarke) and a GStreamer backend (contributed by Marc-André Lureau). This will hopefully make certain doubts regarding libcanberra void.

Oh, and libcanberra now has a homepage.

PulseAudio on Transifex

Thanks to Dimitris Glezos PulseAudio and its auxiliary tools are now available on Fedora's Transifex for translation. If you want to contribute translations, please submit them via Transifex, which will then result in direct commits to our upstream source code repositories -- without further delay or workload on my side. Submission via other ways (bug report, mail ...) will no longer be accepted.

Submit your translations now for PulseAudio, for the volume control, and for the preferences dialog. And while we are at it, Avahi's waiting for your translations, too.

a little light friday fare: first aid kit







Via the ever-wonderful Andrew Weissman who echos someone who has a somewhat more sarcastic approach than I prefer to music, manufactured or not. Description of the band, the band page, single on amazon and a myspace band page.

Enjoy!

Update: Sigh. I keep thinking it’s Friday. It’s not. I know.

upcoming mozilla toronto devday

David Humphrey has a post up about the upcoming Mozilla Toronto DevDay. It’s taking place on Monday Sept 15 and Tuesday Sept 16 and is worth checking out if you’re in the Toronto area.

Stackoverflow

I’ve been listening to the StackOverflow podcast for a few months. I never was into podcasting but decided I should give it a try and I decided around the time Joel Spolsky and Jeff Atwood started their podcast. I’ve followed both of their blogs for a while now, mostly because Joel is very good at explaining his opinions and has lots of experience to build on, and Jeff is refreshingly down-to-earth and prolific as a blogger. I use them as my conduit to the non-Linux side of programming, as a crutch to keep me a little bit grounded into the real world out there where 95% of people never use Linux and get their job done as well.

So, I applied for the beta, but didn’t have time this month to actually use it. I started using it last weekend, browsing, answering some questions, and so on. It’s actually a fun site, and I think it will end up being very useful. In the beginning I couldn’t do much because you need reputation to do certain actions, like voting questions up. But today I hit the 3 digit reputation score, I’ve had some questions answered, and I’ve had some answers voted up or promoted to the right answer, and it starts being useful.

It’s too soon to say, but it might end up being the single best new web site this year, and one of the few directly useful for my work. And it’s all running on Windows!

I sincerily hope us Free Software people can get past that ‘it runs on Windows’ hangup and seriously use the site when it’s available. I’ve already run into one of us going through some of the Python questions. Instead of asking the intarweb, I’m now going to ask technical questions over there. I hope you will too.

August 27, 2008

Open source noise machines.

this is pretty cool.
I'm an avid collector of effect units (I lost count a while back just how many I have). Having something tweakable in this manner is kind of neat. Though I don't think I'll be getting one for a few reasons.

First, I use my noise-making as an escape from open source. Sometimes, even I need to switch off, and moving to a different room to run gdb in a different use-case isn't really escaping.

Secondly, since the beginning of the year I've been building a modular analog synth. The beauty of this thing is it's pretty much entirely open. Want more oscillators? fine, buy some, screw them in. Extra filters? same deal. Once you have a collection of mounted modules, you then get a large number of possible patch combinations between the various modules. For many of the modules, people have even made various 'hacks' to improve them in some manner or other. The manufacturers have in some cases even adopted those changes in later revisions of modules which is really awesome.

Whilst as a synth, it's primarily for the creation of sound, it also works really well as a sound-mangler of any input source, making it a supe r guitar effects pedal on steroids. And with cool sounding modules like "malgorithm", I'm easily persuaded.
The nice advantage of analog gear is that it rarely goes wrong in the sense that computers do. It frequently does completely unpredictable things, but it's usually a 'happy accident' than a complete disaster.

The only downside is these things get to be habit forming, and start to take over the house. Mine has already
grown to twice the size I was initially expecting, and will probably increase some more before I'm "done".

I keep meaning to record some of the output of this and other devices. One of these days I'll get to it. Until then, just imagine mains hum modulated by howling feedback with sub-bass that makes the walls shake, and you're probably pretty close to the sorts of sonic mayhem this thing puts out. (It's not /all/ it can do, it's just what I tend to make it do a lot).

Highlighting.

I'm a big fan of highlighting text. (But only on computer screens, I hate highlighters on paper, and really don't understand those people who selectively highlight semi-random parts of books). To this end, I have the usual things set up, like my .vimrc enables syntax highlighting to show me when I've forgotten what C should look like. I've also started extending it to other uses. Like highlighting common bugs. It turns out to be handy when both writing code, and reviewing other peoples.

It's pretty simple to do in vim. For example..

highlight kmalloc ctermbg=red guibg=red
match kmalloc /k[mzc]alloc(GFP_/

highlight memset ctermbg=red guibg=red
match memset /memset.*\,\(\ \|\)0\(\ \|\));/


Now, go ahead and try that zero sized memset. Or a kmalloc with swapped arguments. The bright red text screaming AWOOGA in your face should be attention grabbing enough for you to instantly realize what's up as soon as you've written the erroneous line of code.

The above regexps aren't new either. I've posted blog entries before about how I recursive grepped for the latter across all 80gb of the Fedora source tree periodically. (And it still keeps turning up new casualties).

I've also extended mutt to catch this nonsense.


color index red default '~b "memset.*\,\(\ \|\)0\(\ \|\));"'


When paging through my inbox, when I see a mail in red, I know there's something silly in it, which needs further review. (Very handy for reading things like commit mailing lists, or code review lists).

Even if you don't write C, there are probably regexps for catching API misuses in other languages too, so the above principles should be useful. (I use vim/mutt almost exclusively, no idea how to make highlighting work with emacs etc, but I'm sure it's doable there too).

Well, that was interesting

So when I last left you with a post, it was to note the end of my summer classes and looking forward to at least getting to relax a little bit.

Hah! That mostly certainly didn't happen. Instead, I got thrown into the ultra-fun world of helping to deal with the cleanup for the Fedora infrastructure intrusion. Spent a lot of time reinstalling a lot of servers and doing everything I could do to help get things online as quickly as possible. Not how I intended to spend last week, but you do what needs doing. I will say that the setup for the Fedora Infrastructure is a whole heck of a lot nicer than it used to be. And while editing puppet configs makes my skin crawl, it is pretty effective.

In the middle of that, Kara and I did manage to have some people over now a week and a half ago for a night of games of the carded variety. A good time was had I think by all and the approach of making a theme worked pretty well for avoiding the phenomena of "game of Rock Band" and "everyone else". So we'll probably have to try to keep going in that vein. Not that there's anything wrong with Rock Band, per se, but it's good to get people interacting in different games as well. We'll probably try to get something else together in a couple of weeks.

Then, over this past weekend, Kara and I headed down to DC for a (very much needed by that point) vacation. Did a lot of sleeping in, touristy things, and eating good food. Which, all in all, was exactly what we were looking for. Went to the Newseum and was actually pretty impressed and see how they can manage to charge for a museum admission and be right next to the Smithsonian. We also hit up some of the exhibits at the Smithsonian, although a different set than the ones I've usually hit in the past.

The only downside of the trip really was that I didn't have a bike with me and so haven't really ridden to speak of in about a week. But that shall be remedied starting tomorrow and I'm pretty certain it's going to involve the round trip commute to the office. Although I should probably be sure to do a few things like plug in the nice light, etc tonight before heading to bed.

This week, I'll hopefully get back on track with what I was hoping to do last week. And maybe get enough done for two weeks in... err.. three days. Seems doubtful, doesn't it? Then a long weekend for Labor Day and then classes start back up. How does that saying go about no rest?

August 26, 2008

My ass has a carbon footprint.

I've really enjoyed not traveling anywhere this last month. As much as I like seeing different places, I really enjoy being back home. I find that miss the little things. I miss having a routine.
Next week sees the restart of lots[*] of traveling.

Beginning with a vacation. I'm in San Francisco from next Wednesday through Sunday. (locals: drop me a mail if you'd like to meet up for a food/beer or whatever.) I've got stuff planned for most the week, but there's guaranteed to be a bunch of free time too. On Thursday I'm off to Alcatraz for a few hours, which should be interesting. And on Friday night, I'm heading over to Oakland to see Nine Inch Nails which should be good fun. (if any locals I know are also going, send hot mailz. I need knowledge on how to survive Oakland without getting stabbed/shot/etc. Teach me your survival skills.)

Assuming I survive my outing to Oakland, I get back to Boston on Sunday evening, and get a whole week at home, before heading back out to the west coast again, this time to Portland, Oregon for the Linux kernel summit, and plumbers conf. I'm giving a talk there on how much of an awesome idea it would be if every Linux distro shipped a standard initrd. It's either going to be awesome, or a lead balloon.

[*] ok, it's not "lots", but two coast to coast trips in the same month are still what I deem 'excessive'.

Angel

There’s a guy in Barcelona who runs an antique store. Well, maybe it’s not an antique store, because it doesn’t like like stuff my mom would actually buy. And I’m not even sure if he’s selling.

But he cooks for anyone who comes in, whatever is available, and turns it into honest and magical meals. He’s probably Barcelona’s best kept secret - he’s not in any guide (which is a good thing), and I doubt he even has a license to do what he does.

He gives you whatever he has, and what he has is always excellent quality. He probably goes by the farmers and vineyards himself to select his products. No is not a word he accepts, and there’s no way you can eat everything he gives you.

I’m always a bit worried when I bring people there because it takes some time to get there, it’s always difficult to organize it, and you just never know how people will react, or how Angel will react if he happens to be in a less sociable mood and gets asked to cook something non-meaty for example. But I’ve just never been disappointed, so I don’t know why I worry.

Today we went there to kick off our developer meeting now that everyone’s back from holidays and Julien, a new guy, just started. We got chorizo, manchego cheese, beans, a huge tortilla, a special Cabrales cheese which was very strong but good, bread, and duck pate. And those were just the starters, I had to explain to my surprised collagues. After that, we got blood sausage, cutlets, and hake. All of this with some wine, and desert and coffee at the end.

And when you get up and leave, you ask him for the price, and he makes one up on the spot for the whole group. Rumour has it it’s cheaper if you’re a girl and can part with some pecks on the cheek.

If you ever get to Barcelona, drop me a line for the address. And let me know if you write for a tour guide or travel magazine, so I can give you the wrong information. I don’t ever want to see it get ruined.

hands on a hard body online!

Apparently Hands on a Hard Body has been legally posted, in its entirety, to Google Video. (Wikipedia) You should really find a couple hours and watch it. On the surface the movie looks completely uninteresting- I was pretty much kicking and screaming when I was dragged into watching it. But it is the most compelling documentary I’ve ever seen. After a few minutes, you absolutely Must Know What Happens. (This is quintessential Long Tail, by the way- small market for documentaries, particularly ones that look weird on the surface, meant this never made it to DVD. But now anyone can watch it if they are interested.) (via kottke)

[Ed. later: apparently not so legal; has been removed. Garrr.]

Embedded JavaScript’s missing link

Havoc,

I totally agree that embeddable languages is the way to go.  I’ve been using JavaScript heavily lately, along with the excellent Firebug for debugging (decent debuggers are something some very big languages are missing btw).  The biggest issue I have with JavaScript  is it’s lack of structure and horrendous scoping rules (this certainly doesn’t mean you are calling the containing object, especially when running a “method” from a callback).

What would really make JavaScript even more useful is the proposal for JavaScript 2. Unfortunately that presentation was made in 2006 but some, if not all of those features are part of the ECMA Script 4 proposal.  They even have a reference implementation up which is under a liberal license (I haven’t looked into it much but it links to a GPLv3 library).  As anything in committee, it is slow moving.  Hopefully we will see a finished spec sometime soon but I couldn’t find a timeline.

In the meantime there is an ECMAScript 4.0 to JavaScript converter call Mascara.  Unfortunately it is under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 license which means the code can not be distributed on many distributions because of the Noncommercial clause.  It isn’t always clear what constitutes commercial and most distributions I know of want to allow the possibility of for pay distribution or use in a commercial product by 3rd parties.  It also isn’t clear if that license extends to the generated code.  Does anyone want to write a GPL version?

Truthfully, I have a dirty little secret - I like JavaScript with all of its warts and hackish workarounds.  I like it because I know non-programmers who can grok JavaScript but can’t wrap their heads around Python or C.  I attribute that more to the environment than the language itself because it allows for the instant gratification of hitting the reload button and seeing something happen.  But what I like even more is the idea of embeddable languages bringing that sort of development process to GNOME.  There are a few apps that already do this and though it isn’t as easy as it is with the web whenever I have jumped into one of those apps, such as experimenting with writing a quick Vi mode for gEdit, it is amazingly simple.

What would keep me working in those environments would be an embeddable debugger, object viewer and UI/extension point tree.  Whoever writes those components and makes it simple to add scripting to any GObject app will be a hero in the community.  Anyone willing to sign up?

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

unread on whoisi

I’ve added a new feature to whoisi. It will now keep track of things you haven’t seen:

To see the new items in your follow stream click on the link like the one above that says “318 Unread.” When you’ve read them, click on “Caught Up” and you’re returned to the normal follow page.

Note that right now the update count is only updated when you visit the follow page. And it takes too many clicks to figure out if there’s new unread content and to view it. I’ll be working on that shortly, but having the early feature in place makes things much more useful.

Enjoy!

August 25, 2008

openid plugin installed; couple diso links

I’ve finally installed the WP-openid plugin. Please email me if there are any problems with it; one hopes it works well at this point.

WP-openid is nominally affiliated with diso. I’m curious to see where else diso goes from here- lots of interesting ideas there, and apparently now some corporate sponsorship, but not a whole lot of code yet. On the ideas side, Steve Ivy of diso did an interview for the autonomo.us group blog.

A terabyte of RAM

20 years ago my official job title was "Chief of Computer" (начальник машины), and the computer could not be upgraded to one megabyte due to lack of funds (we had to get by with 768KB). Gigabyte boxes started to pop up around the break of the century. Now, the terabyte:

Sometime leading up to the F9 kernel my very large ia64 system (64 cpu 1TB ram, bunch of PCI busses and I/O) fails to boot. It appears to be something in how nash/mkinitrd gets information from sysfs. [...]

notes on ‘the slacker’s guide to law school’ by Juan Doria

Disclaimer: at some point my email address got added to a list of ‘people to email if you want to pimp your law-related product.’ Most of the solicitations I get that way I ignore, but every once in a while something looks interesting. This is one of them. I’ve received nothing from the author except a free copy of the book (necessary if you’re going to, you know, ‘review it’ ;)

The Slacker’s Guide to Law School‘, as both the foreword and introduction seem to admit, is a little mistitled. You can’t really be a slacker and go to law school. You can, though, make it through law school with either tons and tons of stress, or… less so. You can come out feeling like a failure, or… not. I think two things have helped me with these problems: one, having a lot of pre-law-school experience and therefore a clear idea of why I was going to law school. Two, I had Krissa around to force me to get out of my shell. Both of these things helped me keep everything in perspective, and helped me focus on what was actually important.

For those who don’t have Krissa or a lot of experience, this is a pretty decent book. It isn’t the end-all be-all of law school prep books. (I’d recommend Law School Confidential as a more serious and methodical counterbalance.) But it is a good start, and one with a fairly unique spin in my limited experience. The focus here is perspective- how to do well enough that you can get a solid job, pay your loans, live where you want to live, etc., without killing yourself. In this the author recognizes something that too few new law students grasp- if you’re stressing yourself to death, odds are good you’re going to do worse, not better.

Trying to put everything in perspective helps, and this book is strongest when doing that. For example, lots of people I’ve met recommend taking as many ‘bar prep’ courses - like Evidence - as possible. Evidence is on the bar- you can’t become a lawyer without knowing something about it. But you can graduate from law school without it, in most schools. So… should you take it? Or just learn it over the summer before the bar? There is no easy answer to this, but this book does the fair thing and points out that the decision has real pros and cons- which is more than I’ve seen elsewhere. And one of the cons is that every time you think about this, you’re stressing about a bar exam which is far, far away, instead of focusing on what you need to do Right Now. I like this approach. The section on exams is similarly pragmatic, stressing that showing up every single day, or not ever showing up, is completely irrelevant- the only thing that matters is the exam. Ditto for note taking, bar exam, etc. (though of course you’ll need to take the bar advice with a grain of salt- since the author didn’t pass :)

The editor in me thinks the book could have been shorter. For me, at least, it contained too much description, since the descriptions will frequently be repetitive to what other law school guides have covered. Similarly, while the book contained good advice, the slacker in me wanted more advice, in a more accessible fashion, and less of the other stuff. I wanted to do other things with my day (go slacker go!), so if the advice had been more distilled/focused/highlighted it would have fit the title a lot better.

At the end of the day, if you’re thinking about law school, I do recommend picking this up. It is frank and useful in a way that other law school guides aren’t. (And short! :) But don’t read just the Slacker’s Guide. Read it first, and then read something else. This will help you put that more ’serious’ (and probably more complete) advice in the proper perspective- which is, at the end of the day, what it should be all about.

Continuing the adventure with password changes.

After having to change my Fedora passwords/keys last week, I went about changing pretty much every other password I had too.
In doing so, I realised something enlightening. (read as: I'd made a horrific novice mistake).

I knew I'd committed the sin of writing down passwords for certain things. But "ah, I'll just encrypt the file and it'll be ok" was in hindsight pretty dumb. What I had done though was this..


gpg password.txt.gpg
vi password.txt
gpg -e password.txt


GAME. OVER.

Encrypting this file was utterly pointless. If my computer had been stolen, all an attacker would have had to do to see the contents of that file was strings /dev/sda and it would have found the plaintext password.txt easily enough.

Had I done the above operation in tmpfs, and moved the resulting .gpg file to hard disk afterward, I would have been okay. But because I'm a dumbass, I'd done the above directly on hard disk. Numerous times.

Tools like scrub exist to scribble over a file before it gets erased, but they wouldn't have helped me in the situation above, as it's gpg that removes the original unencrypted file. Also, scrub isn't necessarily reliable on a journalled filesystem.

What I really needed is a 'scrub unused data blocks' utility. In the absence of such a utility, I did dd if=/dev/zero of=/dev/sda and reinstalled. (It was long overdue a fresh reinstall anyway).

tracemonkey and you

There have been a pile of posts about the TraceMonkey code that just landed in mozilla-central. mozilla-central is the source code repository we’re using in the lead up to Firefox 3.1. Here are some posts if you want to read about it:

The heart of the story is that we’re seeing performance increases on benchmarks of anywhere from 1.8x to 37.5x depending on the benchmark used.

But the thing that most people don’t realize is that you can take advantage of the work that we’re doing in SpiderMonkey in your program as an embedded JS interpreter. It’s a pretty tiny engine, has a relatively stable API and even has useful documentation. John’s post contains four commands that you can use to build the engine. In fact, it’s so short, I’ll re-paste it here:

hg clone http://hg.mozilla.org/tracemonkey/
cd tracemonkey/js/src
make -f Makefile.ref BUILD_OPT=1
Linux_All_OPT.OBJ/js -j

And you’re in a command line JS interpreter. No fuss, no muss.

Many people don’t realize it but most of what people think of as JavaScript is the browser API, not the JavaScript language. To quote from the JavaScript C Engine Embedder’s Guide:

The word JavaScript may bring to mind features such as event handlers (like onclick), DOM objects, window.open, and XMLHttpRequest. But in Mozilla, all of these features are actually provided by other components, not the SpiderMonkey engine itself. SpiderMonkey provides a few core JavaScript data types—numbers, strings, Arrays, Objects, and so on—and a few methods, such as Array.push. It also makes it easy for each application to expose some of its own objects and functions to JavaScript code. Browsers expose DOM objects. Your application will expose objects that are relevant for the kind of scripts you want to write. It is up to the application developer to decide what objects and methods are exposed to scripts.

The Embedder’s Guide does contain a lot of good information you can use to get started embedding SpiderMonkey into your application. It’s worth a read if you’re looking for a decent scripting engine for your app.

distro conditionals in spec files

Every time I have to write a spec file and do something specifically for a certain distro version (like, for example, packages were renamed or split or …) I end up trying to remember what the last package was in which I used it to have the most up-to-date version of that macro.

And once in a while I try one and it doesn’t work, for some silly reason. And these macros are always very fragile.

So, this weekend I rebuilt a package for RHEL5.2 and the spec was supposed to BuildRequire: libXv-devel for RHEL5 and onwards. But the check didn’t take the 5.2 version number (with a period) into account and it failed.

So this time I decided to just create a wiki page on my wiki that I will update if I ever run into problems again, and will reference back to next time I need it. In the process I managed to simplify the macros and make them more correct, so everyone wins. And that includes you - because now you can go there too if you care! *

* Of course, if you’re part of the 99.99999999% of people that doesn’t write spec files for fun or money, then you probably don’t!

August 24, 2008

Before the devil knows you’re dead

Arek and I have spent the weekend working - it’s been so hard to get a block of continuous time to work on deploying a new version of our platform that I decided I would set aside a weekend for it to get started and convinced him to trade two working days for two weekend days. It’s the only time I’m guaranteed not to be interrupted by everyone else at the time.

We decided we wouldn’t actually discuss stuff, just get things done. Of course, Saturday ended up being nothing but discussing every possible topic. While it was exhausting for both of us, it seems it was unavoidable, even when we both were planning to avoid discussions. I did get to understand a bunch of things a lot better, so I spent Saturday night staying up too long and synthesising the discussions into things to do for the future.

Today, Sunday, was more productive - we’re advancing on the list of tasks still left to do. In the evening I agreed to meet up with Mariette and friends to go see a movie, and Arek went along.

I was actually pretty impressed with the movie. Arek thought it was artificial, which I can see, but I really like a well told story. I only found the basic premise artificial in the sense that I couldn’t believe someone would start out doing something like that.

There are two things I really like about the movie beyond the obvious (Philip Seymour Hoffman turns in another stellar performance).

A good piece of art makes you project your own ideas onto it, making you think that the piece of art is telling you something that in fact is coming from the other direction - you. In this particular case, I felt the movie showed what happens when a dysfunctional family dynamic, which is relatively harmless when kids are young, persists into adulthood. The same basic motivations and behaviours they had as kids bring on much bigger consequences when the now-adult kids have real lives and access to more powerful or dangerous resources.

You see this family interact in probably much the same way they did when the sons were kids - but the consequences of every action - stealing from your parents, harassing your little brother into doing your dirty work for you, stealing something from your older brother, fighting over a girl, whatever - are so much more far-reaching when the toy guns are real, when the money is more than what’s in a wallet, and when the girl is more than just yesterday’s crush.

Like I said, I’m probably projecting my thoughts on the movie.

The second thing I liked is how such a simple but clever premise births subsequent situations that are refreshing yet still entirely logical. The premise is so simple yet unbelievable that I’m surprised I haven’t seen it before in a movie - what would happen if two sons rob their parents’ store ? The rest of the story has its drama unfold in ways that you’ve probably not seen happen in the more standard thrillers, but it’s still predictable even in its originality. I can’t talk about any examples without giving plot away, though. But I very much appreciate how such a simple idea for a movie can be so powerful and basically write the whole movie on its own.

I understand what Arek doesn’t like about the movie, but I’m still pretty impressed - a good spur of the moment movie choice as far as they go.

credit card fail.

Yesterday, when I was about to pay for groceries, the cashier asked to see my ID. This puzzled me, so I asked why, as I wasn't buying alcohol or anything unusual. Turned out that the signature strip on the back of my credit card had been worn down so much that my signature was illegible. Of course, this had to be one of the occasions when I didn't have any ID on me. Fortunately, she accepted the signature off of one of my other cards.

Today I decided I'd rather not have to do this again, so I called up customer service to order a replacement card. "Enter your account number" *beep beep beep...* "enter your zip code" *beep beep beep* "This account is closed".

w.t.f.

I waited a short time to get through to a human, and explained what had happened. Turns out that a few days ago, "fraud activity" was spotted on my account, and they blocked the card. Apparently there's a new one in the mail to me already.

I asked for more information on what exactly had happened, but they weren't very forthcoming with details. From the way she described it, they don't have a lot of details themselves. Putting the scant details together, it appears that what happened was something along the lines of a store got broken into which had my details, the perpetrators were caught, and law enforcement told the credit card company the list of potential card numbers that could be compromised. Turns out mine was one of those that was. Something like $2000 of bogus charges were run up before it was blocked, which were refunded before I'd even realized there was a problem.

Sucky, But at least it's all sorted.

rawhide is old.

In the midst of all of last weeks chaos, rawhide saw its tenth birthday.

good keyboard bleg?

Anyone have any recommendations for good desktop keyboards with integrated pointing devices (preferably a ‘nipple’ aka ‘pointing stick’)? I really like my MS ergo keyboard, but hate having to move my hand to the mouse regularly. There must be a good ergo keyboard with a nipple, but the best I can find right now seems to be this.

(And yes, I know I can learn keyboard shortcuts, and I will, but some of the software I have to deal with doesn’t have good keynav.)

Wanted: 20k+ Tiny Linux Tiny Diskless Workstations

I am currently searching for the ideal thin client/diskless form-factor mini computer with Intel Atom. This research is to make hardware recommendations for a school system who may deploy tens of thousands of Linux diskless workstations.

Dear Manufacturers: Hardware Samples Needed
During the past year, various vendors have been sending me thin client hardware for development and testing of Fedora LTSP5. The hardware samples have been very useful in fixing various issues in the kernel and X to better support the hardware. While I do not make any guarantees, generally all hardware sent to me eventually became usable with Fedora LTSP5.

I currently cannot recommend any particular brand or model of Intel Atom-based tiny computer for mass deployments of Linux diskless workstations. I don't have the budget to purchase different brands of thin clients to test suitability for mass deployments as Linux diskless workstations. I acquired an Asus EEEPC 901 in order to do general Fedora portable and Fedora LTSP5 testing on the Intel Atom platform. But testing one particular machine is not good enough. I've found the BIOS of various Atom machines to have bugs, so specific brands and model numbers must be tested for compatibility and working PXE netboot.

To manufacturers and vendors: If you want your specific machine to be part of my test cycle for current and future versions of Fedora and RHEL, please send me hardware. Read here for my standard disclaimer regarding hardware samples. Contact me at wtogami at redhat dot com.

Below are my notes regarding Intel Atom based machines for diskless client use and how things I see on the market compare to the requirements. Some might ask, why am I so enthusiastic about Intel Atom hardware specifically? At the bottom is some background information of why.

Ideal Specifications for Tiny Linux Diskless Workstation

  • 2GB RAM
  • Video with excellent Linux 3D support (currently only Intel)
  • Small and sleek size, we do not need disks
  • Dual-core Atom when it becomes available
  • Nice to have: Fanless (noiseless) operation
  • Nice to have: SD/MMC/MS/etc front-loading slot
  • Nice to have: VGA or DVI option

TranquilPC T7 Thin Client
This is one of the first Intel Atom-based thin clients that I've seen on the market. The specifications sound very good although I have not had the opportunity to test this machine. I wish I could find an American vendor of something similar to this.
Pros: No fan! Absolutely zero noise. No moving parts reduces likelihood of hardware failure. (Likely the entire case acts as a heatsink.)
Cons: No SD slot like the competitors, seems to have only VGA.

Asus Eee Box B202
The desktop version of Asus' successful Eee PC netbook. I also hear that a version of this embedded into a 19" or 21" LCD monitor is planned. Both would seem to be very attractive for mass deployments of Linux diskless workstations with only *minor* alterations for bulk purchase, like 2GB instead of 1GB RAM.
Pros: For slightly more than the TranquilPC T7 you get an even sleeker case, SD slot, hard drive and wireless card. DVI is a plus.
Cons: Is it possible to buy in bulk quantities without a hard drive or wireless card? Hard drive generates extra heat and noise, and it is a moving part which increases the potential for hardware failure. This has a cooling fan (unlike the TranquilPC). Diskless workstations will want 2GB RAM instead of 1GB. The price is still attractive with this standard listed model, but buying it in bulk quantities with 2GB RAM would be essential. I also worry that the BIOS might be like the EeePC with ACPI errors and PXE boot issues. I wont know until I actually test this hardware.

MSI Wind PC Intel 945GC 1 x 200Pin Intel GMA 950 Black Barebone
Specifications of this machine sound to be really good, especially at the listed price of only $149.99 + cost of RAM. You even get the SD slot, although only VGA. For ~60% the price of the two machines above it seems to fit all desired requirements except one. This machine was intended to insert a 3.5" hard drive, PCI card and even a 5.25" optical drive. The case is TOO BIG AND BULKY. This might be a very competitive product if it came in a sleeker case like the Asus Eee Box though. BIOS compatibility of ACPI and PXE booting must also be tested.

Anyone know of other Intel Atom based thin clients or "nettop" tiny desktops on the market?

Background Info (or Why Intel Atom with 2GB RAM?)
A big problem in the past of all thin client or diskless workstation form-factor machines has been poor Linux driver support for the hardware, especially poor X drivers. All past thin clients have various chipsets like VIA UniChrome, AMD Geode or SIS that are just substandard. They have buggy drivers that became even worse as those companies failed to put forth resources and dedication to keep up with upstream development. While we now see both VIA and AMD trying to improve their relationship with upstream kernel and X communities, they have a significant amount of catch-up work ahead of them to match Intel's success from their past years of upstream development.

Intel Atom appears to be a significant step ahead of all competition for Linux thin client and diskless workloads. The upcoming VIA Nano appears to have some promise with more performance and power efficiency. But again the quality and capability of the embedded video and graphics drivers will make or break its suitability for the Linux diskless workstation market. I would love it if VIA Nano becomes credible competition to Intel Atom.

A recent development in LTSP is Local Applications support. This is a "hybrid" client model where diskless clients login to a server as thin client desktop session. But certain graphic intensive applications like Firefox or Google Earth run on the local machine displaying to the same X display. Users do not notice any difference as it is a seamless desktop experience. This has become increasingly important because media-intensive uses like Youtube require an unmanageable level of bandwidth (40-80mbit/sec per client!) when operating in a thin client model. Intel Atom's enables for the first time an affordable ultra-tiny machine with usable Linux 3D graphics. To support this new "hybrid" client model, even 2GB of RAM per client is now affordable at well under US$400 total per client. News of dual-core Atom coming soon makes this platform even more capable as a decent diskless workstation for mass deployments.

August 23, 2008

seen at a party over the summer

Berkman@10: I

Berkman@10: I’m with eon by Wendy Seltzer. License:

It was worn at the party by Jimbo Wales. (You probably have to know eon, aka Charlie Nesson, to really appreciate it…)

August 22, 2008

keep up with new web technologies in gecko

Gecko has long been a leader in supporting web standards but it’s always been hard to tell what we’ve added, when we added it and when it might hit a release. We’ve set up a new web tech blog for people to post about new features in Gecko.

Once nice thing about this blog is that anyone who has commit access to the mozilla hg repo can make a post about a new feature. We’ve hoping to see a lot of great content on that blog. Subscribe and enjoy!

Nano HOWTO: Getting started with libvirt hacking

How to build libvirt from git on Fedora:


mkdir ~/rpmbuild

(cd ~/rpmbuild && mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS)

git clone git://git.et.redhat.com/libvirt.git

cd libvirt

git checkout -b mystuff

export AUTOBUILD_INSTALL_ROOT=$HOME/builder

./autobuild.sh

The above will clone the tree, checkout a branch to hack on, build and test the code, then generate source and binary RPMS. You'll also be set then to do local manual builds.

Thanks to danpb for clues.

August 21, 2008

encrypted rootfs vs suspend/resume

RANT MODE ON

So one of the things people have been wanting for a while is an encryted root filesystem.

Now this isn't some sort of security saviour and I was just chatting to a few people on irc and realised the pain we need to go through to actually make it secure and useable in the face of other things.

Scenario: You have a laptop, you want to "secure", you use an encrypted rootfs because the forums told you to. Now Linux suspend/resume support gets good enough that you don't ever reboot. So when the laptop is suspended where are they encryption keys?
oh they are in the RAM? oh thats nice. Even when the laptop is resumed, where are they? oh look a screensaver is stopping me from logging in.

Solution: remove enc keys on suspend - ask the user for them again on resume. - sounds easy.

How do we ask for the keys then?

Currently in Fedora we plan to ask for the keys in the initrd. This works fine if you are using an English based language and keyboard. What happens if you want to use some of your own language like Chinese. Oh you want input methods so you can type that in do you? Oh we need X. Oh lets put X in the initrd. Oh lets migrate lots of the supporting bits into the initrd. Hey wait a minute half my encrypted root is now in an unencrypted initrd. WELCOME TO DRINKIN' ISLAND!.

So maybe some sort of encrypted overlay on top of an unencrypted rootfs that can bring up enough X to type the password in might be a better plan in sane universe where different parts of the OS talk to each other.

RANT ENDS.

August 20, 2008

a short future history of JavaScript

If you have the time I strongly suggest that you take some time and listen to the second edition of the openweb podcast. This episode should really be called the “Brendan show” because he does most of the talking. But if you’re into JS or you’re into programming languages in general it’s worth the listen. There’s lots of discussion of the trade-offs that went into the new ECMAScript Harmony effort and why ES4 and the ES3.1 efforts were rolled up together.

Arun also put up a post on the topic on the Mozilla Standards Blog that’s worth reading. But the podcast is particularly good. Especially if you want to know where the Web is going.

August 19, 2008

python-bugzilla - give me your queries!

I've been working on a branch of python-bugzilla that supports multiple different Bugzilla variants. The current version (0.3) only supports the functions provided by Red Hat's Bugzilla 2.18.x. This branch (which will become python-bugzilla 0.4) adds support for the upstream 3.0 and 3.2 WebServices and Red Hat's shiny new 3.2 instance. (Hooray!)

Yes, I'm sure you've noticed that we've updated to Bugzilla 3.2. Besides the shiny new web frontend there's also new and shiny XMLRPC code for python-bugzilla to use. It still supports the old RHBugzilla stuff, and it now supports all the upstream Bugzilla 3.2 services, but there are some additional new-style methods that will someday make their way to upstream Bugzilla - although probably not until 4.0.

The point is this - I'm trying to get python-bugzilla using the new methods wherever possible. This includes a new and slightly different Bug.search() call, and I want to make sure I can make the switch without breaking everyone's existing code.

So here's my request. If you use python-bugzilla, send me your queries - or just a link to the code, if that's too much to ask - and I will do my best to make sure that your code will work, unchanged, with the new upstream(ish) Bugzilla methods.

I'll update soon to talk about what else is new in python-bugzilla 0.4, but having some real-world test code to work with would be a great boon. Thanks!

DeviceKit presentations

Earlier today Richard and I did a DeviceKit (the set of projects replacing HAL) presentation for some other group here at Red Hat. You can see the slides here and here.

Perhaps of interest to the GNOME community, there’s also screenshots of Palimpsest, an upcoming Disk Utility library and application for GNOME. Most of this is already available in Fedora’s development branch, dubbed Rawhide, but won’t be installed by default in Fedora 10. Right now I’m busy with PolicyKit stuff but the plan is definitely to get a gnome-disk-utility mailing list going soon and get this stuff integrated throughout GNOME (I’ve already made sure it’s easy to plug into gvfs for example).

For example, I learned the other day that my disk is failing (actually, as mjg59 pointed out, it’s wrong to use the word FAILING since it’s Old-Age. Easily fixed.). Now, it would definitely be useful to have a notification bubble indicating this. This is pretty trivial to write using the DeviceKit-disks API; just monitor the org.freedesktop.DeviceKit.Disks.Device:drive-smart-is-failing property. Of course the gnome-disk-utility libraries (there’s one at the GLib level and one at the GTK+ level) wraps this nicely. In fact the gnome-disk-utility library at the GTK+ level should probably provide the code for doing this status icon. Something to discuss. Hence why a mailing list and more community involvement in the gnome-disk-utility project is needed.

Anyway, the goal is to port the most of the Fedora desktop to use DeviceKit instead of HAL for the Fedora 11 time frame.

August 18, 2008

building the complete browser for everyone everywhere

Since Stuart landed the Qt port into mozilla-central the other day and Ryan Paul wrote an article on Qt and Mozilla I thought it might be worth it to add some context to that work.

Ryan’s article contains this quote from Nokia developer Oleg Romaxa:

“Nokia will use the best browser for the job,” he said. “Currently, we cannot make a full-featured and integrated browser with WebKit in mobile. But with Mozilla, we do not need to do anything, we can take existing models and API’s which are available. Also, NPAPI support is already in the Gecko web rendering engine. They are also concerned that WebKit is, to some extent, controlled by Apple, who are in competition to Nokia with their iPhone.”

There are a few important things to note here. First, that Mozilla is the complete package. We’ve got everything that you need to implement a browser. Disk cache, integrated (and well tested!) networking, a super-fast JS implementation, an XML UI markup language (XUL) and a brand that regular humans recognize. Those things mean you can get to market faster as a mobile integrator or developer instead of having to create them yourselves again.

Second, our neutral stance. We believe in the web over any particular platform. From Nokia’s standpoint if you’re building on the same technology that one of your major competitors is leading vs. working with someone who absolutely wants a web browser to succeed across all of Nokia’s platforms - which partner would you choose? I’ve often said “pick your partners carefully” and this has to be an important part of any technology decision making process.

There’s also another interesting flip side to this: who is WebKit’s other major competitor? Apple itself. Just like Microsoft’s push to get Silverlight out in the world, Apple wants people to write apps to their native platform. In this case, the iPhone. Given the strategic value of the native platform as part of Apple’s offerings, their investment in WebKit will (or at least should) always lag behind. We’re investing everything we have in the web and our platform and it’s starting to pay dividends.

And since I have your attention here are two other very interesting checkins: GTK+ and directfb (which people are actually building products on) and worker threads (ala Gears.)

Look at our current (and planned) platform support: win32, windows mobile, win32 + qt, mac OSX, linux + gtk2, linux + qt, qt embedded, linux + gtk2-directfb, x86, ppc, arm. We’re bringing the web to everyone and we’re doing it with a single coherent project with regular releases. That’s what I mean when I say “for everyone everwhere.” The web is bigger than any platform and we’re the embodiment of that mantra.

Mozilla is moving. It’s fast and furious now. And I think we’re just getting started.

[ Update: It was pointed out to me that what I wrote above might be misinterpreted as announcing that Nokia had picked a platform or something similar. Just to be clear that wasn't what I was doing, and as far as I know they haven't. I don't have knowledge about that decision inside of Nokia. Only they know. I was just pointing out what a decision making process might look like and the importance of picking well-aligned partners. And the fact that we're running on more and more platforms these days which is cool as hell. ]

some clay shirky for your enjoyment

I was inspired by one of Gen’s posts and I thought it would be worth it to make a post that contains some links to some great Clay Shirky talks.

Clay Shirky on institutions vs. collaboration at TED in 2005. Even though this was filmed back in 2005 (before everyone knew what flickr was) he’s clearly talking about Mozilla. He doesn’t know it yet, but he is. As Mozilla is an organization that is an open source project, non-profit corporation and volunteer driven organization all the same time I think that we have come to know as instinct what Clay is talking about here.

Clay Shirky on Love, Internet Style. A short but fun video about Love as a building material. It’s great. Watch it.

Clay Shirky at Web 2.0 Expo SF 2008. Clay talks about the Cognitive Surplus that exists in our modern society. It contains this fantastic one-liner: “Desperate Housewives essentially functioned as a kind of cognitive heat sink - dissipating thinking that otherwise might have built up and caused society to overheat.” I’m not sure if it’s the first mention of what has become a famous fact about the amount of person-time required to build wikipedia, but it’s certainly put into great context and is worth watching for this reason alone.

That perspective made me think about how I spent my time at home and is one of the reasons I stopped watching TV and instead created whoisi. I guess you can thank Clay for it. Or blame him. Up to you.

Clay Shirky talking about his new book: Here comes everybody. He talks about the revolution of the Internet, the building of two-way groups and group action. It’s another great talk.

that man has an octopus

Sorry for the radio silence. Things have been hectic lately. (This is a massive understatement, but still.)

Pam is doing better, she is making progress every day. She is still in pain, but she seems to be moving around easier.

Also, I would not recommend vacationing on Ilha da Queimada Grande. Those snakes are deadly.

August 17, 2008

DDR

While we were watching a ball in a TV adaptation of Northanger Abbey last night, Elyn hit upon a genius idea: DDR Georgian Edition.  Just the thing for those Austen revival parties!

August 16, 2008

Postgres at BLUG

Despite my lackluster performance at a talk last month (about Emacs, what else?) the Boulder LUG let me attend another meeting.  Thanks!

This past Thursday’s topic was PostgreSQL, presented by Kevin Kempter.  I’d say about 40 people attended, which for BLUG translates to standing room only.  Databases are a hot topic.

I was fascinated by this talk — I know little about databases and enjoy hearing about them.  Although it ranged strangely between the very generic (high-level comparison of MySQL and PostgreSQL) and the incredibly specific (rundown of command line options to psql), Kevin’s depth of knowledge and cool stories made this well worth attending.

Postgres is a good product.  My impression, overall, is that while it is missing some gloss that Oracle has, it is basically “enterprise-ready”.  Kevin has a project now that gets one terabyte of new data per day, and Postgres handles that fine.  Refreshingly, Kevin did not spend much time defending the choice of an open source product over a proprietary one.  I guess at a LUG that would seem unnecessary — I thought so, too, until somebody asked why bother.

A database is a big programming environment in its own right.  One take away for me was: learn something before starting.  Kevin said he’s run across projects that did not vacuum regularly and were running with a lot of bloat — basic stuff.  Based on his talk and the questions, some of which I did not understand at all, I would say that if I were running a company I would just hire a DBA and move on.

Kevin is a fan of Slony-I for replication.  This came up over and over through the talk, as did table partitioning (which I had never heard of before).

August 15, 2008

Microsoft Paper Sizes

The Windows Documentation has some confusion around the two different JIS and ISO B paper types.

   DMPAPER_B4        B4 (JIS) 250 x 354 mm
   DMPAPER_B5        B5 (JIS) 182 x 257 mm
   DMPAPER_ISO_B4    B4 (ISO) 250 x 353 mm
   DMPAPER_B6_JIS    B6 (JIS) 128 x 182 mm

i.e. DMPAPER_B5 is documented as JIS and the documented dimensions match that format. While DMPAPER_B4 is then documented as JIS but the documented dimensions match the ISO format B5 of 250 × 353 mm. Given the presence of DMPAPER_ISO_B4 and the absence of DMPAPER_B4_JIS I’ll bet that it is really the JIS size of 257 x 364, which is backed up by the PPD Specification stating that the Microsoft DMPAPER_B4 size is 257×364 and by the Microsoft Word UI which lists B4 (JIS) with (correct) dimensions of 257×364.

Turning our eyes to the Excel Documentation we have more confusion with the XlPaperSize enumeration. Here we have…

   xlPaperA5    A5 (148 mm x 210 mm)
   xlPaperB4    B4 (250 mm x 354 mm)
   xlPaperB5    A5 (148 mm x 210 mm)

Well what size is xlPaperB5 ? Is it truly ISO A5 (148 mm x 210 mm) like the comment says. Or might it be ISO B5, i.e. 176 × 250 mm. Or, seeing as the XlPaperSize enumeration has the same values as the DMPAPER values for all other values, are both xlPaperB4 and xlPaperB5 actually the same values as DMPAPER_B4 and DMPAPER_B5, which we’ve earlier determined are JIS B4 and B5 sizes, and not ISO sizes at all. That’s the most likely answer, i.e. the text is completely and totally wrong for xlPaperB4/xlPaperB5

End of summer

Or at least, the end of summer classes. Today was the last day of System Dynamics and thus, the end of my summer classes. Looking back, I'm glad that I didn't decide to take three classes over the summer as two was plenty of work. Hopefully between the feedback that's been given about Systems Engineering as well as the addition of a Software Systems Engineering course option (which I'm planning to audit in the fall), some of the problems present in that class will be less problematic in the future. I know that people have complained quite a bit about ERBA in the past, but seriously, ERBA was a much better class.

System Dynamics, on the other hand, really should be a required course for all SDM students. Not necessarily because I think that everyone will use it on a regular basis, but because it provides a very solid foundation on thinking about causes and effects within a system. The exposure has me definitely looking at things with a slightly different light. That said, I think that a lot of the actual modeling is more complicated than you're going to usually have time to do and a lot of actually simulating the models requires either tons of research to get quantitative data or making up numbers. A cool thing that I learned about yesterday is that one of the GSoC projects is actually working on an activity for the OLPC that lets you do System Dynamics modeling. This is very cool and I actually want to sit down and play with it some in the next week or two.

Some other (related) things that I've noticed over the course of the semester that are/were kind of interesting...

  • Not having some form of repository to store things and share them really makes collaboration a lot harder.
  • Vensim (the modeling software we used for System Dynamics; worked under wine fwiw) could really stand to have some form of built-in source control. Although merging changes with the silly file format might be less than fun
  • Google Docs really does work well for working on a document among a group of people. I want to play with the AbiCollab stuff now and see how well it works too. The downside is that to get it to work in a general environment, have to get people to install something. Google Docs just requires them to use their web browser. This is big
  • PowerPoint (etc) slides are a terrible way to try to convey any significant amount of information. Our society is substantially worse off for its existence

After class, I headed out on this week's MIT/Harvard ICIC ride. We headed to Jamaica Plain to visit the original JP Licks. Along the way, took a trip through the Arboretum in JP, and got a nice view of the Boston skyline.
View from the top of the hill at the Arboretum in JP

Was a nice little ride, although I was regretting not bringing the nice light and the clear lenses as it was getting dark by the time we made it back to Cambridge. But I had them in my bag for the ride home at least. I guess it's getting to where I'll be using them more. And I definitely need to go through and replace the batteries in all of my smaller lights as most of them are starting to get a little dim.

August 14, 2008

The funniest spam I see

You know on my blog I see a lot of spam which gets caught by my filters but the funniest I ever see are the inept ones.  Here is one:

Your site regarding %TITLE% looks very interesting to me. I found it doing a search for %KEYWORD%….

If you can’t even get the template right … try harder not smarter, because I know you are as dumb as a rock.

In other news look for some Fedora announcements from me pretty soon.  I’ve been pretty under the radar recently in terms of what I have been working on.  It has all been public, just not publicised.  Revolutionary, probably not.  Those who know me know I like calculated improvements.  A step forward…let’s just say I am proud of what I am doing and have to praise Red Hat for having faith in me and my plans to let me work on things I felt were important.  There is a reason they are not just a pay check to me, and part of that is their belief in the power of free and open source softaware and the confidence in developers who work on the betterment of not just the company but the community and the ecosystem as a whole.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

August 13, 2008

cpufreq list moved.

I've had multiple people mailing me about this, so I thought I'd make a post just to seed google.

The cpufreq mailing list has moved. It's no longer @linux.org.uk. It has now moved to cpufreq at vger.kernel.org
Subscription is regular majordomo subscribe commands to majordomo at vger..

end of public service announcement.

the hospital waiting room does not have air conditioning

Pam's surgery went very well today. I'm still at the hospital, going to crash in their waiting room so I can be there for her when she wakes up. Before she went to bed this evening, she walked around a little bit with a nurse, which is a good sign. She was pretty loaded on pain meds, but still.

August 12, 2008

Sudden uglification

After a "yum update" last week, all Japanese text has reverted to bitmap fonts for kanji (but not for kana):

What to do? Xft2 is a maze for me. I cannot even file a bug without knowing the component responsible for this.

Scott,

in contrast to what you say the Apple audio stack (CoreAudio) is far less streamlined that it might appear on first sight. The different APIs that make up the Apple audio stack are far more redundant than you might think. Also, they are different in programming style, and you can list at least as many seperate components for different areas of audio with different API/naming styles as you just did for the Linux audio stack.

Listing two components of the Linux audio stack that are considered obsolete these days, and listing one item twice doesn't really help making your post unassailable.

Having said that, yes, our Linux audio stack is still chaotic, redundant, badly documented and incomplete. You are very welcome to help fixing this. But just doing a bit PR and sticking a single name on the sum of it all doesn't even touch the real problems we have with the audio APIs on Linux.

Free software development is in its very essence distributed. The fact that our APIs sometimes appear a bit higgledy-piggledy is probably just an inevitable consequence of this.

How to make Flash 10 on Fedora not Crash Instantly

Several new crashers for Fedora 10 happened in the last few weeks.

  • nspulginwrapper-1.1.0 hit Fedora 9 updates with its new support for "windowless" WMODE. It turns out that the previous nspluginwrapper version did not support WMODE, so it was hiding an instant crasher (upstream bug) where firefox would die even with the protection of nspluginwrapper. Reportedly the next upstream release of firefox-3.0.2 should include this patch, but meanwhile lots of people are affected. Please test the builds of xulrunner from here.
  • This patch against nspluginwrapper-1.1.0 is also necessary to use Flash 10 with WMODE without instant crashes. This was pushed as nspluginwrapper-1.1.0-5.fc9 in Fedora 9 updates a few days ago.
  • Earlier today (August 11th 2008) Adobe released the release candidate of Flash 10, version 10.0.0.569. The big changes in this build are requiring external libraries NSS and libcurl.so.3. RHEL4 and RHEL5 have libcurl.so.3 so they are apparently fine, but Fedora 8+ have libcurl.so.4. It turns out that Debian somehow has been shipping with a symlink from libcurl.so.3 to libcurl.so.4 after they found that the ABI is actually the same. Updates to curl with a similar link (actually an empty shared library linked to libcurl.so.4) are heading to Fedora 8, Fedora 9 and Fedora 10. If you cannot wait, grab the latest build for your Fedora here.

Unfortunately there seem to remain other crashes, but they are at least more difficult to reproduce. If you do figure out a consistent reproduce procedure for additional crashes please reply here.

http://macromedia.mplug.org/
I just rewrote the old Flash RPM site into a permanent "Tips and Tricks" page where the latest Linux workarounds for these issues will be written down.

August 11, 2008

competing for an open (generative) web

John Lilly pointed people at a really good article in the New York Times by John Markoff about the Olympics as a hook to get Silverlight onto people’s computers. It’s a good overview and is worth reading.

The article covers well tread ground: People are worried that Microsoft will leverage its market power to create a leadership position for multimedia on the web. Replacing the (proprietary) Flash video codecs with the (proprietary) Silverlight video codecs and associated tools. In some ways it looks like a battle between two companies and strategies that no one would care about. More lock-in, more proprietary tools, more opportunities to undermine the main single item that makes the web great: it’s open nature. But those companies have existing market reach and they will do anything they can to convert that into even more leverage over how you interact with the web. If nothing else, they will buy their way with cold hard cash onto your computers. These two industry players should be taken seriously.

John Lilly is quoted in the article as talking about the “generative Web” (via Jonathan Zittrain.) I like this phrase quite a bit. I think that might be an even be a better way to describe what we (as in the Mozilla Project) think is the most important part of the open web. That is, by the act of creation on the web you are also creating things that other people can build on. Everything from scraping data to create a search engine like Google to being able to look at other people’s HTML and JavaScript to discover how they do something clever. Transparency and openness creates innovation - innovation by thousands and thousands of people, each of which has a positive impact on the millions who use the web.

Think about it another way. The main metric that I would use to describe the health of a truly open web is this: That as the ecosystem expands, the raw number of people, companies or groups who hold power inside the ecosystem, and can affect its direction, grows as the ecosystem grows. Put another way, the power center is decentralized over time. Change inside of that ecosystem require more voices to agree that change is good. That’s healthy. And that’s an open web.

Then there’s the other side of the metric. That as an ecosystem expands it enhances the power of a single player in the market instead of creating many players in the market. Change in that market requires the permission of only that one player and that one player can make decisions on behalf of everyone who is also part of it. That’s not healthy. And it’s not the open web.

Based on those metrics for health the battle is between those who would expand for the sake of expanding the opportunity for everyone vs. those who would expand for the sake of centralizing their own market power. In one phrase: it’s expansion vs. centralization. That’s what you should be looking for and what you should be thinking about when you hear someone talking about the open web.

All of this is nice, of course, but it doesn’t really describe what we have to do to create the world we want to live in. It talks about the nature of the marketplace but it’s not really a roadmap for people to understand how, as the good guys in this picture, we can continue to compete and win against much larger competitors. I first word in the title for this post is “competing” for a reason. Because that’s what we really need to do.

Recently at the Firefox summit I was reminded in one of Mitchell’s talks about how Firefox is a mechanism. Firefox is the best representation of our vision for an open + generative web that we can come up with: As a rule our users love it, we’ve built an ecosystem of thousands of add-ons, we continue to protect our users from the worst aspects of the web, we continue to both compete and collaborate with other browser vendors and we manage to do all that in an open forum with open source code. Firefox is a reflection of our larger view of the transparency that we want to see in an open web. Put simply: We are the change we want to see on the web.

So that’s a lot of talk. Back to the issue at hand. Silverlight, video, adobe, multimedia, market power. How do we compete? Or, really, how do you compete? Because Mozilla isn’t going to create this change alone. We’re very very small by any standard in the tech marketplace. Our reach is pretty good with Firefox 2 + Firefox 3, and we’re starting to have real market effects, but we’re not going to be able to buy our way onto millions of computers by sponsoring the olympics.

People who have talked to me have heard me talk about two things on this topic. I usually say something like “you need to learn how to build a product” or “you need to find out what you can lead at and go do that.” There’s usually more than that, but that’s the main part of the message. And I think that if we want to make sure that the web isn’t overtaken by the acts of industry giants, that there are real actionable things we can do to make that happen.

I’ll use video on the web as a simple example. Here are the things that I think need to happen to make Theora a player in the real world.

1. Make sure there’s a really great video plugin for Apple Quicktime that delivers the OGG Theora video format to people who use the video tag in Safari. When I tried to play the ogg theora video from my post the other day the ogg plugin jumped around, showed a white screen for long periods, paused for a few seconds at a time - bad!

2. Create a control that brings the video tag to IE like Vlad did for the canvas tag. The world is much bigger than just Firefox. This would make it very easy to deliver and build content and make it easy for consumers to get access to it. Bring ubiquity to content like Adobe was able to do with Flash. (Note: Cortado isn’t good enough - it’s still stuck in the plugin prison!)

3. Make a super-easy, consumer-focused, high-quality encoder for ogg theora that anyone can use to encode their videos for the web. (Here’s a hint: Handbrake is still too hard to use.) Hook it up to the various video camera providers on mac and windows so that it’s super easy to create content, encode it, and with the tools listed above, upload it and make it available to others.

4. Even better, build a business around the tools above. Or even a service for people to upload to. Sustainability is an important component and it should not be left behind.

5. Create awesome demos of what you can do with the video tag, or even better mixed with the recent stuff we’ve been showing off with video + svg filters. Blur effects, video driven by content, content people can create and overlay onto existing videos, etc. Some of this stuff is out there, some of it isn’t. But it’s a start. Try mixing video with other content on the web - mash it up, cover it up, add value and context to otherwise boring videos. Its easier to do with the video tag than it is when it’s hidden inside of Flash or Silverlight.

So that’s just a short list of things people can do to help with video. There are lots of other things that people can do in other areas, other than just video, but I wanted to give an example of my thinking around OGG Theora as an example.

People seem excited about us including OGG Theora in our next Firefox release. But keep in mind it’s only a start. If the same ecosystem that we’ve seen develop around the open + generative web doesn’t grow around open video like it has around the web then we will end up with the status quo: a vibrant growing web but with large parts that are hobbled by a model that doesn’t grow on itself. Mozilla isn’t going to be able to do this job entirely on its own, but we’re doing our part. It’s going to take others to understand how we do what we do, copy its model and try to create the same effects in the other important parts of the ecosystem.

I wonder what the world will look like five years from now. It’s going to be an interesting ride.

second edition of about:mobile is up

The second edition of about:mobile is up wherein we cover Fennec M6, Windows Mobile, Network Peformance and Geolocation. Go check it out on the devnews site above or feel free to sign up for the mailing list which will conveniently deliver it to your mailbox.

Fedora 9 Live LTSP Server, Beta 1

Below is a LiveUSB or LiveDVD image containing Fedora 9 LTSP server and the client chroot pre-installed and pre-configured.  This is the easiest way to get started with Fedora LTSP5, or to try it without installing  onto your hard drive.

Simply boot this Live image and follow the simple README, and you can within minutes demo serving of thin clients.  You can also install onto a hard drive to create a permanent server.  It is all surprisingly self-explanatory once you have booted to the Desktop.

https://fedorahosted.org/k12linux/
LTSP on Fedora 9 w/ Updates is currently considered to be production ready, and development of improved features continues rapidly.  Check out our homepage for the latest news and updated instructions.

Download
http://alt.fedoraproject.org/pub/alt/ltsp/beta1/i686/
This image is based on Fedora 9 w/ Updates as of August 8th, 2008.  It seems to work great for me in limited tests.

How to Use LiveUSB?
https://fedorahosted.org/liveusb-creator
  • From Windows you can use LiveUSB creator to make a USB stick bootable containing this Live image.  From Linux, within the ISO is the livecd-iso-to-disk script which you can use in Linux to make a bootable USB stick.  It is highly recommended that you use a persistent overlay file of at least 900MB because this reduces the amount of memory needed for your demo.  For this reason you should have at least 2GB free on your USB stick (~920MB image + 900MB overlay).
  • LiveDVD works, but is not recommended unless you have at least 2GB RAM for your demo.
  • Be warned that serving clients from a Live image will eat up your overlay and RAM rapidly, causing the demo to eventually fail.  It should be fine for a number of client logins.  You should install to your hard drive if you want to do more than just a quick demo.

FAQ
  1. Why is this not called K12LTSP?
    It is the plan for Fedora LTSP5 technology to be the successor of Eric Harrison's highly successful K12LTSP distribution.  However we had planned on changing the name to "K12Linux" to be friendlier sounding and easier to pronounce when people explain it at educator conferences.  Unfortunately the naming issue remains a bit uncertain because we have not yet received ownership of k12linux domains from the current owner.  Warren's fault for getting busy and forgetting to follow up in past months.
  2. Is this the only way to install a Fedora LTSP5 server?
    This Live LTSP Server image is only a convenient way for new users to get started with Fedora LTSP5.  Note that it is always possible to enable LTSP5 on any existing Fedora 9 server by following the instructions on the above homepage.
  3. Why not LiveCD?
    LiveCD was not possible because we simply cannot fit Server, Client and apps onto a single disc.  If all you have is a CD drive then your hardware is unlikely powerful enough to serve as a LTSP server.  In any case you should be able to install from the LiveUSB without dealing with discs at all.

Release Plan for Fedora 9 Live LTSP Server
If we do not run into any serious problems, I plan on doing a Release Candidate ISO spin on Thursday, August 21st.  If no problems are found with the RC image, then it will be redubbed as "final" without any changes.

I hope to get Fedora branding onto the login screen, and the naming issue straightened out before this release.  Delays in the final release may occur due to this branding stuff.  In the mean time, this Beta 1  spin seems to work well for me.  Please give it a try and let me know.

https://www.redhat.com/mailman/listinfo/k12linux-devel-list
Please send questions or comments to the k12linus-devel-list.

August 10, 2008

gnome wishlist: one-click backup/restore?

Krissa’s hard drive is dying, beginning the unpleasant process of rsync dump + restore on the new hd. So- is there a one-click backup/restore tool for single-user machines, along the lines of the backup/restore experience in Time Machine. The Ubuntu folks were working on something along these lines but AFAIK there is no actual code there, or at least none productized/shipping widely.

I’ve been successfully using backuppc for intermediate network-based backups, but one-click restore it ain’t.

Let’s party like it is 1999

You know what I dislike about emotional arguments?  They are backed up by specious logic and anicdotal evidence which is often so out there it verges on being part of a fantasy land people build up to feel that they are right.  Lets examine the argument:

It seems that a “feature” that Microsoft implemented in the Windows 9.x days has appeared in Plymouth. Yes that’s right, that “feature” the I.T. world grew to hate, holding down the Ctrl or F8 keys to get into Windows Safe Mode (http://support.microsoft.com/kb/180902/en-us) has invaded Fedora. Ouch!


Now, if I take a step back, I can completely claim the following:

  • Plymouth takes away my freedom of choice (a freedom that has become a basic Human Right
  • Fedora has taken three steps back to gain one step in the name of ‘usability’

The funny thing is Mac has this feature also (hold c to boot from cdrom etc). Let’s repeat after me, “having to hold down one key after boot does not take away my freedom of choice”. And while we are at it, why do people fling around phrases like “freedom of choice” so cavalierly? It gets to the point where those once powerful words become watered down and an instantly marks ones argument as suspect. I know, let’s give more freedom of choice by bringing up the bios every time they boot. There is a lot of choices in there.

If there is an argument to be had here it is about continuity and discoverability. On the continuity side, if someone is used to seeing grub every time they boot it might be nice to keep that feature or something equivalent on upgrade but not on a fresh install. On discoverability of the feature, I would agree this is where the fustra