Search Results: "pm"

1 July 2007

Russell Coker: Committing Data to Disk

I’ve just watched the video of Stewart Smith’s LCA talk Eat My Data about writing applications to store data reliably and not lose it. The reason I watched it was not to learn about how to correctly write such programs, but so that I could recommend it to other people. Recently I have had problems with a system (that I won’t name) which used fwrite() to write data to disk and then used fflush() to commit it! Below is a section from the fflush(3) man page:
NOTES
Note that fflush() only flushes the user space buffers provided by the
C library. To ensure that the data is physically stored on disk the
kernel buffers must be flushed too, e.g. with sync(2) or fsync(2).
Does no-one read the man pages for library calls that they use? Then recently I discovered (after losing some data) that both dpkg and rpm do not call fsync() after writing package files to disk. The vast majority of Linux systems use either dpkg or rpm to manage their packages. All those systems are vulnerable to data loss if the power fails, a cluster STONITH event occurs, or any other unexpected reboot happens shortly after a package is installed. This means that you can use the distribution defined interface for installing a package, be told that the package was successfully installed, have a crash or power failure, and then find that only some parts of the package were installed. So far I have agreement from Jeff Johnson that RPM 5 will use fsync(), no agreement from Debian people that this would be a good idea, and I have not yet reported it as a bug in SUSE and Red Hat (I’d rather get it fixed upstream first). During his talk Stewart says sarcastically “everyone uses the same filesystem because it’s the one true way“. Unfortunately I’m getting this reaction from many people when reporting data consistency issues that arise on XFS. The fact that Ext3 by default will delay writes by up to 5 seconds for performance (which can be changed by a mount option) and that XFS will default to delaying up to 30 seconds means that some race conditions will be more likely to occur on XFS than in the default configuration of Ext3. This doesn’t mean that they won’t occur on Ext3, and certainly doesn’t mean that you can rely on such programs working on Ext3. Ext3 does however have the data=ordered mount option (which seems to be the default configuration on Debian and on Red Hat systems), this means that meta-data is committed to disk after the data blocks that it referrs to. This means that an operation of writing to a temporary file and then renaming it should give the desired result. Of course it’s bad luck for dpkg and rpm users who use Ext3 but decided to use data=writeback as they get better performance but significantly less reliability. Also we have to consider the range of filesystems that may be used. Debian supports Linux and HURD kernels as main projects and there are less supported sub-projects for the NetBSD, FreeBSD, and OpenBSD kernels as well as Solaris. Each of these kernels has different implementations of the filesystems that are in common and some have native filesystems that are not supported on Linux at all. It is not reasonable to assume that all of these filesystems have the same caching algorithms as Ext3 or that they are unlike XFS. The RPM tool is mainly known for being used on Red Hat distributions (Fedora and RHEL) and on SuSE - these distributions include support for Ext2/3, ReiserFS, and XFS as root filesystems. RPM is also used on BSD Unix and on other platforms that have different filesystems and different caching algorithms. One objection that was made to using fsync() was the fact that cheap and nasty hard drives have write-back caches that are volatile (their contents dissappear on power loss). As with such drives reliable operation will be impossible so why not just give up! Pity about the people with good hard drives that don’t do such foolishness, maybe they are expected to lose data as an expression of solidarity with people who buy the cheap and nasty hardware. Package installation would be expected to be slower if all files are sync’d. One method of mitigating this is to write a large number of files (EG up to a maximum of 900) and then call fsync() on each of them in a loop. After the last file has been written the first file may have been entirely committed to disk, and calling fsync() on one file may result in other files being synchronised too. Another issue is that the only time package installation speed really matters is during an initial OS install. It should not be difficult to provide an option to not call fsync() for use during the OS install (where any error would result in aborting the install anyway).

30 June 2007

Gustavo R. Montesino: Python, os.fork() and GSoC

This one was a bit tricker to find, so I'm going to post it here: if you use os.fork() on Python, you will want to use os._exit() on the child process, or it will clean stuff it shouldn't and you will have segfaults with doubled memory free.

That said, python's webbrowser module is quite useful; check it if you ever has to open a browser from a Python script/program. The only downside I see on it is exactly that it doesn't takes care of the forking stuff for you. I'm using it on bug-triage to show a bug report on the user browser.

Talking about GSoC, during the last week the Debian BTS was updated, breaking, between other things, btsutils' 0.1 version. The current development version of btsutils, which uses BeautifulSoup to parse the HTML stuff more realiable, wasn't affected by the update.

That's all for now, time to code.

