Search Results: "nate"

24 September 2007

Aigars Mahinovs: FON not giving me my own Internet

Unfortunately I will have to disconnect my FONera and buy a real WiFi router to replace it because that small box is a glitchy piece of crap compared to every other WiFi router out there. The killer: if the LaFonera can not connect the FON authentication servers, then it thinks that there is no network available and does not let me use my Internet. There is even no way to force it to pass connections to outside which is required in many cases such as partial network failures (when you can not get to FON servers for some reason, but rest of the Internet works just fine) and for web signup pages that some ISP’s use to login users to their network. And you can not use another PC for that, because it records the MAC address. The box frequently freezes and the DNS server stops responding. I can continue working by editing my local DNS server settings to the DNS of my ISP, but that is no way to work! The damn thing has no idea about uPNP which is a must nowadays for peer-to-peer transactions. And lastly there is absolutely no way for me to fix any of this because the FON keeps a tight lock on the firmware. In the time when all good software and community projects go to the open side, the FON moves further and further to the dark side and that is disturbing. I consider this a permanent failure on FON’s part that negates my ability to hold my side of the Fonera promise. It would be so much easier if I could ssh into the thing - ping stuff, traceroute stuff, put some kind of flag file to say that network in fact is there, release or refresh the DHCP lease or even restart the damn thing remotely. Nothing of this is available.

23 September 2007

Christian Perrier: RWC: ARG nearly in 1/4th, ENG wakes up

After the stunning match between RSA and Tonga, we watched an also very good England-Samoa (44-22). Even if their play was still far from perfect (lack of imagintation, mostly), the English players succeeded quite easily against Samoa who never gave up. Johny Wilkinson's come back is a success, imho, and England will then play against Tonga for qualification on Thursday. The winner of that match will end up 2nd of that pool (assuming that RSA wins over USA) and should logically play against Australia (while RSA will play against Wales or Fidji, this assuming that Australia wins over Fidji today). Argentina had to win against Namibia with the bonus point. They easily made it (63-3). As usual in such situations, Namibia resisted about 30 minutes (and were even leading 3-0 for a few minutes). However, the imprecision of their game (a disastrous kick play) left dozens of balls to the Argentinians who then could easily score lots of tries. The Argentinian were, at the end, obviously sparing their energy for the upcoming fight against Ireland next Sunday. In this pool everything can happen (even Argentina being eliminated, which is however not very probable). From what they showed, the Argentinians can definitely win over Ireland, which would then give them the first rank and an easier 1.4th final against Scotland or Italy. Two matches today: Australia-Fidji and Scotland-New Zealand. Australia and New Zealand have a strong advantage and I don't really expect any surprise here.

22 September 2007

David Welton: Erlang

