Search Results: "tar"

28 March 2007

Robert Collins: 28 Mar 2007

I got an invite to mugshot today... but apparently *it* cannot accept the terms of use. Error message

Kai Hendry: Impressions of a Macbook

Macbook kills my Internet connection Btw this is my Dad’s Macbook. I’m still married to Debian SID and a Thinkpad.

27 March 2007

Mark Brown: NIS and Network Manager in Debian etch

The version of NIS to be shipped with Debian 4.0 has support for Network Manager in ypbind, the program responsible for ensuring that NIS client systems can access a NIS server. Unfortunately Network Manager is targeted at client systems with dynamically assigned addresses and does not support some common network configurations, particularly static ones. When Network Manager is run on a computer with such a configuration it presents misleading information to NIS, causing NIS to think that it is not connected to a network and fail to connect to a server. In order to avoid these problems the version of NIS in etch disables Network Manager support by default but the configuration file with this change is not updated automatically on upgrade. To disable Network Manager support by hand edit the configuration file /etc/default/nis to add -no-dbus to YPBINDARGS: # Additional options to be given to ypbind when it is started.
YPBINDARGS=-no-dbus
Uninstalling the network-manager package if it is not in use will also resolve the problem. This also applies to the packages currently scheduled for release in the next version of Ubuntu (codenamed Feisty).

Martin-Éric Racine: I'm Thin, therefore I Can

Life sometimes goes in a funny direction, like a full circle d j vu: 20 years ago, I was studying Technology of Computerized Systems (a combination of electronics and programming). Now, 20 years later, I'm starting a dream job as the Business Development Manager of Artec Group and their core business is you guessed it exactly that. The really cool thing about Artec, from a Free Software advocate's point of view, is that they contribute firmware and drivers for their products to LinuxBIOS and the Linux kernel. At this point, my initial tasks will focus on marketing and selling Artec's flagship OEM product, the ThinCan. What is the ThinCan? Actually, you're already familiar with one iteration of the product: the Linutop is a branded ThinCan, delivered with a custom hardware configuration, plus custom casing artwork designed by Fr d ric Baille of Linutop SARL and loaded with Fred's favorite Xubuntu configuration. In the Linutop's case, their business model is to fill the market niche for a simple Internet surfing platform that fits 80% of average people's daily computing needs, so the hardware configuration they ordered reflects that. Still, as several readers of this blog noticed, the "Linutop" could make a fantastic thin client and, sure enough, that was the main purpose behind the ThinCan's original design; it sells well in the Fortune-500 market as an RDP client running under Windows CE. However, until recently, there simply wasn't much demand for a contemporary X11 terminal solution based on the ThinCan. That is, until LTSP took off, thanks to the contributions of Edubuntu and similar educational Linux distributions. Sure enough, someone spotted the opportunity and contacted Artec to order a branded ThinCan iteration with Etherboot and PXE support, which they call the Linuterm. By the way, for those who need a really cheap OEM thin client, I've got a great spring clearance offer for you:
Artec has about 500 pieces left of their older DBE60 ThinCan model, based on the AMD Geode SC2200, and we're selling them at 100 euro / piece, plus VAT and shipping.
The DBE60 is configured with three USB 1.1 ports, one parallel printer port, one 100baseT Ethernet port, one VGA port (up to 1024x768 @ 16bpp 60-85Hz or 1280x1024 @ 8bpp 60-75Hz) and one 1/8" stereo audio output jack. Its BIOS provides Etherboot support and its motherboard is populated with 64MB of RAM and 32MB of Stratoflash. It comes delivered with a European AC adapter. The Geode SC2200 is fully supported by the Linux kernel with the sole exception of a missing ALSA snd-scx200, but this could easily be ported from AMD's deprecated OSS driver and X.org support is provided by the "nsc" driver.
Minimum order size is 10 pieces. Contact me via my full name (unaccented, with one hyphen and one dot) at artecgroup.com quoting this special offer.
PS: someone was asking if that DBE60 special is also available in the aforementioned Fortune-500 configuration. It indeed is: add 16 euro / piece for the Windows CE 4.1 license with an RDP client.

