Search Results: "nate"

4 October 2007

Romain Francoise: Balance is but a shimmering notion

After beating git-debimport into submission for some time, I now have a reasonably coherent git archive of tcpdump with proper commit dates, correct attribution and a tag layout compatible with what git-buildpackage does.

Along the way I tried out guilt (git + quilt). Unfortunately, my trust level almost immediately reached zero.

Apart from that, today pretty much sucked. Prepare your sleep apparatus. Better luck tomorrow.

Russell Coker: Ideas for a Home University

There seems to be a recent trend towards home-schooling. The failures of the default school system in most countries are quite apparent and the violence alone is enough of a reason to keep children away from high-schools, even without the education (or lack therof). I have previously written about University degrees and whether they are needed [1]. The university I attended (which I won’t name in this context) did an OK job of teaching students. The main thing that struck me was that you would learn as much as you wished at university. It was possible to get really good marks without learning much (I have seen that demonstrated many times) or learn lots of interesting things while getting marks that are OK (which is what I did). So I have been considering whether it’s possible to learn as much as you would learn at university without attending one, and if so how to go about it. Here are the ways I learned useful things at university:
  1. I spent a lot of time reading man pages and playing with the various Unix systems in the computer labs. It turned out that sys-admin work was one of my areas of interest (not really surprising given my history of running Fidonet BBS systems). It was unfortunate that my university (like almost all other universities) had no course on system-administration and therefore I was not able to get a sys-admin job until several years after graduating.
  • I read lots of good text books (university libraries are well stocked).
  • There were some good lectures that covered interesting material that I would not have otherwise learned (there were also some awful lectures that I could have missed - like the one which briefly covered computer security and mentioned NOTHING other than covert channels - probably the least useful thing that they could cover).
  • I used to hang out with the staff who were both intelligent and friendly (of which there were unfortunately a small number). If I noticed some students hanging out in the office of one of the staff in question I would join them. Then we would have group discussions about many topics (most of which were related to computers and some of which were related to the subjects that we were taking), this would continue until the staff member decided that he had some work to do and kicked us out. Hanging out with smart students was also good.
  • I did part-time work teaching at university. Teaching a class forces you to learn more about the subject than is needed to basically complete an assignment. This isn’t something that most people can do.
  • I expect that Children who don’t attend high-school will have more difficulty in getting admitted to a university (the entrance process is designed for the results of high-school). Also if you are going to avoid the public education system then it seems useful to try and avoid it for all education instead of just the worst part. Even for people who weren’t home-schooled I think that there are still potential benefits in some sort of home-university system. Now a home-university system would not be anything like an Open University. One example of an Open University is Open Universities Australia [2], another is the UK Open University [3]. These are both merely correspondence systems for a regular university degree. So it gives a university degree without the benefit of hanging out with smart people. While they do give some good opportunities for people who can only study part-time, in general I don’t think that they are a good thing (although I have to note that there are some really good documentaries on BBC that came from Open University). Now I am wondering how people could gain the same benefits without attending university. Here are my ideas of how the four main benefits that I believe are derived from university can be achieved without one (for a Computer Science degreee anyway):
    1. Computers are cheap, every OS that you would ever want to use (Linux, BSD, HURD, OpenSolaris, Minix, etc) is free. It is quite easy to install a selection of OSs with full source code and manuals and learn as much about them as you desire.
  • University libraries tend not to require student ID to enter the building. While you can’t borrow books unless you are a student or staff member it is quite easy to walk in and read a book. It may be possible to arrange an inter-library loan of a book that interests you via your local library. Also if a friend is a university student then they can borrow books from the university library and lend them to you.
  • There are videos of many great lectures available on the net. A recent resource that has been added is Youtube lectures from the University of California Berkely [4] (I haven’t viewed any of the lectures yet but I expect them to be of better than average quality). Some other sources for video lectures are Talks At Google [5] and TED - Ideas Worth Spreading [6].
  • To provide the benefits of hanging out with smart people you would have to form your own group. Maybe a group of people from a LUG could meet regularly (EG twice a week or more) to discuss computers etc. Of course it would require that the members of such a group have a lot more drive and ambition than is typical of university students. Such a group could invite experts to give lectures for their members. I would be very interested in giving a talk about SE Linux (or anything else that I work on) to such a group of people who are in a convenient location.
  • The benefits of teaching others can be obtained by giving presentations at LUG meetings and other forums. Also if a group was formed as suggested in my previous point then at every meeting one or more members could give a presentation on something interesting that they had recently learned.

  • The end result of such a process should be learning more than you would typically learn at university while having more flexible hours (whatever you can convince a group of like-minded people to agree to for the meetings) that will interfere less with full-time employment (if you want to work while studying). In Australia university degrees don’t seem to be highly regarded so convincing a potential employer that your home-university learning is better than a degree should not be that difficult. If you do this and it works out then please write a blog post about it and link to this post.

    Theodore Ts'o: Hans Reiser, 20/20, and his talk at Google

    I got a call from one of the researchers from ABC news this evening. Apparently they are planning on doing a segment on Hans Reiser on their 20/20 show, and the researcher knew enough that there were some serious technical inaccuracies with the script (at the level of “so when Hans was creating reiser4, was that software; was he writing a program?” and “does the program run on the hard drive?”), and so they were looking for help on some technical issues on a background basis. She didn’t take any quotes from me; what she needed was help understanding the technical issues around filesystems and Linux. I tried to help explain what a filesystem was that would make sense to a lay person in 15 seconds; I have no idea whether the researcher got it, and whether she’ll be able to make changes in the script that will be vaguely coherent. We’ll see. I spent a lot of time working with Joshua Davis, providing background material for his Wired article, and he still got a bunch of the technical details wrong. The 20/20 researcher did ask me some silly questions such as “whether we were surprised when murder charges were filed against Hans?” Well, yes. What did she expect me to say? “Oh, yes, were always worried someone would get hurt…” Not! Sigh…. I might not agree with Hans’s filesystem design principles or his tactics in trying to get reiser4 accepted, but I always respected him as a fellow open source programmer. The researcher mentioned to me that Hans had done a talk at Google that was available at the Google Video site. Out of curiosity, I took a look at it. It was interesting; the last time I had seen Hans was in 1999, at the Linux Storage Management Workshop in Darmstadt, Germany that was organized by Matthew O’Keefe at Sistina Software. Compared to how he looked back then, and the picture of him in the Wired article, taken a 10-12 months after his talk at Google in February, 2006, I was struck by how much heavier (and older at least compared to my memory of him, which was much closer to this picture from his resume) in the Google Video. I also remember him as being a much more dynamic and energetic speaker, and I was struck by how slowly he spoke, with lots of long pauses and “umms” and “ahhs”. He seemed to be a much better public speaker in Darmstadt, but in the Google talk he seemed very tired as he gave the talk. One of the questions that the researcher asked me was whether I thought he was a genius or not. I told her that I thought he was quite bright in terms of raw intelligence, but that his Social IQ wasn’t as high as you might want for someone to be successful in gathering volunteers to work on an Open Source project, and in working with others in an Open Source development community. Looking at the video, I think that is very much true. He was a terrible public speaker, but some of the points he made about optimizing B-tree algorithms made sense. I might disagree with his philosophy over filesystem design and benchmarking, and I might not be terribly impressed by his social skills, but in terms of being a talented computer scientist, he was and is that. Is he guilty of the crime that he has been accused of? I have no idea. But from looking at his talk and knowing what I know of him, I have the sense of a greek tragedy. He’s been working on some of his ideas since his undergraduate days in UC Berkely in the early eighties — which he entered after finishing his 8th grade. And as research ideas, I think he might have gotten some very interesting results out of trying some of the things that he wants to do around operating system namespaces. (I think they are doomed in a production system descended from Unix, since application programmers are unlikely to rewrite their programs to take advantage of reiserfs’s performance characteristics — which would mean instead of using a Unix-like configuration file, treating a directory hierarchy containing the configuration information like a Windows registry. Still, as an academic, Plan 9-like system, I could have seen it has being a potentially very interesting Systems Research effort.) Unfortunately, his skills at public speaking and his ability to work with other people have handicapped him, and I know that has frustrated him deeply. So I have a lot of sympathy for him, and I hope that he is innocent, and will be found innocent. But only time will tell…. Anyway, according to the researcher, they are currently scheduling their segment about Hans on 20/20 on October 19th. I’m sure that schedule is subject to change, but it’ll be interesting to see how they treat Hans in their coverage. Hopefully it will be fair, and not overly sensationalistic, but unfortunately my faith in today’s TV edutainment-focused news program isn’t terribly high. My impression was that the research wanted to do a good job, but she was burdened by a very tight deadline, and in the end, the decision of what goes on the air and what doesn’t won’t be up to her. So we’ll see.

    3 October 2007

    Michal Čihař: Reinstalling notebook

    Man never realizes how much customised distribution he has until he has to reinstall it. Last week hard disk in my notebook died, so I had to reinstall system and reconfigure everything. I fortunately have backups of almost everything (at least I didn't notice that anything would be missing), but I anyway spend two evenings in installing, configuring and restoring from backups and I'm still not done with it, but the system is at least usable for normal work. However there are also some positive things on this: I get more space and faster disk. I finally set up encrypted file system on my notebook. I dropped several old crap that lived (or better was buried) somewhere in my system and which I already forgot why it was there. And I also got rid of very bad partitioning scheme, which was there from times I used together Debian and Windows and wanted to have another partition to test SUSE installation while I worked there. Now there is only Debian to rule them all ;-).

    Andrew Pollock: [tech] Double drive failure, the sequel

    Today I received the replacement hard drives for the two that failed the other week. Despite me not ticking the box (or paying the $10 for the upgrade), they gave me 500Gb drives to replace the 400Gb drives that I'd shipped them. I was a little dismayed to find that they were labelled as refurbished drives though. Oh well. I plugged the first drive in, and it started exhibiting the same behaviour as the one that had failed, and I immediately thought "oh, they've shipped me a dud refurbished drive". So I tried the other one. It also did the same thing. I started to smell a rat. I have a slightly convoluted power setup for these four disks. They're all connected to minotaur via IDE-USB adapters, and they have external DC power supplies. They're just sitting on top of minotaur, which is a Pentium III 1-RU server, in the bottom of my linen cupboard. In order to reduce the number of plugs involved, I have an IEC Y-cable, which goes to two of these DC power supplies (which take an IEC cable in one end and has a Molex connector on the other end), and the Molex cable from the DC power supply has a Molex splitter cable on it. So I'm powering two drives from each DC power supply, and each DC power supply is connected to an IEC Y-cable. There's no redundancy whatsoever, and I'm not that concerned. I don't have a UPS anyway, and the whole thing has worked fine for months, and it reduces the rats nest of cables a little bit, which is good. I already have way too many things plugged into my linen cupboard. Anyway, so after both new drives appeared to be faulty, I discovered that both drives that had failed within a day of each other were connected to the same DC power supply. The plot thickened. So I dug out a standalone IDE-USB hard drive enclosure (with a separate power supply) and tried that. Everything worked. I tried it with just the enclosure's power supply and either of the IDE-USB adapters I'd been using previously. Everything worked. So I'd managed to narrow it down to the power supply. Most unusual. So fortunately I have four of these DC power supplies, as they came with the IDE-USB adapters, and I freed up two of them when I went for the aforementioned crazy power splitting setup, so I dug out one of the two spares, and tried that, and everything worked. So I've no idea why the power supply decided to go dicky after months of working. I've yet to introduce my multimeter to it to try and work out what's going on. I'm a bit embarrassed that I didn't do more homework before I declared the drives to be faulty. To be honest, they were clicking and generally looking "failed", and I've had a lot going on lately, so I just jumped to the conclusion. Oh well, at least I still haven't lost any data. Too bad I have 200 Gb that is going to go to waste.

    1 October 2007

    John Goerzen: Spineless Democrats

    The Democrats ran in 2008 on the platform of ending the Iraq war, and won largely on that platform. Now they are failing to deliver upon it.

    It is true that they have a thin majority in the Senate and a not much wider one in the House. It is also true that it takes 60 votes to pass legislation in the Senate, which they don't have.

    But here's the thing. It takes 60 votes to pass legislation. That means that they can easily defeat any massive Republican war spending bill.

    I think they are worried about the Republicans painting them as being against the troops. So what? If the Republicans vote against a Democratic funding bill that provides adequate funds for an orderly withdrawal, aren't they doing the same? "No" votes on both are votes to prevent the funding from passing.

    They easily have the votes to defeat massive Republican spending bills. So why not advance a spending bill like they campaigned for, and watch all the Republicans vote against it? If no funding at all passes, they achieve their objective, just not as cleanly, and the Republicans would be the ones voting against funding. Make the Republicans take some heat for a change, and give them no choice but to compromise.

    Kartik Mistry: Freed.in/07

    * One of the best ever event Freed.in is over (although, some people are enjoying at Manali right now!). I came back on last night. * I reached Delhi on Thursday night. Grepping JNU was easy due to pre-paid taxi from airport. Got my room at Aravali Hostel and found none of the known person at first site. Oldmonk’s reply to my call, ‘where are you?’ was hilarious one. Finally, I found Karunakar and we enjoyed ‘Maggie’ at 12 AM. * Both days were entirely full of fun. I talked about ‘Debian-IN‘ project. Unfortunately, my talk got last place on schedule (I think due to track allocation etc) and so, number of people was less. The fun thing was that whole #linux-india channel (almost, except famous Lap_64) was there. And channel was so quite during 2 days.. * With very limited time in our hand, we (me and tuxmaniac) visited Qutub Minar, India Gate and famous Delhi Metro (by traveling to/from random station!). Flickr photos are up.

    Michal Čihař: Nokia cables

    What does cryptic shortcut for different cables for different Nokia phones mean? This was always a bit confusing to me. Now I finally found some document which writes quite clearly, what all they do. Unfortunately for most readers of this blog, it is only in Czech language - Ovl d n mobiln ho telefonu jedno ipov m mikroprocesorem. However here is quick summary if somebody is interested: MBUS Single wire (+ ground) connection, usually used for servicing phone, but sometimes also exposes some functionality. Fixed baud rate at 9600. DTR and RTS usually used as power source, DTR should be low and RTS high. FBUS Two wire (+ ground) connection, used for user data. Variable baud rate (but usually 115200). DTR and RTS usually used as power source, DTR should be low and RTS high. DAU-9 / DLR-3 Cables for both FBUS and MBUS, switching is usually done by toggling RTS or DTR signals (for DAU-9) or special AT command (for DLR-3). DLR-3 also additionally supports AT commands over FBUS lines. DKU-5 This is basically DLR-3 cable with USB/RS232 converter, so it is first step of getting USB into phones. DKU-2 This is for recent phones which directly support USB, it contains no logic, just wires for USB.

    30 September 2007

    Marc 'Zugschlus' Haber: Booting from USB stick on older hardware

    I spent the better part of the weekend with trying to get an older Athlon XP mainboard to boot grub from an USB stick. Unfortunately, without success. Since a few months, my notebook boots Windows XP when it is booted naively. Only if the correct USB stick is plugged in on boot, the Debian system that I work with comes up. The USB stick has grub, a kernel and an initrd which is used to boot and unlock the crypto file systems (crypted LVs) on the disk and can be removed once the system has booted. I wanted to use the same scheme for a “newly built” new desktop from old parts. Unfortunately, this was much harder than I expected. Since a few years, I use the USB-ZIP format for USB sticks that need to boot. It has shown that this format has the best chance to successfully boot. For more information about this format and about how to build it, see /usr/share/syslinux/README.usbkey on any recent Debian system with syslinux installed. My grml USB stick that I always have on me is formatted like this, and the “new” desktop boots it just fine. The boot stick for my notebook is an USB-ZIP as well, only that its primary partition is not FAT, but ext3. Unfortunately, the BIOS of the “new” desktop seems to refuse booting grub. Neither my notebook’s stick nor the new stick even come to the “loading stage x” output of grub, let alone to the menu. syslinux works fine, and both sticks boot just fine on my notebook and on a qemu on the “new” desktop. Since the grub command line has saved me multiple times in the past, I didn’t really like the idea of having to use syslinux, and decided to boot the “new” desktop conventionally from hard disk without the use of an USB boot stick. Until I got this far, the complete saturday and the better part of sunday was wasted. Darn. This reminds me of a mainboard from 2002 (incidentally from the same vendor), which checked whether the first hard disk had an active primary partition on it before it even tried to execute the MBR code. If no primary partition was found (which was common case with the partitioning scheme that I used back then which only had logical drives - this was before I discovered LVM), the BIOS gave the error message “Not found active primary partition” (sic!) and refused to boot. Stupid programmers trying to outsmart the sysadmins of their products. But at least, the error message was reasonably clear back then.

    Romain Francoise: Working around link tracking

    Readers of this blog have probably noticed by now my links posts; they are generated automatically from my Shared Items in Google Reader by a Python script which parses the Atom feed of my items and posts them to Blogger using the GData API. This works fine, but one of the annoying side effects is that the links in the blog post are not necessarily the real permalinks to the original articles since they are taken verbatim from the feeds, and many of them use services such as FeedBurner to do link tracking via an HTTP redirection.

    Fortunately, resolving such redirections in Python is trivial:
    >>> from urllib2 import urlopen
    >>> u = 'http://feeds.feedburner.com/~r/boingboing/iBag/~3/162307349/new-york-jedis-meet.html'
    >>> urlopen(u).geturl()
    'http://www.boingboing.net/2007/09/27/new-york-jedis-meet.html'
    >>>
    Much better.

    Christian Perrier: RWC: Fiji and Scotland in 1/4th

    Yesterday, New Zealand crushed Romania (85-8), just like they crushed all other teams they faced up to now. Of course, my only hope is that they stop crushing teams...as France is very likely to be the next one. Indeed, the only question about New Zealand is about their defensive skills as all teams they faced scored one try against them. Particularly, their wing players seem to be pretty "weak" in defense ("weak" in terms of New Zealand...:-)). I haven't seen anything of Australia-Canada (37-6). Apparently, the Australians were pretty quiet (6 tries, still!). Very unfortunately, I haven't seen THE match between Fiji and Wales (38-34). The Fiji team created an "half surprise" by qualifying for 1/4th finals. All reports I read talk about a wonderful match, with great indecision, a full commitment by both teams, and 9 tries. Sigh. I screwed programming my VCR and we were strongly disappointed this morning. Finally, Scotland managed to qualify after beating Italy 18-16. Up to the very last minute, Italy hoped to qualify but Chris Paterson scoring 6 penalties out of 6 attempted converted all occasions the Scots had to score points. I'm slightly disappointed for the Italians who played great games all along this World Cup and would have deserved to qualify and meet Argentina, France or Ireland. Today, the final 2 teams for the 1/4th finals will be determined. Argentina has great chances to finish first (they only need one bonus point) and meet Scotland. France needs to win against Georgia. Scoring the bonus point would secure the qualification for them. Ireland has little chances to qualify as they need to beat Argentina without Argentina to score a bonus point, therefore with more than 7 points difference. The most probable ticket is Argentina finishing first and France 2nd (thus meeting New Zealand).

    29 September 2007

    Stefano Zacchiroli: w3-recs

    Adopting w3-recs (i.e. experiences in package generation) A week ago or so I decided to adopt w3-recs, a documentation only package aiming to ship recommendations of the W3C in Debian. The previous maintainer (Frankie) step down from w3-recs maintenance since the packaging work was quite boring (add recommendations piecewise as soon as they came out, update them when needed, keep doc-base entries in sync, ...). I didn't want to follow that path and, probably for the first time in my life, the (not so) semantic web has come to the rescue. Starting from the TR automation page, I've found an always up to date index of all Technical Reports published by W3C, enriched with some information about the status of the TRs (draft, candidate recommendation, recommendation, ...) which is in RDF/XML format, and hence machine processable. The final result is that now the w3-recs package is mostly automatically generated via debian/rules target. The get-orig-source target first downloads the RDF index of the technical reports and then downloads all of them via wget (it took me sometime to find the appropriate flags, I've ended up with a award-winning wget command line containing 12 dash switches!). Then, at build time, several derived stuff is generated from the very same RDF index via XSLT: doc-base entries for all the shipped documents (the current grand total is 119 recommendations), a HTML index summarizing the available documents, and other debian/ stuff needed later on in the package build process. The next steps for w3-recs should be automatically split of the package in sub-packages classified according to the corresponding W3C activity, and enrichment of the doc-base entries with abstracts. Unfortunately neither of the 2 kinds of information are provided yet in the RDF index (not so semantic web, after all). Infrastructure deficiencies encountered in the process

    28 September 2007

    Neil Williams: Associating events with contacts

    This is more of a reminder to myself to investigate this within GPE. The basic problem is that many events recorded in applications like gpe-calendar have a direct relationship with a specific person in the contact database and can also be linked to records in the expenses database. Expenses are relatively easy if the time of the expense occurring can be related to the duration of the event but a formal link may be more useful for extra granularity.
    Relating an event to a person would typically involve the event being a work placement, a project name, a customer name or the name of an organisation. It could link an event to the organiser of the event or provide a quick lookup for the location of the event to eliminate entry duplication. (Why have the address of the event in the event record if the address is already in the contacts database? Equally, why have the dates of an event in the contact record for the organiser of the event when the same organiser may well be putting on a similar event again in the future?)
    I'm thinking that gpe-calendar and equivalent applications could have a field within the event record for an ID in the contact database and a preference setting for the "category" of contacts to be shown in that field, e.g. Business or Conferences. Entry of the association would simply be a drop-down box of contacts that have the appropriate category set. A similar associative field can be implemented in expenses.
    This all makes creating an invoice much more reliable. The current pilot-qof method depends on the user specifying the name of the contact as the description of the event and the "vendor" or "city" of the expense.
    I'm sure there are other uses for associating events with contacts and/or expenses.
    No time to investigate this just yet but it is another essential step in migrating PIM into a business-friendly format, SBIM (for want of a better name).
    Small business support is lacking in current free software programs, IMHO. The applications that do exist do not work together to ease the administration burden of a small business the way that the system tools work together to ease the sysadmin burden. Understandable, yes, but small businesses need this kind of support to migrate to free software. "Joined-up thinking" is the buzzword but it's basically eliminating duplication in data entry/retrieval, associating business data across disparate data sources and enabling queries and data mining to support tax calculations, business plans, time management, project management, customer data handling ... the usual small office/home office workload.
    I'm inevitably concentrating on data integration in an embedded devices like iPAQs, smart phones or blueberry-type handhelds but similar requirements need to be met within the rest of the free software world too. Once I've got time to investigate this, expect some threads on debian-devel looking at how Lenny could be made more business-friendly; not seeking an "Enterprise" version but simply making it easier to administer a small business using Debian.

    26 September 2007

    MJ Ray: New to the Forum? Say hello! / Re: Hello, how do we keep this running?

    "We got a few more members now. The forum platform is now Simple Machines instead of Invision, I should have listened to Slef!"
    Well, I have been doing this a long time... unfortunately, that means I also sound bitter and should be ignored sometimes ;-)

    We're still not exactly in danger of filling up the new WSMForum yet.  How should we promote this?  Door-to-door cards?  Flame-bait the letters pages of the newspapers?

    Also, how do we ensure the forum survives in the long term?  Could we try a web-co-op-2.0 idea to reward the community?
    http://tom.acrewoods.net/blog/2007/apr/enclosure-co-operative-2-0

    Scott James Remnant: Why I choose Bazaar (a history of revision control)

    Like any sensible software developer, I have a close relationship with revision control systems. In my previous job, I was an SCM Engineer (see Software configuration management) which meant I had an even closer relationship than most, since we were running the CVS servers and actively using them to track changes and deployments. We all know, deep down, that revision control systems shouldn’t exist. This kind of thing should be inherent in the design of the operating system, through standard file and filesystem formats. The OLPC interface is making some headway towards that, but for the rest of us, it means using a revision control tool throughout the development process. Unfortunately, even though the tool is expected to be the most-used command on your system, very few of them are particularly easy to use. Thus there’s a large learning curve, and people become religious about their choice since they have invested significant time in using it. Just to spice the mix up, not only will people religiously defend their choice of revision control system, but they’ll do so while actively hating it. In the beginning there was CVS and we all thought that it was pretty good. It was based on the simpler RCS and shared a file-format with it, but introduced control of directory trees and remote operation. Actually, in reality, CVS wasn’t that good. Its command set could be a little strange and inconsistent (e.g. it’s not possible to diff between two dates on a branch); the support for branching assumed that all branches would be merged into the mainline, and only once; and nobody ever really knew how to create a new project in a repository (tip. cvs import is wrong). But we all used it anyway, and we muddled through. It did have some good features; it was simple, fast and pretty reliable–when it did break, you could usually fix the repository yourself. And most importantly of all, we understood how to drive it. And so it was for many years, until Subversion (SVN) came along. Subversion intended to be “a better CVS”, perhaps this goal should have made us suspicious at the time since CVS was already being a pretty good CVS by itself; unfortunately we hated CVS so much we flocked to the new system in hope. In hindsight, Subversion didn’t really improve on CVS much at all. In fact, arguably, the only real improvement was the addition of atomic commits (in CVS, each commit is per-file, so it’s manual labour to work out which change was made to two files at the same time). (Its support for branching, tagging, copying, renaming, etc. were no better than CVS’s when done in the repository by hand.) The cost of this single new feature was a much more complicated interface (with two separate commands), a backend that tended to break down weekly and a lethargic slowness to its operation. Most people I know now justify their use of Subversion instead of CVS by “Subversion is maintained, CVS isn’t” which is a somewhat self-fulfilling justification. While the mass conversion to Subversion, and ensuing disappointment and frustration, was going on; something new appeared on the horizon: Arch. Arch was different, it broke one of the core assumptions of revision control, that of the repository as a cathedral. In CVS, and Subversion like it, if somebody wants to modify your code (even if on a branch) you need to give them access to your own repository. In some cases (especially with CVS), vast access control and permission structures would be in place to ensure proper behaviour. With Arch, you don’t; all you need to give to anyone is read access. Anybody can make their own branch by copying yours and committing to their own copy. This model also necessitated fixing a long standing problem that CVS had; Arch has repeatable (smart) merging. If you merge from a branch, you can merge again later, and again, and again. Arch made this possible through each commit (changeset) having a globally unique identifier; made from the branch’s own globally unique identifier and the changeset number in the branch. Unfortunately while this was a massive step in a new direction, Arch had an absolutely terrible user interface. Its command list was terrifying with over 100 commands, many of which had multiple word names (tla set-tree-version). It exposed too many of its own innards, and expected you to learn them. It also forced baroque file naming semantics on its users and strange policy (though shalt not commit without first running “make clean”). Efforts were made to improve Arch’s user interface through projects such as baz, but they were always to be doomed from the start. We’ve since seen an explosion of new revision control systems; Monotone, Darcs, Git and Bazaar. What’s especially interesting is the commonality between these systems. They are all “distributed” like Arch, though they also all discard the strange “unique branch identifier” convention and instead simply assign a unique identifier to each file or commit. This means that they all support personal branches, and by necessity all support repeatable (smart) merging. So how do they differ, what are their killer features and killer problems? Monotone is all about repository integrity, ensuring that every commit is both authorised and intact. It pays for this with a severe lack of speed. Darcs is based around a “theory of patches”, a branch is not made up of its history but by the collection of patches in it. Unfortunately this often breaks down, and darcs frequently gets stuck calculating even trial and commonplace branch models. Git is very strange to me; its killer feature appears to be the speed at which it can handle very large trees, but the interface is as insane as Arch’s was. It is heavily optimised for the “I only apply patches” development model, at the expense of ordinary development models (it shares an issue with Arch where calculating annotations on an individual file is an expensive operation). What about Bazaar? Its killer feature is that it is designed to work the way you do. The command set is relatively small, and each of them works in the most obvious manner. It also supports plugins so that you can always implement your own workflow. Of all the revision control systems, it’s the only one (that I’m aware of) that supports both distributed and centralised workflows (and lets you go distributed when you need to, e.g. when you’re on a plane). Here’s a few examples of how Bazaar’s command set works the way you do. To start managing some code in bzr:
    $ cd myproject
    $ bzr init
    
    To add the files, copy in your usual .bzrignore file and just add everything:
    $ cp ~/bzrignore .bzrignore
    $ bzr add
    added foo.c
    added bar.c
    
    Check the output for mistakenly added files, adjust .bzrignore and remove the file with bzr rm. A common operation is realising that the commit you’re about to make should really go on a new branch for now:
    $ cd ..
    $ cp -a myproject myproject-foo
    $ cd myproject-foo
    $ bzr commit
    
    A copy of a Bazaar branch is a different branch, you can commit to it separately. There’s a bzr branch command for it too (which deals with issues such as bound branches, checkouts, etc.) but it’s nice to demonstrate that Bazaar does what you’d expect even when you don’t use its own commands. Pulling changes from another branch (where you haven’t made any modifications yet) is easy:
    $ bzr pull ../myproject
    
    As is merging (when your branches have diverged):
    $ bzr merge ../myproject
    
    One particularly nice feature is that after a merge, you see the merge as a single commit and it can be treated as such; but it also has the set of merged commits indented under it–you can examine these as individual commits as well! What’s the downside of Bazaar? Well, it’s not the fastest system (but by no means the slowest), for small to medium sized projects this is never an issue but may be for extremely large projects–fortunately the developers are improving its performance all the time! But that doesn’t matter; it is, honestly, the first revision control system that I don’t hate.

    Raphaël Hertzog: DSA needs a leader

    Seriously. Now that we have been using the request tracker for quite some time, it’s even more obvious that the DSA team is not up to its task. Use login “guest” and password “readonly” if you want to check the RT tickets linked in this article. The facts Note that myself and Matt do not have the needed rights to fix most of the tickets, so we provided help on a best-effort basis. Otherwise we would have done more. The communication problem It’s a multi-level problem. Each of the members has some problems with one or more other members. Joey’s behavior has been part of the recurring problems mentioned: he doesn’t use the RT, doesn’t read the DSA email alias and doesn’t follow the DSA IRC channel but he still does stuff very regularly without reporting anything and obviously problems happen. Ryan and James tried to impose him a rule to document what he does, without success apparently. On the other side, as far as I know, Ryan and James also don’t impose themselves to document everything in a central changelog. Joey has refused to provide me an explanation for his behavior. He just reminded me that he holds grudges against James and Ryan because as ftpmasters they didn’t cooperate well with him while he was stable release manager. In general, outside of all personal griefs that they might have, the DSA members do not communicate very much (at least not on their own official channels). Some examples have already been given concerning the request tracker, but it’s not much more effective on IRC. Most of the traffic on the channel is made up by local admins fixing the problems themselves without any intervention by any DSA. I also use the channel to regularly ping some DSA about simple issues and/or stuff that they usually handle. It used to work somewhat but lately fil has been busy (with the kernel summit and other conferences) and I simply got no answer at all… for example I pinged elmo, neuro and fil several times in the last weeks in the hope that they handle the tickets of the security team (#150, #157, #164) without results. There’s room for improvement. The leadership problem The team has no designated leader and every time that there’s a decision to take, they are blocked. Joey wouldn’t communicate and give his opinion, Ryan is extremely requiring and perfectionist, there’s not much room for compromise… A long time ago in a galaxy far, far away, Joey and elmo were friends. It’s even Joey who gave root rights to elmo. Nowadays, it’s rather James that is sort-of leading the team but he’s fed up of the situation and hasn’t managed to get out of this mess. He refuses to take drastic measures by himself because he’s not clearly the leader and doesn’t solicit a decision of the Debian leader (or the project) because he believes that the DSA team is not under the scope of the constitution! This can’t last any further. We’ll have to do something about it. Stay tuned.

    25 September 2007

    Christian Perrier: RWC: AUS-FID, NZL-SCO

    Sunday was a quiet day for the top teams. Neither Australia nor New Zealand were in danger against Fidji (55-12) or Scotland (44-0). I'm still impressed by the australian team. They didn't show much weaknesses against Fidji, despite the strong physical contest bringed by the Fidjian forward players. The australian rear lanes were impressive, particularly Matt Giteau, scoring 27 points and designed as MVP for Australia-Fidji. The All Blacks crushed a B team from Scotland. The scottish staff decided that winning against New Zealand is nearly impossible and therefore they choosed to have their key players resting, which is a wise choice, but not a gift for the Murrayfield supporters. As a consequence, New Zealand quitely won the match and therefore qualifies for 1/4th finals (and they'll win their pool unless Romania plays with 30 players against them....). No match for yesterday and two matches today. Unfortunately, Canada-Japan (12-12) in Bordeaux was broadcasted too early for me and I haven't seen it. For Japan, this is the end of 13 consecutively lost matches in RWC for Japan, so kind of victory. I've seen parts of Romania-Portugal. I wished Portugal wins that one as they're clearly the most courageous team in the RWC and certainly, among the non top teams, the most promising one. The Portuguese lost 10-14 even though they lead 10-7 for a while. Quite a deception for me but surely these players will never forget the support of the French crowd (most of these being the strong portuguese community we have in our country). Tomorrow will feature Georgia-Namibia and Samoa-USA. I'll try to watch the latter, which is played in St-Etienne, my welcoming home town (ask the Scots supporter and team!).

    MJ Ray: What is needed to start Open Social Networking?

    Since the closure of SoFlow and adding myself to LinkedIn, I've been thinking a bit about Professional Associations and using Social Networks (SNs) for business. I've not worked out my answers, so this is a "dear lazyweb, what pieces of this jigsaw am I missing?" post. Much of the recent mainstream news has been about the legal problems of SNs - for example, see BBC: Web networkers 'at risk of fraud' (which was also in items on a recent Click show on BBC World and News24) and BBC: Facebook site faces fraud claim - or about how they could Save The World, like BBC: Social net offers new perspective I think there's a bigger problem which will stop SNs making a deep-change to online activity. Each time a SN like SoFlow closes, it wastes some resources of its members. I'm starting to side with other developers in being tired of seeing my input turn to bitrot, through buggy software or buggy business models. I'm not alone: see Gunnar Wolf: On social networks for example. A good idea seems to be on Slashdot: It's Time for Social Networks to Open Up but how? Each SN seems to guard its dark corners as vital elements of its business model. Should we look to our Professional Associations to create new Open Social Networks (OSNs)? After all, SNs aren't the core money-makers for professional associations. But, the biggest problem with Professional Associations is picking a trustworthy one - one which will do what it says on the tin, instead of taking your subscription, then undermining you. Consider the British Computer Society and its OSSG License: how many of its members really wanted another software copyright licence? Fortunately, it was spotted - Volunteer brickbat thrower needed in London (Tuesday 24th 6pm) - and the Report from BCS OSSG meeting on a new FS license suggests the negative feedback was loud and clear, so hopefully we won't see that again. If I was a BCS member, I'd probably not renew after helping to fund that harmful activity. librarian.net: choosing your battles and choosing your professional associations talks a little about some library associations as a sort of case study which many will recognise as familiar, but there's an interesting comment from Blake there:
    "I think there's an association out there for everyone."
    Is there? What association is out there for liberal hackers and webmasters? I don't think I've found it yet. So, should we be looking at ourselves, rather than existing professional associations? Can we do Open Social Networks peer-to-peer in a meaningful way? Are we already doing it with blog feeds? How should we expand on that? Although I disagree with the conclusion that using another Social Network site with an uncertain business model is How to succeed with social networking, the article also mentions that
    "social networking is in its infancy and that it will not really get underway until we have portable profiles and interconnectivity"
    In other words, it's our revolution - let's steal it back. (Update: 2007-09-27: 1 comment)

    Norbert Tretkowski: Useless Ubuntu patches

    While updating the Debian package of xchat-gnome to the latest upstream release, I also wanted to check if the package in Ubuntu includes some patches relevant for Debian. Ubuntu unfortunately doesn't forward small patches relevant for Debian to it's bug tracking system, but provides one big patch on http://patches.ubuntu.com/ instead...

    -rw-r--r-- 1 tretkowski tretkowski 1375182 2007-09-21 18:12 xchat-gnome_1:0.18-0ubuntu2.patch

    That's the patch between 1:0.18-0ubuntu2 from Ubuntu gutsy and 1:0.17-2, the current xchat-gnome package in unstable. Quite useless, if you ask me. Who really want's to read a 1.4M patch?

    David Nusinow: More Code And Less User Support For A While

    While it's cute that atoponce wants to blame #debian for his problems, what he neglects to mention is that I spent some time with him in #debian finding his bug and telling him that his best bet was to watch that bug report because that's the most up to date information available on the problem. Furthermore, I told him how to add a "me too" to the report so that he would be taken care of. I also googled him up a wiki page that explained what GLcore was better than I ever could. And I tried to do it as politely and respectfully as I could.

    I'm not sure what more people want from the channel. The #debian policy is that "if you're running sid, you're on your own." The reason is that it's your machine and you're responsible for it. The fact that Aaron chooses to blame other people for his decision to run a development version of a package (and then to not downgrade it when it becomes too problematic) is the kind of frustrating attitude that makes me want to stay away from being active in user support.

    Fortunately, #debian is actually a very good channel on the whole, especially in comparison to the past, where some individuals really were just plain mean spirited. It's full of knowledgeable users who are generally willing to help you find a solution to your Debian problem. Sure, they're wrong sometimes, everyone is. And no matter how knowledgeable you are, you're not going to be able to predict that the next upgrade will hose some random guy's system. If you want to run unstable, be prepared for what's in store and learn how to downgrade.

    Next.

    Previous.