Search Results: "will"

27 March 2007

Pablo S. Torralba: Keep going

I took this photograph last weekend at Consuegra where we went to observe the night sky, just for fun, as we used to do. I'm sure you don't need to be told that Polaris and Ursa Major are the start on the left and the constellation on the right side. And that's why I am not telling you ;-)

Anyway, the interesting thing for me here is the effect of the Earth rotation movement. Polaris is said to be in the Earth rotation axis prolongation (it is also said this will change with time, a lot of time indeed). But, by now, for us, it can be considered a fixed point in the sky: the north point which remains a point in the picture regardless of rotation. Every other star appears as rotating around Polaris, despite the truth is we are the ones rotating. I almost can imagine I see the Earth from outside.

Peter Makholm: Debian Project Leader election

The major problem — one of the major problems, for there are several — one of the many major problems with governing people is that of who you get to do it; or rather of who manages to get people to let them do it to them. To summarize:- It is a well known and much lamented fact that those people who most want to rule people are, ipso facto, those least suited to do it.
It’s election time, as Debian Developer I get to chose who is going to be the Debian Project Leader for the next year - but I don’t really care. If we can’t get a naturally strong leader, then I don’t think it matters at all. A naturally strong leader is one who actually leads and do so by strong consensus instead of just wanting to rule. For a naturally strong leader the election is a mere formality and he will run virtually unopposed. So my vote is:
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
e0acebd2-71f1-4df8-ae4d-50355ad7aa81
[ 1 ] Choice 1: Wouter Verhelst
[ 1 ] Choice 2: Aigars Mahinovs
[ 1 ] Choice 3: Gustavo Franco
[ 1 ] Choice 4: Sam Hocevar
[ 1 ] Choice 5: Steve McIntyre
[ 1 ] Choice 6: Rapha l Hertzog
[ 1 ] Choice 7: Anthony Towns
[ 1 ] Choice 8: Simon Richter
[ 1 ] Choice 9: None Of The Above
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
What about “None of the Above” option? Isn’t that excatly what I want? No, not really. I don’t think we would be better of by not electing one of the candidates than we would by electing one of them. So “None of the Above” should be ranked equally with the others. Why vote at all? I want to make a point, as feeble as it is, which is clearly different from just being lazy. I want to show by active participation that I don’t think the election matters. Effectively a whatever option. Now go grab some beer…

Russell Coker: Save Babe

There's an advertising campaign at the moment opposing cruel treatment of pigs, the web site is at http://www.savebabe.com/ . They have rented advertising space at train stations to publish the URL.

One thing that they don't mention is the health issues related to factory farming. It makes sense to concentrate on one message at a time and they are concentrating on animal cruelty. But probably more people will be concerned with the risks of disease, parasites, and anti-biotic resistant bacteria present in meat produced from the factory farms.

Also wild boar tastes better!

26 March 2007

Luk Claes: Deep Freeze

Since my mail to debian-devel-announce we as Release Team actually don't consider any packages that don't fix RC bugs in etch anymore. This doesn't mean packages which have bogus RC bugs will be considered, nor that packages which don't have any RC bugs filed, but still are RC buggy won't be considered. It also doesn't mean we are considering packages with RC bugs in unstable like upgrading from some intermediate version to another. Security bugs are still considered anyway, though if they don't make it in time they'll have to go via security.debian.org. Main blockers for the release are at the moment the (hopefully) last kernel upload and the release notes. Other things that still have to be taken care of are preparing the detailed release procedure, building the CDs and preparing the announcement...

Adam Rosi-Kessel: COPA Unsurprisingly Unconstitutional

The Children’s Online Protection Act, or COPA, requires website operators who provide commercial material that could be “harmful to minors” to verify their users’ age, for example, with a credit card. The statute was immediately challenged as unconstitutional under the First Amendment. A preliminary injunction against enforcement of the law was upheld by the Supreme Court, which remanded the matter for factual development as to whether filters could accomplish the same purpose while interfering less with free speech. (Ironically, the ACLU found itself in the unusual position of arguing for Internet filters in this case.) It was just about one year ago that the Government sought to enforce a subpoena against Google for records of user queries and URLs stored in Google’s database. The court granted the motion with respect to stored URLs but not queries in Gonzales v. Google. It was never quite clear what the Government would really do with the data or why they pushed so hard to get it after receiving what they needed from other search providers. (The U.S. apparently argued Google’s search results would “add luster” to its analysis). In any case, the statute has now finally been held unconstitutional. As Ed Felten insightfully points out, unlike in previous instances where courts have struck down Internet speech regulation, in his opinion, Judge Reed did not provide a roadmap for Congress to try yet again to enact a law that would pass First Amendmend muster. Maybe Congress will leave the issue alone for a while:
Two things make the judge s ruling relatively roadmap-free. First, it is based heavily on factual findings that Congress cannot change things like the relative effectiveness of filtering and the amount of HTM material that originates overseas beyond the effective reach of U.S. law. (Filtering operates on all material, while COPA s requirements could have been ignored by many overseas sites.) Second, the alternative it offers requires only voluntary private action, not legislation. Congress has already passed laws requiring schools and libraries to use content filters, as a condition of getting Federal funding and with certain safeguards that are supposed to protect adult access. The courts have upheld such laws. It s not clear what more Congress can do. Judge Reed s filtering alternative is less restrictive because it is voluntary, so that computers that aren t used by kids, or on which parents have other ways of protecting kids against HTM material, can get unfiltered access. An adult who wants to get HTM material will be able to get it. Doubtless Congress will make noise about this issue in the upcoming election year. Protecting kids from the nasty Internet is too attractive politically to pass up. Expect hearings to be held and bills to be introduced; but the odds that we ll get a new law that makes much difference seem pretty low.