Jeff Licquia: Getting the Message Out

From a Fluendo employee:
Are we evil that we don t take more hours out of our day to build on glibc 2.3 ? You bet, we are cold heartless bastards. But in reality 90% of the people on glibc 2.3 are users that have an upgrade path to a more recent version of their distro; the other people are future Debian Etch users. I m sure the Etch releasers have convinced themselves of the usefulness of not releasing with a glibc 2.4 that is more than 15 months old, and instead opt for an even older series, even before they actually release. But I am starting to wonder more and more who the people are that are waiting for a release like this.
Realistically speaking, it is possible that we may add glibc 2.3 plugins in the future if we see that more than just Debian is affected. We are not against taking your money for giving you a service that works. But the hours in our day are just as scarce as they are in yours. I just wanted to explain this to people that want to know, to take away your incentive to complain about a nameless faceless Company being Evil to you.
Elsewhere, we learn why Debian is so “backward”. In sum: upgrades from the current stable would break with 2.4, and not all Debian architectures are supported well by 2.4. I suspect the market for Linux multimedia plugins isn’t a huge one, and Debian is still popular both for end users and as the basis for other efforts. Given that, doesn’t it make sense not to artificially exclude a whole chunk of your potential market? Of course, I think I know of someone who could help here…

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.

David Moreno Garza: My DPL 2007 voting ballot

So, I have voted after the second call for participation to Debian developers for the Debian Project Leader 2007 election. Here is my voting:
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
e0acebd2-71f1-4df8-ae4d-50355ad7aa81
[ 4 ] Choice 1: Wouter Verhelst
[ 4 ] Choice 2: Aigars Mahinovs
[ 2 ] Choice 3: Gustavo Franco
[ 1 ] Choice 4: Sam Hocevar
[ 3 ] Choice 5: Steve McIntyre
[ 4 ] Choice 6: Rapha l Hertzog
[ 3 ] Choice 7: Anthony Towns
[ 6 ] Choice 8: Simon Richter
[ 5 ] Choice 9: None Of The Above
- - -=-=-=-=-=- Don't Delete Anything Between These Lines =-=-=-=-=-=-=-=-
Good luck to everyone of you.

Andrew McMillan: Another CalDAV Server

I see that Jari Urpalainen has written an CalDAV Apache module to support some basic CalDAV functionality. Excellent. Meanwhile my own CalDAV server is going through a period of stabilisation before I start in on some of the handling of "Principals", probably next month. And CalDAV has become RFC 4791 now too.

Joey Hess: rootsync prototype

