Search Results: "tar"

26 March 2010

Colin Watson: Thoughts on 3.0 (quilt) format

Note: I wrote most of this before Neil Williams' recent comments on the 3.0 family of formats, so despite the timing this isn't really a reaction to that although I do have a couple of responses. On the whole I think I agree that the Lintian message is a bit heavy-handed and I'm not sure I'm thrilled about the idea of the default source format being changed (though I can see why the dpkg maintainers are interested in that). That said, as far as I personally am concerned, there is a vast cognitive benefit to me in having as much as possible be common to all my packages. Once I have more than a couple of packages that require patching and benefit from the 3.0 (quilt) format as a result, I find it in my interest to use it for all my non-native packages even if they're patchless right now, so that for instance if they need patches in the future I can handle them the same way. It's not unheard of for me to apply temporary patches even to packages I actively maintain upstream, so I don't discount those either. I haven't decided what to do with my native packages yet; unless they're big enough for bzip2 compression to be worthwhile, there doesn't seem to be much immediate advantage to 3.0 (native). Anyway, on to the main body of this post: I've been one of the holdouts resisting use of patch systems for a long time, on the basis that I felt strongly that dpkg-source -x ought to give you the source that's actually built, rather than having to mess around with debian/rules targets in order to see it. Now that the 3.0 (quilt) format is available to fix this bug, I felt that I ought to revisit my resistance and start trying to use it. Migrating to it from monolithic diffs is of course a bit more work than migrating to it from other patch systems, so it's taken me a little while to get round to it. I'd been thinking about holding off until there was better integration with revision control (e.g. bzr looms), as I feel that patch files really ought to be an export format, but I eventually decided that I shouldn't let the perfect be the enemy of the good. I have enough experience with co-maintaining packages that use build-time patch systems to be able to compare my reactions. After experimenting with a couple of small packages, I moved over to the deep end and converted openssh a few weekends ago, since quite a few people have requested over the years that the Debian changes to openssh be easier to audit. This was a substantial job - over 6000 lines of upstream patches - but not actually as much work as I expected. I took a fairly simplistic approach: first, I unapplied all the upstream patches from my tree; then I ran bzr di interdiff -q /dev/stdin /dev/null >x, reduced it to a single logically-discrete patch, applied it to a new quilt patch using quilt fold, and repeated until x was empty. This was maybe an hour or two of work, and then I went through and tagged all the patches according to DEP-3, which took another few hours. After the first pass, I ended up with 38 patches and a much clearer idea of what has been forwarded upstream and what hasn't; I currently have 5 patches to forward or eliminate, down from 18. Good things: Bad things: On the whole I'm satisfied with this, and the benefits definitely outweigh the costs. Thanks to the dpkg team for all their work on this!

25 March 2010

Colin Watson: Thoughts on 3.0 (quilt) format

Note: I wrote most of this before Neil Williams' recent comments on the 3.0 family of formats, so despite the timing this isn't really a reaction to that although I do have a couple of responses. On the whole I think I agree that the Lintian message is a bit heavy-handed and I'm not sure I'm thrilled about the idea of the default source format being changed (though I can see why the dpkg maintainers are interested in that). That said, as far as I personally am concerned, there is a vast cognitive benefit to me in having as much as possible be common to all my packages. Once I have more than a couple of packages that require patching and benefit from the 3.0 (quilt) format as a result, I find it in my interest to use it for all my non-native packages even if they're patchless right now, so that for instance if they need patches in the future I can handle them the same way. It's not unheard of for me to apply temporary patches even to packages I actively maintain upstream, so I don't discount those either. I haven't decided what to do with my native packages yet; unless they're big enough for bzip2 compression to be worthwhile, there doesn't seem to be much immediate advantage to 3.0 (native). Anyway, on to the main body of this post: I've been one of the holdouts resisting use of patch systems for a long time, on the basis that I felt strongly that dpkg-source -x ought to give you the source that's actually built, rather than having to mess around with debian/rules targets in order to see it. Now that the 3.0 (quilt) format is available to fix this bug, I felt that I ought to revisit my resistance and start trying to use it. Migrating to it from monolithic diffs is of course a bit more work than migrating to it from other patch systems, so it's taken me a little while to get round to it. I'd been thinking about holding off until there was better integration with revision control (e.g. bzr looms), as I feel that patch files really ought to be an export format, but I eventually decided that I shouldn't let the perfect be the enemy of the good. I have enough experience with co-maintaining packages that use build-time patch systems to be able to compare my reactions. After experimenting with a couple of small packages, I moved over to the deep end and converted openssh a few weekends ago, since quite a few people have requested over the years that the Debian changes to openssh be easier to audit. This was a substantial job - over 6000 lines of upstream patches - but not actually as much work as I expected. I took a fairly simplistic approach: first, I unapplied all the upstream patches from my tree; then I ran bzr di interdiff -q /dev/stdin /dev/null >x, reduced it to a single logically-discrete patch, applied it to a new quilt patch using quilt fold, and repeated until x was empty. This was maybe an hour or two of work, and then I went through and tagged all the patches according to DEP-3, which took another few hours. After the first pass, I ended up with 38 patches and a much clearer idea of what has been forwarded upstream and what hasn't; I currently have 5 patches to forward or eliminate, down from 18. Good things: Bad things: On the whole I'm satisfied with this, and the benefits definitely outweigh the costs. Thanks to the dpkg team for all their work on this!

Neil Williams: lintian, source format 3.0 and blog comments

Regarding my previous post on source format 3.0, I think it came across that I was blaming lintian entirely which would be unfair.

(As a side-note, a bug in serendipity XMLRPC resulting in all entries having comments disabled has led to a welcome effect of spreading the discussion more widely than a series of comments on my own site could have achieved. I'm happy with this state of affairs, so it you want to comment, either contact me by private email or put your comments on your own blog. I won't be enabling comments any time soon.)

