Search Results: "zed"

18 February 2009

Jon Dowland: mml

Some time ago, I wrote some quick-and-dirty greasemonkey javascripts to parse plain text bodies of mail messages and mark up things such as quotes, so you could collapse/expand them, colour quotes differently depending on depth, etc. As a result of that experience and countless flamewars about top vs. bottom posting, I've often thought that a markup language specifically designed for email was a good idea. top/bottom posting could be a presentation decision of the client; you could GPG-verify quoted mail; conventions like 'Re:' could be internationalized, again on the client side, etc. This morning I discovered Mail Markup Language which is exactly that. Unfortunately, it appears to have some outright bizarre features. The RFC draft describing it is enormous, including a full XSLT description of the markup language (and not in an appendix either); a legal preface claiming that the entire thing was patent pending (and using a subset of MML would be considered patent infringement); it claimes to obsolete 1939, 3501, 5322, which are POP3, IMAP4r1, and Internet Message Format respectively. You shouldn't judge a book by it's cover, but the fact their website displays awfully for me (epiphany 2.22.x) did prepare me somewhat for the zaniness that followed.

17 February 2009

Gunnar Wolf: Yay for Lenny! (But nay for installation media)

Yay! This blog post is not strictly speaking news anymore - But for those who don't know it yet, three days ago Debian 5.0 Lenny was released, after 22 months of work (plus fun, plus flamewars, plus everything that makes a Free Software lover tick). And, of course, that makes us all very happy and proud. As always, upgrading is a breeze. Hats off specially to Wolfgang and everybody who worked towards the great release notes - No, it is not a simple task, by far. And I _do_ feel ashamed I didn't even beep that way :-( So, many of us are in the middle of planning/executing our servers' migrations. So far, I'm amazed for good. Even hairy issues such as firmware removal are magically and beautifully taken care of - i.e. my firewall kindly informed me during update that I would need to install the non-free firmware for my BNX2 (Broadcom) network interfaces, and I was just a package away from absolute happiness. Lets see what happens next Friday, as I will be upgrading our storage+application server (which is _way_ more complex than the servers I've dealt with so far). Anyway... But what good is a blog post if you are not ranting? Many people recognize me as one of the most Debian-connected people in Mexico, and that's very good. And yes, besides being a Debian Developer, I am a co-sysadmin for the main Debian mirror in Mexico. Some people have already asked me for CD-ROMs and DVDs. Of course, if I had a BluRay drive, I'm sure I'd also get requests for it. People: Do you really want such media? Think again... Do you really want 31 CDs or five DVDs for your favorite architecture? Ok, maybe many will say "nah, just give me the first one" - Then, do you want to limit your Debian experience to just the software that lives on the first 1/31th (or 1/5th) of it all? Of course there are many situations where it is desirable. Low bandwidth users, or people with no regular connectivity, will be much better served by suitable media from which to install. However, most of us (computer geeks living in Mexico City - Yes, that's the people contacting me) have at least a 1Mbps connection at home. People, just get the Netinst or Businesscard (180 or 40MB) images and download whatever is left via the network. Debian is extremely network-friendly. And, believe me, even if packages are sorted by popularity (and that's why most people will be happy with the first DVD if needed), you never know if you will want precisely a package that sits towards the lonely tail of popularity. And, yes, I did have my CD images handy for the Potato, Woody and Sarge cycles - but increasingly, it became easier for me just to ask apt-get to fetch stuff from the web (which is done without me moving from my comfy chair while I do anything else) than asking apt-get to ask me to go search for the f.*ing CD which I left dont-remember-where. Anyway... I'm not saying I won't burn your CDs - If you want them, please tell me in advance and come to my office, I'll be glad to give you some Debian disks. But spare the environment. We don't need to burn more and more disks. Use the network, be a better human being!

15 February 2009

Michael Prokop: Debian GNU/Linux 5.0 codename Lenny - News for sysadmins

Alright, Debian GNU/Linux 5.0 AKA as Lenny has been released. Time for a Debian unstable unfreeze party! 8-) What does the new stable release bring for system administrators? I ll give an overview what news you might expect when upgrading from Debian GNU/Linux 4.0, codename Etch (released on 8th April 2007) to the current version Debian GNU/Linux 5.0, codename Lenny (released on 14th February 2009). I try to avoid duplicated information so make sure to read the release announcement and the official release notes for Lenny beforehand. Noteworthy Changes Virtualisation Virtualisation related new tools: Desktop oriented packages like virtualbox and qemu are available as well of course. Noteworthy Updates This is a (selective) list of some noteworthy updates: New packages Lenny ships over 7000 new packages. Lists of new/removed/replaced packages are available online. I ll name 238 sysadmin related packages that might be worth a look. (Note: I don t list addon stuff like optional server-modules, docs-only and kernel-source related packages. I plan to present some of the following packages in more detail in separate blog entries.) Further Ressources

Riku Voipio: obligatory lenny post


In practice for me, this that I finally had to setup stable buildd chroots for armel (ya!). This makes the Debian the first general purpose distribution to release with a ARM EABI port. Thanks for everyone who made this happen, even when the naysayers were claiming that Debian would be too inflexible for another arm port! The list of people who made this possible is simply too long to include in a blog post, and I'm afraid I would still forget someone...

For squeeze, I hope we can keep the name as the release theme and squeeze minimal Debian install into smaller disk and memory than what it takes with lenny :) For more specific squeeze plans on the armel port, we are looking at least into providing optimized versions of various libs (using HWCAP feature) and extending the amount of hardware supported. Not ARM-related directly, but I'd really like to see #206684 fixed finally.

Bernd Zeimetz: migrating to ikiwiki