My evil plan described at http://wiki.debian.org/RootSync seems to be actually doable, and I have an early prototype. Here's a fun transcript. I start with a debootstrapped /tmp/sid chroot, and let it watch me run a few commands, copying accessed files into /tmp/new. This automatically creates a fairly minimal chroot that can only run those commands. transcript:
root@kodama:/home/joey/src/packages/unreleased/rootsync>ls /tmp/new
ls: /tmp/new: No such file or directory
root@kodama:/home/joey/src/packages/unreleased/rootsync>./watcher /tmp/sid /tmp/new &
[1] 3698
** starting up ...
** scanning /tmp/sid ...
** running
root@kodama:/home/joey/src/packages/unreleased/rootsync>ls /tmp/new
bin/  dev/  etc/  lib/  sbin/  usr/  var/
root@kodama:/home/joey/src/packages/unreleased/rootsync>cd /tmp/sid
root@kodama:/tmp/sid>chroot . bin/sh
sh-3.1# ** add /tmp/new/bin/bash
** add /tmp/new/lib/ld-2.3.6.so
** add /tmp/new/etc/ld.so.cache
** add /tmp/new/lib/libncurses.so.5.5
** add /tmp/new/lib/tls/libdl-2.3.6.so
** add /tmp/new/lib/tls/libc-2.3.6.so
** add /tmp/new/dev/tty
** add /tmp/new/etc/mtab
** add /tmp/new/etc/nsswitch.conf
** add /tmp/new/lib/tls/libnss_compat-2.3.6.so
** add /tmp/new/lib/tls/libnsl-2.3.6.so
** add /tmp/new/lib/tls/libnss_nis-2.3.6.so
** add /tmp/new/lib/tls/libnss_files-2.3.6.so
** add /tmp/new/etc/passwd
** add /tmp/new/root/.bash_history
** add /tmp/new/lib/terminfo/x/xterm
** add /tmp/new/etc/inputrc
sh-3.1# w
sh-3.1# ** add /tmp/new/usr/bin/w.procps
** add /tmp/new/lib/libproc-3.2.7.so
sh-3.1# ls
** add /tmp/new/bin/ls
bin   dev  home    lib    mnt  proc  sbin  sys  usr
boot  etc  initrd  media  opt  root  srv   tmp  var
sh-3.1# ** add /tmp/new/lib/tls/librt-2.3.6.so
** add /tmp/new/lib/libacl.so.1.1.0
** add /tmp/new/lib/libselinux.so.1
** add /tmp/new/lib/tls/libpthread-2.3.6.so
** add /tmp/new/lib/libattr.so.1.1.0
** add /tmp/new/lib/libsepol.so.1
sh-3.1# exit
root@kodama:/tmp/sid>** update /tmp/sid/root/.bash_history
root@kodama:/tmp/sid>cd ../new
root@kodama:/tmp/new>du -s
3.7M    .
root@kodama:/tmp/new>chroot . bin/sh
sh-3.1# ls
bin  dev  etc  lib  root  sbin  usr  var
sh-3.1# w
sh-3.1# find
sh: find: command not found
It'll be a way from here to something usable on a semi-embedded system, but I'm excited at how well it already works!

26 March 2007

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.

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.

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...

Neil McGovern: Don't get free hardware, win it


A while back, I entered a competition to win one of a few prizes. The results came in, and it looks like I was a runner up, netting me a Mac Mini.

First, a rant about Mac OS X. It appears that there is no way to:

They also asked me to " become one of our evangelists and tell your developer friends and colleagues about Zimki".
Well, I'm not so sure about evangelism, but I'll certainly blog about their platform, as it's fairly interesting.
So, what exactly is Zimki?
Well, it's basically a server side Javascript parser, based on SeaMonkey. The thought of using Javascript as a server side language is, initially, enough to make you run a thousand miles. After you get over your initial shock of this and examine it a little more closely, it does make at least a moderate amount of sense. It's entirely OO, so you should be able to pull in common functionality, perfect for the quick deployment of Webapps that Zimki is designed for.
Of course, this does rely on having the core libraries available. The only ones which seem to exist at the moment are: So, I can make a wiki which uses a template, and outputs it as an RSS feed. The rest I have to code myself - or do I?
This brings me nicely on to the next issue: documentation. There is a thorough lack of it. Thus, more classes may exist, but who knows. This is my MAJOR bugbear about Zimki. Give developers docs, and a nice coding environment, and they're happy. Zimki doesn't have either. Oh wait? I haven't mentioned the coding environment?
All editing seems to be done via a text box with some AJAX magic on the save button. But the save button doesn't work in Linux. Oh, and you can't indent your code. And you can't use a local editor.

This may sound all doom-and-gloom for Zimki, but it isn't. The editor could do with some attention, but it's not a show stopper. Zimki does manage to throw together HA concepts, backups and database (ish. The database object idea which Zimki uses is something I really don't like, but that's personal preference). The cost model they use is rather... odd. A charge is made for each call to the Zimki framework. I'm not a beancounter though, so I can't tell you how cheap/expensive this system is. If you know JavaScript well, and want to develop a complete webapp in it, this is certainly a good tool.