The extended information behind the lintian warning is one thing (I've explained my position on that to Russ privately) - my main objection is to how such a warning was pushed into lintian and the entire use 3.0 or be damned approach that seems to be being adopted.

IMHO, source format 3.0 is not good enough to be the standard dpkg source format for a simple reason: It offers nothing to well maintained packages. Not all packages need NMU's - ever. Not all packages have patches - ever. Native packages and packages with the Debian maintainer upstream gain nothing from 3.0, as far as I can see.

I have 67 source packages - after much very careful consideration, I have found that a handful of those (less than 10) actually benefit from 3.0 and the rest are all unaffected. None of the packages that I will keep on 1.0 have ever had an NMU since I've been maintainer, most are either native or entirely under my sole upstream control. I will decide whether Debian gets a .tar.gz or a .tar.bz2 and although I generally offer both for download where I can, I see no reason to adopt .tar.bz2 as my default for Debian packaging.

Adding a redundant directory and file is obnoxious. I fail to see why debian/source-format would not have been perfectly suitable. Nevertheless, I will do what is necessary to avoid 3.0 until there is a compelling technical reason to adopt it.

The imperative for those in favour of 3.0 is to convince me that there is a reason TO change, not to make it difficult for me NOT to change. I do not need any reason to avoid 3.0 other than I do not have a good enough reason to move from 1.0. Making developers feel like luddites or incompetent merely because the proponents of 3.0 have failed to convince others to move to 3.0 is just insulting. You want me to use 3.0? Explain why I should bother - the current "reasons" on the Wiki page are simply not good enough and any rehash of those will be ignored. Come up with something new or respect my decision and let me get on with more important stuff.

Russell Coker: Bose vs Bauhn/Aldi Noise Canceling Headphones

Me wearing Bauhn HeadphonesInside the case of Bauhn Noise Canceling Headphones showing the cable and connectorsOutside of the cases of Bauhn and Bose Headphones Overview The German supermarket chain Aldi has been running in Australia for 8 years now [1]. Their standard practice for a long time has been to offer regular special deals on a few items of consumer electronics every week, my chocolate fridge is one thing I bought from Aldi [2]. Today Aldi have started selling Noise Canceling Headphones [3]. These headphones are badged by Bauhn but that name is apparently applied to random products from cheap manufacturers, it may be an Aldi name that is applied to stuff that they sell. The headphones cost $69AU which is really cheap. But the deal will probably end in less than a week when stock runs out. Noise canceling headphones can be used in server rooms and other noisy environments. Every company that has a server room should buy a few sets. One of the features of noise-canceling is that it works best on low frequencies and on regular sounds it specifically doesn t block human voice well. In some noisy environments it will be easier to hear people talk if you wear such headphones! Noise canceling headphones are also very useful to people who are on the autism spectrum and other people who get more annoyed by noise pollution than average people. I have been wearing my Bose headphones on public transport and when walking around in the city, this not only stops traffic noise but it also helps to avoid people thinking that I want to talk to them. Features The first picture shows me wearing the Bauhn NC headphones, it s from the right to show the controls for the built-in MP3 player. I have not yet tested the MP3 functionality. It appears that as the controls are one power button, buttons for next/previous track, and for controlling the volume. This is fairly poor for MP3 functionality, ideally you would want to have a display to see a list of tracks, maybe have directories to store files, etc. I guess this could be a convenient feature on occasion, but you wouldn t buy the headphones for the MP3 functionality.
The next two pictures show a comparison of the Bauhn headset with the Bose QC-15 headset that I bought last year [4]. The cases of the Bauhn and Bose devices are almost exactly the same size and of a very similar shape, the Bose case is tapered and indented and also has a finer weave on the cloth covering it looks much nicer. Both devices come with an adapter for an airline socket and with a detachable cable. They also both have pouches attached to the inside of the case with velcro. But the Bauhn headphones come with an adapter for the 6.5mm TRS connector which could be convenient if you want to plug them in to a larger amplifier, the basic connector is 3.5mm in both cases. The Bauhn device uses a standard TRS connector at the headphone end while the Bose QC-15 use a special connector that matches the shape of the headset and which has a TRRS plug (to cater for the high/low volume switch), so it seems that a damaged Bauhn cable could be replaced cheaply while a replacement Bose cable would have to be purchased from Bose (presumably at great expense and delay). The Bauhn case also has a velcro attached pocket for storing business cards (or maybe a name tag or something). The supplied cable for the Bauhn is described as being 5 feet long which isn t quite long enough to reach a tower PC that is sitting on the floor. The Bose has a cable that is about a foot longer (maybe 6 feet total), but due to the non-standard connector you can t replace it. I presume that I could easily buy a 4 meter cable for the Bauhn headphones, but I could of course buy an extension cable to use with the Bose. Bose advertise the QC-15 headphones as having 35 hours of battery life from a single AAA battery. Aldi advertise the Bauhn headset as having 5 hours of battery life when NC is turned on and they use two AAA batteries. It s widely regarded that rechargeable batteries don t last as long as the batteries used for estimating the battery life (which presumably are the most expensive long-life batteries available). I ve found a single rechargeable AAA battery to last well over 5 hours in my Bose headphones, so it seems that battery life is considerably worse for the Bauhn device. One feature of the Bauhn device is that it can be used without any batteries for playing external music. The Bose headphones can t be used at all without a battery. So while the Bauhn will use the batteries faster it will at least be usable when the batteries run out. But if you are buying headphones for the purpose of avoiding noise then the Bose headphones are simply better. Comfort The Bose headphones have significantly deeper ear wells than the Bauhn about 23mm vs 18mm. If your ears stick out more than 18mm (as mine apparently do) then this is a good reason for choosing Bose. The Bose headphones are a tighter fit, the spring that pushes the ear-pieces together is stronger. But they have better padding so this doesn t cause me any discomfort. Also the Bose headphones have better passive noise reduction due to having a more snug fit around the ears. I ve worn my Bose headphones on a flight from the US to Australia with hardly a break and they were quite comfortable I would never want to do that with the Bauhn headphones. Noise Reduction I tested the Bose and Bauhn products against three noise scenarios, external music, an air-conditioner, and a car engine. The Bose headphones made good reductions of the noise from the external music (Numb by Linkin Park) and the air-conditioner. The Bauhn headphones did little to stop Linkin Park and was not very effective against the air-conditioner noise. I think that this is largely due to the lack of passive noise reduction, the air-conditioner in question makes little vibration noise and the sound of rushing air is generally immune to active noise cancellation. Both headphones were very effective when in a car with the engine idling. The engine noise of vehicles seems to fall in an ideal frequency range for active cancellation. Music Quality When listening to Youtube music played on my Thinkpad I could not notice any quality difference between the two sets of headphones. I did notice that the Bose headphones seemed to have a greater response in the higher frequency range, but that doesn t necessarily mean that one set is better than the other. Maybe if I was listening to FLAC0 encoded music that I had personally ripped from a CD then I would notice a difference. But for most people the Bauhn music quality should be good enough. Design Quality The Bose product is solidly designed, while the Bauhn product appears cheap in every way. Opening the battery compartment on the Bauhn headphones is difficult and if you do it wrong you could easily break the lid off, I expect that every set of Bauhn headphones that is used by children will be broken in a small amount of time but it should still be fully functional with a broken lid. The matt finish of the Bose headphones should hide minor scratches much better than the shiny Bauhn headphones. The Bauhn headphones also have lower quality plastic parts, it appears that the molds used were designed cheaply and without adequate care to prevent marking the final product. The design flaws that affect usage of the Bauhn product are the shallow ear wells, the poor fit of the cushions around the ears (which is probably mostly due to a weak spring pressing the ear cups to the wearer s head), and the battery compartment lid which is difficult to open and appears prone to breakage. The other flaws are all cosmetic. I wonder whether the Bauhn product was made by one of the big name manufacturers who deliberately reduced the quality to avoid competing with their more expensive products. It seems that the major flaws could have been corrected at design time with almost no increase in manufacturing costs. Recommendations If you can afford the Bose QuietComfort 15 Acoustic Noise Cancelling Headphones then they are really worth the extra expense, I have no regrets at all about spending about $320US (including tax) on my Bose QC-15. The Bauhn product is good for when you want something cheap, for example a set to be used in a server room, or for the use of children. I bought a Bauhn headset for a friend who is a pilot, he spent $1,100 on a noise-canceling headset for his plane but had never got around to buying one for recreational use I expect that he will allow his children to use his new Bauhn headphones, if they get broken it s only a $69 expense. The second cheapest NC headphones I ve seen on offer in Australia is Harvey Norman selling Phillips HN-110 Noise Canceling Headphones for $100AU [5]. Amazon sells Philips HN 110 Folding Noise-Canceling Headphones for $50US but doesn t seem to ship them outside the US (at least not to Australia). JB Hifi also has some NC headphones on sale in Australia [6], but they are more expensive at $219 for AKG and $319 for Sennheiser. Also the models they sell are on-ear which means that they will inherently have very little passive noise reduction and will also annoy anyone who doesn t like having their ears squashed. If I was buying NC headphones for my own use and didn t want to spend $300US then I would either buy the Philips HN 110 Folding Noise-Canceling Headphones from Amazon and get a friend in the US to post them to me or I would buy them from Harvey Norman. But the Bauhn product is good if you want cheap headphones to stop engine noise and give reasonable quality when playing music.

Ben Hutchings: Adding debian/source/format

Neil Williams writes:
The new lintian addition "missing-debian-source-format" is starting to remind me of a pestering nanny. I use source format 3.0 only where I see a technical benefit and that - so far - is restricted to packages that use a .tar.bz2 upstream and one or two with really tricky patching requirements.
You are missing the point - debian/source/format allows you to make it explicit that the source format is 1.0, if you want to stick with that.

24 March 2010

Neil Williams: Ignoring lintian nagging

The new lintian addition "missing-debian-source-format" is starting to remind me of a pestering nanny.

I use source format 3.0 only where I see a technical benefit and that - so far - is restricted to packages that use a .tar.bz2 upstream and one or two with really tricky patching requirements. It is literally one or two as well - out of 67 source packages which I maintain (more than some of those nagging me to change).

Packages for which I am upstream and all my native packages will stick with source format 1.0 - because there is no technical reason to migrate. Packages where I'm not upstream but which continue to use .tar.gz and have minimal or absent patching needs will also stay with 1.0 indefinitely. (I can't see how dpkg can drop 1.0 support, even after multiple stable releases after Squeeze.)