Matthew Garrett

Dear Ubuntu users,

When your graphics card manufacturer drops support from your card from the current drivers, that is their fault, not ours. An unwillingness to ship and support three different sets of binary-only drivers is not unreasonable, especially when the legacy package that is shipped will continue to support your card. Yes, you don't get to run Compiz or Beryl. I suggest you take this up with your vendor.

Love,

Matthew.

Joachim Breitner: Trains in the UK

In June I plan to attend the DebConf 7 in Edinburgh. I like train riding and after all it s good for the climat, so I ruled out flying.If you want to go to UK by train, you have to take the EuroStar through the tunnel. The Deutsche Bahn offers a nice package including a sleeper train for 86, so I got that part covered. But that only gets me to London, and I need to go to Edinburgh.So today, I orderd a one way ticket from London to Edinburgh for 28.50 from GNER, one of the private british rail companies, and payed by credit card. Right after I sucessfully booked the ticket, I noticed some problems with the shipping address: An Umlaut in the street name has turned into weird characters and it did not display the counry (Germany) that I m sure I selected. So I immediatelly sent this mail to GNER:
Hello, I just booked this ticket online. It seems there are problems with the German address, though. The correct address is: Joachim Breitner
Ehb hl 33
71083 Herrenberg
Germany (you can replace by ue if necessary) My Booking Reference: xxxxxxxx Thank you,
Joachim Breitner
And got this response:
Dear Joachim

Thank you for your recent e-mail regarding delivery address of tickets.

I can confirm that we do not deliver tickets overseas. However, since our system is automatic, as soon as you click on the 'Buy tickets' button, the tickets are printed and sent in post.

Please remember that once the booking is confirmed, the delivery address/method cannot be changed.

In this case, if we receive the tickets back from the General Post Office, they can be reissued to a UK address and if we do not receive the tickets back, you will have to buy new tickets as your tickets are non refundable.

Please reply to this e-mail with a UK address, where you would like the tickets to be delivered so that I can update it on the notes, and the tickets will be posted, once received back. If we do not receive the tickets back, you will have to buy new tickets.

If you have any further queries, please do not hesitate in contacting us.

Kind regards

Saurabh
Now I really wonder:Update: I gave them an address in the UK now, I hope it works out (thanks Ben). And the Deutsche Bahn is already privatized, just not publicy traded yet and is 50% owned by the state, I was confusing that.

Simon Richter: Wacky ideas #13: Conflicts-If-in-Same-Dependency-Tree

Well, obviously this one needs a shorter name. The problem I'm trying to solve here is that SONAMEs, or rather the way they are used today, only handle the issue of a single, fully contained library changing ABI as one of its header files changes. However, libraries do not exist in a vacuum; as a bare minimum, they use definitions for types and alignment requirements built into the compiler, and if any of these changes, so does the library ABI. Hence, the idea of using a single number to denote the ABI is not really sufficient. The correct solution would be to embed all ABI information into the soname (libapt-pkg, for example, uses "libapt-pkg-libc6.3-6.so.3.11" on amd64, which is better but still not perfect). Obviously, this would require massive changes to the build scripts in all libraries and educating all library authors, so it is not going to happen (soon). So, what other options are there? As the kernel ABI (the syscall interface) is supposed to be really stable, we probably do not have to worry about that. So, we only have a problem if there are libraries with different assumptions about each others' ABI in the same userspace program. This can happen in two ways: The compiler changed (as in the case with the recent C++ transitions), or a library that is an indirect dependency of something that also has another dependency (direct or indirect) changes ABI. I've talked (briefly) about the former in an earlier post already. To illustrate the latter, a small example: There is a library, libuseful.so.0 that provides a number of functions, among these: struct complex_number

  float real;
  float imaginary;

 
void complex_multiply(
  struct complex_number *result,
  struct complex_number const *lhs,
  struct complex_number const *rhs);
Now another library, libresourceful.so.0, comes along and implements complex_divide on top of complex_multiply. Since the definition for complex numbers from libuseful makes a lot of sense, the include file for libresourceful reads #include "libuseful.h"
 
