Search Results: "ema"

21 December 2007

Ian Wienand: Playing with the x86 PMU

A discussion about commas lead to an excuse to have a play with the IA-32 processor performance managment unit (PMU). To start, take two versions of a program to count the number of commas in a text file — one in C and one in Python. The C one runs faster on the input data set of ~60MiB of random data, but why? The CPU performance monitors give are the key to getting some idea of where the programs spend their time. I like to use perfmon2 because it's what I know, but Oprofile can do it too. All the available events for IA-32 are described in the manual; I currently of no better way of finding out about them than just reading it. On Itanium I reccommend Caliper which, for the most common situations, does most of the work for you and presents it in a nice report. Intel's Vtune also does a similar thing. The first thing to investigate is if the CPU is getting enough instructions to keep busy. The IFU_MEM_STALL metric is a good place to start as it is triggered when the instruction fetch pipeline is stalled, presumably waiting on either the ITLB or the trace buffer (Icache).
$ pfmon -e CPU_CLK_UNHALTED,IFU_MEM_STALL ./comma < ./randomcommas
340559375 CPU_CLK_UNHALTED
   192115 IFU_MEM_STALL
$ pfmon -e CPU_CLK_UNHALTED,IFU_MEM_STALL python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
1287100
4571257047 CPU_CLK_UNHALTED
 71981750 IFU_MEM_STALL
That works out to 0.05% of total cycles for the C version and 1.5% for the Python version, neither of which sets off immediate warning bells. If it did, we could start drilling down to things like the L2_IFETCH and ITLB_MISS events, or the BR_* branch events to try and see why the CPU is having to wait to get its next instruction. Next it is useful to find the CPI (cycles per instruction). This is calculated by the ratio of retired instructions against the number of CPU cycles; since a superscalar machine can issue more than one instruction per cycle this should ideally be much greater than 1 (for example, an Itanium can execute up to 6 instructions each cycle).
$ pfmon -e INST_RETIRED,CPU_CLK_UNHALTED ./comma < ./randomcommas
542953593 INST_RETIRED
340612036 CPU_CLK_UNHALTED
$ pfmon -e INST_RETIRED,CPU_CLK_UNHALTED python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
1194455205 INST_RETIRED
4569931735 CPU_CLK_UNHALTED
This works out at a CPI of 1.59 for the C version and 0.26 for the Python version. The Python version is clearly spending a lot of time waiting, because it isn't even able to issue one instruction every cycle. At this point it seems the CPU has enough instructions to do, but it is sitting around waiting to get through those instructions. This suggests the waiting is related to getting data from the cache. The load and store requests from the L2 cache are accounted to the L2_LD and L2_ST events respectively. These have the ability to mask out cache lines in different states of the MESI protocol, but for this we don't care so just ask pfmon to show us everything.
$ pfmon -e L2_LD:M:E:S:I,L2_ST:M:E:S:I ./comma < randomcommas 
102505 L2_LD:M:E:S:I
   167 L2_ST:M:E:S:I
$ pfmon -e L2_LD:M:E:S:I,L2_ST:M:E:S:I python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
3278774 L2_LD:M:E:S:I
  10457 L2_ST:M:E:S:I