I've no interest in being side-tracked into a pointless "discussion" with those who have already made up their minds that nobody could possibly think that 3.0 is unwelcome or uninteresting. Nagging me won't help - I don't consider 3.0 worth using and I see no technical reasons to adopt it blindly.

John Goerzen: Review: Travel as a Political Act by Rick Steves

Rick Steves is known for writing books, and producing public TV shows, about travel to Europe. He encourages people to get out of their comfort zone, advocates staying in homes instead of hotels, and giving yourself permission to struggle to communicate in a land of unfamiliar language. That way, you get to experience not just the landmarks, but the culture and history. That was the approach we favored in our recent trip to Europe, and after being there (and seeing tour groups), I think Rick Steves is right on. On the plane to Europe, I read his Travel as a Political Act. This is not a guidebook, but more a book about the philosophy of travel. As usual with my book reviews, unless indicated otherwise, all quotes here come from the book. He starts out with this statement:
I ve taught people how to travel. I focus mostly on the logistics: finding the right hotel, avoiding long lines But that s not why we travel. We travel to have enlightening experiences, to meet inspirational people, to be stimulated, to learn, and to grow. Travel has taught me the fun in having my cultural furniture rearranged and my ethnocentric self-assuredness walloped.
I read this book mostly on the plane to Hamburg, or the week prior to leaving. I can credit Rick Steves directly for encouraging me to strike up a conversation with a random German on the bus from Hamburg to L beck, which I ll discuss here in a couple of days. Probably the biggest lament from Rick Steves is that the people that really ought to travel the ones that are so sure that their ways are correct and best are least likely to do so.
Make a decision that on any trip you take, you ll make a point to be open to new experiences, seek options that get you out of your comfort zone, and be a cultural chameleon trying on new ways of looking at things and striving to become a temporary local. My best vacations have been both fun and intensely educational Travel challenges truths that we were raised thinking were self-evident and God-given. Leaving home, we learn that other people find different truths to be self-evident. We realize that it just makes sense to give everyone a little wiggle room.
The book is set with an introductory encouragement to travel, followed by seven vignettes of different countries he s visited, and descriptions of how it s impacted him. He gave a lesson of the opening of the German Reichstag (parliament building), which he was present for in 1999. He was surrounded by teary-eyed Germans and a few tourists so preoccupied with trivialities forgotten camera batteries, needing a Coke, the lack of air-conditioning that they were missing out on this once-in-a-lifetime opportunity to celebrate a great moment with the German people. He comments that we can learn from other countries that no one country has a monopoly on good ideas, and it is plenty patriotic to insist what we adopt good ideas (such as drug policy) from other countries and adopt them for our own. Particularly touching to me was the description and photo of a memorial in El Salvador, very much looking like the American Vietnam memorial except that one remembering loved ones lost fighting the United States. How many Americans even know that we were involved in a damaging war in El Salvador? A large part of his book was, for me, preaching to the choir, as this comment illustrated:
In the European view, America is trapped in an inescapable cycle to feed its military-industrial complex: As we bulk up our military, we look for opportunities to make use of it. (When your only tool is a hammer, you treat every problem like a nail.) And then, when we employ our military unwisely, we create more enemies which makes us feel the need to grow our military even more. If an American diplomat complained to his European counterpart, America is doing all the heavly lifting when it comes to military, the European might respond, Well, you seem to be enjoying it. We re building roads and bridges instead.
That s a sentiment I ve agreed with for quite some time already, and as such, some parts of the book moved slowly for me though I imagine his target audience included people that had never seriously considered these arguments before. Then there were surprising facts:
by the end of World War I, an estimated half of all the men in France between the ages of 15 and 30 were casualties. When some Americans, frustrated at France s reluctance to follow us into a war, call the French surrender monkeys, I believe it shows their ignorance of history.
And again, I d agree with him on that point. The vignette on Iran was particularly interesting, as he described his experiences in person, they sounded far different than the picture we often get in the media. I have realized, incidentally, that I am terrible at writing book reviews. So rather than inflict more paragraphs upon you with this one, I ll summarize by saying that this is a touching, informative, and motivational book, which I highly recommend. I ll leave you with this quote:
Mark Twain wrote, Travel is fatal to prejudice, bigotry, and narrow-mindedness. These wise words can be a reallying cry for all travelers once comfortably back home. When courageous leaders in our community combat small-mindedness and ignorance travelers can stand with them in solidarity.
I didn t travel to make some sort of statement or as a political act. But I was enriched in many ways by travel of course the obvious ones of contemplating the history of a 900-year-old beautiful church, but also in seeing the different character of different cities, being with two families for a couple of days, and seeing different approaches to common problems. I am very glad I wasn t shut off from this behind a tinted window in a tour bus.

