I understand that Ubuntu is based upon Debian. Is that the same or different than the IceWeasel browser that Debian is shipping with their latest release?Let’s check out what it is about. And as I don’t want people to doubt my words, I’ll give you, readers, the ability to check for yourself what it is all about. First, please download the latest currently available patch for Firefox 2.0 beta 2 in Debian. It has been in experimental for some weeks now. It is a bit different from the patch I described earlier, so I’ll also tell you what has been changed since this 2.0b2 patch:
It’s different. The patches that Debian applied to the Mozilla source code (which then resulted in their IceWeasel product) are more significant in scope than those in what Ubuntu is shipping (and branding as an official Mozilla Firefox release). Firefox in Ubuntu represents a somewhat more modest set of divergences from original Mozilla source code.
$ filterdiff --strip=1 firefox_2.0+0dfsg-0ubuntu3.diff > ubuntu.diff
$ filterdiff --strip=1 firefox_1.99+2.0b2+dfsg-1.diff > deb.diff
$ cd ubuntudiff
$ splitdiff -d -a ../ubuntu.diff
$ cd ../debdiff
$ splitdiff -d -a ../deb.diff
If you don’t have the splitdiff and filterdiff utilities, you can get them from the patchutils tools (you will also need another of these tools later).
Now, let’s have fun with these split patches…
Files that are only patched in Debian: (excluding any file that would be in the debian subdirectory, that contains maintainer scripts for build and installation)
$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in deb" grep -v debian wc -l
6
So, that’s 6 files that Debian patches that Ubuntu doesn’t. Let’s check what they are:
$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in deb" grep -v debian
Only in debdiff/: browser_base_content_aboutDialog.xul
Only in debdiff/: content_html_content_src_nsGenericHTMLElement.cpp
Only in debdiff/: content_html_content_src_nsHTMLInputElement.cpp
Only in debdiff/: dom_src_base_nsGlobalWindow.cpp
Only in debdiff/: extensions_reporter_Makefile.in
Only in debdiff/: security_coreconf_rules.mk
$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in ubuntu" grep -v debian wc -l
45
Yes, that’s right, that’s 45 files that Ubuntu patches that Debian doesn’t. Most are windows sizes and similar things that upstream can’t get right because they are values adapted to Windows, but that also includes some changes to the code and some other things.
Let’s now check differences in files that are patched in both. It’s a bit of shell black magic, but you can check by hand that it does nothing wrong :
$ LANG=C diff -ru debdiff/ ubuntudiff/ filterdiff -p1 -x configure -x debian"*" lsdiff --strip=1 while read f; do diff -u debdiff/$f ubuntudiff/ awk "! /^--- ^\+\+\+ ^ ^[-+]*\@\@/ print \"$f\"; exit "; done
What’s different in the shipping Ubuntu version of Firefox than the proposed Debian version of Firefox (that didn’t ultimately ship)?Reading between the lines, that means Debian is not working with Mozilla. It’s not like we’re submitting patches. No. Never. Ever. I’m also glad to hear from Asa Dotzler, in comments to Mr Beard’s article, that this great collaboration with Ubuntu will lead to patches applied to Firefox (I guess the paid Canonical employees having more time to deal with Mozilla than the volunteer Debian maintainers may have helped, especially considering they didn’t have to do all what we already prepared). Anyways, it’s not like some of the patches we sent got applied. So, while I’m at it, here is an exhaustive list of the bugs where we took or sent the patches that are applied to Iceweasel: #51429, #161826, #252033, #258429, #273524, #287150, #289394, #294879, #307168, #307418, #314927, #319012, #322806, #323114, #325148, #326245, #330628, #331781, #331785, #331818, #333289, #333308, #343953, #345077, #345079, #345080, #345413. These don’t cover the following patches (see the rationale for these in my previous article):
Technically, changes include fixes to the User Agent string and the feed preview, a well as addressing issues of coherent branding. More significant than any specific difference in code, however, is Ubuntu’s commitment to work together with Mozilla and our community on releases going forward to insure product quality and integrity.
Why are you working with Ubuntu when you wouldn’t work with Debian?
We did try to work with Debian and would prefer a situation in which we work together. Ultimately, Debian took a position that was consistent with their own policies, and not compatible with some of the exceptions to Mozilla trademark policies that we offered. While we understand and respect their decision not to work with us under our branding guidelines, Mozilla believes that brands like Firefox are important for consumer protection. In any event, Ubuntu developers are working closely with Mozilla developers to insure product quality and features that are what users expect when they use Mozilla Firefox, which means that they’ll ship (and will continue to ship) a fully branded version.
you're cheapfive seconds after I asked nearly twice as much. Trust me, that's no fun. It's one of the things I've had to learn while running a business: some amounts of money that seem hugely expensive in a private capacity are next to nothing in the business world. That's just the way it works... Finally, let me note that this is not meant to take any position one way or another in the matter. I did feel that experimenting with paying fellow developers was a good idea, but not at all costs; and certainly, I don't feel that going ahead with this by setting up something of the likes of dunc-tank is a very bright idea. I just thought it good to put some numbers into perspective. Update: Set the numbers straight. 6000 - 1200 is 4800, not 5800. Whoops. Yes, usually I do use a calculator :)
Step 1: make a directory to store pages from this Mediawiki instance:And that's all there is to it! It brings a whole series of things that were almost prohibitively difficult through the web interface into reach (e.g., diffing two different pages to see if they've diverged) and its changed the way that I interact with Wikipedia in some exciting ways. Thanks to Mark Jaroski for writing and maintaining the software!mkdir en-wp cd en-wpStep 2: log in to the host with your username/password:mvs login -d wikipedia.org -l en -u 'Benjamin Mako Hill' -p passwordStep 3: download a page that you want to edit by adding ".wiki" to the end:mvs update Granrojo.wikiStep 4: edit the file to make changes:vim Granrojo.wikiStep 5: preview your changes:mvs preview Granrojo.wikiStep 6: commit your changes into the wiki:mvs commit --minor yes -m 'made spelling fix' Granrojo.wiki
#!/bin/bash
testname="tuxpaint"
root_geometry= xprop -root _NET_DESKTOP_GEOMETRY cut -d= -f2
root_x= echo $root_geometry cut -d, -f1
root_y= echo $root_geometry cut -d, -f2
xc=$((root_x/2-1))
yc=$((root_y/2-1))
capture_tuxpaint ()
tuxpaint --startblank --nolockfile --lang $1 --640x480 --windowed --nosound &
sleep 1
xte "mousemove $xc $yc"
xte "mouseclick 1"
sleep 1
xte "key Escape"
sleep 2
import -silent -window "Tux Paint" $testname-$1.png
xte "mousermove -120 -40"
xte "mouseclick 1"
for lang in tuxpaint --lang help awk '$1~/^[[:lower:]]/ print $1 ' ; do
capture_tuxpaint $lang
done
I’m not entirely happy with it, but it’s at least a starting point. Ideally, I’d make .pat files to use with visgrep to find coordinates for the button images instead of hardwiring the approximate button positions. Also, the script needs a companion script to configure the system for testing (i.e. perform the locales configuration and install all fonts).
Here are the resulting screenshots which show up a few problems with the translations. It looks like the quit dialog strings have been updated since they were first translated, so now we need retranslation for several languages. Also, there are some languages, like Swahili and Klingon, for which there are no locales in glibc in Debian. I’ll have to talk to the glibc maintainers about that. And for that matter, I don’t even know if a DFSG-free Klingon font exists.
In any event, I’m delighted with the results, and look forward to using xautomation more for GUI testing.
1 For one thing, several languages require special fonts. For another, there is no way to get tuxpaint to tell you what locales it supports. Granted, there is --lang help, but this is a crude approximation, as the mapping between language and locale is arbitrarily hardwired (which hmh on #debian-devel irc pointed out to me is just plain wrong). It doesn’t help me at all in the arduous task of configuring glibc locales so I can test them. For that, I need to look at i18n.c.
2 I tried using xmacro at first, but xmacrorec just made my pointer jiggle back and forth. It seemed like it was updating the position for a short distance, and then X was resetting it back to the former position of the pointer. Some strange interaction with my window manager, perhaps? But ultimately I am happier with the xautomation approach anyway.
Yay! This was using the time from Sunburst in June but given Sunday's time I even get to run in 2008 too.Dear Dirk Eddelbuettel,
This is to notify you that your entry into the 111th Boston Marathon on Monday, April 16, 2007 has been accepted, provided that the information you submitted is accurate.
[...]
1 Thanks, everyone, for your responses. Although there were the inevitable few that mentioned modern devices way over my budget, and I’ve decided now to stick with the ZR-5000, your suggestions did help me bring the real issues into focus.

With a priority queue, you have a dumping-ground for any and all ideas (and bugs) that people suggest as the project unfolds. No engineer is ever idle, unless the queue is empty, which by definition means the project has launched. Tasks can be suspended and resumed simply by putting them back in the queue with appropriate notes or documentation. You always know how much work is left, and if you like, you can make time estimates based on the remaining tasks. You can examine closed work items to infer anything from bug regression rates to (if you like) individual productivity. You can see which tasks are often passed over, which can help you discover root causes of pain in the organization. A work queue is completely transparent, so there is minimal risk of accidental duplication of work.Sadly, googling for “work queue” doesn’t come up with any sort of todo list stuff, but rather a multiprocessing scheduling tool which is cool, but not immediately relevant for me. As far as I can see, whatever was actually being talked about either isn’t public, or is more of a concept than an actual tool. The only Google Todo thing I could find was an applet thing for the personalised google homepage, which just lets you make todo items and set them as high/medium/low priority. And while that might be all that Steve Yegge was talking about, it doesn’t really feel terribly inspiring to me. I guess what I’d really like is to have todo items get assigned to a project (so that I can ignore all the todos for projects I don’t want to worry about atm), and also to be able to give them a deadline (so I can treat them with a bit more urgency when necessary) and a priority (so that I can easily spot things I’m willing to defer or ignore completely when I find I don’t have time to do everything I’d like). I suspect I’ll probably just stick with writing notes in vi to keep track of things, though, same as I have been for years.
# cat <<_eof >> /etc/apt/sources.list deb http://debian.madduck.net/repo sid main _eof # cat <<_eof >> /etc/apt/preferences Package: * Pin: release a=sid, release o=madduck Pin-Priority: 50 Package: mdadm Pin: release a=sid, release o=madduck Pin-Priority: 600 _eof # apt-get update; apt-get upgradeAlternatively, you can just download the package for i386 or amd64. If you're running sarge and are willing to test, that would be great! I've prepared backports, which you can use like so (note how you need backported debconf and lsb-base packages too, the latter of which is already on backports.org):
# cat <<_eof >> /etc/apt/sources.list deb http://debian.madduck.net/repo sarge-backports main ## unless you have backports already enabled: deb http://www.backports.org/debian sarge-backports main _eof # cat <<_eof >> /etc/apt/preferences Package: * Pin: release a=sarge-backports, release o=madduck Pin-Priority: 50 Package: mdadm Pin: release a=sarge-backports, release o=madduck Pin-Priority: 600 Package: debconf Pin: release a=sarge-backports, release o=madduck Pin-Priority: 600 Package: lsb-base Pin: release a=sarge-backports Pin-Priority: 600 _eof # apt-get update; apt-get upgradeThe mdadm backport can also be directly downloaded for i386 or amd64, the corresponding debconf package is here, and lsb-base is resides in the backports.org archive. Much appreciated! NP: Barclay James Harvest / Gone to Earth
CNN reported a grandfather of one of the murdered Amish girls said of the killer on the day of the murder: "We must not think evil of this man."
Jack Meyer, a member of the Brethren community living near the Amish in Lancaster County, explained: "I don't think there's anybody here that wants to do anything but forgive and not only reach out to those who have suffered a loss in that way but to reach out to the family of the man who committed these acts," he told CNN.
The Amish have reached out to Roberts' family. Dwight Lefever, a Roberts family spokesman said an Amish neighbor comforted the Roberts family hours after the shooting and extended forgiveness to them.
An article in a Canadian newspaper the National Post stated that the Amish have set up a charitable fund for the family of the shooter. (Wikipedia)
Dianna Hoyt, Christa Hoyt's stepmother, said Rolling's execution has been eagerly awaited by the victims' families. Some will be inside the prison to witness it. . .
Sadie Darnell, who was the police department's media spokeswoman at the time and developed enduring friendships with the victims' families, said Rolling's execution still matters, even if it also provides him more of the notoriety he sought.
"Retribution . . . is important because it represents that our society is holding that person accountable," said Darnell, now a candidate for Alachua County sheriff. (CNN)
Next.