Hi Planet Debian! After being away from the planet for more than a year now, I'm finally back :) My plan to migrate to ikiwiki got postponed a lot of times as I had more important things to do. The migration of the content of my old wiki is still not complete, but I hope to finish that soon. Why I've migrated away from Dokuwiki? Mainly because I really prefer to have a git backend and being able to add content with vim. The other reason is that php sucks. Dokuwiki really rocks otherwise, and I'll keep recommending it to the not-so-geekish people. Be prepared to see more posts from me soon :) In the meantime it would be great if you'd tell me if therere CSS problems somewhere, I've tested it with Iceweasel only. Thanks in advance!

11 February 2009

Russ Allbery: pam-krb5 3.13

This is a security release fixing privilege escalation and local file overwrite vulnerabilities in all previous versions. All users of my pam-krb5 module should upgrade as soon as possible. Derek Chan discovered and Steven Luo reported a vulnerability that allowed overwrite and chown of arbitrary files via Solaris su. Subsequent investigation revealed another, more general problem that would allow tricking pam-krb5 into thinking that Kerberos authentication succeeded with a password under the control of the attacker. This release fixes both problems (CVE-2009-0360 and CVE-2009-0361). See the security advisory for all the details. I feel particularly bad about the more general vulnerability since there was a BUGTRAQ discussion about the underlying cause (needing to use krb5_init_secure_context with MIT Kerberos instead of krb5_init_context) back in 2007 around sudo. I should have realized the implications at the time. Debian, Ubuntu, and Gentoo are affected. I prepared fixed patches for Debian stable, testing, and unstable for both libpam-krb5 and libpam-heimdal, and the Debian security advisories should follow mine shortly. This release also has some build system and installation path fixes by Peter Breitenlohner and support for another Heimdal error reporting interface, thanks to Chaskiel Grundman. You can get the latest release from the pam-krb5 distribution page.

Lior Kaplan: Working for Free? Motivations of Participating in Open Source Projects


I ve been asked to summarize an article by Alexander Hars & Shaosong Ou about motivations of participating in open source projects written in 2000 for a psychology course. It was very interested to see how many things can motivate one to invest in open source. Although none of the motivators was new to me, I still found the article very interesting. In fact, during the presentation of the article to the class I added my point of view and the reasons I participate in open source. I realized that, although not intentionally, I enjoyed every motivator mentioned in the article, except selling related products and services . It would be quite interesting to have this article done again, as the open source world became bigger and has more payed people working on free software. Any volunteers ? Posted in Debian GNU/Linux, Fedora, Mozilla, Openoffice.org, Red Hat Enterprise Linux, Ubuntu Tagged: motivation

8 February 2009

Uwe Hermann: List of my Creative Commons licensed photos being used elsewhere

As you may know I maintain a Creative Commons licensed photoblog at my website. I'm also cross-posting some of the better photos to my flickr page. Even with my humble, and not really widely-known little photoblog, you can already see the Creative Commons license's effects on media sharing and remixing/reusing kick in. Quite a number of my photos have already been used by other people for various different purposes (blogs posts, articles, even album covers), including some of the "bigger" sites such as the Wall Street Journal Blog or Cult of Mac... Here's the list of places I know of where my photos are used. Please leave a comment if you spot more of them in the wild. I intend to keep this list updated as more of my photos appear elsewhere. (Oh, and I have no idea why people seem to be so obsessed with my "Sugar" photo...) Sugar Sugar
Clock Clock
Autumn Leaf Autumn Leaf
Scissors Scrissors
Soccer World Championship 2006 Soccer World Championship 2006
Organized Organized
Dandelion Dandelion II
Intel Celeron CPU Intel Celeron CPU
Smoke Smoke
Sun and trees Sun and Trees
POSIX.1g Posix.1g

Ian Wienand: Converting DICOM images

If you go for an ultrasound or some other imaging procedure, they may give you a CD with the images that requires some overly complicated and under-featured Windows viewer. Chances are these images are in DICOM format, which is like the AVI of the medical world. Your first clue will be that file might report the file as an unoptimised QuickTime movie, e.g.
$ file ./QMAG0001
./QMAG0001: Apple QuickTime movie (unoptimized)
After figuring out the file type wasn't actually anything to do with QuickTime, I tried some of the many different tools and methods to convert this to something viewable. Unfortunatley, the DICOM viewer in GIMP and ImageMagick (probably the same thing?) didn't like the files at all, and neither did a range of other tools. I finally managed to do it with the dcm2pnm tool from the Debian dcmtk package -- just point it at the file and it spits out a PNM which is easily converted by all graphics tools. You can also encapsulate a series of images in a DICOM file, like a little movie. dcm2pnm extracts these easily, but requires the --all-frames options. An ffmpeg recipe to turn these extracted files into a more easily viewable movie is:
$ ffmpeg -qscale 5 -r 20 -b 9600 -i foo.%d.ppm movie.mp4
I certainly can't guarantee this will actually work for you, as DICOM appears to be an extremely complicated format with many possible vendor extensions. But hopefully it's a starting point!

7 February 2009

Pablo Lorenzzoni: GitHub saving space?

I was browsing GitHub, getting to know the system and feeling pretty amazed by it (seriously I felt I discovered Orkut for developers)... when some thought just stroke me: how do they save space? Yes, I know git is pretty efficient when it comes to saving space. Yes, I also know that space are becoming cheaper with time, but still, they claim to have +50k developers hooked up their servers if they re not doing something about space, things will go inefficient quite quickly. Rails alone seems to have 464 forks! If all of them represent one bare clone of the canonical repository on GitHub s side, that is a lot of space wasted in duplicated things Git has one amazing feature: hashing the objects it keeps track of. It surely doesn t seem too complicated to design a schema that avoids having two copies of objects with the same hash. So all those forks of Rails, on GitHub s side, would be just hardlinks to the canonical repository Surely people working in GitHub are smart enough to have though about it on their own Who knows? Maybe that s exactly what they re doing already! If so, can I ask them to share their schema, since it can become very useful to the rest of us? If not, can we beat them ;-D?