Theppitak Karoonboonyanan: The Mini-DebCamp in Khon Kaen

So, Thailand Mini-DebCamp 2010 in Khon Kaen has already ended. It's another memorable event I've joined, and especially for this one, been in the organizing team. We owed many people for its success. I'd like to thank our guest DDs for their talks, many of which are improvised. Special thanks to Paul Wise and Yakiharu Yabuki for preparing the talks on Debian Social Contract and Debian packaging in one night, so our audiences can prepare themselves for the Bug Squashing Party in the next 3 consecutive days. Thanks Paul Wise, Andrew Lee, Yakiharu Yabuki, Daiki Ueno, Christian Perrier and our local participants for their efforts in tackling more than 50 bugs during the BSP, 30 of which have been closed and 14 with proposed patches. Thanks Christian Perrier for several talks in the last two days. We also had Andrew Lee's talk on Debian EzGo project, along with talks from our local distro developers (Linux SIS, Linux TLE) on what are being worked on and what can be pushed into Debian. And Neutron Soutmun had presented some future plan on the RahuNAS, a captive portal software based on Debian. A special agenda had been arranged to improve Debian mirroring in Thailand. Chatchai Jantaraprim, the ftp.th.debian.org maintainer, had shared us the backgrounds and motivations behind the official mirror setup for Thailand. Andrew Lee, the ftp.tw.debian.org maintainer, had introduced us to the Debian mirroring infrastructure, and encouraged the local mirror Debian mirror maintainers to do it Debian way. We had exchanged experiences and problems found among the current mirror sites, which can be much useful for their improvements, as well as cooperation in the future. Christian Perrier had also introduced us to the Debian translation workflow and how to coordinate translation via mailing list. This can be useful in the future for Thai if we can form a team, rather than a single-handed translation as present. Christian's talk on Debian contribution paths, along with their fresh hands-on experience in the BSP, had indeed motivated many local people to join Debian. I've been told by some people that they wanted to actually join Debian after this event, after just having a wish to do so for a long time. And Christian's yet another talk on key signing, with live demonstration, was really helpful for Thai audiences, as few of us were familiar with the concept and practice. Yes, taking care of PGP key does require special cares! Night chats and parties were also cool. We enjoyed the drinks (especially, Debian wine!), snacks, and chats together, and exchanged many stories. For me personally, it made me feel Debian as a live community, with people living in it. For the record, we even had a real bug squashing party, as fried bugs are among well-known Esaan dishes. And we had immediately got new voluntary vegetarians because of it! Hee hee.. Hello Christian, I witnessed it. ;-) And thumbs up to Yabuki for his bravery! Yes, it's a wonderful event for me indeed. Thanks Khon Kaen University (Kitt Tientanopajai et. al.) for hosting it. Thanks NECTEC Information and Mobile Applications Program and Science Park KKU for the financial support. Thanks NECTEC people for taking care of foreign participants in traveling between Bangkok and Khon Kaen. And thanks all participants for their contributions to make this event a great one! Picture credits: Supphachoke Suntiwichaya, DebConf Gallery

Adnan Hodzic: Need help setting up my Linux development platform