29 June 2007

Eddy Petrișor: fglrx issues

I know, I shouldn't be using it in the first place, but I had no alternative until recently.

I think I have a really precise image of the development process of the fglrx drivers since I nave been successfuly using sleep with 8.33.6. That went down the drane with 8.36.5. After a month of pain (I don't understand why it took me sooooo long) I decided to go back to the version that worked (which was a package I prepared myself).

Matthew Garrett told me at DebConf that the avivo driver should work for my video card, but it needs pciaccess which is not available in Etch and at that time was not available even in experimental.


At some point I'll probably use avivo, but until then I still want my laptop to be able to sleep... I hope AMD opens those drivers soon.

Martin F. Krafft: DebConf7

I am sitting at Frankfurt airport in between flights home from Edinburgh (not anymore, but that's where this post was born). It's been an intense 2.5 weeks of DebConf7, which has been unlike other DebConfs for me in two respects: this was the first time I actually went to DebCamp, the week leading up to the conference, which is designated to teams and individuals with development goals to achieve during the week. And I was also actively involved in the organisation of the conference, which was unexpected, but a very good experience I am not going to miss next year. Well, it wasn't unexpected. When I booked my flights in January, I had decided to arrive a day early and leave a day late to be able to lend a hand. In between then and the conference, my life turned somewhat upside-down and I had forgotten everything about these noble goals of mine. So when I arrived at the conference venue on Saturday morning with thoughts of netconf circling my head, I was surprised to find everyone buzzing about (how na ve of me) and somewhat clueless as to how I should merge in: my wrists didn't really hold up to heavy lifting, and my knee certainly didn't enjoy stairs, of which there were plenty on the way up to the top floor, where DebCamp was taking place. After trying and being mostly ridiculed by the other organisers ("friends"... ha!), I set out to accomplish some other tasks more suited to my bodily condition, such as wiring the hack lab to accomodate 40 geeks for the first week. That took me most of the day, but at least the space was ready for Sunday morning and the official start of the camp. My goal for the week was netconf and I made good progress until I ran into a wall on Tuesday and had to back off and rethink my design. Reinhart Tartler and Enrico Zini dedicated their time to listen to my design and the problems and helped me clear the mess up and helped me reduce complexity and converge on a straight-forward, event-based design. As the newly appointed DebConf press officer and one of the organisation volunteers, I did not get any further for a few days, as I was manning the front desk or preparing and releasing my first press release (with the help of several others), which lead to a lovely story on The Register and doubled the number of attendees that preregistered for DebianDay (which marks the end of DebCamp and the start of DebConf). I blame the geeks in skirts, actually. Silly bunch, but not quite as silly as those attendants who could get a laugh out of the underwear question for two weeks in a row. Up to this point, I had managed to keep a perfect balance between netconf, orga-team, and sleep. So good, apparently, that when the orga-team t-shirts arrived, Uncle Steve made it quite clear that I should be getting one, even though I had spent considerable time on netconf, am sure some of the others must have worked twice the amount, and I was still quite well rested then. But they gave me a shirt and thus I became part of the orga-team. And even though it was rough at times, running around during the day, filling spare minutes with netconf brain-work, and enjoying nights that got longer with every day of the conference, I am glad and proud to be a member of this team now. It took me until after the official start of the conference to return to the netconf code, but with the new design, I got most of the framework to a point where it could obtain static and dynamic addresses from configuration files as well as DHCP servers in time for my presentation on Tuesday (the recording of which shall be linked from the netconf homepage as soon as it's available). Of course, nothing worked on screen in front of the audience, but noone really expected that anyway. and then I took it all apart for further simplification, so by the time night fell, the slides from the talk had already become outdated as I moved to yet another design, which is even simpler and which allowed me to sketch complex scenarios, such as DHCP after WPA. For two days, I made good progress, but the time available for hacking decreased noticeably, as I kept volunteering for more tasks that needed doing, and more and more people turned up. Somewhere in between, Keith Packard took hostage of (and fixed parts of) my broken X40 laptop, but that's the meat of another story. And on some other night, our leader Sam, in his official capacity as DPL, presented me with the instantiation of my innermost desires as consolation for my hosital stay: a pony. Just look at that smile! With 400 attendants, this year's DebConf continued the trend of immense growth of the event, and while it's great to witness this increase in popularity among attendees and sponsors, who make it possible each year to fly more people to the destination, I am also rather sceptical. The problem is less the additional load on the organising team the next 100 people are going to be easier to accomodate than the previous 100 were. It is more that the conference is losing focus. More people make you spend less time with the same folks, and as the number of non-contributors increases, the social element starts to outweigh the technical element. I am not condemning the social element, but to paraphrase the words of my favourite Debian developer, it's painful to come to DebConf or even IRC with a project and questions just to find that the people are generally more interested in being social, even to the point of preventing technical discussions. I realise that this is a sensitive subject as the issue of various cabals keeps coming up frequently and it does not seem right to start limiting the audience to this conference, but unless we consider the matter, DebConf might deteriorate similarly to other conferences, which have enjoyed enormous growth as well before it was too late. I think we must make sure that people understand that we are, after all, a technical project and must not lose touch with out roots. Of course, I may also be overreacting, after a week of intense coding and many other stress factors I continued working hard on netconf and helping with the organisation throughout Friday, briefly taking time off to prepare a presentation on my Ph.D. research, which was very well received, as well as a workshop on Debian packaging with modern (distributed) version control systems, which yielded around a dozen new subscribers to the vcs-pkg mailing list. But now, back to netconf. All things considered, I was making good progress, but not getting netconf into a releasable state just yet. I can parse /etc/network/interfaces files and get data from DHCP servers, even configure interfaces with those, but it's all still work in progress as I have not yet bothered to implement such basics as default gateways or DNS servers. But the framework is in place, and I am very happy with it as everything I keep adding falls into place beautifully. To mark the end of my netconf development sprint at DebConf7, I scheduled a code introduction session on Friday, where around 15 people turned out to get a walkthrough of the code and explanation of some of my design decisions. The session was recorded and will be available on video shortly. I think it turned out to be a very good idea; I found myself intrigued by someone else's code before until that someone took the time to explain what was going on. I sincerely hope that this introduction helps bootstrap a few people's experiences with the code and yields more contributors! Even though we ended almost every single evening of the two weeks in one of the surrounding pubs, the last few nights were definitely the most enjoyable. On Thursday, the local team had organised a Ceilidh with a band teaching us geeks how to dance the Scottish way, and the venue stayed open for two hours longer than before, causing most people to come out for beer or bouncing about. On Friday and Saturday, the folks of InfoSeed let us use their comfy couches (in the basement of the conference night venue) and we chilled to music and massages, while on Sunday, after a very tiresome day of cleaning up, the noticably lesser number of survivors hung out at the Forest Cafe for some so-so live music, few beers, and an early journey to bed, where a Dutch Muppet kept us entertained for at least another hour. The best about Monday, my day of return, must have been that the airline lost my backpack, which saved me from having to lug it around in Zurich, and made for a great moment on the phone with the baggage tracing service, who announced that my bags would be delivered in about 6 hours between 20:00 and 22:00 just as the door bell rang and the courier dropped off my bag. I'll be back in Argentina, unless something goes seriously wrong. And I'll be on the orga-team again. If you guys stop holding your meetings on Monday night. Thanks to everyone who made DebConf7 possible. I am proud to have been able to contribute, but the real work was done by a few others. You know who you are. NP: Solar Project: Five

Evan Prodromou: 9 Messidor CCXV

Last-minute note to Montreal BarCampers, hackers, entrepreneurs, designers, coworkingers, designers and other troublemakers: Tara Hunt is coming into town and I invited her to have lunch with local folks in the scene. We'll meet at 1PM, at La ka, since half of us will be there anyways. I've reserved space for twelve, but that can expand pretty easily. For those who don't spend 60% of their time there, La ka is at 4040 blvd St. Laurent near the corner of Duluth. URL: http://www.laikamontreal.com/ Please feel free to come and to invite others you think would like to meet Tara and vice versa. And feel free to Contact me if you've got questions or comments. I'd especially like to hear if a lot of people are coming, since I might need to expand the reservation. tags:

GPLv3 iPhone So, I'm as excited as everyone else to hear that the new Apple iPhone will be available today with a new GPLv3 Free Software license. A bold partnership between Apple and the FSF! tags:

New Oceans OK, so, that's a big lie. But wouldn't it be cool if it were the truth, and you could get a cool and good-looking Open Source phone? That way, you wouldn't only get Web 2.0 applications, without an API for the local machine. You could write local apps for the phone itself, and you could even re-write the phone OS if you want. Looks like pretty soon we'll have these Open phones. According to the http://lists.openmoko.org/pipermail/announce/2007-June/000013.html announcement on the openmoko-announce list, FIC will start taking orders on the first generation Neo 1973 on July 9. So, given that we've got an Open Source alternative to the iPhone coming down the pike in just a week or so, why is anyone working on iPhoneDevCamp? tags:

28 June 2007

MJ Ray: BBC Two's Money Programme Tonight

I wrote this yesterday:
"Dear BBC Money Programme, I'm really surprised that BBC Two's Money Programme "How Green is Your High Street?" correctly mentions that the recent greenwashing of public listed companies is motivated by shareholder returns rather than ethics, yet doesn't mention that cooperative businesses are motivated by ethics. [pic of agm lunch] Nor does it mention that the UK's largest cooperative retailer, the Cooperative Group, has been at the forefront of moving its stores to renewable energy and developing friendlier food packaging across its whole range, from biodegradable onion nets to thin-but-tough whisky bottles. I think it's also the first high street retailer to commit to only selling A-rated electrical appliances in its stores. It does this because it is motivated by ethics as well as dividends. As a result, the Co-operative Group food stores are outperforming competitors in the IGD reports and winning awards such as the Queens Award for Enterprise in Sustainable Development. Why do you ignore this success of green and ethical principles in your report?"
and this morning Sam notes he's seen the Daily Mirror report that the co-operative food came top in the original research so will there be a nice present on the end of the TV show?

27 June 2007

Neil Williams: UK politics

I usually don't foray into this topic but I'm unsure whether this is something that others simply haven't noticed or whether everyone else is just being nice to the new UK PM and the new deputy leader of the governing political party.

Gordon Brown: GB
Harriet Harmann: HH

Is it just me or doesn't that just lend itself to being shortened to: GBH ?
(Grevious Bodily Harm in UK court speak) - the repetition of harm in Harmann almost qualifies as a recursive acronym!

MJ Ray: Never a frown with Gordon Brown?

Finally, Gordon Brown has eventually become the eleventh Prime Minister of Queen Elizabeth II, as expected for most of his ten years as finance minister. The opening of his first speech was drowned out on the BBC by helicopters, but it continued with
"This will be a new government with new priorities. [...] meeting the concerns and aspirations of our whole country. [...] I want the best of chances for everyone. That is my mission. If we can fulfil the potential and realise the talents of all our people then I am absolutely sure that Britain can be the great global success story of this century. [...] I will try to do my utmost" (full text from ePolitix)
but there are lots of questions left open about what his utmost will be. From whether we'll see more co-operative ministers, through environmental and free-software-related policies, to just how the "clunking fist" will deal with the "trojan tory" David Cameron leader of the opposition, it's all unknown just now. I think he's the first PM who could use a Stranglers track as his theme.

26 June 2007

Martin F. Krafft: 60 efficient minutes of Intel

I arrived at DebConf7 with my X40, which would randomly freeze on any video-related event. I even reinstalled everything without copying /etc from the old installation onto a fresh harddisk without success. I tried various kernels, including Ubuntu kernels which rendered my system unbootable. I swore, I kicked and screamed, I contemplated throwing it out of several windows at once and buying a non-IBM replacement, I think I even had bad dreams about it. I did not cry just yet though. I was unable to work on it, neither locally nor via external monitor. In fact, my solution for the first week was to occupy one of the spare desktop machines, link up the original laptop harddisk by way of a great PATA/SATA to USB converter, which Hanspeter gave me for Christmas, boot off the encrypted filesystems, bring up X, and finally ssh into the laptop, where I did the actual work. Trust me, it was ugly. But at least I was able to make progress on netconf. I called Lenovo and they agreed to send a technician out to the venue. Yay for on-site support. That was Friday though, so I'd have to wait until Monday, which was of course when my talk on netconf was to take place. Suddenly, or not so suddenly, but it happened in real-time: in walks Keith Packard, developer of the Intel graphics chips driver for X, and I swear he had "bring me broken X40s!!!!!!" written on his forehead and BIOS latency timeout values as pupils like a popular comic character's eyes may be made off a dollar sign when excited. Ask Matthew Garrett if you don't believe me. So I approached him and handed over the X40 and had him even more excited when I mentioned i855 and it was all downhill from there. I left him with password for root and the encrypted filesystem (he's a Debian developer after all, so he has root on all my machines anyway ) and wandered off for some organisational stuff. It feels great to be at DebConf without your laptop to come back to. So great even that in a moment of genius I decided to do my laundry, and off I went, back to the hostel. Get stuff from hostel B, convince staff from hostel A that I am in fact allowed to wash there as hostel B has no laundry facilities, buy tokens and detergent, dump stuff, find couch and sleep gosh was I tired, but not anymore, when my phone rings to announce the end of the washing cycle. Retrieve, return to hostel B, hang stuff all over the room (we all know each other and these are clean clothes), return to hostel A to say thank you (I actually did), fetch lunch at Subway, arrive at venue, return to desk to find laptop but no Keith. Look confused. Look around to find Keith smiling at me and that the patch to my problem had already made it to the upstream repository. Sit, relax, think, breathe, wow. 60 damn efficient minutes. Let my next machine have Intel chips, please? (call Lenovo, "suspend" the call. Lucky for them, or imagine the ripples of the on-site technician suggesting to try to reproduce the problem with Windows). PS: Unfortunately, the problems aren't all gone. There still seem to be some DPMS-related crashes, and suspending to RAM from X leaves a black display on resume (some might say it's good that this is happening to me too), but I am definitely a lot more peaceful now. Thanks, Keith. NP: Threshold: Critical Mass