Now hopefully they'll get some documentation together and so people can actually USE the thing. If you're bored, why not play with my app that I wrote.

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...

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.

Russell Coker: images for a web site

When I first started putting pictures on my web site I used to delete the originals (at the time I only had a 3.2G hard drive in my main machine and used CDs for backup so I didn't feel inclined to waste too much space). The problem is that I optimised the images for viewing on displays of the day (when 1024x768 was high resolution and I tried to get pictures down to 800x600 or less whenever possible). Also the program I was using at the time for scaling the images didn't do it nearly as well as the Gimp does now.

Now when putting pictures on my web site I keep the original JPEG's in a safe place so that if there are future changes to common display technology, net connection speed (particularly the speed of my server) or of technology for scaling and compressing images then I can re-do them to get a better result.

When saving images with Gimp I enable "Advanced Options", this allows me to set a floating-point DCT method this saves about 400 bytes on disk and apparently gives a better image quality too - it's not noticably slow on a Pentium-M 1.7GHz so they should probably make it the default. The next "Advanced" option to change is to turn off "Save EXIF data" (saves 1.9K) and "Save thumbnail" (can save almost 5K depending on the image).

The next thing to do when saving a JPEG is to enable the "Show Preview in image window" setting. This allows you to adjust the image quality while seeing the resulting image as well as the size, so you can determine which combination of file size and image quality is best for you. This is much easier than saving
a file and then running an image viewing program to inspect it!

As an aside, it would be convenient if the Gimp would reposition it's "Save as" dialogue to not occlude the image window and would enable the preview option by default on machines with reasonably fast CPUs.

Erich Schubert: Please, think of the animals formerly known as kittens...

(Title stolen from Holger Levsen) Whenever I see this image [mozilla open Standards], I want to make a spoof of it titled: Every time you make an Ajax app, god kills a firefox. But I would certainly be violating Mozilla trademarks by doing so (their artwork, logos and trademarks such as "firefox" are not OpenSource). Anyway: AJAX is a hackaround, in particular it is not an open standard. Please use it only where it's really needed. Granted, there is worse (e.g. Flash; prepare for incompability hell now that the first opensource plugin can playback youtube videos - as you might be aware, many Linux distributions can not ship Adobe Flash, so they'll likely start shipping this plugin as soon as it's somewhat working sufficiently; or ActiveX which only works with MSIE...), but that's not really a good excuse for this abuse of Javascript that is called AJAX. On a side note, since I already mentioned flash - I can really recommend the Flashblock mozilla extension. A must have: you can view any flash if you need to by just clicking on it, but they won't be loaded automatically anymore. So you can easily access youtube (just one extra click!), but won't be bothered by flash ads and such stuff. Oh, and Adobe. They're probably the biggest blocker for a widespread Linux adoption judging by this article [computerworld.com], which is already very positive on Linux ("Unlike many of the applications included on new Windows systems, these don't seem to come with annoying self-launching advertisements, such as the irony-challenged Trend Micro Anti-Spyware pop-up upgrade pleas that plagued my HP system at home."): maybe his biggest issue is that he couldn't just run his Adobe Photoshop Elements on Linux. Of course there are application trying to offer the same functionality; starting with Gimp, digiKam and Krita (and I'm not sure he tried Krita and digiKam as well; they are probably more similar to Adobes product), but I can understand his wish to be able to continue using the same applications. (My personal recommendation: start using Opensource applications on Windows, e.g. Firefox, Thunderbird, Inkscape (great vector graphics program!) (and it's using open standards: SVG), Gaim (multi-protocol instant messenger and tons of others. They're free, so even if you don't use them every day, you didn't waste money on them... and if you happen to like them: you can be sure that they'll be working the same if you do the switch to Linux at some point in the future. Be prepared for when Microsoft says you PC is too old.

Next.

Previous.