void complex_divide(
  struct complex_number *result,
  struct complex_number const *lhs,
  struct complex_number const *rhs);
Now one of the more serious people in Debian decides to write pointless 1.0, which takes two complex numbers and calculates (a*b)/a, using both complex_multiply and complex_divide, and links against libresourceful.so.0 and libuseful.so.0. Some time passes, and shortly before Debian freezes, libuseful's author decides that she needs more precision, so she changes the floats to doubles, bumps the SONAME and releases the new version. Shortly thereafter, someone notices that libresourceful is now using an outdated version of libuseful, and recompiles libresourceful. Since the header of libresourceful did not change, noone thinks of changing the SONAME, after all, changing it would render us incompatible with other distributions. Now, pointless 1.0 depends on libuseful.so.0 and libresourceful.so.0, which in turn uses libuseful.so.1. It still believes complex numbers are made from floats, however libresourceful now disagrees. The (a*b) expression is calculated correctly, using floats, however the result is then passed to the complex_divide function which expects a pair of doubles. Not good. Obviously, there is a number of things people have done wrong in this example. First of all, if you inherit type definitions or anything else from another library, your ABI becomes bound to theirs. As you cannot know statically what version your library will be linked against, you need a script that computes your ABI version at build time. If you do not want that, you need to repeat the type definitions in your header and (deep-)copy the data from one of your structures into one provided by the library you are using (I can already hear the screams of the performance fetishists). The assumption that, just because a dependency changed, there is not necessarily a need to bump the soname is not fundamentally incorrect; if no interfaces are being propagated, it is certainly correct, and most libraries do not really do this (for example, a HTTP library uses the resolver, but never passes the hostent structures upwards). Detecting this is difficult to do, although Sun has a few tools to help here. So where does that leave us? In my opinion, the most sensible thing a distribution can do is to make sure such a constellation never gets installed to an user's system. If there is any doubt, we need to err on the side of caution (aka use a bigger hammer). This is a "wacky ideas" post, so I also need to propose a totally untested thing that might work (or not), but at least has passed the stage of me sleeping a night over it. Ideally, dpkg would enforce that. In order to do that, it needs appropriate metadata that tells it that a certain constellation is probably wrong. The thing we want to avoid is an application using multiple versions of the same library at the same time, where "use" is denoted by a dependency relationship. So what we need is a way for a library package to declare that it is wrong to (indirectly) depend on this package and a package out of a certain group at the same time. I can see two ways of doing that, each with its own advantages and disadvantages: The "explicit" way is to add a new dependency relationship (that is where the subject "Conflicts-If-in-Same-Dependency-Tree" comes from), where you would conflict in this way with a virtual package that is named after your library without the SONAME version, and at the same time provide that virtual package (which is a technique that should not be unfamiliar to Debian people). The hypothetical libuseful above would then state Package: libuseful0
Provides: libuseful
Conflicts-If-in-Same-Dependency-Tree: libuseful
So installing pointless_1.0 would pull in libuseful0 and libuseful1, dpkg would see the conflict and refuse. For upgrades, it would refuse the libresourceful0 upgrade, as that would create an inconsistent situation. The only way out of there is to recompile pointless. The advantage is that the modifications to dpkg would be manageable (at least compared with the other option, which I will introduce shortly), the obvious disadvantage is the massive number of virtual packages introduced. The "implicit" way of doing that is moving the SONAME into its own field in the control file, and teaching dpkg that two packages with the same name and different SONAME fields can be installed at the same time, although not depended on by the same package. This is a really nasty change to dpkg and also requires a syntax for dependencies that includes the desired SONAME version, but it gives us a lot of other advantages. The one immediately visible is that it does not bloat the Packages file too much, and does not introduce lots of virtual packages, although the net effect inside apt and dpkg is probably going to be the same. A really cool side effect though would be that the soname is no longer part of the Package: field, and thus it becomes possible to insert it using substvars. This, of course, is a cool thing when library authors come to their senses and include ABI information for dependent libraries into their SONAMEs. Since this has gotten lengthy, thanks for reading this far. Of course, questions and comments are requested, and if you are interested in pursuing this, please get in touch, either via email or if you can wait that long, at the "Wacky Ideas" BoF at DebConf. The last thing for me to do here is to welcome Joachim to the "post your ideas" "meme".

Jordi Mallach: No more TV3 in the Valencian Country: another example of PP's democracy