Evan Prodromou: 6 Messidor CCXV

We had a great weekend this last weekend here in Montreal. Yesterday, June 24, was Saint-Jean-Baptiste Day here in Quebec -- the national holiday of this cool and fun nation. St. Jean Baptiste is important to me in a lot of ways. Of course, it's cool that it's the national holiday of our adopted new home. But John the Baptist, the patron saint of Quebec, is also our family's name saint. ''Prodromos'' means "forerunner" in Greek, and it's one of the titles of St. John. Most of all, it's the day that Maj and I moved to Montreal. We came in on St. Jean Baptiste Day, 2003, and we've been here ever since. We drove my beautiful 1972 Citro n DS from San Francisco, where my niece Elena had just been born, all the way out here. We arrives on June 24th and wandered around the McGill Ghetto looking for our sight-unseen sublet. It's hard to believe it's only been 4 years -- it seems like so much longer. We had a good day yesterday. The three of us went to Piknic in the afternoon and hung out with our friends Jeremy and Lina and their two great kids Clea and Sylvie. We had a lot of hummus and pasta salad and bread and cheese and generally had a great time. Meg and Catherine came and hung out for a while, and also our friend Kristen, who's 7 months pregnant and has a 10-month-old. Good luck on that one. Most of all a pretty day enjoying the outdoors in our new home town, as well as fun dancing to house under a big Calder statue. How great is that? tags:

72 hours from Flickr I forgot to mention that we had a really nice time on Friday evening going to the 24 Hours of Flickr party at the SAT. Heather Champ, community leader at Flickr and welcomer to partiers, put it well: "We have three requirements for Flickr parties: the food must be good, the drinks must be copious, and the schwag must be ample." And that's exactly what happened. All the usual Montreal suspects were out in force: YULblog types, Web entrepreneurs, Web pranksters. It was great seeing m-c and c-c, who wore their awesome Flickr Socks -- although they each had a matching pair. I also talked to Allen Morris, which was really fun. He's a developer living now in Saranac Lake, one of the towns in the Adirondacks I find strangely compelling. We exchanged GPG key signatures and talked a lot about the Bay Area (California), where we both once lived. Probably my best talk was with Heather Champ and Derek Powazek. We talked about their joys of creation of JPG Magazine, the despair of leaving it, and looking forward to the future. We also chatted a lot about print on demand technologies, which we're evaluating for Wikitravel. Heather took the photo of my friend Ben Cerveny at Burning Man that's become his avatar icon on about every social software platform I know of. It must be good to capture someone in the way they want to think of themselves. I took my own self-concept picture by putting the camera on the dashboard of my Citroen. Heh. All in all a good party. One thing I was interested to find out was that there's a Yahoo! Quebec, which launched last month and I guess just slipped by me. Sadly, if you click on the "English" button, it takes you to... Yahoo! Canada. Hey, Yahoo! There are actually a lot of anglophones here! Just in case you were wondering. tags:

Montreal Web Development Book Club Montreal Web scene stalwart Heri Rakotomalala -- the man with the magic name, originally from Madagascar, along with Montevideo and Marfa, one of the M-places on my travel wishlist -- recently started a Montreal Web Development Book Club. It's a meeting for people interested in the practical side of the Web to talk about the books they read and let that drift into talk about the work we do and ideas we have. I think the book club is an awesome idea. Book clubs are a great grass-roots intellectual meetup that we don't often celebrate in the post-flash mob BarCamp-ized world. The great thing about a book club, for Web people, is that it filters out the bullshitters and dilettantes. If you're going to a book club, you're going to have to know what you're talking about, and you're going to have to care about the subject. The book gives focus that keeps the conversation from drifting to tangential topics. Flakes and hangers-on just don't have the stamina for it. Also, we met at La ka, so it was nice to have some beers in a good place on a hot night. Why not? We managed to talk about a lot of good books, too. Jean-Fran ois <something> (I didn't get his last name) talked about In Search of Stupidity, a look at the last 25 years of marketing and business blunders in the high-tech realm. Our industry is subject to a lot of decisions that seem absolutely self-defeating in hindsight, and the book goes in-depth on 15 case studies -- like Wordstar, Ashton-Tate and Borland. It sounds like a great cautionary tale for Web 2.0 startup mavens. Heri talked about the book Information Architecture for the World Wide Web -- the infamous "Polar Bear Book". It sounds like a really good book for doing initial planning for a Web site, but I'm really interested in tools for profiling an IA effort. We get about 2 million unique visitors a month at Wikitravel, for example, which is a huge amount of usability data I could be mining. But I don't really have the tools for it, so I don't do it much. I'd love to know, for example, about people who land on a Wikitravel page from a search engine and then leave. What were they looking for? Why couldn't they find it? Also, users who browse through our pages clicking on links, then resort to a full-text search. What did they think they were clicking on, and what were they looking for instead? Did they find it? How can we put that in front of them in the first place? Most of all, I want to know how and why people start editing Wikitravel pages, and why they stop. Of people who click the "edit" button, only 1 in 17 click "save". (That is one bit of clickpath analysis I've done.) Why? I've often been tempted to put a survey up when someone navigates away from our edit page. "Why didn't you save? Tell us so we can fix it for other people." I talked about the book I just finished reading a few weeks ago, Everything is Miscellaneous. It's the latest book by Dave Weinberger about how we impose order on information to make it easy to understand and retrieve. It's an awesome book -- really fun -- especially for someone married to a knowledge management expert. I don't think I gave a good enough description of the book to ignite the club's interest, but I hope they check it out, because it's really readable and good. At the end of the meeting Heri took a poll and decided that we'll continue doing the book club on the last Monday of the month. I've already picked out my book for next month: RESTful Web Services. I've heard good things about this book (admittedly mostly from the co-author Leonard Richardson) and I want to give it a look-see. So book-club fodder it is. ''Update: Heri has his own book club report here.'' tags:

25 June 2007

Miriam Ruiz: Classifying games for children

Parents and educators should be aware about what kind of games their children play. In the current state, this means that the parents must be gamers themselves to know about that, because there’s no way of knowing whether a game includes sex, violence, sexism, etc. until you play it. The idea is to provide a way of classifying games so that parents can know in advance whether the game involves certain culture-dependent controversial stuff, and being able to use that when considering what games they want their children to play, or what games they want to play themselves. Not that I’m the proper one to make the classification myself, but it should be done by teachers and educators, who I think are the best suited for this kind of task. In any case I’m willing to lead and coordinate the project, with the support of just some Spanish teachers for the moment. I hope that in the future teachers of other cultures will like to get involved too and the system can evolve to a multicultural one. The result should be as culturally independent as possible, but that would only be possible if members of different cultures help. There’s no way to provide a totally objective classification of moral stuff, so instead of trying to make the classification as aseptic as possible, it might make more sense to make it the other way round: trying to have all the different possible points of view, even when some of them might not even fit my own beliefs. Links:

24 June 2007

Mike Hommey: Videos of Debconf 7

The good thing about not being able to attend Debconf is that you can still watch the talks online. Well, when you can find the videos. While it’s pretty easy to find the video streams, that, when you’re a working european, are pretty much of no use, I couldn’t find a single link to the video archives that were supposed to be available the same day. Why oh why does the debconf7 homepage lack such an important link ? Why does video.debconf.org show a phpmyadmin login form ? Anyways, for those who, like me, haven’t found a link, here’s one : Video archives for Debconf 7.

23 June 2007

Mario Iseli: tdbackup

I’m just sitting in the night venue of Debconf7 and do several tasks in the same moment, that includes: * Getting kind of a spanish course on IRC in #debian-qt-kde :P * Get some news from friends in .ch via MSN (there were several unweathers and other troubles) * Think about tdbackup which is the topic of this blog entry. So what is tdbackup? It is just another backup implementation but it should work kind of distributed. I manage several servers and in that farm are 3 backup servers with a tape drive, every sunday i mount parts of the other machines via NFS and write them with tar to the tape. Until I did that by hand because there was no implementation which fits my needs unfortunately. This is the point where tdbackup jumps in. I want to create a GUI which edits an ini file in the form of: [backupmachine 1] mount = bla1:/home mount = bla2:/home tdbackup will then distribute a specifically generated configfile to each backuphost and a little python script which is called by cron and mounts the file systems, write some information into mysql and generate warning messages via e-mail if the tape is almost full. So, I will be able to sleep better because the stuff is auto-documented in a way. I’m still thinking about how exactly i want to implement that, if there are any interested people who would like to join that project, please just tell me.