6 February 2009

Biella Coleman: Viral Power

So I know, I know. There are a lot of annoying memes circulating on the net/facebook/[pick your spot] and well, sometimes the best thing to do is stop the damn thing by ignoring its existence. But I have to say, I have completely, totally and absolutely have loved reading the 25 things notes on facebook. It just provides a window into the extraordinary character that emerges from the collection of mundane events/likes/pleasures that make up people s lives. Reading them took me back to elementary school when and where I was an avid slam-booker. I have very fond of collecting and reading the tidbits of thoughts and information people left behind in my notebook. What also struck me about these recent 25 thingie notes is how odd or not as interesting, I think, it would be to have them recited to you over coffee or at dinner. Now I could be wrong here but I think the list-like quality would just not fly in a conversational context. A few facts with more embellishment would work but a whole string of thoughts would just sound flat and out of place. A reminder that format does matter for engendering certain types of knowledge. So here is my list.. 1. I looked like a boy for the first three years of my life (but a cute one, I think).
2. I love dogs so much that I often think that if I had a criminal streak, I would be a dog nabber.
3. I would routinely bring home dogs from the street when I was a kid. Many of them ended up dead after being hit by cars (they liked to return to the street and this only happened to 2 of them).
4. My favorite concert was Jimmy Cliff in a parking lot. There was lots of rain and lots of weed.
5. I like have a penchant for tall men. My mom claims it was because I lacked a strong father figure in my early childhood years. Who knows if that is the case.
6. I knew the instant that I took an anthropology class I wanted to be an anthropologist. I guess I made it happen (and it was one of the few moments of clarity in life).
7. I started the first environmental club in my high school and my car was called the recycle-mobile because there were always cans in the back seat.
8. I love the ocean; swimming, snorkeling, diving, sailing, and just watching it, though the cold ocean is not always by cup of tea.
9. I had terrible insomnia for a year and slept for a good chunk of it on a couch. I like the snuggle feeling I got from sleeping against a back.
10. I am very indecisive person. It is annoying as i tend to worry a lot about whether I made the right decision.
11. I was a shy kid and barely talked until meeting my best friend in kindergarten, Yael
12. I also failed the psychological test to get into school but my mom managed to get me in anyway.
13. I often wonder if I would have been a nun if I had lived prior to 1900s to escape various domestic obligations. I think it might have been fun to be a nun.. Fun to be a nun also has a nice ring to it.

14. I am currently struggling with an Etsy addiction and the UPS delivery guy asked if delivering packages would be a daily occurrence.. I just find all the stuff amazing and it brings me back to my artist days when I used to paint and spend a heck of a lot of time in the darkroom.
15. I have recurrent issues with nausea and have been hospitalized for it a few times. It is gut wrenching and really uncomfortable when it happens.
16. When I left NYC in 1997 I thought i would never come back. I am here now and quite happy.
17. I was obsessed with Ultimate Frisbee for many man years. I played more than I studied and finally gave up as it was ruining (or perhaps ruined?) my neck. I still miss it.
18. I LOVE tostones and would eat them everyday if they were not, you know, so bad for you.
19. I have been using IRC for 7 years and consider some of my best friends to come from there.
20. Some folks have asked how I became interested in politics and I am pretty sure it was Doonesbury.
21. When I was like 4 we went to some fair and I swore that I almost got flung off some rickety ride but this could be totally wrong. It was really frightening.
22. The coldest night of my life was spent in Los Nevados, Venezuela and the scariest car ride I ever took was leaving Los Nevados in a jeep and something that resembled a road.
23. A few sucker fish once tried to stick on me while I was doing a decompression stop after a dive. My dive buddy smacked the fish, which had devil faces, with the regulator, saving me from what would have been a really sort of sucky situation.
24. I am trying to learn how to surf and am really sorry that I did not do so when a teenager since I don t exactly have the time to really learn.
25. Since I am not sure how to end, I will do so with a :-)

Biella Coleman: Viral Power

So I know, I know. There are a lot of annoying memes circulating on the net/facebook/[pick your spot] and well, sometimes the best thing to do is stop the damn thing by ignoring its existence. But I have to say, I have completely, totally and absolutely have loved reading the 25 things notes on facebook. It just provides a window into the extraordinary character that emerges from the collection of mundane events/likes/pleasures that make up people s lives. Reading them took me back to elementary school when and where I was an avid slam-booker. I have very fond of collecting and reading the tidbits of thoughts and information people left behind in my notebook. What also struck me about these recent 25 thingie notes is how odd or not as interesting, I think, it would be to have them recited to you over coffee or at dinner. Now I could be wrong here but I think the list-like quality would just not fly in a conversational context. A few facts with more embellishment would work but a whole string of thoughts would just sound flat and out of place. A reminder that format does matter for engendering certain types of knowledge. So here is my list.. 1. I looked like a boy for the first three years of my life (but a cute one, I think).
2. I love dogs so much that I often think that if I had a criminal streak, I would be a dog nabber.
3. I would routinely bring home dogs from the street when I was a kid. Many of them ended up dead after being hit by cars (they liked to return to the street and this only happened to 2 of them).
4. My favorite concert was Jimmy Cliff in a parking lot. There was lots of rain and lots of weed.
5. I like have a penchant for tall men. My mom claims it was because I lacked a strong father figure in my early childhood years. Who knows if that is the case.
6. I knew the instant that I took an anthropology class I wanted to be an anthropologist. I guess I made it happen (and it was one of the few moments of clarity in life).
7. I started the first environmental club in my high school and my car was called the recycle-mobile because there were always cans in the back seat.
8. I love the ocean; swimming, snorkeling, diving, sailing, and just watching it, though the cold ocean is not always by cup of tea.
9. I had terrible insomnia for a year and slept for a good chunk of it on a couch. I like the snuggle feeling I got from sleeping against a back.
10. I am very indecisive person. It is annoying as i tend to worry a lot about whether I made the right decision.
11. I was a shy kid and barely talked until meeting my best friend in kindergarten, Yael
12. I also failed the psychological test to get into school but my mom managed to get me in anyway.
13. I often wonder if I would have been a nun if I had lived prior to 1900s to escape various domestic obligations. I think it might have been fun to be a nun.. Fun to be a nun also has a nice ring to it.