Tomorrow at 9 in the morning some officers from the Valencian regional Government will drive up to the mountains of the Bartolo, Serra Perentxissa, Montd ver and Carrasqueta to power off the set of antennas which have broadcasted the signal of TV3, the Catalan public television, during the last 20 years for the entire Valencian territory. These news have been responded with protests from most of the Valencian cultural collectives. You can sign a petition, or send an e-mail, which will be swiftly ignored by the people in charge. Behind the official reasoning for this attack to our freedom of choice -the broadcast is illegal- there is a set of good reasons for the usual suspects, the Valencian Partido Popular to do this. The biggest one is that two months before the local and regional elections, the right-wing are doing their math and it may not be working out too well for them. They need to scrape as many votes as they can, and an easy granary is attracting the extreme right-wing, which is a bit active but fragmented in the region, and mostly in the city of Val ncia. This social group is greatly virulent against anything which sounds like Catalan , especially the people known as blaveros , who claim our culture and language has no common root and has nothing to do with the culture and language from the North. Fortunately, the ISO 639 standard and the entire scientific community agree that they are nuts. But back to my rant. So, how can the PP try to get a handful of votes from the right-wing? Easy, start an anti-TV3 show on the media and start scalating it until the final act -tomorrow-, where milions of citizens are deprived of one of the best channels available in our TV sets. This will surely be sold as a major victory against the Catalan invasion or as the end of an "alegal situation", although there are like 30 other channels in the same situation in the city of Val ncia, and the PP-controlled Canal 9 channel is broadcasted in the Balear Islands (also controled by PP) in the same legal situation. In a time when watching Middle-East or American channels is trivial using a satellite set, some people think the best thing they can do is to end a service paid and provided for free by Acci Cultural del Pa s Valenci , an important cultural entity, during the last 20 years, ending the right to choose one of the only channels with all the programs in our language for milions of Valencians. Their right to do it is also challenged in court, but there is no doubt that tomorrow they'll go ahead and shut it off. We could have a reasonable government who would maybe want to accept the Catalan TV and radio channels in our territory, if the Catalan government would also accept our (crappy) channels in theirs, but they refuse this as well, because they now feel insulted . All in all, I had enough of PP long ago, and am hoping I am not the only one. In less than a month, Valencians will celebrate the 300th anniversary of the Batalla d'Almansa on the 25th of April of 1707, although we seem to be fighting a new battle now in 2007. The Batalla d'Almansa meant the end of the War of the Spanish Succession in Spain, but also the start of tough times for our culture, language, and people, when Felipe V abolished the Valencian furs. But this story can make a blog post of its own next month. Quan el mal ve d'Almansa, a tots alcan a...

Joachim Breitner: Debian Ideas: Instance-Capable Init Scripts

Debian as a Linux distrubtion is all about integration and ease of management, which includes init-scripts. I d like to propose a feature that might be helpful to quite a few system administrators while being non-disruptive to all others.For a lot of daemons there are use-cases that require more than one instance of the daemon to be running. With instance I mean a separate process with it s own configuration files, but on the same system, which rules out virtualisation or changeroots. Examples are copies of the main server running on a different port, to test new settings, different servers on different IPs, a HTTP-Server-Split into a slick static-and-proxying server and a heavy backend server, a mail server split with a virus scanner in between etc.So as an administrator I currently not only have to write the configuration for the additional instances, but also write my own init scripts and modify them, never being sure if I did it good or whether it will cause problems on package upgrade or similar things. I d rather see the functionality built-in to the package s init script directly.There is a package in Debian that already provides this: The OpenVPN package maintained by Alberto Gonzalez Iniesta allows the user to define new instances of OpenVPN simply by adding a new file to /etc/openvpn/. The file /etc/default/openvpn defines which of these instances are to be started when I or the system start runs /etc/init.d/openvpn start. /etc/init.d/openvpn stop stops all running instances and /etc/init.d/openvpn restart also restarts just the currently running servers. I can easily control a specific instance by adding it s name (which is the configuration file s basename) after the command to the init script.I think these semantics are clear, sensible and non-disruptive and should be available with every Debian package where the administrator might want to run several instances at once: web server, mail server, ftp servers, name servers etc.In those cases where the daemon is not configured by a single file alone, one directory with the configuration for one instance is needed. Otherwise, I don t see why this should be a problem. For backwards compatibility, the normal configuration file locaction could be an implicit instance called default and all additional instances go to their own directory (e.g /etc/ntpd.conf is instance default , and /etc/ntpd/public.conf is instance public ).Comments welcome.

Martin F. Krafft: A Thinkpad X60 for free?