Maintaining stable life with unstable distro? This post may sound ludicrous to some of you but please hear me out. I ve been on Debian unstable/Sid for awhile now and it was all cool until yesterday. Besides my work on Debian DebConf/some devel, I m university student, also I do web devel which is my primary source of income, besides all those I try to go out on weekends and have some kind of social life. Somehow I manage to do all these things and I d say I manage them pretty successfully too. Now I m hardcore to the bone, but this is just too much, last week started working on immense web devel project didn t sleep more then 2hrs/day whole week; I also didn t shut down my notebook and just kept it on suspend as I usually do. Either way I was about to print/scan something and I connect my printer and what happens? My whole system freezes, now I ll let you figure out the result of doing hard reset and having a lot of gedit docs open at that time. And yes, I did had that bug reported awhile ago, can t find it now, but it was fixed, seems like it s back again. In the end I m left with weekend completing the lost work + late school work + eclipse 3.5.2-2 ought to be uploaded. I do almost all the work (didn t upload eclipse) and literally pass out on Sunday. Wake up sometime on Monday, wasn t able to get up from bed. Plan: Change my base distro, keep Sid as dualboot or virtual machine
Now, for my time of being Sid user this isn t the first time something like this happened, and by this I mean unexpected/unprovoked bugs. I might not be as hardcore as I used to be, or it s just that I don t have time anymore. So my plan is to get Stable or even Ubuntu for my work/study platform, while I d have dual boot or virtual machine of Debian Unstable/Sid. I m sure I can t be the only one who s doing this, so please give me your advice on this one.
1. Main question is dualboot or virtual machine? Reason I d like it to be a virtual machine instead of dual boot is that my notebook HDD is 64GB SSD (Lenovo X300). By todays standards 64GB is quite small, while the price of SSD is quite opposite of small. So I d like to use this only for my main/base OS, nothing else. Since I use external HDD s having it virtual it s more convenient for me to carry around my image/s. Other day I ordered 4GB of RAM so I shouldn t have problems with performance of this virtual machine. Or even with that much RAM, devel on virtual machine is just not possible? 2. In case I go for Ubuntu, and decide to start packaging for Ubuntu as well, what s the best way to have my work/packages synced within both Debian and Ubuntu (sshfs?). 3. How do I take my PGP keys with me? If I just copy .gnupg and .ssh will that be enough? 4. Can I have same keys both on my host machine and virtual machine at the same time? 5. Some other idea of sticking with Sid?
Input to any of these questions/other suggestions would be greatly appreciated.

23 March 2010

Miriam Ruiz: Ada Lovelace Day 2010

Today is March 24th, that means Ada Lovelace Day, and it is being pushed as an international day of blogging to celebrate the achievements of women in technology and science. The aim of Ada Lovelace Day is to focus on building female role models not just for girls and young women but also for those of us in tech who would like to feel that we are not alone in our endeavours. There are some very good examples of women that have been important in the development of science and technology, starting with Ada Lovelace herself (the first developer of an algorithm intended to be processed by a machine), Rear Admiral Grace Murray Hopper (developer of the first compiler for a computer programming language), Adele Goldstine (who wrote the complete technical description for the first digital computer, ENIAC), as well as the six women who did most of the programming of if (Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman), or women scientists, or women inventors, etc. Well, I m not going to write about any of those, even when any of them would surely deserve that and more for sure. I m going to write about a woman who has definitely been very inspiring and supportive for me when I was starting to get in touch with Free Software and Debian, and who is probably the most important single reason I decided to go for it. It is definitely hard to write about someone you admire when she happens to be one of your best friends, and in fact I m pretty sure that most of the people reading this article already know her, so there s no great mistery. I m talking about Amaya Rodrigo, the first european female Debian Developer (AFAIK) and co-founder of the Debian Women project, and also member of Hispalinux Board in the golden days. The first time I met her she was giving a talk in Madrid about a project that was starting then, Debian Women, and it was very inspiring for me. Inspiring enough for me to join the project. Afterwards I ve learnt more about her, how she overcame many dificulties, like starting to work with computers quite late, among others. The real merit of a pioneer is not really to be the best techie out there, but to overcome the difficulties and doing it the best you can, when no one else has done it before. I m not going to write her biography here, it s not really the purpose of this blog entry, and you probably can ask herself directly. This blog entry is, as I said at the beginning, to highlight women in technology that I consider inspiring and relevant. You know, I admire you, Amaya :)

Jaldhar Vyas: Let Me Eat Cake

Tiramisu Thanks to everyone who wished me a happy birthday. This is my present -- completely vegetarian tiramisu. (I'm getting a longer-lasting present too but it hasn't arrived yet.)

Dirk Eddelbuettel: RInside release 0.2.2