14. I am currently struggling with an Etsy addiction and the UPS delivery guy asked if delivering packages would be a daily occurrence.. I just find all the stuff amazing and it brings me back to my artist days when I used to paint and spend a heck of a lot of time in the darkroom.
15. I have recurrent issues with nausea and have been hospitalized for it a few times. It is gut wrenching and really uncomfortable when it happens.
16. When I left NYC in 1997 I thought i would never come back. I am here now and quite happy.
17. I was obsessed with Ultimate Frisbee for many man years. I played more than I studied and finally gave up as it was ruining (or perhaps ruined?) my neck. I still miss it.
18. I LOVE tostones and would eat them everyday if they were not, you know, so bad for you.
19. I have been using IRC for 7 years and consider some of my best friends to come from there.
20. Some folks have asked how I became interested in politics and I am pretty sure it was Doonesbury.
21. When I was like 4 we went to some fair and I swore that I almost got flung off some rickety ride but this could be totally wrong. It was really frightening.
22. The coldest night of my life was spent in Los Nevados, Venezuela and the scariest car ride I ever took was leaving Los Nevados in a jeep and something that resembled a road.
23. A few sucker fish once tried to stick on me while I was doing a decompression stop after a dive. My dive buddy smacked the fish, which had devil faces, with the regulator, saving me from what would have been a really sort of sucky situation.
24. I am trying to learn how to surf and am really sorry that I did not do so when a teenager since I don t exactly have the time to really learn.
25. Since I am not sure how to end, I will do so with a :-)

Biella Coleman: Viral Power

So I know, I know. There are a lot of annoying memes circulating on the net/facebook/[pick your spot] and well, sometimes the best thing to do is stop the damn thing by ignoring its existence. But I have to say, I have completely, totally and absolutely have loved reading the 25 things notes on facebook. It just provides a window into the extraordinary character that emerges from the collection of mundane events/likes/pleasures that make up people s lives. Reading them took me back to elementary school when and where I was an avid slam-booker. I have very fond of collecting and reading the tidbits of thoughts and information people left behind in my notebook. What also struck me about these recent 25 thingie notes is how odd or not as interesting, I think, it would be to have them recited to you over coffee or at dinner. Now I could be wrong here but I think the list-like quality would just not fly in a conversational context. A few facts with more embellishment would work but a whole string of thoughts would just sound flat and out of place. A reminder that format does matter for engendering certain types of knowledge. So here is my list.. 1. I looked like a boy for the first three years of my life (but a cute one, I think).
2. I love dogs so much that I often think that if I had a criminal streak, I would be a dog nabber.
3. I would routinely bring home dogs from the street when I was a kid. Many of them ended up dead after being hit by cars (they liked to return to the street and this only happened to 2 of them).
4. My favorite concert was Jimmy Cliff in a parking lot. There was lots of rain and lots of weed.
5. I like have a penchant for tall men. My mom claims it was because I lacked a strong father figure in my early childhood years. Who knows if that is the case.
6. I knew the instant that I took an anthropology class I wanted to be an anthropologist. I guess I made it happen (and it was one of the few moments of clarity in life).
7. I started the first environmental club in my high school and my car was called the recycle-mobile because there were always cans in the back seat.
8. I love the ocean; swimming, snorkeling, diving, sailing, and just watching it, though the cold ocean is not always by cup of tea.
9. I had terrible insomnia for a year and slept for a good chunk of it on a couch. I like the snuggle feeling I got from sleeping against a back.
10. I am very indecisive person. It is annoying as i tend to worry a lot about whether I made the right decision.
11. I was a shy kid and barely talked until meeting my best friend in kindergarten, Yael
12. I also failed the psychological test to get into school but my mom managed to get me in anyway.
13. I often wonder if I would have been a nun if I had lived prior to 1900s to escape various domestic obligations. I think it might have been fun to be a nun.. Fun to be a nun also has a nice ring to it.

14. I am currently struggling with an Etsy addiction and the UPS delivery guy asked if delivering packages would be a daily occurrence.. I just find all the stuff amazing and it brings me back to my artist days when I used to paint and spend a heck of a lot of time in the darkroom.
15. I have recurrent issues with nausea and have been hospitalized for it a few times. It is gut wrenching and really uncomfortable when it happens.
16. When I left NYC in 1997 I thought i would never come back. I am here now and quite happy.
17. I was obsessed with Ultimate Frisbee for many man years. I played more than I studied and finally gave up as it was ruining (or perhaps ruined?) my neck. I still miss it.
18. I LOVE tostones and would eat them everyday if they were not, you know, so bad for you.
19. I have been using IRC for 7 years and consider some of my best friends to come from there.
20. Some folks have asked how I became interested in politics and I am pretty sure it was Doonesbury.
21. When I was like 4 we went to some fair and I swore that I almost got flung off some rickety ride but this could be totally wrong. It was really frightening.
22. The coldest night of my life was spent in Los Nevados, Venezuela and the scariest car ride I ever took was leaving Los Nevados in a jeep and something that resembled a road.
23. A few sucker fish once tried to stick on me while I was doing a decompression stop after a dive. My dive buddy smacked the fish, which had devil faces, with the regulator, saving me from what would have been a really sort of sucky situation.
24. I am trying to learn how to surf and am really sorry that I did not do so when a teenager since I don t exactly have the time to really learn.
25. Since I am not sure how to end, I will do so with a :-)

4 February 2009