The other day, the postman brought a parcel containing a brand new Lenovo Thinkpad X60. I had not ordered it, nor was there a letter accompanying it, telling me of its purpose. I signed for it, checked it out a bit, but did not install anything on it yet. It's not mine until someone tells me so. My current reasoning for why such a parcel turned up in my mail (it's neither Christmas nor my birthday) dates back to a lengthy email exchange with Lenovo's QA group around the turn of the year. I own an IBM Thinkpad X40, and even though it's the best notebook I've ever had, it seems to go through phases of serious ACPI problems, randomly freezing on anything ACPI-related. Together with the IBM/Lenovos on-site support, I replaced literally everything in the laptop twice: motherboard/CPU/graphics card/network card combo, bluetooth adapter, wifi card, keyboard, batteries, RAM, but the problems persisted. The only item I had not swapped was the display, which could well be the culprit the ACPI events causing the freezes all seemed video-related. But when the support crew refused to replace the display on the suspicion of a broken firmware, I decided to stop playing ping-pong and instead escalated my call into a complaint, asking for a total replacement of the laptop. My main argument was simple: it's cheaper for them (and me) to just replace the laptop, than to send out the technician another X times, until the problems are fixed (for I was not going to give up). I have not heard from them since, but the X60 in my mail seems like it could be related, and it's an interesting response by Lenovo at that, catapulting the company again very high on my scale of favourite vendors. So far, however, I have not heard from them, and they certainly have both, my email address as well as my phone number. So why this post? Well, I don't really want an X60 to replace my X40, for numerous reasons:
  • I cannot use my existing pair of long-life X40 batteries but am stuck with a single standard battery, giving me a battery runtime of about 2.5 hours, as opposed to the 8 hours I can get right now out of the pair of extended X40 batteries.
  • The X60 has been found to have a shorter battery life than the X40 anyway.
  • It has a Swiss-German keyboard with windows/Vista keys, and I cannot swap in the X40 keyboard because the connector is a different one.
  • It's heavier than my X40 by about 150g.
  • It does not use the same power plug as the X40 (and all other IBM laptops), which is a disadvantage at the geek conferences I attend, where at least every second person has an IBM laptop and can thus lend me a power plug for a while. Also, the second X40 power adapter I bought, as well as the car power adapter, are thus of no use to me.
There are, of course, plenty of reasons I should swap:
  • The X60 has a Centrino dual-core processor, which is more powerful and at the same time also more battery-friendly. Still, it runs shorter than the X40, and battery lifetime is more important to me than processor oomph.
  • The X60 comes with a 80Gb SATA 2.5" drive and is thus much more capacious and extensible than my X40 with the 40Gb PATA 1.8" drive.
  • The X60 has three USB plugs (although I will need two for the CD-RW drive I have, for which the X40 had a special power plug), and a Firewire port (which I don't need).
  • The X60 has a fingerprint reader, which supposedly works with Linux already.
  • It has an Intel wireless chipset, which is undoubtedly superiour to the Atheros chipset in the X40. Of course, I could just exchange the Mini-PCI card.
Neither of these lists are exhaustive. All in all, I calculated that accepting the X60 and replacing all the X40's accessories I need, I would have to spend somewhere between 500 and 800 . However, the benefits of the X60 over the X40 do not warrant this kind of expense in my book. The ACPI problems are a pain, but they are intermittent, and most of the time I can use the notebook just fine. I should instead just make sure to always have my presentations on USB stick, and start looking out the window more on planes and trains, having completed my client work the day before departure, not putting it off for the way. So what to do? My current idea is to wait 28 days for Lenovo to make a move (such as requesting my X40 to be turned in), and then to put the X60 on Ebay, with the explicit note that I shall donate the entire revenue to a small Chinese charity organisation (to be selected up front; can anyone refer me to one?) the idea here obviously being that the money should go to China due to Lenovo's involvement. I guess this story would make a few news sites and consequently drive the price up. I am also happy to hear other suggestions. NP: Emerson, Lake & Palmer / Brain Salad Surgery Update: one suggestion was to donate it to the ibm-acpi folks, or to raise money to donate it to them. It's now also on my list.

John Goerzen: Some more git, mercurial, and darcs

Ted Ts'o had an interesting post about git recently. He has a lot of good thoughts on the subject. He comments that he wound up using git because it's so Unixy (with its small commands to do things), that he sees the git community developing innovations faster than Mercurial, and that they are working to improve the documentation and user interface problems.

The being so Unixy is a double-edged sword. On the one hand, it can make it easy to write shell scripts to extend Git. That itself can be a double-edged sword (think filename quoting and the like). But one doesn't have to use the shell. The other downside is that being Unixy makes it hard to run on platforms that aren't, such as Windows. So if one is working on Unix-only software (X, the kernel, e2fsprogs, etc.), there's no need to care about it. But if you're a person like me, who has Windows users using my software, or a large organization like Mozilla, it's maybe a showstopper. Of course, workarounds exist (cygwin, git-cvsserver), but none of them are particularly nice.

I think that both Git and Mercurial are working to address their shortcomings. I've chosen hg for now because it does what I need now. And because there are very nice tools to convert hg to git, and vice-versa. So if Ted's right, and a year from now git is easier to use, better documented, more featureful, and runs well on Windows, it won't be that hard to switch over and preserve history. Ted's the sort of person that usually is right, so maybe I should starting looking at hg2git right now

So following up on my bzr post, here are the things that Mercurial is great at right now:

  1. Performance. Approximately even with git, occasionally faster. Nobody else can compete with these two right now.
  2. Simplicity. It's almost as easy to get started as with darcs, and with recent patches, will be even closer in the future.
  3. Lots of ways to interact. You can send hg bundles, which preserve all metadata (parents, hash, authors, etc), or you can send git-format email patches, or you can push and pull between repos. The email tools will shortly be able to automatically detect what patches to send. Your choice. git doesn't seem to support lossless emailing of bundles like this, and bzr doesn't make emailing of anything easy by default.
  4. Merging. hg seems to be able to automatically resolve more merge conflicts than anything else, and when it can't automatically resolve them, has a nicely configurable system to let you use your choice of tool to manually resolve them.
  5. Community. The Mercurial community is open and inviting, and open to new/different ideas. It seems similar to Darcs in that respect, and somewhat dissimilar to git.
  6. Rebase does not trash history like it does (barring undocumented manual intervention) in git.


I've written before about Darcs, so I won't duplicate that here.

Peter Van Eynde: 'The Trap'

Yesterday I went to bed too late because I was captivated by the last episode of The Trap: What Happened to Our Dream of Freedom, a series by Adam Curtis. Even since I saw Pandora's Box I've been an avid viewer of his work. The Trap talks about what freedom is, and this morning I realised that many things he talked about can be seen in the OSS world, and more specifically in Debian. I'm certain Biella can write something much better (and shorter) and I'm still thinking about it, but I wanted to write some stuff down.
One of the main ideas is the modern western culture has been formed to appeal for people thinking like a model in the 'prisoners dilemma': they only case to further themselves. This lead to the idea that life (not only the economy) should be like a free market, and that people should be 'free' to choose what they liked. Of course in practice the rich are 'free' to send their kids to better schools then the poor who are 'free' but constrained to send their kids to worse schools. The program called this negative freedom: there is constrained freedom. Think of it as Microsoft's vision of freedom, their 'freedom to innovate' (which they don't), your freedom to select which of the N licences of vista is good enough for you. This limited freedom is more stable then the positive freedom that is actual seeking true freedom, without constraints. This positive freedom was then developed by Satre, Fanon and Shariati into the idea that true freedom could only be gained by armed struggle, to gain freedom but also an identity that transcends the simple individual.
The whole idea of the two freedoms was described by Isaiah Berlin and he also had the idea that freedom can only be gained by limiting the power of the state over the individual, otherwise both concepts of freedom would become tyrannical because the powers that be would decide what freedom is, and then suppress anybody that does not agree with that idea. Examples are the communists in the USSR, but also how the Americans turned to torture, imprisonment without tribunal to 'liberate the Iraqi people'. Or older still the Reign of Terror during the French revolution.
All of this has some relevance to OSS and Debian in particular. Don't we search freedom from constraints (licences, absence of source)? Don't we want a revolution in the use of computers? Are we not using disruptive means to get it? The introduction of a samba file-server in a pure MS environment by a disgruntled admin who just wants stuff to work could be seen as being almost a terrorist method of working. Not that we want to terrorise the population, but make them aware that an alternative exists. And this to chance the system. Sometimes the whole mindset does seem to be a little too much confrontational, almost towards having a real conflict. Just think about the many references that some disaster should wipe out the Seattle area. Are we not at risk of becoming tyrannical in many ways? Ignoring any Debian discussions, there is the whole FreeBSD/OpenBSD split, people complaining that wikipedia is removing contents the consider valuable, projects refusing to create howto's and introductions to keep the newbies away etc. OOS does seem to have a tendency to become tyrannical in some aspects. Not that this is always bad, see the benevolent dictators handling the Linux kernel or python.
If I understand the idea's correctly it means that even if we want freedom, from the moment we start using the powers of the project to limit somebody we start the slide towards being oppressive and tyrannical. Somehow I fear that all this will lead to a lot of reading and thinking...