As someone who tries to read a lot about my field, I feel I have my "ear to the ground", so to speak. And right now, I'm picking up a lot of hype-rumblings about the Erlang programming language. I have a little bit of experience with it, having used it briefly about 3 years, and having made a few minor contributions. Why are people interested in it? Picking up new programming languages is fun for some people, but in general, unless it's something backed by millions of dollars of marketing and development (Java, C#/.Net) there needs to be a 'killer feature' to drive adoption. Tk and Tcl, ease of developing simple dynamic web content with PHP, Rails and Ruby, and so on. Erlang, in many people's eyes:
  1. gets concurrency right, or at least is a big improvement over existing models (threads).
  2. Makes distributed computing easier and does it naturally.
  3. Is a solid base on which to construct reliable applications.
That appears to be enough to have nudged Erlang into a position where it has a chance at the big time. While I would highly encourage people to learn a bit of Erlang, and to seriously consider its use for the type of systems for which it was created, I have some doubts about it becoming that widespread. Please read the following as the thoughts of a critical mind, and keep in mind that it's far easier to zero in on defects than it is to create something from scratch, so do not misconstrue my writing as being "against" Erlang (I do use it, enjoy it, and recommend learning it!), but as an honest appraisal colored by my own view of the world, which might not be like yours. To begin with the superficial, its syntax is a bit odd. For a professional programmer, that shouldn't present much of an obstacle, and indeed isn't after a few days of using it, but there are a few things that I do find a bit annoying despite being used to the syntax, first and foremost being the use of . and , to separate lines of code, rather than a newline, or ; (which is used elsewhere). They're like little mouse droppings - hard to spot, and they get in your way when you swap out bits of code here and there. The last line of a function must end with a ., but other lines are separated with commas, so when you're cutting and pasting lines from here to there, you end up having to recheck the line endings each time. Erlang is a functional programming language. Once again, someone with a wide exposure to many programming styles will not find this difficult after a week or so of practice, to wrap your mind around a different way of thinking. However, I have some doubts as to whether a functional language will be able to bring on board the numbers necessary to be widely adopted (see Scaling Down). One of the benefits of wider adoption is, indeed, having a wider set of libraries - it's a "positive network externality" in terms of economics. Other people have written about the relative lack of Erlang libraries to do various things, but it's actually not one of the things I'm worried about - it's something that will take care of itself if the language grows in popularity. After being spoiled by Ruby's gems, what I really miss, though, is a nice, simple, easy distribution mechanism. Related to making it easier for J Q Programmer to adopt, the error messages are at times not the most helpful I've seen in the computing industry:
Error in process <0.29.0> with exit value:
 undef,[ shell_default,sfdsf,[] , erl_eval,do_apply,5 , shell,exprs,6 , shell,eval_loop,3 ] 
In English, that means that I tried to execute the function sfdsf(), which doesn't exist. It seems that there ought to be a way to keep the nice, computer parseable error messages, and add in something that humans would find just a bit easier. Other people have already covered the problems with Erlang's strings, so I won't belabor the point. Suffice it to say that, in my opinion, is_list([foo, bar, baz]) and is_list("hello") should probably not both be true. Which brings us to another issue. Erlang is a language used in big, reliable systems like telephony switches. That's not the sort of environment where you want to break things, so I doubt that Erlang will ever see big changes that introduce incompatibilities, like Python has recently done. This one is a tradeoff - stable, reliable and backwards compatible is simply not compatible with rapid development of the language - it's a zero-sum game, you want more of one, you get less of the other. Related, is the "open sourceness" of the language. It is open source, which for me is very nearly a prerequisite for dedicating my time to a language, but Ericsson appears to maintain firm control over it. This is another thing that's both good and bad. Having the backing of a large corporation means that developers are paid to work on and enhance Erlang, which is beneficial to everyone. On the other hand, as some people say, open source is just the start, open development is important too. Random thought: I bet Erlang would make a nice Apache project, but I'm sure the bureaucracy involved would be a nightmare. In terms of the language itself, beyond the syntax, it feels a little bit too verbose. Perhaps not as much as Java (that would be difficult, wouldn't it)... maybe I'm just used to Ruby, which is about as concise as I'm comfortable with while still being readable. Sometimes, though, there is a little bit more 'repeat yourself' than I would like to see. For instance, in this implementation of string_join (something else that ought to be in the standard library, but still isn't), it's necessary to create the same function, with different arity, simply to work around the fact that it's not possible to say the default separator should be " ":
string_join(Items) ->
    string_join(Items, " ").
string_join(Items, Sep) ->
    lists:flatten(lists:reverse(string_join1(Items, Sep, []))).
Which is a lot more typing than string_join(Items, Sep=" "). This is pure opinion, and very subjective, but Erlang to me feels like it falls more in the "systems programming language" category than "scripting language". It's a bit more verbose, it needs to be compiled to run it, modules need to have an entry point... it's not as suitable to quick throwaways as Ruby, Tcl or Python. Of course, it is certainly higher level than C, and leaner than Java, but still falls an the other side of an admittedly fuzzy line in my head. Its command line options reinforce that. Whereas "scripting" languages do the obvious thing first:
ruby foo/bar.rb
Erlang is a little bit more complex:
erl -noshell -pa foo/ -run bar
A minor detail, once you get used to it, but still, I prefer the "do the obvious thing first, and let the user have some say in the matter if they want to do something else" approach to systems design. One of the wonderful things about Ruby on Rails, is that it uses Ruby throughout, templates included. Without getting into the merits of using templates vs other systems, my own opinion is that Rails gets them right, and demonstrates the flexibility of Ruby by using it as the language for the templates, rather than inventing some other solution. I don't see the same flexibility in Erlang, which is unfortunate, as it blows Ruby out of the water in terms of being a very solid solution to deploy on a server (no fiddling with proxies and load balancers and single threaded mini-servers + hot code replacement = nice). Of course, there are lots of good things about Erlang, as mentioned at the beginning of this article - concurrency and distribution, but also language features like pattern matching that are a lot of fun to use, a pleasant syntax for dealing with binary data, list comprehensions, first class functions, tail recursion, and lots of other goodies. However, if I had to try and predict the future, I could easily imagine another language grabbing some of Erlang's good ideas and running with them, perhaps being more "conventional" in other respects - this isn't uncommon in the languages field, as we've seen with things like Lisp and Smalltalk. On the other hand, one of the reasons I *am* quite happy with Erlang is that it is most certainly not a proof of concept - it is a very practical language that excels at solving certain classes of problem, and does so in many commercial settings. If you're the kind of person who enjoys new things, check it out!

18 September 2007

Eric Warmenhoven: iWant.

Lately I have been wanting to buy a lot of fairly expensive stuff that I don’t really need. It started with the telephoto zoom lens, which I ended up getting, and love. I’m really happy that I got it, especially since Lisa and I will be going on a hot air balloon ride in Napa for our anniversary, and then to the Salinas Air Show the following weekend. Then it was the new TiVo HD. We already have a Series 3, but we’ve occasionally thought that we might like to get a second TiVo for our other TV. Now that it’s been confirmed that Multi-Room Viewing is coming to both the Series3 and TiVo HD soon, there’s even more incentive to get one. Fortunately right now they’re selling them to employees at a discounted price (limit one per employee). And now it’s the iPhone. I can’t explain why I feel compelled to buy this other than iWant. A few of my coworkers have one and they look pretty slick. Plus my current iPod battery can’t hold a charge very long. Plus I like the idea of having an integrated iPod and phone (it’s part of the reason why I got my current phone, the Motorola SLVR L7). Plus it’s roughly the same size as the SLVR and only slightly heavier.

16 September 2007

Christian Perrier: RWC: Stunning Georgia

We watched either parts or the entire three matches yesterday. So, long report..:-) The day began with the most unbalanced game of this world cup, featuring New Zealand, world's top rugby team, against Portugal, ranked 22nd. Rugby in Portugal is played by about 4200 people only, in less than 50 clubs. All players are amateur but one (Gon alvo Uva, playing in Montpellier, France), being dentists, students, etc...and coming to RWC during their holidays. The result (108-13 and 16 tries) was expected but the feeling when Portugal scored a try was great, with the 40,000 attendees in Lyon supporting Portugal. Personnally, I had great time chatting on IRC with Miguel Figueiredo, one of the leaders of the portuguese l10n team in Debian, during the match. We watched Wales-Australia (20-32) during the evening. That game was obviously the key match of this pool, with the winner very probably finishing 1st in the pool. Wales playing in Millenium Stadium in Cardiff is always astonishing and show how much the Welsh people love this sport. During 1st half, Australia strongly dominated and logically lead 25-3 with 3 tries. Berrick Barnes, their new fly half (Stephen Larkham injured), is a very promising player and, imho, the match's MVP (even after being severely bashed by Gareth Thomas on Australia's first try). After half time, the Welsh team courageously fought and came back to 13-25, menacing Australia which was more hesitating. Unfortunately, Australia scored a try after a big mistake by Stephen Jones. So, even with good play by Wales and another try by the incredible wing player Shane Williams, Australia logically won this game. Again, a southern hemisphere team dominated a northern hemisphere one. This is probably what will happen during this entire WC and I bet that New Zealand, Australia and South Africa will end up in semi-finals, quite probably along with Argentina, unless France does a miracle and ends up 1st in their pool. I think that Australia is slightly weaker than NZ and RSA, though. So, my current bet is NZ-RSA for the final (this can happen, given their respective track to the final and given that they certainly will end up first of their respective pools). Finally, we watched the second half of Ireland-Georgia (14-10). *That* was quite a surprise. Ireland was very close to lose this game with Georgian forwards crushing them repeatedly at the end of the match and nearly scoring a try that would have made them win. Everybody was waiting for Georgia to swell after their strong 1st half (3-7) but they managed to fight until the last second, supported by Bordeaux 40,000 attendees (minus a few thousands of Irish supporters, of course). So, while the initial question was whether Ireland would score a bonus point, the final question became about them to *win* the match. This gives even more credit to Argentina's victory last Tuesday. Full standing ovation for Georgia at the end of the match. Today is again a busy day. I'll probably skip Fidji-Canada (which happens at the same time than France-Namibia) but certainly won't miss Samoa-Tonga and, of course, France-Namibia. Samoa have to win to keep their chances of qualifying (they can beat England, really) and, well, France has of course to win *and* score a bonus point. In this world cup where to so-called "small" teams are not that small, everything can happen and France is anything but safe, ehre.

Theodore Ts'o: Whack the Gopher

I recently came across three very well written and very thoughtful blog postings by Rick Cook (author of the Wiz Zumwalt Wizardry series):
  1. Copyrights, Whack-the-Gopher, and SFWA — Why I Quit
  2. The Economics of Theft: Son of Whack the Gopher
  3. WHACK THE GOPHER III: The Return of the Mutant Grandson
The incident which kicked off these postings was an informal DMCA takedown notice posted by the Vice President of the Science Fiction Writers of America, Dr. Andrew Burt which was created by a process only slightly more sophisticated than using word search for “Asimov” and “Silverberg”. Unfortunately, this takedown notice erroneously included a junior high school teacher’s list of 300+ recommended books (which naturally contained the strings “Issac Asimov” and “Robert Silverberg”, an on-line published science-fiction magazine that referenced the science fiction author Isaac Asimov in a review, and a creative-commons licensed science fiction novel which had been deliberately published on the web for free distribution, and for which the author had explicitly forbidden the SFWA from taking any action on behalf of his books. The entire incident was wonderfully filled with irony — from the fact that an organization of writers who purport to write about what the future might bring given scientific and technological advances could so totally fail to get the Internet or understand that such a campaign might cause them to alienate their readers and fan base, to the the fact that Doctor Andrew Burt, Ph.D. is a professor in computer science at the University of Denver with a research interest in copyright and electronic piracy, could so incompetently foul up a DMCA takedown request and not understand that “grep” might result in false positives that would require human checking (”Andrew? Your alma mater is calling; they would like their degree back…”) One good thing that has come out of this whole mess is that it has been, as junior high school teacher Nick Singer put it, “a teachable moment”, and an opportunity for people to reflect about issues of copyright, the rights of authors, ebooks, and the Internet. This is a hard problem; I very strongly believe that (at the same time) “Art wants to be free; Artists want to be paid” (to use a phrased coined by a friend of mine, Jesse Vincent (blog here), to the point that I’ve been willing to put my money where my mouth is. So far the solutions for achieving this are nowhere near perfect, but they are certainly better than sending out shotgun DMCA takedown requests. In any case, Rick Cook’s thoughts on the subject are a worthy contribution to the subject. He says he’s going to do one more article on his blog proposing an economic solution to this problem; I can’t wait to see what he has to say on the subject.

15 September 2007

Lior Kaplan: Hebrew, Perl and a License Hell

Three months ago Gal-Gur Arie asked me to package a Perl module named Locale::Hebrew. The goal is to enable Hebrew support in xmltv which uses a Perl script to pull the Israeli TV schedule. See #432748. Gal’s request falls under my Debian Hebrew category, otherwise I would refer his request to the Debian Perl Group. I started to work on the package, and reached the part of creating the debian/copyright file. In the Perl code, everything was OK, as it’s licensed under the Artistic License. But then I notice a bidi.c file with the following “license”:
Source code in this file and the header file may be distributed free of charge by anyone, as long as full credit is given and any and all liabilities are assumed by the recipient.
But it also had this:
Copyright (C) 1999, ASMUS, Inc. All Rights Reserved
As the “license” isn’t free, and the previous line pretty much makes that clear, I couldn’t upload the package to the archive. Maybe to non-free but I prefer that would be my last option. I was able to contact the copyright holders, and ask for clearing the license. Preferably with re-licensing the code with the GPL or other OSI approved license. Asmus Freytag answered me that there’s an updated version of the file in unicode.org with a proper references to a license, and suggested that I should check if it that’s OK for me. That license isn’t a free software license, but has en exclusion clause for certain files:
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the “Data Files”) or Unicode software and any associated documentation (the “Software”) to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
To me, this seems free according to the DFSG. So I got a second opinion at debian-legal just to be sure. Well, now that the licensing issues are over, I needed to check that the software can work with the new bidi.c file. Audrey Tang (the original upstream) was kind enough to help with the testing, but here tests showed that too much have changed in the new bidi.c file, and the program doesn’t build correctly. So I’m back in square one… I got back to Asmus Freytag for a license change, this time asking for the unicode.org license. Asmus didn’t approve my request, and referred me to unicode.org for an answer. Full correspondence is available in the liblocale-hebrew-perl’s ITP. The problem is that I can’t be sure the file originated at unicode.org, as there isn’t any reference to them. And anyway, any license change should be done by Asmus Inc. and not unicode.org. Any one with contacts in Unicode, Inc. ? The best solution would probably be writing a Perl bindings around libfribidi as was done for Python. The problem is that I don’t have a volunteer for that. Bummer.

12 September 2007

Brice Goglin: Debian X.org notes - Got specs?

So, this time it was for real! AMD really meant it when they announce the release of specifications of ATI boards last weeks. During XDS2007 at Cambridge, we received the actual specs, 2 PDFs files, 460 pages for the M56 (Mobility X1600, r5xx board) and 436 pages for rv630. The files are now online, but I am not going to give the link here since the web server already suffered too much today (and the URL is easy to find anyway). People should NOT understand this as if we were going to get an open-source driver for all ATI boards next weeks. First, these are only 2D specifications for r500 and r600. 3D specs are expected in a couple weeks once AMD fixes the remaining issues. r300 specs might arrive later. Also, these specifications are pretty hard to use, as expected. There are something like 9000 registers in r6xx boards, and these PDF files are just description of these registers. It's of course far away from being a "How-to write a driver?". So if you want to help, there will be lots of things to do. We also got a demo from some Suse guys of the driver there are working on. They got these specs about 2 months ago. And they already have some part of modesetting working. It means you might get your X server to start. There are about one hundreds different chipsets with their own quirks, so still lots of work to do. And then lots of performance things, 3D, ... to do. This driver is called "Radeon HD" so far. It will remain separated for now, but it might end up being merged with the upstream ATI driver later since the 3D engine are very similar (I personally hope it will happen). The reverse-engineered Avivo driver is dead now then. Fortunately, Jerome Glisse has been aware of the event for a couple months now, so he didn't waste to much time working on it. xserver-xorg-video-avivo will remain in Debian experimental until the new driver arrives. The good thing about Avivo is that it (and the ongoing Nouveau driver for Nvidia) led to the development of very nice reverse-engineering tools (revenge, renouveau, mmio trace, ...). They will be very useful for other graphic boards, or even some network hardware. Of course, many thanks to AMD for making this happen!
(Permanent link) 

MJ Ray: Theora Herd Needs a Stairlift

Trying to post the movies for Tour of Britain stage 2: Taunton left me in a whole world of pain. I'd decided to take movies rather than stills because there were lots of photographers there with considerably better cameras than mine, and my blog is far more popular for TV coverage than for photos. My video camera is a four-year-old Nisis Pocket DV4 which appears as a usb-storage device and contains AVI files. Apparently, those AVI files contain Video as mjpeg, yuvj422p, 320x240, 9.04 fps(r) and Audio as pcm_s16le, 11025 Hz, mono, 176 kb/s. I wanted to post the movies as Ogg Theora for various reasons, including how well it seemed to work for debconf this year. I'm a total clubie at this video stuff, but I like freedom and I've seen what I want, so I know it's possible. First of all, I tried mplayer's mencoder. It seems that mplayer can play Ogg Theora, but mencoder can't encode it. Did I miss something? What's with that? So, I tried installing VLC because several people had recommended it to me in the past. It seemed to have an easier interface than mplayer and had a wizard for converting files. Unfortunately, it seemed to crash on some of the AVI files and other times hang. When I upgraded from 0.8.6 to 0.8.6c (which also meant a wxWindows upgrade, which surprised me for such a seemingly-small upgrade), it crashed out with a segfault rather than hanging. I couldn't get the command-line to work either. I tried ffmpeg, but damned if I can get that to produce a good theora (or is it libtheora?) file. Sometimes it works, but the output is much larger than I expected. It is very annoying that there are no releases, but at least there are snapshot tarballs available. I was trying export-2007-09-12 early this morning. Finally, I tried ffmpeg2theora and (after upgrading ffmpeg), the command
"ffmpeg2theora -aq-1 -v 0 -o outfile.ogg infile.avi"
produced useful results, which I've now uploaded. Thanks to BBLUG members for their comments. There seemed to be others who shared my confusion and frustration with video processing. Why is this still so hard? Is it, as one member suggested, the chilling effect of software patents and so on?

11 September 2007

Jose Luis Rivas Contreras: Finally rtorrent and libtorrent versions do not mismatch

At least in unstable that's the case, thanks to santiago who uploaded rtorrent yesterday. Unfortunately(for people using testing) the new version 0.11.8/0.7.8 for libtorrent/rtorrent is out, that's why I will wait until rtorrent got into testing so there'll be no mismatch of versions between the library and the client (actually rtorrent 0.7.4 and libtorrent 0.11.7, should be rtorrent 0.7.7) and then will start looking a sponsor for the new packages of libtorrent/rtorrent (which are going to be ready later tonight).

Brice Goglin: Debian X.org notes - X.org 7.4 plans - What we expect for Lenny

The release plan for Xserver 1.5 and Xorg 7.4 was discussed during the X.org Developers' Summit in Cambridge (September 10-12th). This is what we expect to ship with Lenny, so here are some details about the upcoming. Timeline As usual, there will be a 6 months release cycle. So Xorg 7.4 is expected on March 1st, 2008. There won't probably be any new Xserver release before that since some changes (already merged) require all drivers to be updated anyway. So Xserver 1.5 is expected on the same date. Since there are already some known problems in Xserver, they also plan to release Xserver 1.4.1 on November 1st. PCI Rework The master branch of Xserver already contains the long-expected pci-rework which is supposed to fix all the PCI domains and other non-trivial PCI hierarchy support (important for ia64, but also for some powerpc and sparc users). RandR People having Intel, ATI or recent Nvidia boards learnt to love the RandR 1.2 extension which provides the ability to enable/disable, resize, rotate, move outputs within a single big virtual screen. More transformations should be possible with RandR 1.3. Hopefully, there will also be some standardization regarding output names in various drivers, or at least a way to retrieve the type of each output (LVDS, DVI, VGA, TV, ...). And the server should get an abstraction object to describe GPUs, which might make the support for multiple boards easier. Input On the input side, XKB 2 and XGE should be merged, which shouldn't be really visible to end-users but should make internals much better. Then MPX (Multi-Pointer X server) might be in Xserver 1.5 too (if all semantics issues get fixed first). It would mean support for multiple independent keyboard/mouse pairs or so. See the MPX page for details. Compositing Compositing still gets a lot of attention. Several distributions are actually thinking of enabling Compiz by default. EXA (the new acceleration architecture that has been designed for compositing) got improved a lot in Xserver 1.4. Several drivers including Intel and ATI r300 already work great with EXA (no need to use XAA + XAANoOffscreenPixmaps anymore) which means Compiz works very smoothly, even when resizing windows. XAA won't be removed soon though since lots of things needs to be fixed before that. There are also several videos available online, like this one. But one big piece is still missing for compositing: directed rendering to redirected windows. So far, if you start glxgears in Compiz, you will see that the gears completely ignore wobbli-ness of windows, other windows overriding them, cube rotation, ... they keep rendering of top of everything without any effect. Getting true support for compositing such windows requires lots of work in all parts of the DRI stack. Kristian H gsberg got it to work (and we even get a great demo). See Kristian's blog for details. Upstream devs are now working on integrating all modifications nicely in upstream Xserver, drivers, DRM module, Mesa, ... Once this works, you can get GLX_EXT_texture_from_pixmap for both direct and indirect rendering, and full support for GLX 1.4 in the server (only 1.2 is supported as of now). Also, redirected windows (let's say a wobbly window on a side of Compiz' cube) should get input events correctly thanks to input transformation in Xserver 1.5 (event coordinates will be converted into the redirected window coordinate space before being passed to the client application). Kernel-related reworks Compositing improvements actually require a large rework of the memory management in the server. Basically, we need a global management for both 2D and 3D object allocations, so that you can get both to work fine without having to change config options (things like XAANoOffscreenPixmaps or FbTexPercent). All this is related to the TTM (Translation Table Maps, see these slides for details) which has been under development for a while. It requires to change the interface with the kernel DRM modules, and it won't happen before 2.6.24. The Xserver part of the work is not big, so it might still be done before 1.5 is released. Fortunately, once all this is ready, people should stop complaining about memory allocation failures, Compiz being slow because one option is not enabled by default, ... Another hot topic in the X.org/kernel area is about moving modesetting in the kernel. When you get a kernel panic, you only actually see it if not running X (or if logging kernel messages through the network). So your machine freezes, you don't know why, you have no way to know, and you just reboot. Getting panic messages on X would be much better. To do so, the kernel needs to now which mode is currently in use on the monitor and then it will render the message on the framebuffer. This require lots of work, so it will unlikely be in Xserver 1.5 though. Miscellaneous Xserver 1.5 will also contain XACE (security framework), the cleanup of the ABI (explicit _X_EXPORT required), and possibly glucose (OpenGL acceleration for X, see Zack Rusin's blog). I asked whether there was actually some work on building the GLcore server module as a part of Mesa so that building Xserver does not require the whole Mesa source anymore. People seem to agree the current situation is a real pain for distributions and we should make this change happen. But the actual work has to be done in Mesa anyway, we'll see what happens.
(Permanent link) 

Russell Coker: Google Earth - Almost a Great Program

My mother just asked me to get Google Earth (link to download page [1]) working on her machine so she can see where my sister [2] lives. So I download all 20 megs of the sucker (of course it had a horrible license agreement that precludes packaging for Debian or any other sane distribution) and ran it (under a different account of course because I don’t trust non-free software). It’s unfortunate that Google weren’t prepared to put in the extra effort of making Debian and RPM packages for it. When I examined the contents of the file there were sym-links from FreeBSD, NetBSD, and OpenBSD to Linux and from amd64 and x86_64 to x86. So much for portability, just assume that everything is an i386 running Linux! The first problem I encountered is that it doesn’t support installing in text mode and demands X access, have the Google people never heard of sys-admins who do their work over low-bandwidth links and don’t use X? What happens if your sys-admin is using a braille terminal? When I enabled X by “ssh -X” I encountered the error below (Error 1). It seems that the installation program was not written with the X11 Security Restrictions in mind and only works with “ssh -Y“. The same applies to actually running the program once it’s installed. Finally it gave me a GNOME error dialogue about the Bitstream Vera Sans font not being installed. If they had made a Debian package then it could have depended on the package that provides the font in question. Now I’m left wondering which package provides it, and whether it’s even available (maybe they depend on non-free fonts). Once I got it working I found it to be incredibly slow on my Pentium-M laptop with 1.5G of RAM. I ran it on a Pentium-D desktop system in a Xen DomU (it’s only 32bit and I couldn’t figure out how to get the AMD64 version of Debian to run i386 programs without a chroot or a Xen instance). But it still wasn’t particularly fast. One problem is that the GUI is not well written, so I drag the Earth to rotate it from the initial view and the Earth moves slowly long after I have released my mouse button. Another is that my X server started using significantly more memory while it was running (and has not returned to it’s previous size). Google Earth is a really neat program that does some nice things. But I’m not going to buy a new Thinkpad to run it, and the experience of running it on a Pentium-D server is not that great either. I’ve just rm’d it from my laptop, I’ll leave it installed on the server but probably won’t run it often. I’ll try installing it on my mother’s computer (Celeron 2.4GHz with 512M of RAM) but I am not expecting it to run well. The machine is still new to her, I replaced her Pentium3 800MHz with 384M of RAM about a week ago. She never found the Pentium3 to be slow (and I don’t think that Google Earth is a good reason for an upgrade).
(more…)

9 September 2007

Christian Perrier: RWC: being in the stadium is magic

Today was the day we had tickets for *the* match of the day between South Africa and Samoa (59-7). Of course, the Springboks won this game after the Samoan players were exhausted of their battle after 60th minute. However, we really enjoyed a great game during 1st half (21-7) with solid play by RSA (without great vista, as usual, but, well, I'm not a Springboks fan) and ultra-solid defense by Samoa. And, well, as long as the Samoans have the ball in their hands, everything can happen, especially with Henry Tuilagi, impressive number 8, which has been acclaimed by the Parc des Princes public when finally quitting the game on 60th minute. Three great moments in the game: South-Africa is however much more organized, of course, and their attacks were terribly devastating sometimes, with Bryan Habana scoring 4 tries. They're however a little bit hesitating with the ball in hands and their defense wasn't *that* impressive. While writing this, I'm watching Scotland-Portugal (56-10) as we came back from the Parc des Princes. This game happens in St-Etienne, my home town. I imagine the noise and feast in town, where we still remember a famous Scotland-Morocco during Soccer WC 1998. Apparently, the Scots like St-Etienne. Apparently, Portugal resisted during about one half and they even scored a try and sometimes endangered Scotland. Good game by the Scots who can hope to qualify for 1/4th finals. Tonight, Ireland-Namibia. If we aren't too much rugbyfied, I'll watch even if the result is quite predictable. Both teams are in France's pool, so watching team will be interesting. And even now, 2h before the game, there are 25.000 Irish people in Bordeaux. Probably interesting noise over there. Another match today, which I didn't watch because we were on our way to the stadium: Wales-Canada (42-17). Canada was leading 12-7 on half-time and even 17-7 on 45th minute. So, well, not very brilliant for the Welsh. Finally, their most experienced players came back (S. Jones, Gareth Tholas and Collin Charvis) and they easily came back and overscored Canada...who never resigned and were very close to score again at the end of the game. Brilliant day and, believe us, watching rugby *in* the stadium is really a great experience (we don't do this often enough...).

Biella Coleman: The King of Kong: A Fistful of Quarters

I spent much of my early childhood at the video arcade. I was fortunate enough to have a best friend who 1) Lived in the old quarters of San Juan where you could walk everywhere 2) Had three older teenage sisters who would take us when we were still quite young to the arcade, which also doubled as a fantastic ice-cream parlor. My favorite game there was galaga, and I played it incessantly (and had to use a foot stool too!!) As a result of all that childhood gaming, I am still pretty half decent at it. For example, I more often than not beat my partner (except under less than auspicious conditions, like being sleep deprived), which is pretty unbelievable as he is much more of a video game wizard than I and otherwise beats me in everything.
Back in my first year in grad school, a cohort of us would play Galaga after our large theory class, and I would also always win (and by a lot and then get crushed at foosball). So of course when I heard that there was a documentary on the very genre of arcade games that consumed so much of my early childhood, King of Kong and a movie that was rumored to leave you at the edge of your seat (which seemed like an impossibility to me), I decided to fork over the cash and check it out in the movie theatre last night. And it was well worth every penny. The movie somehow managed to capture a story and set of subjective experiences that I think are incredibly hard to portray via film: the individual and social intimacy that comes with machine interaction. The story lines revolves around two very different characters who are masters at conquering one of the hardest video games in the world, Donkey Kong and are trying to clinch the world record. The tale of rivalry between them is really good in and of itself and probably without this drama, the movie would have not worked. But what I also found amazing was how the movie conveyed the persistence of the (older) game. They live on in the lives of individuals and collectives, despite the rise of a whole, new class of games that are much more popular today. I am not sure how much longer they will live on, or if the movie was also inadvertently portraying the rise and slow decline of an era that will, in another 50 years, become part of the archive of dead history. Whatever the case, if you had a loving relationship with these games (or your friends or parents did), check out the movie. It really has some incredible footage and moments and will make you want to run to that old arcade, once again.

8 September 2007

Russell Coker: ISP Password Change by Untrusted People

After dealing with Optus phone support [1] in regard to a routine request for a password change I have been thinking about better ways of managing password changes for a large ISP. The first criteria is that the user must have a password that is difficult to brute-force attack at all times. Changing a password to a supposedly temporary value that can be easily guessed (such as “changeme“) is never acceptable. The next criteria is that the help-desk operator should be trusted as little as possible and it would be ideal if they never knew the password. One possibility that occurred to me is that each bill could have a six-digit pseudo-random number printed on it. This number could be used as an alternate password. When a customer calls up because they lost their password they almost always have their last bill (this is why they print the number for phone support on each bill). The help-desk operator could then push a button on a web based form that makes this pseudo-random number be their new password, thus the help-desk operator would not know the new password and the user would also have it printed out clearly which avoids the confusion from having a password read out in a foreign accent. Another possibility is to have the password change infrastructure integrated with the CTI [2] system, then the help-desk operator could push a button and have the computer dictate the password without the help-desk operator being able to listen in. There will always be corner cases where a help-desk operator has to change the password, but if these are rare because the automated system handles most cases then the potential for damage would be limited. Of course it would also be a really good idea to do some statistical tracking of the number of password change requests performed by each operator and investigate those who do significantly more than average. In the past AOL has experienced a variety of security problems related to trojans [3] which probably would have been discovered by such analysis. Another possible option is that customers with mobile phones could have their new password sent to them by SMS. It’s quick, easy, cheap when done in bulk, and is much harder to intercept than most methods that might be used for transferring passwords. References:

  1. http://etbe.coker.com.au/2007/09/03/optus-password-changeme/

  2. http://en.wikipedia.org/wiki/Computer_telephony_integration

  3. http://www.wired.com/techbiz/it/news/2003/02/57753

7 September 2007

Michal &#268;iha&#345;: I like when things just work

Recently, after switching to open source drivers for my Nvidia card in notebook, I get possibility to have working suspend to disk (well suspend was always working, but the resume of screen was the problem). In same time, I enabled suspend to disk, when battery is getting really low in Gnome power management preferences. This night it saved me file system troubles - I let the notebook to do some calculations and forgot to connect it to power. So it ran few hours till the battery was down and then it just hibernated. When I noticed this on morning, I could just plug the power and the calculation can continue. Thanks to everybody who made this work.

Russell Coker: Duplicating a Xen DomU

A fairly common request is to be able to duplicate a Xen instance. For example you might have a DomU for the purpose of running Wordpress and want another DomU to run MediaWiki. The difference in configuration between two DomU’s for running web based services that are written in PHP and talking to a MySQL back-end is quite small, so copying the configuration is easier than a clean install. It is a commonly held opinion that a clean install should be done every time and that Kickstart on Red Hat, FAI on Debian and comparable technologies on other distributions can be used for a quick automatic install. I have not yet got FAI working correctly or got Kickstart working on Xen (it’s on my todo list - I’ll blog about it when it’s done). Regardless of whether it’s a good idea to copy a Xen DomU, there are often situations where clients demand it or when it’s impractically difficult to do a fresh install. I believe that the most sensible way to store block devices with Xen is to use LVM. It is a requirement for a Xen system that you can easily create new block devices while the machine is running and that the size of block devices can be changed with minimal effort. This rules out using Linux partitions and makes it unreasonably difficult to use LUNs on a fiber-channel SAN or partitions on a hardware RAID. LVM allows creating new block devices and changing the size of block devices with minimal effort. Another option would be to use files on a regular filesystem to store the filesystem data for Xen DomU’s, if choosing this option I recommend using XFS [1] filesystem (which delivers good performance with large filesystems and large files). If you use XFS to store the block devices for the DomU that you want to copy then you will need to halt the DomU for the duration of the copy as there is no other way of getting an atomic copy of the filesystem while it’s in use. The way of doing this would be to run the command “xm console foo ; cp /mnt/whatever/foo-root /mnt/whatever/bar-root ; xm create -c foo” where “foo” is the name of the DomU and “/mnt/whatever/foo-root” is the file that is used to store the root device for the DomU (note that multiple cp commands would be needed if there are multiple block devices). The reason for having the two xm commands on the one line is that you initially login to the DomU from the console and type halt and then the xm command will terminate when the DomU is destroyed. This means that there is no delay from the time the domain is destroyed to the time that the copy starts. If you use LVM to store the block device then things are a little easier (and you get no down-time). You simply run the command “lvcreate -s -L 300m -n foo-snap /dev/V0/foo-root” to create a snapshot with the device name /dev/V0/foo-snap which contains a snapshot the of the LV (Logical Volume) /dev/V0/foo-root. The “-L 300m” option means to use 300Meg of storage space for the snapshot - if the writes to /dev/V0/foo-root exceed 300Meg of data then your snapshot breaks. There is no harm in setting the allocated space for the snapshot to be the same as the size of the volume that you are going to copy - it merely means that more disk space is reserved and unavailable for other LVM operations. Note that V0 needs to be replaced by the name of the LVM VG (Volume Group) Once you have created the snapshot you can create a new LV with the command “lvcreate -n new-root -L X /dev/V0” where X is the size of the device (must be at least as big as the device you are copying) and then copy the data across with a command similar to “dd if=/dev/V0/foo-snap of=/dev/V0/new-root bs=1024k“. After the copy is finished you must remove the snapshot with the command “lvremove /dev/V0/foo-snap” (please be very careful when running this command - you really don’t want to remove an LV that has important data). Note that in normal operation lvremove will always give a prompt “Do you really want to remove active logical volume“. If you made the new device bigger then you must perform the operations that are appropriate for your filesystem to extend it’s size to use the new space. There is no need to copy a swap device, it’s easier to just create a new device and run mkswap on it. After copying the data you will need to create the new Xen config (by copying /etc/xen/foo to the new name). Make sure that you edit the Xen config file to use the correct block devices and if you are specifying the MAC address [2] by a “vif” line in the config file make sure that you change them to unique addresses for your LAN segment (reference [2] has information on how to select addresses). Now you must mount the filesystem temporarily to change the IP address (you really don’t want two DomU’s with the same IP address). If your Dom0 has untrusted users or services that are accessed by untrusted users (IE any Internet facing service) then you want to mount the filesystem in question with the options nosuid and nodev so that if the DomU has been cracked it won’t allow cracking of the Dom0. After changing the configuration files to change the IP address(es) of the DomU you can then umount the filesystem and start it with the xm create command. If instead of creating the clone DomU on the same Dom0 you want to put it on a different system you can copy the block devices to files on a regular filesystem on removable media (EG an IDE disk with USB attachment). When copying the block devices you also need to copy the Xen configuration and edit it to reflect the new paths to block devices for the data once it’s copied to the new server, but you won’t necessarily need to change the MAC address if you are copying it to a different LAN segment. References:
  1. http://en.wikipedia.org/wiki/XFS

  2. http://en.wikipedia.org/wiki/MAC_address

6 September 2007

Mark Brown: How many Debian users?

Some people at DebConf 7 were (like Mario) wondering how many users Debian has. They realised that while we have a distributed mirror network we do have all installed systems use security.debian.org by default and we do have control over that. Since apt will only download files when they have been changed we can make a minimal estimate by looking at the number of downloads of the release files while they remain unchanged. Obviously, this will only be a minimum - for example, some users won’t have network access, some users will use caching proxies or local mirrors - but it’s a start. Unfortunately I can’t actually remember the numbers they came up with but perhaps someone could enlighten us.

Alexis Sukrieh: French Perl Workshop 2007

There is going to be a Perl event in Lyon, France during November : The French Perl Workshop 2007 . I’ve submitted two talks, that have been approved today: I was thinking of a talk about the Debian packaging of Perl modules. That could be interesting to enlight how Perl libraries are packaged, how one can build his own package for a random module and so on.
This would be a talk designed for Perl developers under Debian. Would be great to do that with a member of the Debian Perl Group. If you’re interested, feel free to contact me so we can coordinate our efforts. Other talks are listed on that page.

Andrew Pollock: [life] fork failed: unlucky

The short story: we lost the baby. "Cord accident". The long story: Sarah woke me up at about 2:30am on Tuesday morning in a panic because she'd woken up herself at about 2am, and realised that she hadn't felt the baby move since about 8am the previous day. I had a quick feel, but couldn't feel anything like his usual vigorous kicking, and eager to put her mind at rest, called Labor an Delivery at Lucile Packard Children's Hospital to see if we could come in. They said we could, so we jumped in the car and got there at about 3:25am. They hooked up Sarah to a fetal heart monitor, but after anxious minutes, they couldn't pick up anything, so they got out the ultrasound machine. It was pretty obvious from that that there was no movement. We'd lost him. So from about 4am onwards, we, well, tried to come to grips with the fact that we'd lost our baby. That we'd been robbed, 13 days from the finish line, and that we weren't going to be bringing a baby home to all the stuff we had ready for him there. The doctors briefly mulled over whether to have a C-section to deliver Joshua, as was the plan, or induce. Apparently it's psychologically better for the mother if she delivers naturally, since she doesn't have the constant reminder for 6+ weeks while she recovers from the C-section. However, the doctors decided that as nothing had really changed from a delivery point of view, and they wanted to do a C-section for reduced strain on Sarah's heart, they opted for a C-section. They managed to get a free operating room slot in the Stanford ORs, so they transferred Sarah over there, and they started performing the surgery at about 10am. Joshua was delivered sometime around 10:15am. I got to see him and hold him while we were still in the OR. He was perfect. 4 pounds 12 ounces. He didn't look that small. We were wondering if he was going to make 5 pounds or not. Maybe he would have by the 17th. I brought him around to show Sarah while she was still on the table, but it was hard to get him up to a good position that she could see him from, and she was a bit zonked out from all of the drugs. They finished up at about 10:45am, and took her to the recovery room, where they didn't really want me, so one of the nurses from Labor and Delivery took me back to Lucile Packard, to spend some time with Joshua. There she let me hold him for a while, and look at him, and take some photographs. Then she weighed him and measured him, and took some more photographs. The nurse was really compassionate about the whole thing, and it felt like we were there for a good couple of hours, which was good, because apparently Lucile Packard and Stanford don't really inter-operate very well, and whilst physically transferring a patient just involves wheeling them down a corridor, getting all the paperwork sorted out is a completely different story. So while Sarah was only supposed to spend an hour in recovery, she spent three hours there, because they were waiting on paperwork to release her, then waiting on a room to be available, then the right people weren't talking to each other, so they didn't know they didn't know that a room was available from midday. I forget what time we actually got out of recovery. The doctors, being the overcautious bunch of people that they are, wanted to keep Sarah in the Cardiac Surveillance Unit for 24-48 hours so they could check on her vitals post-delivery. They let us out of there late today. We're currently in a general ward. I thought they said it was for gynaecology patients (they didn't think it'd be terribly considerate to stick us in with all the other recovering mothers and their babies), but there's some male patients in here too, so I'm not sure what this ward is. In terms of coming to grips with things, they brought Joshua up to our room for pretty much as long as we wanted yesterday, and Sarah was more with it by then, so she could hold him, and we could take more photographs. It's been really hard. I was awake from when Sarah woke me up in the morning until about 10pm that night. Fortunately I was able to get a cot in the room with Sarah, so I could stay the night there. I'm staying here tonight as well. The obstetrician that delivered Joshua said that his umbilical cord was wrapped around his neck twice and once around his body, and was pretty tight around his neck. They can't say for sure that that's what happened, but it's a good enough explanation for us, and we're not going to have the little guy cut up for an autopsy, which may not tell us anything anyway. So we're taking some small comfort from the fact that we're able to make a healthy looking baby, and that Sarah's heart performed fine throughout the pregnancy and delivery, and that this was just one of those so very unlucky accidents. Apparently babies get their umbilical cords wrapped around their necks all the time, and most of the time it's not a problem. So we know that he didn't have any birth defects, and it wasn't because of something Sarah ate, or because Sarah got sick or anything. It's just plain bad, rotten luck. We'll most probably try again, but the next pregnancy is going to be hell. It'll be like walking on egg shells the entire time. Clearly, your baby isn't out of the water until he's screaming in the delivery room. There's a lot more I want to write, but I also want to get this finished and get some sleep, so here's a brain dump of what's been going through my head for the last 48 hours: We've been very grateful for the near endless stream of visitors, phone calls and SMSes, and flowers. It's helped us not dwell on things, especially given all of our family is so far away. Sarah's Mum, who was going to arrive in 5 weeks, is now arriving on Friday, so that'll be good for Sarah. Sarah will hopefully be discharged on Friday or Saturday. We're planning on cremating Joshua, as it just doesn't seem right to bury him over here and then someday move back to Australia and leave him all alone. Current thinking is we won't have a funeral service. Here's what I emailed to the people we were going to send the birth announcement to:
Hi everyone, It is with heavy hearts, that we have to tell you that rather than announcing Joshua's birth on the 17th of September, we have to say that yesterday, we learned that we lost him, 13 days before he was to be delivered. Sarah woke me yesterday morning at about 2:30am, because she'd woken up at about 2am, and realised that she hadn't felt Joshua moving since about 8am the previous day. She tried a few things to get him moving, but they didn't work, so we hurried into Labor & Delivery at the Lucille Packard Children's hospital. There, they confirmed the worst, no heartbeat. Yesterday morning at about 10am, Sarah had a c-section so the doctors could deliver little Joshua. He was absolutely perfect, weighing in at 4 pounds 12 ounces (2.15 kilograms) and 26.7 centimetres (10.5 inches). Yesterday was a very long day. Sarah is currently recovering in the Cardiac Surveillance Unit (CSU) of Stanford Hospital (her aorta has been absolutely fine, the doctors are just being their usual cautious selves). It's a little bit up in the air as to whether she'll spend the entirety of her recovery in the CSU, or if she'll be transferred back to the Post-Partum area of Lucille Packard after 24 hours. (We hope that she does get transferred back, as the CSU isn't really used to dealing with post-c-section patients, particularly ones that have lost the baby). The obstetrician that delivered Joshua said that his umbilical cord was wrapped around his neck twice, fairly tightly, and once around his body. So whilst we'll never know for sure, it looks like it was a cord accident. That's a good enough explanation for us, so we're not going to have him autopsied. That's about all I can report at the moment. If you'd like to speak to Sarah, you can either call home and I'll try to keep Sarah's extension forwarding to her hospital room, or you can call my cell phone. I've got it on vibrate all of the time, and I'll answer if we're not in the middle of something. If you're calling from Australia, my extension at home will let you connect to my cell phone. If you're local, and would like to visit, we'd love to see you, just call ahead to check where we are. It's going to be hard, but we'll get through this.

Next.

Previous.