This shows us that the Python version does quite a few more stores than the C counterpart. Considering this program should simply be reading the input stream and counting the number of commas, we do not expect much store traffic at all. This suggests the Python version is doing some extra copying, for whatever reason (maybe some Python expert can pinpoint it?). We can drill down a bit more into the memory related latencies. The DCU_LINES_IN event gives the total number of lines allocated in the cache. Another event, DCU_MISS_OUTSTANDING, gives a weighted measure of the cycles spent waiting for a cache line to be brought in. Each cycle spent waiting is weighted by the number of outstanding cache misses (I think the Pentium M I'm using can have up to 4 cache miss requests outstanding at once) and has some caveats, but can be considered a rough estimate of the time spent waiting for a cache line to be brought in. Therefore divding DCU_MISS_OUTSTANDING by DCU_LINES_IN gives us an approximate metric of how long a cache miss takes.
$ pfmon -e DCU_MISS_OUTSTANDING,DCU_LINES_IN ./comma < randomcommas 
769736 DCU_MISS_OUTSTANDING
102387 DCU_LINES_IN
$ pfmon -e DCU_MISS_OUTSTANDING,DCU_LINES_IN python -Sc "import sys; print sum(l.count(',') for l in sys.stdin)" < ./randomcommas
99810150 DCU_MISS_OUTSTANDING
 4240179 DCU_LINES_IN
So that works out to 7.5 cycles for the C version and 23 cycles for the Python version. This seems to strongly suggest that it is memory traffic that is weighing the Python version down. That is only the initial phase; the results give a high level idea of why one program is running slower than the other. The initial analysis phase generally consists of taking the ratios of certain events to try and get some idea in your head of what the program is doing. Then comes the really hard work; drilling down to figure out how to fix it! Some useful references:

20 December 2007

Lucas Nussbaum: Re: Is it hard for new contributors to help Debian? Can we improve things a bit?

Andreas Schuldei writes about my blog post about making it easier to contribute to Debian:
It is much more gratifying for a contributor if his effords have
immediate effects.

[…]

So what can people who want to help Debian do to achive more imminent gratification? Pick projects that let you help directly with direct svn/git/whatnot access (Security team, Debian Edu, Debian-Installer…)
While I agree that Instant Gratification is very important, I don’t think that the proposed solutions solve anything. It’s easy to have things sleep in an SVN repository instead of the BTS (lots of teams do that, sometimes for good reasons, like the lack of sponsors - hint: Games team). It doesn’t make things any better. What we need is tasks whose results will be available without too much wait in Debian unstable, for everybody. Also, I must admit that I know very little about the inner workings of the Security Team. But I have the idea that it involves quite a lot of procedures (helping with bugs tagged security probably doesn’t, but going further than that probably does). Contributing to Debian already involves A LOT of procedures. A new contributor, even very good technically, can easily get lost in all the different ways to package stuff and solve common problems. So we should identify tasks that don’t have huge requirements. Ubuntu has the concept of bite-size bugs. I started working on a page explaining the different ways someone can contribute to Debian. The goal is to provide a good entry point (not something that replaces existing documentation) and keep it at a manageable size. Its focus is mainly to replace the emails we write to people asking “I’d like to contribute, but I don’t know what I can do or where I should start!”. The page is available on wiki.d.o/HelpDebian/Start. Don’t hesitate to improve it (see also wiki.d.o/HelpDebian for a TODO list). When it will be good enough, I plan to move it out of the wiki (the content shouldn’t change much anyway) to eg http://help.debian.net/, so we can improve the design (I really like the idea of adding pictures of past Debconfs like Christian Perrier did in his FOSS.in talk).

Russell Coker: Apprentice Computer Journalist Wanted

In a comment on my post about apprentices [1] Don Marti pointed me to a blog post of his from 6 months ago where he mentioned a need for an apprentice [2]. I had read the post in question before but didn’t think about it when writing my previous post. When I was about 17 I had my first article published in a computer magazine, it was a small magazine for a computer club and the article was merely a long email on the club BBS which someone decided to publish. The option of trying to make a career out of journalism occurred to me then as I had been published once without trying, and the quality of the magazines at the time indicated that anyone who wanted to write technical articles would face little competition. :-# If someone as skillful as Don had been offering apprenticeships during school holidays when I was at that age I would have been very interested, but at the time there was too much cultural pressure (and too much pain invested) to make quitting school entirely an option. I encourage other people who have the ability to take on an apprentice to blog about it. Please make sure to mention your approximate location and whether school-holidays work is OK.

17 December 2007

Jeff Bailey: Dear Ubuntu Planet,

I'm on a quest to remove spam from my inbox. I've been killing off GNU mailman lists where the -owners stuff was feeding me spam. Most of my spam now seems to be relayed from @ubuntu.com. Does anyone know if there's a similar solution to what @debian.org has where I can ask it to reply with a bounce saying "Here's my real email address, use that instead pls"?

I suppose I could just set my default email address in LP to something that will do it instead, but I'd rather avoid the WrathOfElmo(tm)

Sune Vuorela: EndExtremadura

Ah. Back home. All in all, it was a quite nice trip. I like to get actually to meet the people that I communicate a lot electronically with. Thanks Extremadura for making this happen. The last day, we stayed at the residense instead of going to the local university, as the internet at the residense was much more stable than the one at the university.
But it was still heavily firewalled. Having the svn:// port firewalled doesn’t make it too easy to work with svn - and having ssh connection time out every 5 minutes also makes it difficult to try work on some remote machine. Please. Get the network better for next time. And more bandwidth. And thanks to Nekral for the champagne && cheese ;) Now tired - and times to sleep.

16 December 2007

Steve Kemp: So here it is Merry Christmas

Lars Wirzenius recently released, and packaged for Debian, a simple script to make release tarballs. He calls it Unperish. It makes me wonder how many other people use that kind of system? Of the top of my head the only similar thing I can recall using is Brad Fitzpatrick's ShipIt - another moduler/plugin-based system (Perl rather than Python this time.) For my needs I tend to just write a Makefile which has a "dist" target, and then I have a simple script called "release". This runs:
  1. make dist / make release.
  2. creates a gpg signature of the release.
  3. scp's the resulting files to a remote source.
All this is configurable via a per-project .release file. The configuration files are very simple, the script itself is almost trivial but being able to sit in a random project directory and have a new tarball on my webserver just by typing "release" is enormously useful. There are times when I think I should make it a mini-project of its own, with the ability to auto-build Debian packages, etc. Other times I just think .. well its a hell of a lot better than my previous ad-hoc solution. At the very least I think I will make the cosmetic change of updating the script to run "make test" if there is a test/ or t/ directory inside the generated tarball. In real news - tomorrow I leave for a two week holiday with my partner's parents. Yesterday I got back from a night spent with her in York. The Bytemark staff night out. Lots of fun. Over too soon, but lots of fun.

Biella Coleman: From serenity to offense in 5 miles or less

When you live in NYC and have a demanding job, you tend to ignore the city (at least I do), that is until guests descend upon your place. And since a Large Family Clan has recently landed in my apt, I have spent the last few days trekking north, south, east, and west, across bridges, in parks, and memorials, eating, drinking, and passing out at night after the constant flurry of activity. Yesterday we headed pretty much as far north as you can go to pay a visit to the lovely Cloisters sitting high on a cliff. The Cloisters provides stellar views of the Hudson at the same time as it transports you back in time when a lot of energy was put into scribbling religious material on paper in really stunning and ornate ways. I have not paid a visit to the Cloisters since my undergraduate days and after yesterday’s stroll, I am sorry I waited until the frigid winter to do so. It is an *incredibly* serene place, especially the inner courtyard gardens, and if you need serenity (and I think anyone who lives in NYC, needs to counter the low-grade and high-grade exposure to constant noise with some noiseless environments), this is the place to go. We then made our way to the Columbia area to check out the campus, St. John the Divine (currently under renovation), and so I could pick up a book being held for me at the Book Culture bookstore (which I wish was a lot closer to me than it is)… It was nice to escape the blustering winter conditions and browse the rows of books in a warm and well lit environment. But after purchasing Information Please: Culture and Politics in the Digital Age, parts of which I am hoping to teach next semester, and flipping through the book, my new found serenity was replaced by some serious offense when the only index I could find was an author index. There was no subject index in sight, which at the time left me totally surprised!! Anyone who is in the business of using books as research tools knows the index is —-> indispensable. And a well indexed book is much appreciated (never mind what a non-existent index does). In fact, I felt like I stumbled on some rare object because I don’t think I have ever seen an academic book published in the last 30 years not sporting this useful tool and I wonder if 1) I have a bunk copy 2) The editors/authors forgot to include it and just pushed out the book anyway 3) This was a willful choice made for reasons hidden to the reader. I think I may have to contact Duke University Press and let me know they momentarily robbed me of my serenity :-)