Erich Schubert: Musicbox software

Dear Lazyweb, I was asked if I could easily setup a system with the following characteristics for a sport club: Two setups I was considering: This would likely require the least effort. It doesn't offer the playlist features I wanted (or only partially), and there are some access control limitations. No remote access. But for example the clients could even be Windows boxes I wouldn't have to deal with myself. Has better playlist sharing capabilities, and the web UI could probably be used remotely, too. But MPD doesn't allow extra metadata such as BPM information, it would need to be modified. Much more work. Maybe some solution using XMMS2 or VLC would also be possible. And the ideal solution would allow some pitching. Do you have any recommendations for me? Please send them via EMail to erich AT debian DOT org. IMHO, the key factor will actually be the UI for the trainers. It should allow them to easily locate a song when needed, or put a couple of songs into a playlist to use during their class. Carzy DJ mixing capabilities aren't needed; party evens will likely have a real DJ around. This setup is solely meant to help the trainers getting their music ready in no time. Right now there are always issues with cables gone missing, CDs in the wrong covers, CD readers not reading certain CDs, etc. pp. And after all CDs have a pretty bad usability; you can't reorder songs easily according to your needs, and you'll often have to switch CDs. Having the music on a harddisk and using playlists can offer some good improvements here. So instead the UI should allow easy searching of tracks, easy access to a large number of playlists and such key functionality. Note that this is just an idea floating around so far; I don't know if it will become reality sometime. Adding some PCs to the rooms, eventually even with a touch screen, is some expenditure; that money might be better spent differently.