22 June 2007

Benjamin Mako Hill: Visions of Free Culture

At the Free Culture National Conference a few weeks ago, Kevin Driscoll initiated a project that I feel is hugely important: he's prompted the free culture community to state and share their vision. While I've talked a lot about definitions in the past, I probably should have been talking about goals or vision. Kevin has created an important opportunity for all free culture stakeholders to step back and imagine what the world will look like when we win. By doing so, we end up defining a set of implicit goals for our social movement and can then set to work on the hard part: figuring out how we get there. With thanks to Eben Moglen for much of the inspiration, here's mine:
People remembered that there is no scarcity in information goods except where they have created it. As evidence grew of the positive effects of free culture and the toll of information ownership, our communities decided that we were not well served by limits on the flow and development of knowledge. Accordingly, the gatekeepers and tax collectors for culture have withered away and were dismantled. We -- the consumers, creators, and re-creators -- have offered new, more ethical business models, have engaged in new methods of distribution, and have produced creative goods. Today, access to information is a simple matter of connecting someone to a network and a community: a technical problem that we know how to solve. Nobody pays for the "right" to hear music, read a book, watch a movie, or use a piece of software. Nobody is forced to choose between being a bad neighbor or friend and breaking copyright law. No artist, musician, or author sells a million copies of anything and no artist, musician, or author has a day job.
Now it's your turn. Eben Moglen tell us to not stop until we're free. Let's paint a picture of what that free world looks like. Most importantly, let's challenge ourselves to find ways to make it possible.

Dave Noble: Breakfast = Fail

After a night of sorting out sound for a ceilidh band at Debconf, I stayed at the night venue until 5am for some unknown reason; meaning that I slept through until 3pm... pixie joined me for a breakfast of pancakes; the making of which resulted in many a roflet and some epic fail -- see below for details.
fail
"I broked it!"
getting better

it's working! cheesy grin!

yay!
"Pancake approved!"

Edd Dumbill: Collecting minimal user information

Web applications are in constant competition for a user's attention. Unlike shrink-wrap software, there's often no captive audience, and web apps must gently guide and woo users to help them to the best experience of the software. This is particularly true when considering the problem of collecting personal details from a user. Collect too little information, and your app might not be able to function effectively. Collect too much information, and you raise the barrier for participation with your application. Users may either not be bothered, be alarmed at the apparent intrusion into their privacy, or fill out bogus information.  One size doesn't fit all
I originally stumbled on the issue in the development of Expectnation. The amount of information a conference speaker needs to give the organizers is significantly more than that of, say, a reviewer. An organizer will often want postal and phone details for a speaker, which are largely irrelevant to the review process. All conferences and events rely on the willingess of participants, so the path to participation needs to be as frictionless as possible.
Thus, a one-size-fits-all personal details form didn't make sense for us. At best, we could have simply made more fields optional, but that would result in missing information that we really did need. Another solution would be to provide a dedicated personal details form per user type, e.g. different forms for speakers and reviewers. This is a non-starter, however, as users can take on many roles within a conference. So, we had a problem on our hands: different levels of interaction with our application requires different levels of personal information. We also had a second problem, which is that not all events and organizers want the same level of information. For example, a user group event is unlikely to need the same amount of information from speakers as an academic conference. Thus we have two axes on which the amount of information required varies: by role, and by event.  Our solution: progressive disclosure We concluded that we wanted to adhere to two principles in the collection of user information for Expectnation: The first objective was achieved by constructing a matrix of information items against user role, with the possible values of required, optional, unused for each item. We then achieved the second objective by allowing this matrix to be varied over each event. We've named this concept "progressive disclosure." What this means in practice is that a user is only ever asked for the information required to fulfil the roles they have within Expectnation. If they take on another role, they are asked for the additional information at that point, and not before. Implementation concerns Expectnation user disclosure editing
Extract from disclosure level editing UI It would be untrue to say that progressive disclosure is simple to implement. A user in our system will have disclosure requirements that are the union of all of their roles in all of the events they attend. Within Ruby on Rails, this means the conventional validation logic is useless to us, as it only deals with static requirements. Secondly, disclosure requirements are expensive to compute, so we need to cache them, with the inevitable addition of issues such as cache invalidation. Beyond the data model issues, the user interface issues are, if anything, more troublesome. From an end-user's point of view, the difficulty arises when we need extra information from them, and presenting this in a way that makes sense. From the event organizer's point of view, we have the challenge of presenting a controlling user interface for rather a complex concept. Organizers must be able to change the level of required information either globally, or per-event. We opted for a grid presentation, an extract from which is shown in the screenshot in this article. Over time we'll be able to see how effective this interface is, and what we can do to improve it. Finally, we have chosen sensible defaults for all disclosure levels, as the best result would be that organizers have little need to reconfigure the settings in the first place. Making it look easy Because Expectnation is a general application for organizing events, rather than targetting one specific one, we've had to construct a framework for minimizing user information collection, as opposed to simple implementation of known scenarios. At the end of the day we have added a fairly complicated subsystem and an extra degree of complexity to our codebase. However, the result from the user's point of view is increased simplicity and a streamlined experience. Every time you embark on something that wide-reaching and complex, you have to ask yourself whether the feature is really worth it. In this case, though, the answer is a resounding "yes". The user is the most important factor in our software, and making their life easier in an unobtrusive manner is a priority.