Erich Schubert: Keeping the website up in rankings

My personal web site - which actually is not particularly interesting, IMHO - used to get in a lot of traffic via Google. It was highly ranked on several quite interesting search terms. For example, it's still number 1 on the search term "Halbleiterlaser" (semiconductor laser), which is the topic of my secondary school thesis. So I still win against Wikipedia on this one. For "flowers" I sometimes and up at #1 in Google image search (causing lots of people to hot-link certain images from my site... might be with some geo targeting though?) But I've lost other battles to Wikipedia by now, such as the search term "Liebeskummer" ("lovesickness"; I have some old old poetry online that people dig a lot; this still makes up the biggest share of my visitors)My rankings have dropped quite a lot the last year, down about 50% within a year. I don't know if this is because I'm blogging a lot less, because I'm not updating it often enough or because Google doesn't like the redesign as much as it did like the old one. (The redesign was 2 years ago, followed by a drop in visitor numbers but a recovery to like 70% within a month)Algorithmic changes of Googles ranking are just another possible reason; I always felt as if my placement was highly overrated anyway.I added at a Google sitemap some months ago and other things that people expect to help with their site being well included, but it didn't stop the numbers from going further down. For obvious reasons I didn't buy any links or anything; I'm not making my living with that page or anything, it's just a pet project thingy. (So obviously, don't make me any SEO offers for my page!)Still it's a pity: I used to have a couple of really major placements on Google - so much that I've had some inquires if I'd like to sell my personal homepage (nah, I don't want to have to get a new email address!), offers by reputable and huge dating sites to put up ads on my page and surprisingly high offers for including my web page in link farms - but I'd have issues with that (I'd like to keep control of what my page contains; including content that might get Google to ban my page is scary), and it would have required me to run my page on PHP (ugh).I wish there was an easy way to just keep the rankings I mysteriously had acquired the last years. :-) For some time it looked like I had some magic SEO capabilities, and friends suggested I should consider actually going into the SEO business. My page is still overrated by Google, but it seems like it has lost much of it's magic.P.S. A fun story followup: I've just noticed that someone in a french cooking forum hotlinks to a photo of mine, claiming that he had cooked the food I did. Isn't that hilarious? Should I substitute that image with a g*atsee?

Jose Luis Rivas Contreras: Updated gkrellm, pgpdump and xscreensaver!

I recently wrote about the new version of xscreensaver and the new hacks but I just forgot to actually install them so now they're installed and thanks to my new co-maintainer Tormod Volden the packaging of xscreensaver is easier ans smooth, yet no in CDBS but easier at least, so the new release is 5.04-2 and right now I'm just waiting for damog to upload it (he's very fast BTW). I updated gkrellm with the new upstream version 2.3.1 fixing some bugs, I cleaned up all the patches and let only one for the gkrellmd.conf file, besides a made a clean up of the BTS of gkrellm, now there're less bugs remaining, the new release is 3.2.1-1 and is waiting for anibal to review it and upload it. Finally but not less important is pgpdump, a package that since a lot of time ago didn't get me any work, new upstream release 0.26 and the release 0.26-1 is waiting for anibal to review it and upload it. This last two were migrated to CDBS, so it's definitely easier to maintain, at least for me!

15 December 2007

Lars Wirzenius: CoverageTestRunner for Python

coverage.py (python-coverage package in Python) is a wonderful little tool for measuring which parts of your program are executed while you run it. It only measures at the statement level, but even that makes it quite useful when developing unit tests. Any code not covered by a unit test is obviously not being tested. I've been using coverage.py since early this year. It's been pretty systematically the case that any code not being tested by my unit tests has at least an order of magnitude more bugs in it when it gets to production. One thing I figured out was that it's even better if you structure you code and unit tests into pairs: the code in foo.py should be fully tested by the tests in foo_tests.py. To make this easier, I wrote a "test runner" which enforces this. It tests such pairs of modules and fails the test unless all statements in the code module are visited during the test. I give you: CoverageTestRunner. I've just uploaded it to Debian, so it should be through the NEW queue after some time.

Sune Vuorela: Extremamamamamamamadura day 3

Day three in Extremadura
Yesterday after dinner, we phoned “Telepizza” and got a pizza with cheese and cheese a cheese - and a pizza with barbecue sauce and bacon and bacon.
After a long night of hacking we finally got to sleep. And I almost got my debian working again.
Sleeping until 10 was kind of needed after that - and I got my debian finally working again. No more ubuntu live cd.
We skipped breakfast and found a supermarket. Yay! Best food this trip so far.
A sneak peek on the lunch - and we kind of ate it, but … I feel sorry for the students dining here 3 meals every day. So far we have gotten some discussions about kde3 packaging and kde4 packaging. Lenny will probably ship with a kde3 desktop and with kde4 development platform. - and everytime someone is thirsty, the question arises: “why do they get drinking water from swimming pools?” And tomorrow it is “back home”. Kind of sad, but I miss my bed. And my hardware.

Zak B. Elep: To Australia and Back: OSDC Brisbane 2007

Its been a couple of weeks since the Open Source Developers’ Conference in Brisbane, but it was only now that I’ve got the time to blog about it. :) This is due to some work that got piled in my backlog (I haven’t been lazy enough to have this work all automated yet :(). First off, my trip to Brisbane was a long one, due to the UNDP travel agency giving me a route taking me to Bangkok first, because of my exchange grant’s papers made in short notice. No matter: this being my first ever international trip, this meant that I would be visiting two different countries in just one shot. Bangkok was just an overnight stay though, so I didn’t see much, but their new airport was nevertheless impressive. Arriving there at almost midnight, the only bright places I saw were the big Suvarnabhumi airport and the Novotel where I had my layover. After some sleep, I had a pleasant morning, but only a short one at Bangkok, as my flight to Brisbane followed after: DSC06879.JPG The Brisbane flight was long, and I arrived just an hour before midnight. Now, my next problem was getting a place to stay. I took an airport shuttle to the Royal on the Park, where the conference will be held, first to see if there are any free rooms, or barring that, some recommendation on nearby places to stay, even if only for the night. I was quite anxious because I wasn’t able to arrange for accommodation prior to this trip (short notice, remember?), so I decided to go directly to the venue to be the best way of trying my luck. And try my luck it was! First, I was greeted by a front desk manager who turned out to be a fellow Filipino, and he helped me get a room in the hotel. At the time though, he could not guarantee that I can stay there for the duration of the trip (only for the night) but he would help me to find alternate accommodation instead on the next day. I thought that was good enough, since it was already midnight by the time I reached the hotel, and just a bed to sleep on for the night would do great for me to worry about moving elsewhere later. And the next day: Day 1 of OSDC: DSC06880.JPG I was up rather too early that day; the worrying about moving elsewhere settled in too early as well, and had made me check out very early so I can hopefully look for that alternate accommodation by lunchtime. One by one, the attendees came, and soon enough more than a couple of hundred people were filling the main conference room, waiting for OSDC to begin. And we began with a keynote from Rusty Russell on C, the humbling language and Ian Clatworthy’s talk on distributed version control systems. After the keynote, I was notified by the hotel management that instead of moving elsewhere, I can just remain there for the duration of the conference. I was quite relieved! For the remainder of the day, I listened in on the Perl stream of talks from Kirrily Robert, Josh Heumann, and Jacinta Richardson, on packaging Perl modules, Perl 6, and Perl code optimizations, respectively. Kirrily’s talk was timely since I am writing a couple of Perl modules to be released on the CPAN (one, Tie::Amazon::S3, is now up ;) On the morning Day 2, I listened in on Mark Rees’ talk on testing web applications using twill and a scripting language, like Python. I then followed Adam Kennedy’s talk on the CPAN 1.5, learning about CPAN::Mini, the CPANPLUS (which IIRC will be standard in Perl 5.10) and the Tiny modules in the process. More on the Perl stream continued with another talk from Josh Heumann on intermediate Perl testing, providing a humorous yet informative strategies not really just for testing Perl scripts or modules but for software testing in general: DSC06888.JPG Later in the afternoon was Paul King’s talk on agile developer practices for dynamic languages, covering Groovy and Ruby. That was later followed by Leslie Hawthorn’s talk about the Google Summer of Code and the announcement of the Highly Open Participation contest for the young geeks who are not yet in college or university but would like to work on open source projects just like the SoC-ers. After the day’s schedule of talks, there was a break before the conference dinner, allowing also for a short keysigning session and CACert identity check. Then, we had the conference dinner, sponsored by Google. There was also a game held: every table makes up a team who, given some Play-dohs and imagination, are to make up a bug’; the best bug’ wins a free book. Unfortunately, my table/team didn’t win any books, but that was beside the point anyway, as the bugs that were made up were quite something: DSC06898.JPG DSC06895.JPG On the last day, the morning talks I attended were all about Ruby and Rails. Nic Williams gave an introductory talk on Rails, then Paul King gave another talk, this time on Grails (the Java version of Rails,) and closing the morning session was Keith Pitty’s talk on Ruby for Java shops. For the afternoon, I followed Adam Kennedy’s talk on optimizing projects for wetware. DSC06936.JPG For the closing keynote, Nat Torkington talked about the future of software: DSC06945.JPG And with a day left before returning home, I went to sightseeing mode, bought a couple of books, and the mandatory pasalubong for the relatives. At midnight, my flight took me back to Bangkok, another long trip that touched down at the crack of dawn: DSC07034.JPG After a few hours’ wait, I took the plane back to Manila, returning home just after lunchtime. This being my first international trip, making it alone seemed to be quite an adventure. But I wasn’t really alone in this endeavor: kudos goes to the UNDP International Open Source Network for their exchange grant program, to my relatives for their support, to Free and Open Source Software for really making things rock (and free ;), and to $DEITY for being there. Until the next trip!

Benjamin Mako Hill: Annual Free Software Foundation Fundraiser

It's an end of year tradition for non-profit organizations to do big fund-raising and membership pushes. As I mentioned several days ago, I am personally giving to two organizations this year: the Wikimedia Foundation and the Free Software Foundation. The FSF has a goal of 500 associate members by year-end and it's an important goal that will sustain the foundation's activities. While membership dues keep the lights on, the fact that the foundation has a robust and growing membership is equally, if not more, important. FSF executive director Peter Brown put an appeal online in both video and text versions. In it, he lays out some of the most important issues for the next year. You should watch the video version in OGG Theora or this YouTube version (requires Gnash or non-free Flash). The appeal briefly lays out the FSF's plans for next year. My partner Mika Matsuzaki and my friend Oliver Day shot and edited the video. Please pass the link around to those you feel might be interested. Here's my appeal:
Now is the time to join and give to Free Software Foundation. 2008 is going to be extraordinarily important year for free software. Eben Moglen likes to quote Gandhi's "first they ignore you, then they laugh at you, then they fight you, then you win" progression when describing the free software movement. As I pointed out when I joined the FSF board, we're beginning to see powerful interests fighting free software. It's going to increase in the next few years. Things will probably get a lot uglier for free software before they get better. We can win but things are far from settled. The FSF is the front-line organization in this fight and we need a robust and proactive foundation, and an active and involved membership, if we're going to win. Here are the issues that I'm going to pushing the FSF to pursue in the next year. Expanding activism outside our traditional technologist communities: In part through the work of projects like Defective By Design, we've seen the tide turn for DRM on music in what what may be the FSF's greatest success last year. I'm going to push the FSF to continue the campaign to attack DRM for video, eBooks, and the other places it is cropping up. The most remarkable thing to me about Defective By Design is that its participants and supporters are not, for the most part, people who develop or use GNU/Linux or even know what GNU is! If advocacy for software freedom involves a conversation we can only have with people who understand what POSIX is and how one uses it, we've already lost. Through DbD, BadVista, and other projects, the FSF has made major strides in the last year. It need to do much more and needs your support to do so. Get proactive about software patents: As a community, we've had our head in the sand about software patents for far too long. There are companies and patent trolls sitting on massive, growing piles of software patents. They are not our friends and they do not mean us well. One cannot write non-trivial software today without running a serious risk of infringing patents. The software patents minefield we've found ourselves in is a very fundamental threat to the success of free software and we've already begun to see the first casualties and costs. We must eliminate software patents. Now. The US is very important in this fight (much patent law is "exported" from the US) and almost no organization is working on software patent elimination there. Not enough people are thinking and acting strategically on this issue. The FSF is planning to make major steps in this fight in the coming year and we need your support to do so. Web services and the changing face of software: This last year, I worked to help launch the new version the AGPLv3. The license addresses the role of copyleft for software like web-services which, due to the legal particulars of the GPL, did not extend to the purveyors of web services. Of course, access to source code does not make the users of all web-services free (e.g., the GMails and the Facebooks). Nobody seems to know what freedom for webserver entails. There might not even be good answers. In the next year, I'm going to push the FSF to help start several conversation and to begin to follow up on what I think was an important first step with the AGPLv3. While this is not a major organizational priority yet, it's a major action item that I will be pursuing through the FSF. If you feel strongly about this issue, whatever your position, become a member, stay involved as these projects develop, and have your voice be heard. We don't know the answers yet and we need your input as much as we need your action.
Please, support the FSF in the efforts listed above, and in others, by giving generously. If you're not a member, please join the FSF as an associate member. If you are already a member, please consider making a tax-deductible donation. The FSF is a very lean, very humble organization of passionate and dedicated individuals working tirelessly for software freedom. Every little bit helps. Members pays USD $120 ($10/month) and student members pay half that. FSF has members across the world -- where a weak dollar often makes it even cheaper. Member support and participation builds capacity and credibility for the foundation and keep the organization responsible, responsive, and in tune with our community.

14 December 2007

Sune Vuorela: Extremadamadura day 2

So - this is Extremadura day 2 Bedroom: Cold, but works. I think I saw penguins there last night Wireless: still crap Breakfast: awful Other food: Better Dining schedule: still on crack Last night: Very good - lots of small kinds of food and free drinks In general satisfied, except the network.

MJ Ray: Spam: The Leading Company

Today I was cold-called by someone announcing themselves as "UK Bank Claim", a service of "the leading company", asking me questions about my bank charges. Now, that put my back up right away. I co-own most of my banking service providers (aren't cooperatives and mutuals great?), and you can't get much more confusing service and company names if you tried. Then they claimed to be registered with the Ministry of Justice, but I can find no mention of this registration service on the MoJ web site. I've emailed the ministry to let them know. The phone number they called is registered with the Telephone Preference Service. The call did not send any Caller Line ID and refused to give a telephone number when asked, so I suspect it may have been from overseas. I registered a TPS complaint nonetheless. The caller gave me the domain theleadingcompany.co.uk which is registered to The Leading Company ltd - UK Limited Company, (Company number: 6081225), 28-32 church street, slough. Strangely, that is not the Registered Address: Excelsior House, 3-5 Balfour Road, Ilford Essex shown on their web site, nor the one listed at Companies House:- ROPE WALK SHOPPING CENTRE, ROPE WALK, RYE EAST SUSSEX - are companies allowed to use multiple registered addresses? I thought that was forbidden. In short, who is this company, why are they claiming government support and why are they allowed to behave like this this? How far should I go with this? Do you think I should contact hedleycreative.co.uk (whose email address is in their web source) and ask them why they're working for phone-spammers? I guess I shouldn't waste any more time, but I think it's worth publicising this behaviour a bit, to try to avoid these people finding unwary victims.

Martin F. Krafft: Surveys on the console

As part of my research, I may have to conduct a survey among Debian contributors. The word "survey" usually elicits frowns because surveys are often misconducted. MJ has taken the time to draft up some advice to surveyors. Problems with surveys generally fall into one of two categories: content and presentation. I'll refrain from making statements about content (Wikipedia has some stuff on questionaire construction) and instead concentrate on presentation in the following. Commonly in the digital age, surveys are administered via a web page or e-mail. In my recent Ph.D. transfer report, I identified a number of shortcomings with these approaches: Asking Debian contributors to click radio buttons on a web page is a bit like expecting a mountain biking champion to ride a tricycle across a paddock: painful, if not offensive. Furthermore, web surveys can only be taken while on-line, when most of us have better things to do. E-mail surveys address some of these problems, but create new ones: answers cannot be constrained to a domain (think multiple-choice), character set and formatting issues make evaluation difficult, and it's impossible to prevent users from attaching comments or modifying responses. In thinking about the issue, I came up with a third means to administer a survey: a console tool. Think of a Debian package which provides a console application controlled by a study-specific data file. The data file specifies the questions and their answer domains, and the tool presents those to the participant. Since most of Debian happens on the console anyway, such an approach to surveys seems more appropriate. Interaction with the survey tool would be as easy as pressing the 2 or 4 keys to select one of the multiple choices, and the tool would immediately move on to the next question (and not wait for the user to hit enter). Obviously, n and p should allow navigation back and forth across the set, and c would spawn a text editor to give the user a chance to attach a comment to his/her current response, in which s/he might criticise the question or provide additional information. Finally, the tool should be able to pick up where it left off, should the user chose to exit/suspend the survey for now. Integration with debconf or another interface abstraction is also worth consideration. There is more to it: people change their minds and should thus be able to amend responses. With their consent, it might be valuable to track such changes and inquire about their motivations. As I was thinking about how to realise this, I suddenly arrived at version control: use Git as a backend storage. The set of cool features this would enable seems to be endless: it works off-line and can be used to track aforementioned changes, but also offers the possibility to create a squashed result in case the participant prefers to submit only the final result. Furthermore, it's a trivial change between anonymous submissions, and submissions authenticated by a GPG signature. In addition, the survey tool should be able to display questions according to previous responses (control flow). For instance, if the survey determines that a given user is a contributor to the bug tracking system, but not a project member, it wouldn't make sense to ask when s/he received his/her Debian account. Furthermore, questions could be dynamically creatable from context, so that the survey can drill into depth depending on previous responses, rather than asking the same questions to all participants. I am currently applying for funding to outsource the development of such a tool. If you are interested in coding it up and getting paid for it, speak to me. Here are some more specifications to keep in mind before jumping on: These are likely to be incomplete, but should convey the basic picture. Feedback is always welcome! NP: Oceansize: Frames Update: James Andrewartha pointed me to purity, which asks multiple-choice questions on the console. It has the kind of interface which I envision. Also, Chris Lamb suggested this personality survey as a base line. Well, actually he just suggested I look into it.

Julien Blache: Dear bloody spammer^W^WAndrea Infurna

Spamming every @*.debian.org email address you can find to advertise your new website related to free software is not a good idea. At all. If you know this person IRL, please make heavy use of the cluebat on him. kthxbye.

Russell Coker: Blogroll - Bad Social Networking

A common feature in blog software is a Blogroll, this is a list of links to blogs which are associated in some way with the blog in question - most commonly it’s a list of blogs run by friends of the blogger in question. Now in the case of friends with very similar interests (IE same religious and political beliefs, sexual preferences, hobbies, etc) this wouldn’t cause a problem. In the case of commercial blogs it also will work well (EG Google runs a large number of blogs which contain links to all the rest - they may not interest all readers but should be expected not to offend any). In the case of personal blogs where people don’t always have the same interests there is scope for problems. A link to the main page of a blog is an unconditional recommendation for the blog. There are not many of my friends who I share that much in common with that I would be prepared to give such a recommendation for a frank personal blog, and for those few I am unwilling to do so as it generates social pressure to include others. Some of my friends who didn’t get listed in my blogroll would probably get offended, even though it’s only the occasional post that I strongly disagree with which would make me refrain from such a listing. I appreciate it when people add me to their blogroll, but don’t have any expectation that the listing will remain (I’m not going to get offended if someone changes their criteria for listing and removes my entry). But I consider it an equal compliment when someone cites one of my blog posts as a reference and recommends that other people read it. Citing an individual post has the advantage (for the person citing the post) they are specifically not recommending my entire blog. For example if you recommend one of my posts about Linux and one of your readers goes further into my site and is offended by my posts about politics then it’s not your issue. Tim Berners-Lee made an interesting point [1] “so readers, when they find something distasteful or unreliable, don’t just hit the back button once, they hit it twice“. I know that some people who would be interested in the technical Linux issues I write about don’t read my blog because they are offended by my political beliefs, I am not concerned about this - but I don’t expect that everyone who chooses to link to me will necessarily want to make the same trade-off. When citing individual posts it’s possible to strongly agree with one post and strongly disagree with another by the same author. Probably the best way of acknowledging your friends via blogging (if you choose to do so) would be to make an occasional links post which contains short positive recommendations to the best posts your friends wrote. If every month or two someone writes a links post (post which has little content, merely recommendations for other posts) which references your posts then you know that they like you (and you get a Technorati.com boost), so a blogroll entry hardly seems necessary. An additional benefit for giving such direct credit is that the person receiving the links will know what you consider to be their best work which will help them in their future writing. I believe that adding this feature to common blogging software was a mistake. The small number of people who actually need this (such as Google) can create it via a HTML widget (IE writing raw HTML for the page - it’s really easy to do) and the rest of the population would be better off without it.

John Goerzen: A Clarification

You may remember my post Monday in which I told Mother Nature to "bring it on".

I would like to clarify that remark at this time. I would have preferred Mother Nature to interpret this in the President Bush sense of "please don't hurt us", rather than the "let's just knock out power to the entire plains region". A nice little romantic power outage Tuesday evening would have been nice.

We lost power at 3:10 on Tuesday according to my workstation's logs. It's still out, and our rural electric cooperative is estimating it will be another week until it's back, though that's better than the Dec. 22 date the state's much larger for-profit utility is giving people. We were lucky enough to be able to find a generator to rent on Wednesday morning. $35 a day isn't cheap. But on the other hand, we don't have a flooded basement due to not pumping out the sump pump, our food isn't spoiled, and our pipes aren't frozen.

At work, our Internet connection went down Tuesday morning. We use a fixed wireless connection, and this was the first time our ISP's radios have been tested in ice. Some antenna designs performed flawlessly. Then there were the antennas we had. 80% packet loss or worse. It wasn't safe to get up on the roof to deice them until Wednesday afternoon, and even then we couldn't get all the ice off. Finally today the connection was back to normal.

That two weeks after someone -- yes -- dug through Sprint/Embarq's apparent only fiber-optic link into town. Took down all long-distance calling into or out of the town, most cell towers, as well as all access to 911 (since dispatch is in another town) for about 8 hours. If we had still be using wired T1s, we would have been out of service with Internet as well.

All told, 200,000 households or business customers of the state's largest utility have been without power. Dozens of other utilities have also had significant outages. Ours alone lost 700 power poles and there are substations in need of repair all over the eastern part of the state. And we weren't even the hardest hit.

On the generator, we can generally pick any three of refrigerator, server, workstation, or furnace to run. So sometime warm, I'll upload the pictures I've taken so far. We have one nice CFL-powered electric lamp we're using, flashlights, and a kerosene lamp. It's amazing how after just a few days of this, we're starting to want to go to bed earlier. Or perhaps that was because I haven't had the chance to get a lot of sleep lately...

When we look out the house to the east, we see pitch black. Normally we can see some yard lights in the distance. Not this week. Nothing at all to the east. To the west, we can see yard lights tantalizingly close -- only 2 miles away, fed from a different location. Ah, the joys of being at the very end of a utility's network.

All this despite the fact that this storm wasn't really all that bad. The roads were never really terrible, and there weren't as many trees down as there were in the ice storm of 2005.

I heard a comment on the news today from an Iowa Republican who had followed the GOP debate yesterday. She mentioned that Romney made a comment like "Well, guess there's no global warming in Iowa with an ice storm like this, huh?" She pointed out that if Iowa was still as chilly as it used to, it would have been a snow storm instead of an ice storm. I agree.

13 December 2007

Sune Vuorela: Extramadamadura day 1

Debian-KDE && Debian-i18n meeting in extremadura. I’m attending. Yay. Flight: on time for once, but apparantly Iberia has added one extra row of seats, so very little space.
Bus ride: okay. but still a 3-4 hour bus ride.
Beds/bedrooms: Is working.
Breakfast: Crap.
Network: Heavily firewalled, but ssh works on port 22. Extremely laggy, connections dropped, …. In general, crap.
Lunch: Quite okay. Probably because the standard lunch got cancelled, so we got better lunch.
Dining schedules: Completely weird.
The people: Debian people quite nice.
Why does so few spanish people speak english? Except the network, I am kind of satisfied.

Next.

Previous.