25 March 2007

Russell Coker: google-bank

Currently many people have Google advertising on their web sites, it may even be that a majority of the serious Internet users host Google advertising. Given that Google is already writing a cheque every month to many people, it wouldn't be difficult for them to change the amount in response to a funds transfer request. Depositing a cheque in a foreign currency can incurr $25 in bank fees (that's what the Commonwealth Bank of Australia charges me), this is a great impediment to international trade in small values. When Google already has an office in a country and writes cheques in the local currency it would be very easy to have that cheque include funds transfers too.

One significant advantage of Google payments would be the fact that Google doesn't write cheques for less than $100, so someone who earns $2 per month through Google adverts will be waiting a long time before they get a cheque - but if someone has an item that costs a small amount of money (EG an online service that costs a few dollars a month) then the user would be enticed to use it.

Currently many people don't place Google adverts because they believe that it would take them an unreasonably large amount of time to reach $100US. But if they could spend the money in small increments on other online services then it would be more enticing.

It seems to me that Google is the only organization that is both capable of running an International online small-payments system and which would be trusted by most people.

If you like this idea please post a comment.

24 March 2007

Theodore Ts'o: Git and hg

John Goerzen recently posted about Git, Mercurial and Bzr that I found interesting, especially since I used to be in the hg camp, but have been gradually using git more and more, even to the point making minor improvements to the git documentation and writing the git mergetool, since being able to automatically fire up a graphical merge tool was one of the features which I missed from hg. So while I haven't yet converted the primary SCM repository for e2fsprogs to use git (yet), I've reached an opposite concolusion from John, and yet, I can't really argue with his observations.

The main reason why I've come out in favor of git is that I see its potential as being greater than hg, and so while it definitely has some ease-of-use and documentation shortcomings, in the long run I think it has "more legs" than hg, and with the release of git 1.5.0, it became clear that the git community was willing to work on these particular shortcomings, which is why I started working on it and making plans to migrate e2fsprogs to use git. The main reasons why I think git is more powerful is that not just that it supports lightweight branches inside a single repository (although I really do like that a lot since it makes it a lot easier to run multiple experiments in parallel and switch back and forth between them), but also because git is much more Unix-like; there are lots of tools that enable scripting for either new git extensions or for ad-hoc shell pipelines that you can't really easily do in hg without breaking into Python.

But git definitely does have shortcomings, and John is on the mark with most of them. Git's documentation is very poor. Part of the problem stems for tutorials that were written to work with older versions of git (don't try using anything older than git 1.5 if you are a git newbie; git 1.4.x is far more user-hostile) or were written for use with systems built on top of git 1.4.x, such as Cogito. (I don't recommend Cogito, since git 1.5 is significantly more usable, and I've always found Cogito to be more confusing that just using stack git.) The tutorials that are distributed with git 1.5 are much better, but they clear do need more work.

It is true that the many of the man pages in git are lacking, and John's criticism of the fact that many man pages do not list all of the options that they take, but rather refer to other man pages is on point and accurate. It has gotten better (take a look at the git-diff man page from the git 1.4.x days, and laugh or cry, depending on your point of view) but there is still much work to be done. In practice, the better way to use the git man pages is to skip past the options section, and take a look at the Examples section. This shows a number of ways that a particular command might be used, just as a Unix master might say, "Grasshoper, see how you can use awk to do all of these amazing things."

I do take issue with John's assertion that git's philosophy has been to make life easy for the central maintainer, and not to pay much attention to the needs of individual contributors. That may have been Linus's development priorities but with Junio having taking over maintenance, there have been a lot of improvements in git 1.5.0 to make life easier for people who are tracking remote repositories and making changes, in particular the git remote command.

The most interesting observation which John made was the non-intuitive semantics of git-format-patches, and I did find it interesting that one commenter posted a solution which made perfect sense given other git commands, and yet didn't work. Obviously the person who posted the comment didn't bother to try it first, probably because in most other places git is actually pretty consistent; but git-format-patch is one of the places where most painfully is not. I view this as a bug that should be fixed, and fortunately I think it can be fixed without breaking the git-format-patches is currently being used. (The problem is that it doesn't use the standard notation so it is more convenient in the common case of how it is normally used, where the end point is not specified and is always the the tip of the current branch. I believe we can avoid the UI surprise by making git-format-patch use the standard revision range parsing if parameter contains the ".." or "..." operators. I'll have to try to prepare a patch which does this and see whether it gets accepted.)

So basically git does have short-comings, yes, but people will come out in different places about which tools is best for them, and that's OK. Actually, I think the ultimate solution for this problem is to build a bidrectoinal hg/git gateway. There are tools that will export from hg to git, and vice versa, and they are actually pretty sophisticated. I don't think it should be that painful to create a tool that does incremental exports in both directions, maintaining state so that the right thing happens when a commit gets made on the git side, and gets exported into hg, or vice versa. Ultimately I think that's the best solution, since that way people can use whatever tool they want, and still contribute and development as first class citizens. This is the main reason why I've held off on converting e2fsprogs to git (although I have made some private test repositories which I'll use to take advantage of git's superior annotation and query/log utilities); I don't want to make a git repository of e2fsprogs public until I'm sure that a bidrectional gateway tool won't require me to make any changes that affect the commit-id's, since that would invalidate any work that people have done that was based on a clone of the coverted git repository.