20 June 2007

David Moreno Garza: Edinburgh

So, yeah, I’m in Edinburgh right now. For those of you who have asked, here is a little track of my adventures in the previous days: After all, I had made it to DebConf7.

Daniel Stone: code loss incident

Just got back from Barcelona. On our last day, someone broke into our apartment and made off with two X40s, three cameras, four iPods, two N800s, a reasonable amount of cash, et al. One each of the X40s, cameras, and N800s, were mine.

That wouldn't be too catastrophic in and of itself, but unfortunately, the laptop was my master machine, where I'd been doing development, and I lost at least four active/useful X branches, in addition to the irreplacable photos/etc. Distributed development wasn't at fault here: one of the branches was actually done in CVS last year, but as a forked tree which thus had no history, and was just maintained as a huge diff until my hard drive crashed. Guess it's about time to start making some backups.

Anyway, long story short, if you were waiting for an xkbcomp-less X server, for RMLVO over the wire XKB, for an X server using HAL, or in fact basically any code from me, you'll have to wait a while longer.

Edd Dumbill: Why Bazaar rocks, and the highs and lows of its use with Rails

While Subversion is for many the source code revision system of choice, I've never stopped long with it myself. Why? Because it's mostly a fixed-up CVS, and doesn't fix the really gnarly problem with revision control: merging.Mark Shuttleworth has written an insightful little article on the key aspects of merging source code. Some of the points he makes underpin my choice of revision control system.For several years now I've been a very contented user of Bazaar, in its first arch-based incarnation, and now in its latter form. The key reason has been ease of merging.While most articles praising Bazaar are reports of open source development, I've also found it very handy for small in-house teams working on web applications.There are very often multiple arcs of development going on at once, and the ease of merging makes it easy to ensure that long-running development arcs don't get ridiculously far from the main trunk of development. Bazaar's merging also makes it easier for lead developers to police the merging of the code base.Using Bazaar with Rails and other toolsWorking mostly with Rails, one repeatedly runs up against the assumption that Subversion is the golden path for revision control. This is perhaps a little telling about the level of participation most Rails-based projects have reached.The tools story for a Bazaar user is both good and bad.The goodThe bad

19 June 2007

Anthony Towns: Some Random Notes from DebConf

debootstrap’s now team maintained under the debian-installer subversion repository; uploaders are Joey Hess, Frans Pop, Junichi Uekawa and myself. Rumours are Colin Watson might be joining in too. There’s a few changes committed, but an upload hasn’t been made yet – at least last I checked. Frans is applying pressure to bump the version to 1.0, as he seems to think it’s ready for production use. ifupdown’s had a maintainer upload, albeit to experimental – consider it a response to the competitive threat of madduck’s netconf. Changes are pretty minimal – it now uses iproute instead of ifconfig, there’s a “-o” option for ifup that lets you say things like “ifup -o wireless_essid=DebConf7 eth1” instead of having to edit /etc/network/interfaces. There’s a couple of backwards-incompatible changes unfortunately, so some other development’s needed before it will be suitable for unstable. In other red-letter news, the bzr archive for dak is up to date compared to what’s in use on ftp-master. Take advantage while you can! dak continues to stand for “debian-archive-kit”, not “debian-archive-kilt” however.

Next.

Previous.