Ian Wienand: NoMachine NX - the missing non-manual

I've been meaning to try NoMachine NX for a while. Its promise of fast remote X11 sessions sounded exactly like what I wanted to log into my work desktop remotely (I really like having a remote desktop with saved state you can just pick up from when using remote access). That was pretty much all I knew about the software, so I was a completely blank slate. The getting started guide is the perfect example of how not to write a getting started guide. Firstly, Section 1 - "Getting started" - gives me a full history of the product, goes into significant depth about the challenges of forwarding X11 requests, talks about the caching and compression implementation, round-trip latency measurement, the details of two-way proxying system and discusses every other feature of the software. My eyes glazed over after about the first paragraph. That's all great -- I just want to know what to do! At this point, I assume that I'm required to run some sort of daemon at the remote end. I download and install the server package (it is explained that the server package requires the client and agent packages as well, fine). I'm paging down, looking for something to get me started. I'm happy to see Section 7 - "Set up your NX Server environment" (remember, at this point I though I needed some daemon running in the background constantly). It even has some commands commands to type, so I tap away, running nxserver --useradd nxtest --system. My server binary doesn't even seem to recognise these options. I give up, assuming that the server isn't running and nothing will work. The getting started guide has abruptly ended and I have no idea what to do. As it turns out, it's all completely trivial. Here's the missing "getting started guide". Additional tips: Other than the documentation, it really works as promised, making remote X11 usable. One really nice feature is that it is smart about the resolution of the remote desktop, filling up your local screen. Add to that you don't need anything setup but your normal ssh connection, and it's a great remote desktop solution.

3 February 2009

David Bremner: source-highlight and oz

In order to have pretty highlighted oz code in HTML and TeX, I defined a simple language definition "oz.lang"
keyword = "andthen at attr case catch choice class cond",
          "declare define dis div do else elsecase ",
          "elseif elseof end fail false feat finally for",
          "from fun functor if import in local lock meth",
          "mod not of or orelse prepare proc prop raise",
          "require self skip then thread true try unit"
meta delim "<" ">"
cbracket = " "
comment start "%"
symbol = "~","*","(",")","-","+","=","[","]","#",":",
       ",",".","/","?","&","<",">","\ "
atom delim "'" "'"  escape "\\"
atom = '[a-z][[:alpha:][:digit:]]*'
variable delim " " " "  escape "\\"
variable = '[A-Z][[:alpha:][:digit:]]*'
string delim "\"" "\"" escape "\\"
The meta tags are so I can intersperse EBNF notation in with oz code. Unfortunately source-highlight seems a little braindead about e.g. environment variables, so I had to wrap the invocation in a script
#!/bin/sh
HLDIR=$HOME/config/source-highlight
source-highlight --style-file=$HLDIR/default.style --lang-map=$HLDIR/lang.map $*
The final pieces of the puzzle is a customized lang.map file that tells source-highlight to use "oz.lang" for "foo.oz" and a default.style file that defines highlighting for "meta" text.

2 February 2009

David Moreno: And now Apache2::EmbedMP3 for your songs collections!

After I spent time working on Apache2::EmbedFLV, I thought it was a good idea to do the same for audio files, specifically MP3 files. So now that you have your MP3 files on your web server and they are accessible to the world, you may want to show them with an embedded audio player. Well, Apache2::EmbedMP3 is exactly for you! EmbedMP3 uses the fabulous WP Audio Player, a small, elegant, GPL Flash audio player, similarly to how Apache2::EmbedFLV uses Flowplayer. The interesting thing about EmbedMP3 is that you can display more interesting data on the template such as song name, artist, album, year and also lyrics, which was an interesting feature I added. In this fashion, it s very easy to just drop a whole bunch of files into a directory and all be served with the custom interface. You have to instruct Apache2:
<Files ~ "\.mp3$">
       SetHandler modperl
       PerlSetVar wpaudioplayer /audio-player/player.swf
       PerlSetVar wpaudioplayer_js /audio-player/wpaudioplayer.js
       PerlResponseHandler Apache2::EmbedMP3
</Files>
And that s it. Take a look at the documentation to see how to point it to specific locations for WP Audio Player, template file, etc. You can see the hack in action at http://dev.axiombox.com/~david/mp3. If it struggles a bit by buffering, it s because that s directly from my home Internet connection, so give it a small break :-) And, as I suggested the Radiohead video with EmbedFLV, I suggest now this Black Eyed Peas song, Like That, it s very catchy and I love it ;-) Go get the code at the Git repo or at CPAN (once it s updated and published).

Obey Arthur Liu: Debian Summer of Code 08 : Where are they now (part 3/3)