I have a rough design for how to do the bidirectional gateway, but the issue is finding time to implement it. Anyone with free time looking for a project? If so, contact me. I probably should have written this up as a potential Google Summer of Code project, but it's too late for this year. Oh, well.

Neil Williams: Emdebian repository layout

OK, after a long time and a few reshuffles, emdebian has a 'logical' SVN repository layout with a clear division between current and superceded code, clear module separation and updated documentation.
[ wiki docs ]
[ website docs ]
[ repository browser ]

To check out the current code:
svn co http://buildd.emdebian.org/repos/current/

A full check out of even just the current code can easily be over 20Mb and is likely to increase as more packages are emdebianised. See the list of modules available.

Neil Williams: sid or unstable in /etc/apt/sources.list

I've just come across a tricky little bug in using non-standard directory options to apt when /etc/apt/sources.list contains references to 'sid' rather than 'unstable'.

Update: guess what I'll be working to fix tomorrow . . .

23 March 2007

Martin F. Krafft: Epiphany and vertical tabs

Firefox is becoming totally unusable, and even though some extensions I need/want do not exist for Epiphany (like Web Developer and Firebug, Live HTTP headers, Stealther, UrlParams, Cookie Button, and plenty of the features of Tab Mix Plus (among others)). The single biggest obstacle keeping me from switching are vertical tabs. I usually have a browser window for each task I work on, and on average, I'll have 15 tabs open in it. With Firefox, I hacked the UI to make the tabs line up vertically on the left side of the window. That way, I can easily keep track of 30 open tabs, and I gain vertical space for the payload at the expense of window width. Dear lazyweb: do you know of a way to move the Epiphany tab bar to the left of the window and have it fill with tabs top-down? Please let me know! NP: 65daysofstatic / The Fall of Math Update: Lazyweb, you're aweseome! Rodney Jokerst referred me to his Epiphany extension, which does just what I want. Update: due to popular demand, here's the Firefox hack I use in chrome/userChrome.css:
#content > tabbox  
  -moz-box-orient: horizontal;
 
.tabbrowser-strip  
  -moz-box-orient: vertical;
  /* note: you can set this to -moz-scrollbars-vertical instead,
  but then the scrollbar will *always* be visible. this way
  there is never a scrollbar, so it behaves like the tab bar
  normally does */
  overflow: -moz-scrollbars-none;
 
.tabbrowser-tabs  
  -moz-box-orient: horizontal;
  /* min-width: 50ex; */ /* >1680 pixels screens */
  /* min-width: 40ex; */ /* =1680,1600 pixels screens */
  /* min-width: 35ex; */ /* =1440 pixels screens */
  /* min-width: 30ex; */ /* <1440 pixels screens */
  min-width: 20ex; /* 1280 pixels screens */
  /* min-width: 17ex; */ /* this is almost the minimum to go down to on small screens */
  -moz-box-align: start;
 
/* Background for tabbrowser strip */
tabs.tabbrowser-tabs  
  background-color: grey !important;
 
.tabbrowser-tabs > stack > vbox > hbox > hbox  
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
 
.tabbrowser-tabs > stack > vbox > hbox > hbox > tab  
  -moz-box-align: start;
  -moz-box-orient: horizontal;
 
/* to put the tabs on the right un-comment this line
  (not needed if using Tab Mix Plus) */
#content > tabbox  -moz-box-direction: reverse; 
Even though the origins of this code are IRC channels and other forms of random pasting back and forth, of which I was a part, I took the above from this page.

Neil Williams: gecko, nvidia, fonts and editing forms - Bug 345700

Update: Fixed. The workaround described in bug 345700 works perfectly.

Add Option "XaaNoSolidFillRect" to the Screen Section of /etc/X11/xorg.conf, as described in the bug report.

It's hard to identify initially - first thoughts are always to blame Gecko-based browsers but gradually the problem migrates into the nvidia driver.

When editing text in a HTML form entry field, moving the cursor with the cursor keys results in horrid vertical lines: a b c 4 e which disappear when clicking elsewhere in the control but make editing VERY difficult. The vertical lines do not always appear between characters, they often overlay the characters, something I cannot represent here. (The bug report provides a good description.)

It is definitely something to do with Gecko because Gtk does not suffer this problem (which is one reason why I use drivel for blog entries).

Galeon, Iceweasel and epiphany-browser are all affected.

One simple example is the Debian wiki - normal, uncomplicated text inputs, no special Javascript, but moving around the text in a control is almost impossible.

Next.

Previous.