The shiny new 0.2.2 release of RInside has just been uploaded to CRAN; it should hit mirrors tommorow. Sources are also at my RInside page. RInside is a set of convenience classes to facilitate embedding of R inside of C++ applications. It works particularly well with Rcpp and now depends on it. This is the first release since version 0.2.1 in early January. Romain and I made numerous changes to Rcpp in the meantime. With this release, RInside is starting to catch up by taking advantage of many new automatic (templated) type converters. We have updated the existing examples, and added several new ones. These are all visibile directly via the Doxygen-generated documentation under the Files heading. Two examples are also shown directly on the RInside page. Also added are new examples showing how to use RInside to embed R inside C++ applications using MPI for parallel computing. This was contributed via two examples files by Jianping Hua, and we reworked the examples slightly (and added two variants that use MPI's C++ API). As it is so short, here is the basic 'Hello, World' example now showing the simpler Rcpp-based variable assignment:
// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4;  tab-width: 8; -*-
//
// Simple example showing how to do the standard 'hello, world' using embedded R
//
// Copyright (C) 2009 Dirk Eddelbuettel
// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
//
// GPL'ed
#include <RInside.h>                    // for the embedded R via RInside

int main(int argc, char *argv[])  
    RInside R(argc, argv);              // create an embedded R instance
    R["txt"] = "Hello, world!\n";	// assign a char* (string) to 'txt'
    R.parseEvalQ("cat(txt)");           // eval the init string, ignoring any returns
    exit(0);
 
One minor setback is that the examples currently segfault on Windows. That may be an issue with linking and class instantiation or something related. Romain and I focus much more on Linux and OS X, so this has not gotten a lot of attention. Debugging help would be appreciated.

22 March 2010

Russell Coker: Links March 2010

Blaise Aguera y Arcas gave an exciting demonstration of new augmented reality mapping software from Microsoft that combines video (including live video) with static mapping data and pictures [1]. This is a significant advance over current mapping systems such as Google Earth but it s not released yet either. It will be interesting to see whether Google or Microsoft gets this released first. The New York Review of Books has an insightful atricle by Garry Kasparov about human/computer chess [2]. It s surprising the degree to which a combination of human and computer chess playing can give a good result. Amateur human chess players plus regular PCs can beat grandmasters with computers or high-end computers with human help. It s apparently the quality of human-computer interaction that determines the quality of play. But the article contains a lot more, I recommend reading it. Daniel Kahneman gave an interesting TED talk about the difference between experiential and memory happyness [3]. As the concept of the moment is so short (about 3 seconds) apparently most people try to optimise their actions for the best memories of being happy. But to do so requires some different strategies. For example a two week vacation gives a memory that s not much different from a one week vacation. Therefore it seems that you would be better off staying in a five star hotel for a week than a four star hotel for two weeks, and eat dinner at a Michelin Star restaurant at least once per holiday even if it means eating at McDonalds on other occasions due to lack of funds. Temple Grandin gave an interesting TED talk The World Needs all Kinds of Minds [4] which mostly focussed on teaching children who are on the Autism spectrum. She is concerned that autistic children won t end up where they belong in Silicon Valley . Anupam Mishra gave an interesting TED talk about how the people of India s Golden desert built structures to harvest and store water [5]. Some of their ideas should be copied in Australia, due to mismanagement and stupidity Australians are failing to survive in much more hospitable places. Michael Tieman wrote an insightful and well researched article about the OSI s rejection of the IIPA s attacks on Open Source [6]. This is worth reading by anyone who wants to make a business or social case for free software. Mark Shuttleworth wrote an interesting post about the new visual style for Ubuntu and Canonical [7]. Apparently this includes the creation of a new font set which will be available for free use. Divorced Before Puberty an informative New York Times article by Nicholas Kristof about the links between treatment of women and terrorism [8]. The New York Times has an interesting article on Human Flesh Searches on the Internet in China [9]. It s basically crowds targetting people to find private information and harass them (similar to what some griefers are known for doing on the English-language part of the Internet). But they seem more interested in vigilante justice than lulz. The New York Times has an informative article about the Cult of Scientology (Co$) [10]. Among other interesting news it suggests that the number of cult victims in the US has dropped from 55,000 to 25,000 in the 2001-2008 time period. Senator Xenophon has called for an inquiry into the crimes committed by the cult and a review of it s tax-exempt status [11]. As always Xenu.net is the authoritative source for information on the Cult of Scientology AKA the Church of Scientology. The New York Times has an interesting article about formally studying the skills related to school teaching [12]. It largely focuses on Doug Lemov s Taxonomy of Effective Teaching describes 49 techniques that improve school results and some other related research. The article also mentions that increasing teacher salaries is not going to help much due to the large number of teachers, it s only professions that employ small numbers of people that can potentially have their overall skills improved by increasing salaries. Andy Wingo wrote an interesting article about Julius Caesar [13] based on the book The Assassination of Julius Caesar: A People s History of Ancient Rome by Michael Parenti. It seems that Caesar was more of a populist than a despot. Interesting article in The Register about the Large Hadron Collider (LHC) [14]. Apparently one 3.5TeV proton beam has as much energy as a British aircraft carrier running at 8 knots.

Christian Perrier: Amazing week in Khon Kaen for Thailand MiniDebconf

I'm now on my way back from The first miniDebCamp and miniDebconf that happened from March 13th to March 19th in Khon Kaen, Thailand. This even was organized locally by a team of very motivated Thai Debian enthusiasts and contributors, such as Theppitak Karoonboonyanan (*the* Thai DD), Neutron Soutmun, Kitt Tientanopajai, and all those whose name I'm not remembering as of now (I hope they won't mind). The even had kinda the structure of DebConfs, with a few days of "Debcamp" to begin. See the full schedule. We were hosted in Khon Kaen University (KKU), one one the most famous universities in Thailand, a small "town in town" in a city with a few hundred thousand inhabitants (dunno exactly). Lodging was done in a hotel located inside the university. Interestingly, the hotel was also hosting youg students participating to "Summer Camps" (apparently training systems to get good school results) gving to all this a very young atmosphere. The hacking lab and talks location was a 30-seat room in the university library, and meals were brought in there very efficiently, with the very specific way that Thai people have to transport each and every kind of meal (in small plastic bags closed by rubber). I arrived only in the 3rd day because I had commitments at home that made it impossible to me to come for the first day. During these days, people have been very busy hacking and participating to the Bug Squashing Party. During that BSP, about 50 bugs have been touched, without about 15 or so closed. Other non Thai attendees were Andrew Lee from TW, Paul Wise from AU, Daiki Ueno and Yukiharu Yabuki from JP. Organizers were expecting some attendees from neighbouring countries such as Laos, Vietnam or Cambodia. Unfortunately, none of them could come, including Anousak Soupavanh, leader of Lao free software localization efforts, who I was very impatient to meet. Transport difficulties, or visa problems, do not make things easy in that part of the world. On Wednesday we had a "DayTrip" as it is common for such event. We went abotu 50 km away from Khon Kaen, to visit a nice place, close to a dam lake, and climbed a hill surrounded by a big temple and a giant Buddha statue. Then we had a wonderful lunch in a fish restaurant in the very specific Thai way to share stuff: everything is on the table and you pick your food here and there, at you rconvenience. Of course, local advice before trying apparently innocent food is always worth it because the fire might be hidden anywhere (for instance in that soja plate which I tried and that set my mouth as a burning hell for 20 minutes). The journey ended by a visit of a great temple in Khon Kaen and, very noticeably by a dinner in a very popular barbecue restaurant in "all you can eat" style for...100Bath (so, about 2.5 euros). Maybe only vegetarian people had more trouble enjoying the meal as it was mostly made of various meat (and sea food). The talk days were very intense, at least in my opinion. Probably because I ended up giving four talks, some of them completely improvised (about IP-over-DNS, which I was using at the hotel and about which many wanted to learn a little bit more, and GPG keysigning processes). It turned out that the GPG talk was well received and, discussing with Paul later on, we agreed that such a talk, mostly meant to explain the DOs and DON'Ts For good GPG keys signing, could be a good idea even for Debconfs. There were also a few talks about local initiatives and efforts to develop (and not only promote) free software. We have no recordings of these talks as we were infortunately missing some video recording installation (maybe next time, Thep) just like the miniConf that was happening in Panama at about the same time was having. Due to local regulation on the university network, we had some limitations with Internet access (some firewalling that for instance was preventing SIP to work properly, which made a video-conference with a japanese user group fail, unfurtunately). The event ended in a round table discussion about ideas to organize something bigger in the future. The local community in Thailand has apparently the energy, maybe ressources and local support to be able to organize a slightly bigger event as first try (somethign like an Asian DebConf or something similar, targeting mostly Asian contributors and about 50-100 people. Thailand seems to be a good target to host such event, with many things being relatively inexpensive (and not only beer!). And they even think about possibly hosting a Debconf at some time in the future (actually, Martin Krafft should also be credited for bringing this idea). That isn't as crazy as it seems and, provided that potential organizers start involving themselves in the current Debconfs, everything seems to be possible. After all, if we look back to 2005, only one person (hello, Safir) was seriously thinking that Debconf could really happen in Bosnia and Herzegovina, right? After this week (followed by 2.5 days of sightseeing in Bangkok for me, plus a small meeting today with local Thai Linux corporate users and IT company owners), I feel like the mood in Asia about Debian development is high and full of potential. The miniconf last year in Taiwan was already a good success, by establishing a good connection between people.....we need to keep that alive and, hopefully, there will be other miniconfs in this part of the world. And, well, if I can be there, I'll be there.

Wouter Verhelst: N900 back!

So, a short while ago, the battery of my N900 had run flat. As in, completely, utterly flat. In itself, that's no big deal -- you connect it to a power outlet, wait until it's gone past the low-battery charging bits, then boot and use as usual. Except that it wouldn't. I'd recently installed a firmware update from Nokia (which contained some bug fix that I really was waiting for), and now the bloody thing wouldn't boot. Rather than do the low-battery charging dance, it thought the battery had enough power that it could just go ahead and boot. Of course it was wrong, so whenever I powered it on, it would sit there fore 30 seconds, try to boot, fail, power off for about a second, and start over. I left it like that for a night, but it didn't recharge. Needless to say, that was quite annoying. So I sent it in for repair, and today there was a package in the mail, containing my (repaired) N900. They'd reflashed it. A reasonable course of action, I guess, but of course that meant all data was gone. Good thing it has a backup application, and good thing I stored those backups on an external micro-SD card. Restoring those back-ups was a breeze; they'd also stored the contents of sources.list and have done something akin to "dpkg --get-selections", since now the application manager kindly asks me whether I wish to reinstall the applications that I had installed. Cute. At any rate, I'm very happy I finally got rid of this awful Samsung "cellphone". It's a SGH-C140 that I had as a replacement until my N900 got back, but there was something very very wrong with it; I don't know whether it's a design flaw or just a wear-and-tear issue (these replacement phones aren't usually handled in the best possible way), but it managed to lose connection to the network every once in a while. So people who would call me would immediately get my voicemail, and then they'd be angry with me later because I was unavailable. Well, duh. Anyway, that's over now. Whee.

Andrew McMillan: The cost of crap

For several years now we've been buying our groceries online. It's worked well, and for the last couple of christmases I remember Heather adding a six-pack into the pre-christmas order so she could pull it out and hand it off to the delivery guy. Fair enough too, because he was their front-line man. He was the guy who had to actually meet the customer, and even if only for two minutes face time, the impression he gave with his cheery "seeya mate" on the way out, and his always-happy smile, was that getting the groceries delivered was fun. Well that ongoing encouragement has gone now. His surly replacement who moans about having to carry the boxes up a flight of stairs does nothing to promote a repeat experience, and he brings into sharp focus the disadvantages of online grocery ordering: sometimes the wrong thing is substituted, or sent. Or the fruit doesn't travel quite so well as it does with the personal loving kindness we supply in our own padded wagon. Two visits from the new guy, and we're back to driving to the supermarket ourselves, patrolling the aisles once more in a cereal haze of consumer demand. Distress-purchasing done, and back to the car A.S.A.P. Carrying our own boxes up the stairs. I hate it, which is why I promoted the idea that we try this online grocery thing a few years ago, and it's worked just fine until this sullen bastard came along and destroyed the fun. I wonder how the company feels? Do they realise what this person is doing to their customers? Will they notice, and if they do, will they even be able to tell where the source of the problem is? In these days of increasing online experience, customer service is still important, if not more important than ever before.

Ian Wienand: What exactly does -Bsymblic do? -- update

Some time ago I wrote a description of the -Bsymbolic linker flag which could do with some further explanation. The original article is a good starting place. One interesting point that I didn't go into was the potential for code optimisation -Bsymbolic brings about. I'm not sure if I missed that at the time, or the toolchain changed, both are probably equally likely! Let me recap the example...
ianw@jj:/tmp/bsymbolic$ cat Makefile 
all: test test-bsymbolic
clean:
	rm -f *.so test testsym
liboverride.so : liboverride.c
	       $(CC) -Wall -O2 -shared -fPIC -o liboverride.so $<
libtest.so : libtest.c
	   $(CC) -Wall -O2 -shared -fPIC -o libtest.so $<
libtest-bsymbolic.so : libtest.c
		     $(CC) -Wall -O2 -shared -fPIC -Wl,-Bsymbolic -o $@ $<
test : test.c libtest.so liboverride.so
     $(CC) -Wall -O2 -L. -Wl,-rpath=. -ltest -o $@ $<
test-bsymbolic : test.c libtest-bsymbolic.so liboverride.so
	$(CC) -Wall -O2 -L. -Wl,-rpath=. -ltest-bsymbolic -o $@ $<
$ cat liboverride.c 
#include <stdio.h>
int foo(void)
 
	printf("override foo called\n");
	return 0;
 
$ cat libtest.c 
#include <stdio.h>
int foo(void)  
    printf("libtest foo called\n");
    return 1;
 
int test_foo(void)  
    return foo();
 
$ cat test.c
#include <stdio.h>
int test_foo(void);
int main(void)
 
	printf("%d\n", test_foo());
	return 0;
 
In words; libtest.so provides test_foo(), which calls foo() to do the actual work. libtest-bsymbolic.so is simply built with the flag in question, -Bsymbolic. liboverride.so provides the alternative version of foo() designed to override the original via a LD_PRELOAD of the library. test is built against libtest.so, test-bsymbolic against libtest-bsymbolic.so. Running the examples, we can see that the LD_PRELOAD does not override the symbol in the library built with -Bsymbolic.
$ ./test
libtest foo called
1
$ ./test-bsymbolic 
libtest foo called
1
$ LD_PRELOAD=liboverride.so ./test
override foo called
0
$ LD_PRELOAD=liboverride.so ./test-bsymbolic 
libtest foo called
1
There are a couple of things going on here. Firstly, you can see that the SYMBOLIC flag is set in the dynamic section, leading to the dynamic linker behaviour I explained in the original article:
ianw@jj:/tmp/bsymbolic$ readelf --dynamic ./libtest-bsymbolic.so 
Dynamic section at offset 0x550 contains 22 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x00000010 (SYMBOLIC)                   0x0
...
However, there is also an effect on generated code. Have a look at the PLTs:
$ objdump --disassemble-all ./libtest.so
Disassembly of section .plt:
[... blah ...]
0000039c <foo>:
 39c:   ff a3 10 00 00 00       jmp    *0x10(%ebx)
 3a2:   68 08 00 00 00          push   $0x8
 3a7:   e9 d0 ff ff ff          jmp    37c <_init+0x30>
$ objdump --disassemble-all ./libtest-bsymbolic.so
Disassembly of section .plt:
00000374 <__gmon_start__@plt-0x10>:
 374:   ff b3 04 00 00 00       pushl  0x4(%ebx)
 37a:   ff a3 08 00 00 00       jmp    *0x8(%ebx)
 380:   00 00                   add    %al,(%eax)
        ...
00000384 <__gmon_start__@plt>:
 384:   ff a3 0c 00 00 00       jmp    *0xc(%ebx)
 38a:   68 00 00 00 00          push   $0x0
 38f:   e9 e0 ff ff ff          jmp    374 <_init+0x30>
00000394 <puts>:
 394:   ff a3 10 00 00 00       jmp    *0x10(%ebx)
 39a:   68 08 00 00 00          push   $0x8
 39f:   e9 d0 ff ff ff          jmp    374 <_init+0x30>
000003a4 <__cxa_finalize@plt>:
 3a4:   ff a3 14 00 00 00       jmp    *0x14(%ebx)
 3aa:   68 10 00 00 00          push   $0x10
 3af:   e9 c0 ff ff ff          jmp    374 <_init+0x30>
Notice the difference? There is no PLT entry for foo() when -Bsymbolic is used. Effectively, the toolchain has noticed that foo() can never be overridden and optimised out the PLT call for it. This is analogous to using "hidden" attributes for symbols, which I have detailed in another article on symbol visiblity attributes (which also goes into PLT's, if the above meant nothing to you). So -Bsymbolic does have some more side-effects than just setting a flag to tell the dynamic linker about binding rules -- it can actually result in optimised code. However, I'm still struggling to find good use-cases for -Bsymbolic that can't be better done with Version scripts and visibility attributes. I would certainly recommend using these methods if at all possible. Thanks to Ryan Lortie for comments on the original article.

Dirk Eddelbuettel: 2010 March Madness Half Marathon in Cary

The annual March Madness Half Marathon in Cary took place this morning. This is both one of Chicagoland's 'early races' to start the season as well as the classic Boston preparation due to the hilly course. I have now run this consecutively for six years (see 2005. 2006, 2007, 2008, and 2009). As for the race conditions, we had fantastic weather all week with temperatures up to the sixties and then all of a sudden a forecast of rain, snow and even sleet for the weekend. Luckily, and while yesterday was sucky, today was allright or better. A little chilly and damp, but neither rain nor snow --- or even wind. So the conditions were good, with the course challenging as usual. The race itself went fine. I ran more or less steadily, never had to stop but was not particularly fast at 1:39:38 or a pace of 7:36.3. I had aimed for beating 1:40, had missed that target by miles 4 to 6 and was about 10 or 15 seconds behind but managed to get a negative split on the second half of the course to reach that goal. Which is nice, but the time is still the slowest I've ever run that race, and my slowest half-marathon since 2004. Training had been sluggish all winter. Oddly enough, already in last year's post I stated pretty much the same and feared that Boston may become tough --- which it did. But this year may well be a lot worse as I had no spring in my step all winter long. No fire in the belly for training will make for a long race. We'll see how it goes. Four weeks to go.

Colin Watson: parted 2.2 transition

I've started the transition of parted 2.2 to unstable. This is a major update needed for sensible support of newer hard disks with alignment requirements different from the archaic cylinder alignment tradition. I posted to debian-boot with a summary of the partman changes involved.

21 March 2010

Robert Collins: LibrePlanet 2010 day 3

Free network services A discussion session led by Bradley Kuhn, Mako & Matt Lee : Libre.fm encouraged last.fm to write an API so they didn t need to screen scrape; outcome of the network services story still unknown netbooks without local productivity apps might now work, most users of network office apps are using them because of collaboration. We have a replacement for twitter status.net, distributed system, but nothing like facebook [yet?]. Bradley says like the original GNU problem, just start writing secure peer to peer network services to offer the things that are currently proprietary. There is perhaps a lack of an architectural vision for replacing these proprietary things: folk are asking how we will replace the cloud aspects of facebook etc tagging photos and other stuff around the web, while not using hosted-by-other-people-services. I stopped at this point to switch sessions the rooms were not in sync session time wise. Mentoring in free software Leslie Hawthorne: Projector not working, so Leslie carried on a discussion carried on from the previous talk about the use of sexual themes in promoting projects/talk content and the like. This is almost certainly best covered by watching the video. A few themes from it though: We then got Leslies actual talk. Sadly I missed the start of it I was outside organising security guards because we had (and boy it was ironic) a very loud, confrontational guy at the front who was replying to every statement and the tone in the room had gotten to the point that a fight was brewing. From where I got back: Chris Ball, Hanna Wallach, Erinn Clark and Denise Paolucci Recruiting/retaining women in free software projects. Not a unique problem to women things that make it better for women can also increase the recruitment and retention of men. Make a lack of diversity a bug; provide onramps small easy bugs in the bug tracker (tagged as such), have a dedicated womens sub project and permit [well behaved :) ] men in there helps build connections into the rest of the project. Make it clear that mistakes are ok. On retention recognise first patches, first commits in newsletters and the like. Call out big things or long wanted features by the person that helped. Regular discussion of patches and fixes rather than just the changelog. CMU did a study on undergrad women participation in CS : Lack of confidence preceeds lack of interest/partipation . Engagement with what they are doing is a key thing too. Women are consistently undervaluing their worth to the free software community . Its the personal touch that seems to make a huge difference . More projects should do a code of conduct kudos to Ubuntu for doing it Chris Ball. I found the mentoring and women-in-free-software talks to have extremely similar themes which is perhaps confirmation or something but it wasn t surprising to me. They were both really good talks though! And thats my coverage of LibrePlanet I m catching a plane after lunch :( . Its a good low-key conference, and well put together.

Next.

Previous.