Search Results: "tar"

24 December 2009

Mark Brown: EIFF 2009

The Edinburgh Film Festival finished a couple of weeks ago. As ever, I went along and saw a bunch of films and stage interviews. The programme had been a little disappointing, mostly due to feeling a little constricted some things that are usually present were dropped (Mirrorball being the most obvious example) and the late night movies weren t very late night, starting about 10:30 for the most part. That said, it was a lot of fun I was more successful than normal in avoiding duds and there were several things that really stood out. Two films I saw early on that really stood out were Moon and Exam, two low budget indie science fiction films. Moon has had an awful lot of publicity already so I won t repeat what other people have said about it. Exam is a very tight, taut thriller eight people in a room in the final test of a long interview process, one of whom will get the job. Both films looked great a testament to how affordable good CGI has become. I ll be interested to see what follows them now there s some examples of low budget SF out there, and I m not sure what to make of the fact that both of the films were British. Pontypool was also excellent, a zombie movie about the dangers, or possibily salvation, of talk radio. If you see it (which you should) make sure you stay for the end of the credits. Also good was Modern Love is Automatic. It s a low budget indie flick which reminded me an awful lot of The Unbelievable Truth partly in terms of visual design but more in the way it decided to just jump off and handle things in a totally non-naturalistic fashion. It s a really tricky thing to pull off without looking like you just don t care about the audience (witness a lot of experimental films) but it s very impressive when it works and it worked here. On the down side Dario Argento s Giallo had the audience laughing, and I m fairly sure it was an at laugh rather than a with laugh. There came a point in the film where it felt like they d just run out of enthusiasm for the whole thing and were just throwing anything on the screen to tie up the loose ends. Very disappointing at a film festival. That was the only real blip, though overall it was good though there was cost cutting in evidence.

Andrew Pollock: [life] Homeowners!

There was a minor hiccup yesterday. Our mortgage broker called me up towards the end of the day in a flap because something had gone wrong on the seller's side of things, and their bank hadn't accepted the transaction or something. I still don't know the full story. Something about them missing a mortgage payment possibly. Anyway, she was able to arrange for funding and closing today, instead of funding yesterday and closing today, so the outcome was still the same. Now the real fun starts. The first thing I did tonight was program the garage door opener into the Prius' HomeLink thingy built into the rear vision mirror. It's always nice to be able to use a feature, even if it's taken 4 years.

Muammar El Khatib: Installing Adobe Air in Debian AMD 64 (TweetDeck can be used)

I love twitting using TweetDeck. So that, I started to investigate how to install Adobe Air in Debian AMD64 and, it was a real pain in the ass. I have found a way of installing it in Debian AMD64.

First of all, you need to install the following packages:

$ sudo apt-get install ia32-libs lib32nss-mdns lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6 libc6-i386 lib32nss-mdns libcanberra-gtk-module


After installing them, we have to create some symlinks from the location of some of those libraries in /emul/ia32-linux/usr/lib/ to /usr/lib32/. For accomplishing it, do the next:

$ cd /usr/lib32/
$sudo ln -s /emul/ia32-linux/usr/lib/libnss3.so .
$sudo ln -s /emul/ia32-linux/usr/lib/libssl3.so .
$sudo ln -s /emul/ia32-linux/usr/lib/libsmime3.so .
$sudo ln -s /emul/ia32-linux/usr/lib/libnspr4.so .
$sudo ln -s /emul/ia32-linux/usr/lib/libnssutil3.so.1d .
$sudo ln -s /emul/ia32-linux/usr/lib/libplc4.so.0d .
$sudo ln -s /emul/ia32-linux/usr/lib/libplds4.so .


In the case that you have problems with libplds4.so.0d, create the symlink like this:


$sudo ln -s /emul/ia32-linux/usr/lib/libplds4.so.0d libplds4.so.0d


Now, it is time to download Adobe AIR (in this case version 1.5).

$wget http://airdownload.adobe.com/air/lin/download/latest/AdobeAIRInstaller.bin


Once it is downloaded, we have to make the .bin file an executable:

$ sudo chmod +x AdobeAIRInstaller.bin


Then, we can proceed to install it:

$ sudo ./AdobeAIRInstaller.bin


If you get an error like this:

Error loading the runtime (libnss3.so: wrong ELF class: ELFCLASS64)