Welcome back for the last part of the reviews. You may want to look at the previous parts : part 1 and part 2. Jigdo-ivory, a JavaScript Jigdo client Presentation Debian CDs and DVDs take up a huge mount of space on download servers. Using jigdo to download those images can significantly reduce the amount of bandwidth and space needed on the central servers. Unfortunately, jigdo currently needs special client software to be downloaded/installed first. Adding support directly into a browser-based application could potentially make a very big difference for first-time users here. Jigdo was created in 2001. It allowed to create ISOs from .debs grabbed from regular mirrors. It eliminated the need to duplicate the entire contents of the package repository into ISO files for each release, or even more importantly, for weekly snapshots of testing/unstable/whatever. You may find the complete proposal from the student here. The original idea originated from the Debian-CD people, who wanted to explore ideas about creating a light web client. The project was mentored by Steve McIntyre, who developed a new version of the Jigdo tools, jigit, which is much more efficient. Student Dustin Rayner was a 5th year senior undergraduate student at the Oklahoma Christian University in Oklahoma City, Oklahoma. I studied Computer Engineering for 3 years as a Computer Engineering student before deciding to pursue a Mathematics and Computer Science degree. Result This project was unsuccessful due to numerous issues. First, because of an inadequate technical preparation of the original proposal. The Debian-CD people were too optimistic with the possibilities of Javascript. In the end, the copying and checksumming part of the Jigdo process were implemented but the checksumming (with a Javascript implementation of md5) was so slow that it was unusable (think 50kb/s on a regular laptop at full CPU charge). The student did the right thing to investigate Java and ActiveX but it was too late unfortunately and he ultimately lacked the experience and knowledge in the relevant technologies. If the proposal is tried again, the student would be requested to have much more experience with Java (and possibly ActiveX). Those would be much more efficient for the task, as they are the most used technologies among on-line anti-virus scanners, which have a workload somewhat similar to Jigdo. I could not find further public involvement of Dustin Rayner within Debian. Aptitude-gtk, usability and GTK+ GUI for the Aptitude package manager Presentation A GTK+ GUI for Aptitude that will work alongside improved current ncurses and command-line interfaces. This will offer an alternative to Synaptic with an interface design geared toward usability and advanced functionality. Debian currently supports multiple non-command-line package managers, the most used being Synaptic and Aptitude. Synaptic uses a GTK+ interface but offers no command-line mode. Aptitude offers a command-line mode but no X interface, although it offers a ncurses interface.
Comparing the interfaces of Synaptic and Aptitude reveal many design differences. Although Synaptic may be more accessible to beginners, Aptitude offers many interface behaviors and functions that are useful to the regular to advanced users : fully hyperlinked tabbed navigation between packages and versions of packages, mostly modeless interface, interactive dependency conflict resolver The proposal was introduced by the student in coordination with Daniel Burrows, the mentor and developer of Aptitude. Student Obey Arthur Liu was a 22 year old french student of Computer Science and Applied Mathematics at Grenoble Institute of Technology - ENSIMAG, in France. Did I mention that he s also yours truly ? If you want to know more, you might be interested in my previous post. Result This project was successful. The interface was mostly done and functional by the end of the summer. Daniel merged the code into the main post-lenny branch. Development is still ongoing and packages are released into Experimental. For further information, just read the rest of my blog. I could find some further public involvements of Obey Arthur Liu within Debian. Doh! Lintian for fuller automated setups Presentation lintian, the Debian package checker, at the moment presents possible problems in three categories: errors, warnings and informational messages. This leads to several problems, most importantly that the severity and certainty of a check can t be expressed separately. In the course of this project, the student should design and implement in lintian an improvement of the current situation, for example by using a two-letter code (one for certainty, one for severity). This project would make lintian errors much more fine-grained and help in maintaining pertinent quantitative analysis of package quality. The project was mentored by Marc Brockschmidt. The project proposal was commonly introduced by the Lintian team. Student UPDATED: Jord Polo Bard s has done a lot of work with translation in Catalan, his native tongue. He can usually be found on #debian-catalan. He also maintains a few packages as a DM. Result This project was successful. The classification was entirely done. Jord also helped with the new lintian.debian.org website. The Lintian team was very satisfied with the revamped errors list and new website. They have an immediate impact on packages quality reporting. Jord is still active within Debian, helping package a few games. Debexpo, a generic web-based package repository Presentation mentors.debian.net is currently a very specialized web-based repository that allows everybody to contribute software packages to Debian without the need to be a Debian Developer (or Debian Maintainer). It has successfully helped simplifying the sponsoring process in the last years. However it needs to be refactored and in the process should be turned into a generic piece of software that can be used for other Debian source/binary package repositories, too. Mentors is a very good initiative to recruit new packages maintainers (and needs your help!) and the software underlying it could be reused for many different purposes (think PPA). The project was mentored by Christoph Haas. The project proposal was commonly introduced by the mentors team. Student Jonny Lamb was a Computer Science student in the United Kingdom. He was already quite involved within Debian, maintaining a lot of significant packages. Result This project was successful. The whole proposal was perfectly executed. Jonny now continues to develop debexpo, with the mailing-lists and commit logs showing interesting activity. Of course, help for debexpo is appreciated to get it into full shape. Jonny has since become a Debian Developer (here is his AM report). Congratulations to him. It s nice to end on a nice note isn t it ? Now that we re done with the individual reports, I m going to write down my recommendations report. Hopefully it will help with next year s Summer of Code.

1 February 2009

Andre Luis Lopes: KVMing for fun and profit : how to make your toy become a serious business