It means that you haven't done the symlink from /emul/ia32-linux/usr/lib/libnss3.so to /usr/lib32/ correctly or that you haven't installed the library which is missed ('apt-file search' is your friend).

If everything goes fine, then the last steps are:

sudo cp /usr/lib/libadobecertstore.so /usr/lib32


Note: make a symlink if you prefer.

And for TweetDeck I had to do this:

Download libgnome-keyring0 for 32 bits (in this example I used the one from SID, if you are using testing, download the one from that release that you are using), extract it with dpkg and copy the libraries to /usr/lib32:

$ wget http://ftp.us.debian.org/debian/pool/main/g/gnome-keyring/libgnome-keyring0_2.28.2-1_i386.deb
$ sudo dpkg-deb -x libgnome-keyring0_2.28.2-1_i386.deb libgnome-keyring0_2.28.2-1
$ sudo cp libgnome-keyring0_2.28.2-1/usr/lib/* /usr/lib32/


Then install TweetDeck (http://tweetdeck.com/download/) and Enjoy :-)

Note: If you find any problem, please do not hesitate to write a comment so that I can help you or we can improve this post.

Jonathan McDowell: Neat find of the day: inputlirc

I've recently been fixing up my VDR setup to work with FreeSat and make it brother/parent friendly. I've applied the EPG patches to get the 7 day guide, setup an autologging in user under gdm with vdr-sxfe running and that left getting the remote working. For some reason my old serial dongle wasn't happy with lirc - it got detected ok, and would show some signal when buttons were pressed but didn't work with the old config. The entire hardware of the box has changed, so it seems likely something isn't quite right (in particular the lirc drivers spew out warnings about SMP bits so I should probably try the dongle under a single core setup to rule that out, but there's also a move to 64 bit involved).

The easy solution to have something sorted for Christmas was to pickup a cheap remote from eBay. This ended up being a Cyberlink remote + USB dongle combo. Worked just fine when plugged in, turning up as a normal input device and the obvious keys doing the obvious things. I wanted all the keys to work though, as I'd got used to having a lot of the VDR functions instantly accessible rather than having to work my way through the menus. Various searches suggested I'd need to use LIRC to access the odder keys. That seemed a lot of hassle for something that was doing the decoding itself. Some playing with xev turned up keycodes for a number of the keys, but there were still a few missing (and important ones at that, such as Red/Green/Yellow/Blue). Further digging found me a suggestion of an Xorg keyboard map that would map the KEY_RED etc from the evdev device into something workable under X. And then I found inputlirc via the Debian package. This is really bloody neat - point it at an evdev device and it will present all of the KEY_* codes out as lirc keys. If you pass the -g parameter it makes sure the key presses only go to lirc as well. Exactly what I want and a doddle to setup - no messing with a big configuration file, just edit /etc/defaults/inputlirc to point to the correct /dev/input/by-id/ file, add the -g to the options in that file and restart.

Now the main remaining task is to get it working with BBC/ITV HD.

23 December 2009

Robert Collins: bzr selftest uses testtools


the emperor has new clothes bzr has just changed the base class for its test suite from unittest.TestCase to testtools.TestCase . This change has cleaned up a bunch of test logic, deleted a significant amount of code (much of which was redundant with Python unittest) and added some useful and important features. bzr has only been able to make this change due to testtools expanding its mission from a simple aggregation of proven unittest extensions into one where new extensions that *make unittest more extensible*. My deepest thanks to Jonathan for permitting me to use testtools as the vehicle to put these extension-enabling-extensions (and for his patience in reviewing said changes!). The change was pretty easy: The bulk of the changes were in bzrlib.tests and bzrlib.tests.test_selftest. I chose to cleanup an ugly API at the same time which added a little scattershot across a number of tests. And there are more changes that can be done to take better advantage of testtools the amount of deleted and cleaned up code isn t complete. Even so, its a pretty clear win:
18 files changed, 228 insertions(+), 496 deletions(-)
What went? bzr had an implementation of TestCase.run. This function is the main workhorse of Python s unittest module, and yet sadly it has to be replaced to change the exceptions that can be raised(to signal new outcomes), or to improve on test cleanup. Testtools provides an API to permit registering new exception types and handlers for them. Like python 2.7 testtools also provides the TestCase.addCleanup API, and these two things combined mean that bzr no longer needs to reimplement the run method. For expected failures, bzr uses a helper method TestCase.expectFailure to perform an existing assertion and convert the test into an expected failure if that assertion does not trigger. This was another feature testtools already provides and thus got deleted. All the custom code for skipping and expected failures got deleted, and the other outcomes bzr uses turned into extensions (as per the run discussion above). In bzr test cases generate a log (because bzr generates a log) and previously the TestResult in bzrlib inspected each test that had been executed to extract the log. This was made simpler by using the details API that testtools provides (see testtools.TestCase.addDetail), which permits tests to add arbitrary data in a semi-structured fashion. This is supported by subunit and a long standing bug with bzr selftest --parallel was fixed as a result logs from tests run in other processes are now carried across the process barrier intact and are presented cleanly. Some other minor cleanups are in unittest compatibility code, where bzr would degrade gracefully with unittest runners, and testtools provides such logic comprehensively, so all that got deleted too. Whats new? I think the most significant new facility that testtools offers bzrlib is assertThat. This assertion is inspired by the very nice assertThat in JUnit (which has changed substantially since Python s unittest was written based on it). This assertion separates the two concerns of raise an exception and decide if an exception should be raised . The separation allows for better reuse of custom checking code, because it permits composition in a cleaner way than extra assertion methods permit. Testtools does not include many matchers as yet, but matchers are easy to write, and if one were to write a small adapter to the hamcrest library, there are a bunch of ready made matchers there (though they have a very Java feel such as is not meaning is which is why Testtools did not use that library). Secondly, the addDetail API referenced above, in combination with testtools.TestCase.addOnException will permit capturing the entire working area when a test fails, something that developers currently have to fiddle about with breakpoints to achieve. This hasn t been done, but is a straight forward patch I hope to do in the new year. Lastly, Testtools offers testtools.TestCase.getUniqueInteger and testtools.TestCase.getUniqueString, which are not as yet used in bzr tests, but we may start using them soon. Beyond that, the other features of testtools are already present in bzrlib, and we simply need to find and delete more duplicated code.

22 December 2009

Lucas Nussbaum: Doctor Capello!

He might too shy to tell everybody, but the world must know. Luca Capello successfully defended his PhD thesis today at Universit de Gen ve, getting a Tr s Bien mention. I must admit that my last biology lesson was 13 years ago, so I m not sure I can really comment on his work on Vomeronasal Receptors: from Monogenic Expression to Axon Guidance. But I was very impressed by the quality of the experimental process, especially compared to what we do in computer science. Debian was well represented at the defense, since Axel Beckert, Didier Raboud and the Debian kilt were also there. Welcome to the list of Debian Developers holding PhD degrees, Luca!

Luca waiting at the door (again).
luca1
Luca ready to start.

Lior Kaplan: When software patents works against you


AP reports about Court: Microsoft violated patent; can t sell Word
A federal appeals court on Tuesday upheld a $290 million judgment against Microsoft Corp. and issued an injunction that will prevent the sale of its popular Word software.The court injunction is set to go into effect Jan. 11. Microsoft has said such a bar would prohibit the sale of all currently available versions of Microsoft Word and Microsoft Office.
Is it time to have a second thought about Red Hat statement of position on software patents ? Posted in Proprietary software

Gustavo Noronha Silva: WebKitGTK+ HackFest!

The WebKit hackfest is now over, and I think it was a very productive week. Thank you very much to all who attended, to Igalia for organizing the hackfest, and hosting us so well, to Collabora for having sponsored the event, and allowed me to spend the week working on it, and to the GNOME foundation for having payed all of my costs!
Xan blogged about day 0, and also a summary of all that was done, so I ll focus on the stuff he forgot to mention ;D. The hackfest, for me, started on day -1 with me not allowing Xan to go sleep before he had reviewed a couple patches of mine to fix DOM context menu handling. It always bothered me that Epiphany failed to open right-click menus in some pages, or let pages handle the right click. Well, this is fixed now, and Zimbra users can now have their right click menus, and WoW players can remove talent points from their calculators =P. It turns out that many of the attendees don t like pages messing with their context menus, though, and they had some good points to back up their positions (like pages making it hard to save images, for instance), so I implemented a way to force openning the custom menu: Ctrl-rightclick. We wanted to use a GtkInfoBar to display questions regarding the form saving - our initial implementation always saved all credentials, but that didn t sound good enough. Xan and I thought it would be very complicated to make this work, because there were assumptions in the code regarding which widget contains which, but it turned out to be quite trivial - making EphyEmbed a descendant of GtkVBox instead of GtkScrolledWindow, fixing a small number of assumptions, and that was it. The passwords are saved in the GNOME Keyring. It s interesting to point out that GNOME Keyring seems to be unhappy with the number of passwords a browser stores - Xan s daemon was hanging, crashing, and spawning a large number of threads. My daemon decided to take up some 300MB of RAM at one point. It s somewhat funny to see how much a browser pushes the limits of our platform. We are hoping this will improve with the new keyring APIs, and the rewrite that is ongoing. It s nice to see my browser form passwords in seahorse, though, and be able to manage them like any other. One more thing worth of notice, although this post is already a bit too big: one of the main concerns people had during the Hackfest was on making build time smaller. Touching a single file in WebCore causes a debug build of 10 minutes on my laptop. Evan Martin and Benjamin Otte made a push at removing unnecessary includes from WebCore, and WebKitGTK+ files, which brough the build time down a bit. They end up inspiring Aroben, from Apple, to go even further into this, and remove many includes from files all over WebKit. Evan was also able to bring linking time down by making it possible to link libwebkit without having to build all the intermediate libraries, which brought build time down to 1 minute, when touching a single file in WebCore. Behdad and I also started looking into breaking WebCore up into lots of shared libraries for Debug builds, since we don t care too much about speed penalties in those. None of these experiments got committed yet, but I am hoping we will be having a better time hacking on WebKitGTK+ in the near future. It was awesome meeting everyone, by the way! See you around =).

Andrew Pollock: [life] All that's left is to pick up the keys

Yesterday morning we went to the title company to do all of the paperwork for the condo purchase. I'm still not entirely clear on the whole process, but basically we signed a ton of disclosures and the loan documents, and the whole lot got notarised. I found the thumbprint requirement rather amusing. So the loan should fund today, and the title change will register with the county on Wednesday, and by tomorrow afternoon, we should have the keys. We then had to do a walk through to sign off that the property hadn't turned into a pumpkin since we put the offer in. It was only the second time I've been able to see the place, so it was good to take another look. Sarah's been doing lots of running around to organise quotes for the kitchen renovation and measure the windows for curtains, so she's seen it many more times. There's going to be a few little odd jobs that need doing around the place. There's a few lights that aren't working (presumably just bulb replacements. There's an outside cupboard that's falling apart. There's a little water feature that I think we'll just get rid of, as the pump is a waste of electricity and it'll just breed mosquitoes otherwise. It's going to be home.

Lior Kaplan: Oracle removes gnome packages from its database requirements


As a sysadmin I try to make sure my servers will have the minimal installation needed in order for them to work. In most cases this policy works fine, but some applications depend on too much unneeded software like GUI or sound packages. Two years ago I wrote about Why does Oracle s applications needs xscreensaver in order to run ? . It seems that finally things have changed. In it s latest version of the 10g r2 release notes (B15666-14), Oracle dropped the control-center and gnome-libs packages from the software requirements. This change is only relevant for RHEL5, as the list for RHEL4 (x86_64) haven t changed except from dropping xscreensaver and adding some other packages. Notice that for RHEL5, 3 packages were added in order to let the installer display it s graphical interface:
  • libXp-1.0.0 (i386)
  • libXt-1.0.2 (i386)
  • libXtst-1.0.1 (i386)
I m glad to see Oracle update it s software requirements as a lot of people in the databases world are afraid to make changes which are against the official documentation, regardless of how wrong it might be. Posted in Proprietary software, Red Hat Enterprise Linux, System Administration Tagged: Oracle, software requirements

21 December 2009

David Paleino: RC bug squashing

Just had some time in the last two days, and here's the list of uploaded NMUs. So far, I had only one maintainer complaining (again, sorry!), but I must admit that on Sunday I just didn't follow the correct NMU procedure Sad Anyhow, here's what I have:
  1. #504824 [libnids] FTBFS with GCC 4.4: #elif used instead of #else
  2. #504864 [omnievents] FTBFS with GCC 4.4: missing #include
  3. #504871 [bookmarkbridge] FTBFS with GCC 4.4: missing #include
  4. #504902 [libofa] FTBFS with GCC 4.4: missing #include
  5. #504943 [libassa] FTBFS with GCC 4.4: missing #include
  6. #504963 [libfcgi] FTBFS with GCC 4.4: missing #include
  7. #504970 [italc] FTBFS with GCC 4.4: missing #include
  8. #504973 [libspiff] FTBFS with GCC 4.4: missing #include
  9. #505021 [passepartout] FTBFS with GCC 4.4: missing #include
  10. #505078 [codeine] FTBFS with GCC 4.4: missing #include
  11. #505333 [gloox] FTBFS with GCC 4.4: missing #include
  12. #505372 [bobot++] FTBFS with GCC 4.4: missing #include
  13. #505420 [esteidutil] FTBFS with GCC 4.4: missing #include
  14. #510759 [log4cxx] FTBFS with GCC 4.4: missing #include
  15. #526151 [openmovieeditor] FTBFS with GCC 4.4: missing #include
  16. #551107 [fusecompress] FTBFS with GCC 4.4: missing #include
  17. #551718 [eboard] eboard: FTBFS with latest eglibc and gcc 4.4
Some highlights Most of these bugs, if not all, already had a patch attached. Thanks to Martin Michlmayr for his work on this! Regarding fusecompress, after my upload to DELAYED/2, the maintainer promptly replied asking for sponsorship of a package he already had. So this does not really count Smile If you want to participate in this great game too, and improve our loved distribution, you can have a look at this list of possibly easy bugs to fix. Have fun!

Martin-Éric Racine: Wanted: a coherent, sane Finnish political party

In more than 11 years in Finland, I've been politically involved in a couple of political parties on the Right side of the spectrum - mainly because those parties tend to favor a free market economy and a work-oriented immigration. In one case, I was invited by fellow immigrants to attend the meetings of their favorite party's English section, because of my expertise on Immigration legislation and common practices. In an other case, a member of the Finnish parliament invited me to participate in his party's immigrant workgroup, which resulted in my getting involved in a number of proactive initiatives and eventually joining that party as a card-carrying member. Simultaneously, I was approached by no less than 4 Finnish political parties to become a candidate in the municipal elections (in Finland, foreigners who have lived at least 2 years on an A-status residence permit can vote and stand as a candidate in municipal elections). Despite this, I've come to the conclusion that none of these Finnish political parties is genuine: On one hand, there's politicians who claim to know everything about the Immigration question and yet their speeches tell an entirely different story than what immigrants experience. On the other hand, there's politicians who complain about the immigrants' lack of participation in political life, but who quickly add that their personal group of supporters is all they're interested in hearing from. Correlating these facts, it's been found by many politically-involved immigrants that Finnish political parties don't genuinely want to involve immigrants; all they are interested in is acquiring a few extra votes from the immigrant population and in transferring those votes to their party's star Finnish candidate, who often is someone favored by the party's old-timers but disavowed by the majority of grassroot members. In a few more extreme cases, party brasses will sheepishly admit that all they want is a couple of niggers in the candidate list to show a vague sense of adhesion to the multicultural agenda - despite the assurances they have given to often naive immigrant candidates that they "genuinely" hope that they'll be elected. As it turns out, many immigrants are actively involved at the grassroot level and receiving the praises of their Finnish colleagues for their innovative and proactive initiatives. As a result, genuinely interested Finns have joined forces with active immigrants to launch various initiatives for improving Finland's competitive position in the global economy through a thriving cosmopolitanism and a stronger culture of entrepreneurship. For instance, I am personally involved at several public and private sector initiatives. Nonetheless, grassroot initiatives can only ever accomplish so much; without the unflinching support of Finland's significant political players, several key elements of these innovative solutions cannot be implemented. However, given the grassroot's frustrating experiences of the political scene, one cannot help but wonder: Is there any Finnish political party whose actions are coherent with its stated political agenda and in sync with the grassroot initiatives being put forward by the immigrants and their Finnish associates?

Daniel Kahn Gillmor: dd, netcat, and disk throughput

I was trying to dump a large Logical Volume (LV) over ethernet from one machine to another. I found some behavior which surprised me.fun constraints(how do i get myself into these messes?)This entry has been truncated read the full entry.Tags: lvm, netcat

20 December 2009

Gregor Herrmann: RC bugs 2009/51

after attending the Munich BSP 3 weeks ago (thanks for inviting me, & thanks especially to Stefan for hosting me) I've tasted blood & started to look at our RC bugs more often. I'm still far from zack's RCBW frequency; but I thought I'd give a short overview anyway; maybe it motivates others to chime in? So here's a list of RC bugs I've touched in the last weeks (not counting some merges in the BTS): remarks:

Wouter Verhelst: Good, not evil

There is a bit of a fluff online currently about the following clause in the "jsmin" code (whatever that is):
The software shall be used for good, not evil
This seems to have started when Google rejected a project based on that code due to its license being not free or open source according to their standards, and therefore not welcome anymore. The arguments then quickly degenerated into things like 'when did google stop being against evil'. But those are all besides the point. One of the most important properties of free and open source software is that anyone can use it for any purpose; there are no restrictions to using them. The DFSG (and hence, the OSD which was derived from the DFSG) encode this as follows:
No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
You may think "how is 'evil' a field of endeavor", but that is the wrong question. To "use software for evil" can mean any of a number of things, including "nuclear research", "weapons development", "abortion", or, heck "the cash register in a butchery shop", depending on the ethical and moral framework through which the person writing the license sees the world. The ability to give someone a CD or DVD with a bunch of software on there, being able to tell them that they can just use this in any which way they see fit, is a very strong and important feature of the free and open source community. Every time someone comes up with a clause like the above, however, this ability is diluted somewhat; and if it is readily accepted within the greater free and open source movement, then eventually everyone interested in using a piece of software must first check whether they're not trying to use software that forbids someone's pet evil, and we lose one of the greatest strenghts that does exist for free software, but not for proprietary software. The sad thing is, the jsmin author seems to agree. From a video/transcript on which he talks about his absurd license clause is the following quote:
Also about once a year, I get a letter from a lawyer, every year a different lawyer, at a company I don't want to embarrass the company by saying their name, so I'll just say their initials IBM
[laughter]
saying that they want to use something I wrote. Because I put this on everything I write, now. They want to use something that I wrote in something that they wrote, and they were pretty sure they weren't going to use it for evil, but they couldn't say for sure about their customers. So could I give them a special license for that? Of course. So I wrote back this happened literally two weeks ago "I give permission for IBM, its customers, partners, and minions, to use JSLint for evil."
Or, in other words, all you have to do if you want to use this software for evil is set up a second company, tell Douglas that this second company wants to sell software that uses his software to people who might use it for "evil", even though the first company won't, and you're in business. Because Douglas doesn't really oppose evildoers. So the question is, why is that clause in there in the first place? There are only two possibilities; either Douglas didn't really think about those issues, in which case I hope he will one day see the light and remove the clause; or he did, and decided to go ahead and put that clause there anyway. And that would be evil.

Robert Collins: Various releases


Recently I ve been working on the Python unittest API in my spare time, with a long term goal of making it possible to safely and sensibly glue many different plugins together into the core. Two important components of that goal are being able to extend the data included in a test result, and being able to change how a test is run (such as adding new exceptions that should be treated as specific outcomes python unittest uses exceptions to signal outcomes). In testtools 0.9.2 we have an answer to both those issues. I m really happy with the data included in outcomes API, TestCase.addDetail . The API for extending outcomes works, but only addresses part of that issue for now. Subunit 0.0.4, which is available for older Ubuntu releases in the Subunit releases PPA now, and mostly built on Debian (so it will propogate through to Lucid in due course) has support for the addDetail API. Subunit now depends on testtools, reducing the non-protocol related code and generally making things simpler. Using those two together, bzr s parallelised test suite has been improved as well, allowing it to include the log file for tests run in separate processes (previously it was silently discarded). The branch to do this will be merged soon, its just waiting on some sysadmin love to get these new versions into its merge-test environment. This change also provides complete capturing of the log when users want to supply a subunit log containing failed tests. The python code to do this is pretty simple:
def setUp(self):
    super(TestCase, self).setUp()
    self.addDetail("log", content.Content(content.ContentType("text", "plain",
         "charset": "utf8" ), lambda:[self._get_log(keep_log_file=True)]))
I ve made a couple of point releases to python-junitxml recently, fixing some minor bugs. I need to figure out how to add the extra data that addDetails permits to the xml output. I suspect its a strict superset and so I ll have to filter stuff down. If anyone knows about similar extensions done to junit s XML format before, please leave a comment :)

Russell Coker: I Bought the Bose QC-15

I bought the Bose QC15 noise canceling headphones for my trip back from the US. See my previous posts about Noise Canceling Headphones [1] and Testing Noise Canceling Headphones [2] for the details of my search. I first tried my new headphones in my hotel room and they worked really well at blocking the noise from the nearby road (El Camino Real in Menlo Park) as well as the noise from the heater in my room. At the airport they entirely blocked the sound of the airport air conditioning system (which was surprisingly loud I didn t realise how loud until I tried the headphones). On the flight the headphones worked really well. I used them for hours when they weren t plugged in to any source, just stopping the noise was a huge benefit. I was also able to listen to music (both MP3s on my laptop and the plane sound system) at a relatively low volume with an apparent high quality. The Bose store I visited in Stanford mall has a sound system set up to emulate the noise you experience inside a jet to demonstrate what the headset can do. It really lives up to this demonstration! I recommend them to anyone who wants over-ear noise canceling headphones and can afford $US300 + tax. But one thing to note is that not everyone likes such things my wife didn t like the sound that they generate (the least bad way to describe it is as a soft hiss). This is definitely not something you would want to buy based on reviews alone, it must be tested in-store. The main technical suggestion I can make for improvement to the QC-15 is for it to have slightly softer and thicker padding where it contacts the sides of the wearer s head. I find that my glasses prevent it from making as good contact as I would like, and that when wearing it while eating the contact is significantly broken with every jaw movement which is really annoying. A minor suggestion is that every pair of headphones should have the left and right ear pieces clearly marked, I really shouldn t have to read an instruction manual to discover which way to wear it. One thing that surprised me was the inclusion of business cards for the headset! Here is a picture:

The picture links to a larger picture that also shows the French version of the same text on the other side. I was astonished by this, encouraging happy customers to help sell your products is a reasonable and effective form of product promotion (really this is what I m doing for Bose with this blog post). But giving customers business cards is going too far anyone who wants me to hand out their business cards can offer to pay me to do so (and I probably won t accept). But if such things are considered to be a good idea then here are a few suggestions for other things that they could do:
  1. Create a Bose dating site where one can meet people who like music and traveling (this does sound appealing). In about 10 years the children of people who meet that way would start buying audio gear
  2. Start a Bose fan club.
  3. Create a template that be used by a tattoo parlor to make a Bose tattoo.
  4. Sell Bose fan t-shirts to people who aren t dedicated enough to get a tattoo.
  5. Register Bose as a religion, that gets tax free status among other benefits.
It s a pity that Bose doesn t make any water-proof noise canceling headphones. It would be something for their marketing people to wear while jumping over a shark on water skis [3]. But seriously the best thing that Bose could do to have their products promoted would be to start by printing the web site for each product on the item, my headset has two patent numbers listed which seem unlikely to provide any benefit for anyone, in that space they could have printed the global.bose.com/qc URL that is on the business card. Of course providing the URL really doesn t do any good when the URL actually is useless. It starts by giving me a page asking which country I am in the correct thing to do is to use geoip to determine the country and then give the user the option of selecting another country if that one is not ideal. Then after I select a country it doesn t take me to a specific page for the product! I could have typed in www.bose.com and got the same result (in terms of US shopping at least) while typing six fewer characters! Next like most corporate web sites the Bose site doesn t appear to be configured for longevity of URLs URLs which are clearly designed for the computer rather than humans are expected to change without warning. This discourages linking to any page that one might discover through web searches or navigating the site, and causes them to lose a lot of potential links. Having specific URLs for all the products (including the obsolete ones) that are designed firstly for humans to read and write would be a good idea. It would be really useful to be able to compare the features of new products with the ones that are going cheap on eBay. For someone who is considering buying a new product now the purchase decision would be easier if they knew that the company would provide resources to help them get a better price on eBay in a few years if they want to upgrade to a newer model. One thing to keep in mind is the fact that the reputation of a company (which makes a dramatic impact on the prices customers are prepared to pay) depends largely on a long history of making quality products. Telling customers about those historic products is one of the most sensible things that most corporations fail to do on the Internet.

Romain Francoise: Defining evil

How exactly are these packages DFSG-free? (via, via)

Julien Danjou: Teething troubles

It's not that often that I start something from scratch. It's an amazing feeling to start a new project, to start writing something new. I like that. It's creation, it's an artistic part of our computing stuff. I feel like a code artist. And what I like even more is that little feeling that you are going in an unknown land. Some area in this tech world where nobody ever came before you, or only a few pioneers. That the sensation I got starting to using Cython, Python 3 and various other tools. I just spent half of my time trying to fix problems, rather than working on *my* code. Problems in autoconf macro not knowing Python 2.6 or Python 3.1. Problems and limitations in Cython. And problem in Python. That last one was a hard one. I'm still a beginner in the Python world: I barely know anything. And I was trying to use something nobody never did: building an embedded Python with a set of built-in modules. I spent hours trying to find why one type of module importing was badly failing. I finally found the answer thanks to a guy. who has the same problem A guy ? No. A pioneer. What do I say? A hero. He's been my week-hero! Thank you Miguel Lobo because you found the bug I chased for hours and because you even reported it as issue 1644818, including a patch! How not damn wonderful is that? I will not bore you with the technical details of that bug, since nobody cares. Nobody cares, even the Python guys, since that bug has been opened for 3 years, and nobody even reviewed in that time. I found an old thread about that bug where some guys were wanking about how they should do the review, because Miguel pushed for several weeks to have a review, back in 2007. But that bug was in my way. I had to do something. So I prepared my mail reader, mounted my web browser and here I was for a uniq quest: getting a Python bug fixed. At that point, if you did not stop reading earlier, you might get very excited. Don't be, spoiler, it's still not fixed. You'll have to wait the end of the season and see all the episodes I'll have to write to get the end of the story! Let's continue. I had to create an account on the Python bug tracking system. That was a trivial task for a man like me (you bet). Then, I launched a verbal attack, something you rarely see in a bug tracking system. Something I knew would awake any developer caring about their software.
Julien Danjou: Is there any chance to see this *bug* fixed someday?
I had the deep feeling that my quest was starting here. How many days would I have to wait until I get an answer? Time was passing. Minutes were ticking while I was waiting, sat in a comfortable sofa in a softly lighted room. It seemed like all my life was shorter than the delay I had to wait to get an answer. After waiting for hours, suddenly, and only 15 minutes later, I got an answer:
Martin v. L wis: Please ask on python-dev. I may be willing to revive my five-for-one offer.
Martin? Don't know that guy. Who is he? Who is he like? Will he fix that bug? What is this offer? So many question without an answer. But he asked to ask on python-dev, and I said: challenged accepted! I will write a mail to python-dev to get that bug fixed. Which I did. I sent a short (but well written you know, I made efforts) "WTF?" to pyhon-dev. And then the guy asked me to review 5 bugs so he will review and fix this one. And this is how I said that he was pissing me off for blackmailing me to fix a bug that was its "duty". Therefore, this is the end of the story so far. Will that bug be fixed some day? There's a hope, because another guy jumped in and took the bug assignment. To be continued. My conclusion about all that story: that is a little rude to start something new, with new tools, and get quickly into teething troubles. It's even more harsh to enter a community because you just found bugs, and be not very well received when you ask to apply a 10 lines long fix somebody wrote 3 years ago to fix it. I'll probably still use Python :-), but I get a darker image of its community now.

Joerg Jaspert: Dinstall status

If you are one of the majority of people that have no access to Debians ftp-master host, but still do want to know in which state our main archive update, the dinstall run, is: http://ftp-master.debian.org/dinstall.status to the rescue. This file is now updated during dinstall. It is not telling exactly which function is currently running, that would be too much detail (we have over 50), but it is giving a good overview of the area dinstall is in. There are currently 6 states it reports: The format of the file is pretty simple, it consists of 3 lines, at the time of writing this blog post it looks like
Dinstall start: Sun Dec 20 07:52:01 UTC 2009 (1261295521)
Current action: scripts
Action start: Sun Dec 20 09:12:08 UTC 2009 (1261300328)
It tells when dinstall started, what the current action is and when that one started. In case you want to do some math on the dates it is also provided as an epoch. Have fun.

Next.

Previous.