Here I ll try to present you some tips on how one could easily make a playground become a paid fun. And no, I won t be teaching you how to become rich, although I would like if you would teach me how that could be accomplished as I m trying to come up with a way to do just that for a couple of years now and failed miserably. Recently, I ve been setting up KVM virtual machines in order to do a lot of testing for a project I m involved with. Letting boring details aside, one could say that a very long, boring and error prone setup was finished after a lot of work and it worked like a charm in the end, as a KVM machine. As always, laziness is a given and when you are into it you empower yourself to come up with some nice hacks and goes that extra mile to find out how one could not to have to do boring and repetitive things again and again, in the best spirit of let s have some work now and save me ten times more work later . As I m becoming more and more into that spirit of laziness, there I went looking for a way which would let me transform my beloved and nice working KVM machine into a fully featured real physical server. After some tips from microblogosphere friends (thanks fike), I had some ideas on how that could be accomplished. Turned out my ideas weren t really all that right so there I went again looking for a way to do what I wanted. After some research I found out that the KVM guys already gave some thought about it and even had a ready solution to my problem : it s called qemu-nbd. Yes, by now everyone should know that KVM builds on top of the excelent (just not so snappy) QEMU. However, as I m a Debian user, here I should say that in Debian, most notably Debian sid/unstable, the qemu-nbd binary was renamed to kvm-nbd, just as the KVM binary is called only kvm and not qemu-system-x86_64 or whatever else is called these days upstream. NBD (short for Network Block Device) is a nice thing. I hadn t tried it before (I certainly used and am still using in some projects of mine the not-upstreamed-yet-but-so-nice-that-I-couldnt-resist DRBD, which seems to share some ideas which NBD). In short (read NBD link for more info on that), NBD allows the Linux kernel to use a remote server as a block device. Also, its upstream is a fellow Debian developer (hello Wouter). How nice s it ? As NBD is an upstreamed kernel feature, you don t need to go to the external-module-route-hell. You only need the userland tools, which are nicely packaged and integrated into Debian as well. They re only one aptitude away, so you could use this command to bring it to your KVM host :
aptitude install nbd-client
After that, you will want to export your image file (the file which represents the disk of you virtual machine) as a NBD block device, so you will be able to mount it under your KVM host and do whatever you want to do with it. Here s how one would do it :
kmv-nbd conect=/dev/nbd0 myimagefile.img
I tested it using both qcow2 and raw disk images and both worked like a charm so I don t think you will have any problems here. Next, you need to create a directory structure under your KVM host which temporarily will be used to mount the partitions inside the virtual block device of your KVM machine. You could do this like this :
mkdir /newserver mkdir /newserver/usr mkdir /newserver/var mkdir /newserver/home
In the example above, I ve created these directories because I want my new server to have separated root, /usr, /var and /home partitions and mount points. Feel free to adapt to any kind of partitioning layout you please. Next, you will mount yout virtual machine filesystem under a temporary location, so you will be able to copy all of its content later to your final desired destination, i.e. the real partitions inside the real disk you are going to use in your future real server (not a virtual machine anymore). I did it using :
mkdir -p /mnt/temp mount /dev/nbd0p1 /mnt/temp
Notice that the /dev/nb0p1 above is my root partition inside my KVM machine, only that it s represented now in my KVM host in NBD s device node notation here. I ve only one partition inside this particular virtual machine (aside from the swap partition). Next, you want to mount the partitions on the real disk you want to be used in your new real server under the directories created earlier so you will be able to chroot to then later and do any tweaks you may want to, like fixing /etc/fstab, /boot/grub/device.map, /boot/grub/menu.lst and all these places we know makes references to block devices which may differ from the situation you had in your virtual machine running under the KVM. Here s what I used :
mount /dev/sdb1 /newserver mount /dev/sdb3 /newserver/usr mount /dev/sdb5 /newserver/var mount /dev/sdb6 /newserver/home
The device nodes above are from your real disk s partitions, not from any virtualized device block access method like NBD. Also, take care not to mount your primary disk s partitions (the ones you are using under in your KVM host) as you could destroy them easily. As you can see above, I m using /dev/sdbX as /dev/sda is my primary disk, the one under which my KVM host is running. Again, adapt to your scenario. Next, you just copy everything from your virtual machine filesystem (which is now accessible from within your NBD block device) to your real disk. I did it using :
cp -a /mnt/temp/* /newserver/
After that, you can disconnect your KVM virtual machine image file from the exported NDB device block using :
kvm-nbd -d /dev/ndb0
And then chroot to your real disk layout yout just copied to /newserver in order to fix anything which would make reference to block devices while running as a virtual machine under KVM but which now will be a completely different thing as a real server, like your /etc/fstab, /boot/grub/device.map, /boot/grub/menu.lst and so on. In order to chroot to your new soon-to-be-real filesystem you could use :
chroot /newserver
Then go nuts and start fixing everything you may think needs to be fixed so this filesystem could be used in a real server to boot it up. Im my case, I needed to fix /etc/fstab in order to mount my additional partitions (as under KVM I was using only a root and a swap partition and now, under the real server, I ll be using separated root, swap, /usr, /var and /home). Before I went changing more things, I fixed my /boot/grub/device.map and my /boot/grub/menu.lst files to point to /dev/sdb and /dev/sdb[1], respectively, so I could run grub-install from inside the chroot in order to install GRUB into the real new disk s MBR (master boot record), using :
grub-install /dev/sdb
Then, finally, I fixed /boot/grub/device.map and /boot/grub/menu.lst again so they would point to /dev/sda and /dev/sda[1], as /dev/sda will be the device node for this new disk when it wil be running under the new real server and not as a disk inside the KVM host machine. Next, I exited the chroot using :
exit
And umounted the new real disk s partitions, using (now already out of the chroot) :
umount /newserver/home umount /newserver/var umount /newserver/usr umount /newserver
Now you can take this new disk out of your KVM host machine, put it inside your new real server, physically install it there, turn on your new real server and everything installed while the filesystem in it was being used under the KVM virtual machine will be there, running nicely. And you re done. That s it. Also, it s important to point out that it s much easier being done than being said (or written, in this case) so, if it looks scary because of the size of this post, don t let it disincourage you as this whole thing is a pretty straightforward procedure, much easier than it seems. And as I know that I will receive lost of complaints from people which will tell me how inefficient this whole thing is and how I could have accomplished the exact same thing in a much easier and faster way (perhaps even with a already existing tool which would automate almost entirely the whole proccess), I would say to these people to please exercise their right to share ideas using the comments. Just be nice on me, please. After all, it was fun and I learned new things while doing it all, as well as I tried to share what I learned from this experience with my peers. That s what matters. Peace, love and geekness to all of you :-)

Obey Arthur Liu: Debian Summer of Code 08 : Where are they now (part 2.5/3)

I ve so far been going through the list of projects that were done last year (part 1, part 2) in a somewhat dry fashion so I m going to make a little pause here and tell where I m going from with these posts. As I went through the 2008 Summer of Code at Debian, I moved from being a nearly total outsider student to something more of a developer. I ve been contributing to Aptitude since the end of the Summer of Code (well, trying to find time to contribute more, as with many people..) and will be going to FOSDEM. I can t say I m an insider yet: I haven t met a lot of people, most people have no idea who I am, I ve been active here for, like 9 months and I m not even in new-maintainer yet (though I plan to apply when I feel I ll have contributed significantly to Debian). The Student point of view See, I m a student in Computer Science. I use free software, I d like to participate but it s intimidating and you never know where to start. You know the drill. Then comes the Google Summer of Code. Let s review its stated goals, as per its FAQ:
Google Summer of Code has several goals:
  • Get more open source code created and released for the benefit of all;
  • Inspire young developers to begin participating in open source development;
  • Help open source projects identify and bring in new developers and committers;
  • Provide students in Computer Science and related fields the opportunity to do work related to their academic pursuits (think flip bits, not burgers );
  • Give students more exposure to real-world software development scenarios (e.g., distributed development, software licensing questions, mailing-list etiquette).
I m going to start with these goals and provide some of my opinions in something of a candid way. Inspire young developers to begin participating in open source development I have been playing with the idea of making a GUI for Aptitude ever since I dropped Synaptic, about 2 months into its use. It felt like when I bought a high-school required Texas Instruments TI-83+, that I dropped for a TI-89 within a month. Since back in 2005, every time I would see someone using Synaptic, I would pitch Aptitude as a better tool. The main reason for not doing so was that Aptitude was scary-looking. See, it s a lot of blocky text and wacky colors. With life and cool stuff like CPGE, I never had time to really code so I left it at that. In 2008, for the first time I was free the whole summer and so, I tried to get into the Summer of Code program and into Debian. Actually, it wasn t the first try. One popular way to get acquainted with Debian is to go to wnpp, adopt a package (new or orphaned) and find a mentor to upload it. In January 2008, I did try to package a set of geocaching tools I used at that time. But I didn t find a mentor to upload it. I didn t try very hard though and the package had some minor issues anyway. I reckon that Debian-mentor is a good idea to bring in new Debian Maintainers but the whole process is still quite technical. It is true that the minimal technical level for good packaging is not trivial in itself and the process should filter out unserious people, but the technicality curve could be adjusted to be more welcoming. I think the Debian website could be improved in this area (ok, it s a quite long-standing bug). Holger Levsen mentioned the way Fedora and Sugar presented avenues of collaboration to prospective developers. The crux here is that it should feel much easier to identify areas to get involved into and who to contact if needed. Help open source projects identify and bring in new developers and committers Actually, it would rather be the other way around: help students identify and integrate into open source projects. For the Summer of Code, I only postulated at two organizations, Debian and Freenet (the ones working on an anonymous darknet, remember ?). I got accepted at both and ultimately chose Debian (was my first choice from the beginning). The Debian developers community is quite unique in the way it is very decentralized, independent and fluid. There are teams in some areas (Kernel, KDE, Translation, Edu, Publicity, whatever) but much of what makes up Debian is done by individual developers working on their own. The downside of this is that for a newcomer, it s a little off-putting. Organized teams are not the way all things are done within Debian so there are often no smaller circle of people one gets to know. Going to Debian meetings and not knowing most of the people is a little intimidating. Keeping up with all the faces is a little hard too :). Many other organizations participated into the Summer of Code and many would feel arguably different. Many may be more corporate-like, more hierarchical, more centralized. I preferred Debian because it was less formal in its structure. I felt that I didn t want to get into something that looked too much like work with supervisors and the like. It is indeed how it felt, there were no one up there to decide what we had to do. We were quite independent. I can say that the Summer of Code is quite a good way to get a feeling of how a particular organization works in the inside. Give students more exposure to real-world software development scenarios As said earlier, many parts of Debian are independent, which is a result of the work separation through packages. In my work on Aptitude, it is a pity that I didn t have to interact a lot with other members of the Debian community. Aptitude talks with the rest of the Debian packaging ecosystem through mature library interfaces so there s not much need to ask questions beyond them, and even more so because my Daniel Burrows, my mentor and developer of Aptitude participated in their development. Also, I was working on bringing a graphical interface to it, so I didn t have to modify a lot of core code that interacted with the outside world. Despite this, I still met a few people interested with future developments in the area of package managers. One example is Enrico Zini who pushed his work with Xapian APT Index. Over the summer, my mentor integrated packages search through Xapian which was interesting with the expanded possibilities of a graphical interface such as search as you type, drop down suggestions and so on. Because of the short duration of the Summer of Code, most projects can t complete a full development cycle. The proposed work in my proposal was quite imposing. In the end, I managed to produce an (probably not even) alpha quality version of a graphical interface. My branch (if I remember correctly) was merged into the main trunk at the end of the summer and a version landed in Experimental at the end of the year. One aspect that I missed was beta-testing feedback. During summer, only a handful people popped up on the mailing-list giving feedback on the GUI I was writing, although I knew through stats on my mercurial repository that dozens of people cloned it and followed it. Debian has no testing team , or any kind of semi-organized group of people who try stuff, which would be very useful to have an idea of how well I was doing. So, did the Summer of Code at Debian give me real-world software development scenarios ? Not really in my case but by staying longer into Debian, I think caught up a little with that. Here is some advice for the future Summer of Code student at Debian: To conclude, despite all the difficulties, I would say that the Summer of Code at Debian was awesome. Although Debian is quite different from many other organizations, it was a very fruitful experience. And that s why I m still here. Coming next is the rest of the projects reviews and a more concise and substantive list of recommendations for the handling of the next Summer of Code at Debian. And of course, see you at FOSDEM.

31 January 2009

Clint Adams: Not an eiderdown in sight.

Sometimes the pendulum swings a little too far to the east. A young Cypriot strides to the edge of the balcony, and she stares at the horizon. A drowsy calm envelopes her, and her mind, which had just grazed a very important thought, loses itself in the vast void. Up on a hilltop, an even younger boy gazes down at her, contemplating the contrast between her hair and dress, too far to make out anything else. Sometimes the pendulum swings a little too far to the west, and then even Magdalene can't save you.

Next.

Previous.