Search Results: "will"

19 October 2009

Neil Williams: Unfriendly non-usability change in GNOME

I thought this was a bug in gtk but it turns out to be a usability feature introduced in GNOME - all the menu and button icons are disabled. Yuk!

I liked buttons and menus with icons, I've spent a lot of time writing the code to put customised icons on buttons (it is helpful to show an icon on a button that only exists in one app and which does an action specific to that one app to help the user know what the button will do - how else is the user to know without making the button label twenty lines long?) and it's weird if some show up and some do not. Plus the disabled menu icons were only ever partially disabled which was even more confusing. A picture is worth a thousand words - if some pictures aren't any good it's not reason to ditch every picture regardless of quality! Even worse to make it a default that cannot be turned back on cleanly.

The fix involves a partial fix in the System Appearance Interface tab and a hack in gconf-editor to complete the fix.

I now have icons on buttons and on menus, despite GNOME trying to be "helpful". I'll be updating a few screenshots that inadvertently ended up with naked buttons.

How long will it be before a package includes a GConf snippet that enables icons again just because the app is hard to use with all buttons and menu items looking the same? Heck, I might even do it in one of my own packages.

Julien Blache: pommed v1.29: architectural fix

pommed v1.29 is a bugfix release, kind of. The fix is an architectural one related to the video mode switch feature. When pressing the video switch key, your graphical pommed client of choice checks which VT its X server is running on and whether this VT is the active one before executing your video mode switch script. To check that the VT is currently active, it is necessary to open one VT (we use the one our X server is running on) and perform an ioctl() call on it. Depending on your setup (login manager or startx, basically), your user will or will not have any right on the device node associated to the VT. Which means the VT state checking code would always fail in some setups. This is now fixed by moving that code into pommed itself, with a DBus method for the clients to call. You ll need to update both pommed and the clients for this to work, for obvious reasons.

Holger Levsen: Debian wine from DebConf9

Debian 5.0.2 wine, which was made to support DebConf9, is finally available to be bought on the internetz. Currently the shop user interface is German language only, but I've heard that this will be fixed eventually.

Enjoy!

Robert Collins: Government data please do it right


The Australian government 2.0 taskforce has an initiative to make data available for public remixing and use: after all its public property anyway, right? They have even run a mashup competition. Notably missing from the excellent collection of data that has been opened is the NSW Transport and Infrastructure dataset for public transport in NSW. There is a similar dataset for the Northern Territory in the mashup transport section. The NT dataset is under the fantastic cc-by licence. You can write an iphone app with this, a journey planner that you can cart with you while disconnected; a find the closest bus I can walk to tool, or well let the imagination run wild. The NSW dataset is under a heavily restrictive license. Its so restrictive I m not sure its feasible to write an open source tool using its data. The meta-issue is that NSW T&I department wants control over the applications built with this data. This adds a tremendous chilling effect on potential uses of the data: the department will have to approve, with a long lead time, every use of the data, and get to tell the application developer what to changes to make to their application. I strongly doubt that a simple remixing of the data (e.g. with weather reports to prefer buses on very wet day) would be permitted, as it would allow other users to just read the remix and get the original data /without entering into a license agreement/. I m sure there is some unstated risk of openess, or benefit of control, that is shaping this problematic approach. Whatever the cause, its not open at all. Given that the overall approach is fundamentally flawed, a blow by blow analysis of the custom license isn t particularly useful, however I thought I would pick some highlights out to save folk the trouble ;)
  1. The dataset is behind a username/password wall [that you cannot share with others].
  2. Licensees may not be private everyone must know you re using the data.
  3. You must link to the 131500.com.au website
  4. You may not charge users for an app that has to be redeveloped if the dataset changes shape
  5. Any application written to use the dataset must be given to the department 30 days before release to the public.
  6. The department gets to suggest changes to any announcement related to the developers app, the license agreement or the dataset.
  7. The dataset is embargoed you cannot share it with others.
  8. The use of the dataset has to be logged and reported.
  9. There is a restraint of use in there as well related to Inappropriate and Offensive Material. It wouldn t affect me, but sheese, given all the other restraints its hardly needed.
There are more gems in the details, but in short: The department will control what, where, when and how (the data is accessed, the application s functionality/appearance, how it was used). Hell, the 30 day requirement alone makes for slow delivery of whatever someone wants to build. I really hope this can be improved on.

Jaldhar Vyas: Sal Mubarak 2066

Best wishes to everyone in Debianland for a happy and prosperous Gujarati New Year (Vikram Samvat 2066, called Plava) This year the local mandirs continued their recent trend of coordinating their Diwali/new year plans and there was a big mela planned. Unfortunately the weather didn't really cooperate but the kids got to manhandle some explosives and after all isn't that the reason for the season? Presentwise, I got a DIY 4-shelf bookcase from Sears, the Catalyst Book plus a much-needed woolen hat. I've decided that I am going to quit my job. It's a soul-sucking dead end but in these tough economic times it pays bills so I've agonized about this for a long time. This was supposed to be the year we moved out of Jersey City but it has yet to happen. And it never will unless I take some sort of decisive action. So I'm going to do it. Wish me luck!

18 October 2009

Christian Perrier: 4621 potential "spams" left to review for me

A few of us are working on spam removal from Debian lists archives. The wiki page linked above explains how to report spam on Debian mailing lists. This is in short as easy as bouncing a mail to a specific address, from your favourite MUA. These "reported spams" then need to be reviewed. Once a given message has been identified as "spam" by enough DD's (there are many false positives in the candidates, particularly in non English-speaking mailing lists), it is removed from the archives. Many mails have already been removed and any help is welcomed. Since Frans Pop launched this for debian-boot, back in May, I use 1 or 2 hours every Sunday to this work. After working on debian-boot only, I gradually worked on reported spams in other lists. As of now, I only have 4 lists where I still have work to do: The Chinese and the Spanish ones are tricky because identifying spam there is much less easy (for Chinese, I'm quite conservative and only tag very obvious spam....for Spanish, I read enough of the language to be able to target spam). What about you? Will you be able to help the few of us who work on getting clean archives (noticeably, Sandro Tosi, Giacomo Catenazzi, Cord Beermann, Luk Claes, Frans Pop, Bastian Blank, Luca Falavigna, Michael Koch, Bernd Steinmetz, Thoomas Viehmann, Florian Ernst, Adam D. Barratt, to name thos ewho reviewed more than 1000 mails)? Working on lists in your own language might be a good idea (I'm particularly thinking about lists in German, Spanish, Chinese and French).

David Bremner: Counting symbols from a debian symbols file

I am currently making a shared library out of some existing C code, for eventual inclusion in Debian. Because the author wasn't thinking about things like ABIs and APIs, the code is not too careful about what symbols it exports, and I decided clean up some of the more obviously private symbols exported. I wrote the following simple script because I got tired of running grep by hand. If you run it with
 grep-symbols symbolfile  *.c
It will print the symbols sorted by how many times they occur in the other arguments.
#!/usr/bin/perl
use strict;
use File::Slurp;
my $symfile=shift(@ARGV);
open SYMBOLS, "<$symfile"   die "$!";
# "parse" the symbols file
my %count=();
# skip first line;
$_=<SYMBOLS>;
while(<SYMBOLS>) 
  chomp();
  s/^\s*([^\@]+)\@.*$/$1/;
  $count $_ =0;
 
# check the rest of the command line arguments for matches against symbols. Omega(n^2), sigh.
foreach my $file (@ARGV) 
  my $string=read_file($file);
  foreach my $sym (keys %count) 
    if ($string =~ m/\b$sym\b/) 
      $count $sym ++;
     
   
 
print "Symbol\t Count\n";
foreach my $sym (sort  $count $a  <=> $count $b  (keys %count)) 
  print "$sym\t$count $sym \n";
 

Russell Coker: Mobile Phones Are Computers

One thing I noticed when I got my new LG U990 Viewty [1] mobile phone is the way the core telephony functionality has suffered while features for web browsing etc have been added. It seems that the core phone functionality (making and receiving calls and maintaining a list of names and phone numbers) has generally decreased since about 2004 when I got my first camera-phone. The Nokia GSM phones that I used prior to getting a 3G phone seemed to have a combination of signal reception, voice quality, and basic telephony features that beat all the 3G phones I ve used. The only way the 3G phones were better for core telephony features is in managing the list of recently called numbers. In my past two LG phones I ve been able to easily call an alternate number of the person I last called this feature was dropped in the Viewty. Some of my relatives have camera-phones that have an extremely poor ability to get a signal, they can t get a GSM signal in places where my Viewty can get 3G! Obviously making a usable phone was not a design priority for those devices! Then there s the issue of battery life. Early mobile phones had NiCd batteries that lasted a week, later mobile phones had Li batteries that lasted a week as a standard feature. Nokia sold phones with replacement batteries, so if you wanted to make lots of phone calls while on the move you could have a second battery charged and ready for use. Now the latest BlackBerry [5] apparently has batteries that only last for one day I haven t investigated the options for storing a second battery but a casual glance indicates that changing a battery will be a lot more difficult than on an old Nokia phone. I ve been wondering, why don t they just sell some mobile phones that don t support making phone calls? Smart phones that aren t very good at telephony is really only going half way, do it properly and just rip out the phone functionality! Or they could use the word phone to apply to devices that already exist to do mobile stuff. You could have an Amazon Kindle phone [2] that allows you to read documents, and a Nokia N800 tablet phone [3] for general Internet access including web browsing and email really the only smart-phone feature that is missing from the Nokia is a camera. For that matter my EeePC 701 [4] is probably about twice as heavy as my first mobile phone, maybe it could be called a phone too. If you have two phones, one for making phone calls and the other for doing smart-phone stuff then it won t matter so much if the smart-phone (which can t make phone calls) has it s battery run out. One likely objection to the idea of selling phones that can t be used for making phone calls is that it might confuse the users. However the current situation is that there are significant differences in the signal reception ability of mobile phones, the people who sell them don t know what the difference is, and the rare reviews that analyse signal strength (as done by Choice [6]) are become outdated rapidly and never cover all phones on the market. So I think it would be a great improvement if the phone sales people could say don t buy phone A if you want to make phone calls because it can t do that because currently anyone who just wants to make phone calls has a matter of luck to determine whether they get a phone that works well. The really sad thing however, is that some people apparently have usage patterns that are similar to my satire above. I have heard of people having two phones, one for smart-phone functionality and another for making calls. What we need is to have manufacturers put more effort into making hardware that can receive week signals, from now on I will consult the Choice review of this before making any mobile phone purchase or recommendation. If only a few million other people would do the same then the manufacturers would improve their products. The next thing we need is to have better software to run the phones. The deficiencies in the software on my Viewty could easily be fixed if everyone had source code access. Benjamin Mako Hill writes about some of the problems with closed-source on mobile phones [7]. He mentions security (in terms of our trust in the phone manufacturers), and the general ideal of having control over your own device. One specific problem he doesn t mention are the ways that mobile phones are deliberately crippled by the manufacturers, 3G phones have precious main menu space occupied by the services that are most profitable to the telephone company without regard to what the users desire. Another problem for people who desire free software is file format support. Camera-phones that save video to AVI format instead of OGG reduce our ability to use free software in other places as a general rule every time you transcode a video you either lose some quality or increase the file size so the format that the phone uses will be carried through many other computers and devices. Smart-phones generally have the ability to view a range of data types, the ability to view MS file formats is common (which excludes free competitors). My Viewty has an entire menu section dedicated to Google services (Gmail, blogger, youtube, etc). That s nice for Google who presumably paid well for that, but not so good for me as I don t use any of the Google features on my phone. Now a menu that had a caching IMAP client, an RSS feed reader, a Wordpress API client, a Jabber client, and a caching Wikipedia client would be really useful. My current phone is just under a year old, so I won t be buying a new phone until January 2011 (unless I break or lose my Viewty). Hopefully then there will be some better options. Before anyone suggests that I buy another phone to help with the coding, my current free software coding projects are all behind schedule http://mako.cc/copyrighteous/20091017-00

17 October 2009

Benjamin Mako Hill: The Computer in My Pocket

If we've kept up with projections, by the end of this year, the world will be home to 3 billion mobile phones. That's nearly one phone for every other living human being. Although these phones open up a world of important new opportunities in communication, creativity, and cooperation --- and it's important not to understate this fact --- they also represent a step toward a sort of technological dystopia not unlike Stallman's Right To Read. Phones represent one of the most locked-down, proprietary, and generally unfree technologies in wide distribution. The implications for software freedom and technological empowerment are dire. But despite the fact that mobile phones represent what may be the greatest threat to software freedom today, the free software community has --- with a number of notable exceptions that I want to both thank and draw increased attention to --- been mostly silent on the issue. I know passionate advocates of software freedom who work tirelessly to rid themselves and the world of a handful of binary blobs in the Linux kernel --- important work that we all benefit from. And yet, even some of these "hardliners" don't seem to hold their phones to their same standards as their laptops. Ubuntu's decision to ship a new binary driver remains more controversial than the fact that the vast majority of the world's computer using population knows nothing other than phone-based computers that remain almost unthinkably unfree and which remain almost entirely unfreeable when compared to personal computers. For most of the world's computer users', there is no option of, and essentially no hope for, freedom on their current devices. It shocks me that anyone, especially free software advocates, would happily put up with such non-free computers.[1] I think part of the reason lies in the fact that most users of mobile phones, and even most phone users that care about software freedom and technological autonomy, don't think of their phones as computers. Thinking that our phones as computers will not solve any of the problems I've alluded to. But doing so remains an essential first step toward any solution. Although we must still work to build viable, widely accessible, and compelling free phones, we must first convince both users and developers that this is an important goal. Reminding people that our phones, both free and non-free, are powerful general-purpose computers remains an important and still largely unfufilled part of this process. We must find ways to remind ourselves and others of the fact that modern phones are powerful computers with powerful interfaces that are useful for a unimaginable variety of arbitrary applications. We must focus on the fact that these computers have microphones, sensors, and other sensors and that we trust them with our closest secrets and most sensitive data. We must not forget that, in almost all cases, these computers remain controlled, completely and ultimately, by companies that very few of us trust at all. I'm not sure how we will accomplish this task. But more of us need to think long, hard, and creatively about this problem. I'll be calling my phone "my computer" as a first, very personal, step. I have done this over the last week and it has led to some conversations with slightly confused acquaintances. Of course, this doesn't make my phone any less free. But it does mean I'm talking more about the non-freeness most of us have put up with too silently. At this stage, that seems like progress.
[1]Like many free software advocates, my phone is also a computer running a combination of free and non-free software. I use it unhappily and am doing what I can to change this.

Eugene V. Lyubimkin: Debian packages with big number of bugs

While working on Debian, I often don't realize how some important packages lack manpower to handle issues. Examples that touched me are 'apt' and 'perl'. As someone told many times, it would be good if someone with free time, especially newcomers to Debian, help triaging/reproducing bugs in the BTS, writing patches etc. This activity usually doesn't require helper to be a DD or DM, and will usually be more appreciated than preparing 11th web server or 30th window manager to Debian archive. Just ask maintainer(s). Also, you may want to read http://wiki.debian.org/HelpDebian to get the wider picture.

I tried to quickly find a table with Debian packages with highest bug rates over the Debian BTS, but failed, so I constructed my own one, with the help of UDD. This list contains BTS packages with number of bugs > 100 and is available here. The top ten:


          source            rc_bugs   all_bugs 
--------------------------+---------+----------
 wnpp                             0       3024
 installation-reports            10       2119
 apt                              4        682
 linux-2.6                        0        617
 aptitude                         0        576
 iceweasel                        3        490
 openssh                          1        417
 evolution                        0        362
 util-linux                       1        344
 dpkg                             1        343

Russell Coker: Links October 2009

Garik Israelian gave an interesting TED talk about spectrography of stars and SETI [1]. He assumes that tectonic activity is a pre-requisite for the evolution of life (when discussing the search for elements that are needed for life) and that life which is based on solar energy will have a similar spectrographic signature to the chlorophyl based plants that we are familiar with. I doubt both those assumptions, but I still found the talk very interesting and I learned a lot. Julian Dibbell wrote an interesting Wired article about an ongoing battle between the Cult of Scientology and 4chan [2]. I don t often barrack for 4chan, but they seem to be doing some good things here but of course they do it in their own unique manner. The article also links to a hilarious video of Tom Cruise being insane, among other things he claims that Scientologists are only ones who can help at an accident site. Has Tom Cruise ever provided assistance at a car crash? The Independent has an article by Robert Fisk about the impending shift away from the US dollar for the oil trade [3]. This is expected to cause a significant loss in the value of the US dollar. Robin Marantz Henig wrote an interesting article for the NY Times about the causes of anxiety [4]. It focusses on Jerome Kagan s longitudal studies of babies and young people. One thing that I found particularly interesting were the research issues of recognising the difference between brain states, internal emotional state, and the symptoms of emotions that people display (including their own description of their emotions which may be misleading or false). The tests on teenage social interactions that involved fake myspace pages and an MRI were also interesting. Juan Cole wrote an insightful Salon article titled The top ten things you didn t know about Iran [5]. The Iranian government doesn t seem to be a threat to anyone outside their country. Clay Shirky wrote an insightful post about TV being a heat-sink for excess spare time and considers the number of projects of the scale of Wikipedia could be created with a small portion of that time [6]. It seems that the trend in society is to spend less time watching TV and more time doing creative things. In a related note Dan Meyer has an interesting blog post about trolls who say You Have No Life [7]. The Making Light blog post about Barack Obama s Nobel Peace Prize has some insightful comments [8]. I doubted that he had achieved enough to deserve it, but the commentators provide evidence that he has achieved a lot. I wonder if he will receive a second Peace Prize sometime in the next 10 years. The Making Light blog post about bullies and online disputes predictably got diverted to discussion school bullying [9]. The comments are interesting. Making Light has a mind-boggling post about homosexuality and porn [10]. US Senator Tom Coburn s (R-OK) chief of staff Michael Schwartz made the case against pornography. All pornography is homosexual pornography , said Schwartz, quoting an ex-gay friend of his. Among other things there are many good puns in the comments. Cubicle Jungle is an amusing satire of the computer industry [11]. It s shocking how long it goes before it gets to the part that s obviously fiction. The WikiReader is an interesting new device [12]. It costs $99US and has a copy of Wikipedia on an SD card, they have a subscription service that involves posting you a new SD card every 6 months, or you can download an image from their server. They state that they have a filtered version of Wikipedia for children, I wonder how they manage that, I also wonder whether they have an unfiltered version for adults. The device runs on two AAA batteries and is designed to be cheap and easy. Naturally it doesn t support editing, but most of the time that you need Wikipedia you don t need edit access or access to content that is less than 6 months old. Exetel are scum, customers who complain are cut off [13]. Making Light has an interesting post about a New Age scumbag who killed at least two of the victims who paid $10,000 for a sweat-lodge workshop (others are in hospital and may die in the near future) [14]. The NY Times has an interesting article about Jamie Oliver and his latest project [15]. He is trying to reform the eating habits of the unhealthiest area in the US. The 15 pound burger sounds interesting though, I wouldn t mind sharing one of those with 14 friends

Christian Perrier: Thy laptop shalt be a database server (take 2)

Thanks to people who reacted to this post of mine. As expected, when one posts such angry post, reactions come. Guess what: that was intended..:-) So, I got more background on this KDE pulls MySQL in issue. The issue is more subtle than just KDE upstream being dumb and using a MySQL daemon or database for desktop operations. In short, akonadi uses mysqld to manage its cache, from what I understood. So, what's needed is indeed the mysqld binary and not necessarily having it running as a *daemon*. Bug #513382 explains it all. I really hope that MySQL and KDE maintainers will settle to find a solution for this. Apparently, other distros managed to get such issue solved and I would hate Debian being laughed at because we are the only ones where "thy laptop shalt be a database server". Really, I won't be getting deeper into that issue, because I don't have the expertise but, really also, we can't seriously ship Squeeze with the current setup. What's unclear from the pointed bug report is whether someone is doing something about this. Yes, the issue is not new. I actually went on it because I was installing a new laptop and noticed questions about MySQL. My former laptop already had MySQL for other reasons, so I never noticed that my KDE packages were suddenly pulling more stuff in. Thanks to Sune Vuorela, from the Debian KDE team, and Eckhart W rner, from upstream KDE, for bringing more light on this. Ah, and thanks also to people who reworked the design of kdm login screen. It's really nice..:-) (and this is not sarcasm, here, I really mean it).

16 October 2009

Uwe Hermann: coreboot on the cover of the Linux Journal

coreboot on Linux Journal Nice coreboot news the Free Software x86 firmware ("BIOS") is featured on the cover of issue 186 of the Linux Journal. Anton Borisov's article Coreboot at Your Service! explains the basic ideas behind coreboot, how to build an image for your board, which payloads are available and how they are used, e.g. GRUB2, SeaBIOS if you need legacy BIOS callbacks (e.g. for booting Windows), Etherboot/GPXE, or more fun stuff such as space invaders or tint (a tetris clone) in your flash ROM chip... If you read the article and think the build process is a bit complicated and ugly, do not despair! We're currently in the process of converting the whole coreboot code base to use kconfig (the widely-known configuration tool used by the Linux kernel, busybox, and other projects), so in the very near future the whole process for building a coreboot image will work like this:
  $ make menuconfig
  $ make
coreboot menuconfig Flashing the image can then be done using an EEPROM programmer and/or via the user-space utility flashrom (available for Linux, Mac OS X, FreeBSD, etc.)... It's nice to see that coreboot is getting more and more coverage in "mainstream" media and is growing both in number of deployments and in number of supported chipsets and boards. We are desperately in need of more developers though, there are just way too many chipsets, boards, and datasheets out there; we're happy about every patch and every new tester or developer who likes to mess with code that runs in the very first few (micro)seconds after power-on. If you think kernel hacking and related low-level development is nice, you might also be interested in writing code where there's no RAM yet (as coreboot has to initialize it), there's no serial port for debugging (coreboot has to initialize it), no PCI devices have been set up, most of your auxiliary hardware is not yet up (ethernet NIC, parallel port, audio, IDE, SATA, USB, you name it). It's a fun environment to work in and you'll learn a lot about PC hardware, even if you (so far) thought you knew everything there is to know. Feel free to join us on the mailing list or on IRC in #coreboot on Freenode.

Russell Coker: TPG Lies

Shortly before 9AM this morning I discovered that the IP address for my mail server was not being routed, according to my logs the problem started shortly after midnight. It s on a TPG ADSL connection, there is one IP address for the PPPOE link and 6 addresses in a /29 routed to it one of the addresses in the /29 is for my mail server. It wasn t until 3PM that I was able to visit the server to sort the problem out. It turned out that the main IP address was working but the /29 wasn t being routed to it. So TPG had somehow dropped the route from my routing table. I pinged all the addresses from a 3G broadband connection on my EeePC while running tcpdump on the server, and no packets for the /29 came through but the IP address for the PPP link worked fine. I was even able to ssh in to the server once I knew the IP address of the ppp0 device for future use I need to keep ALL IP addresses of all network gear on my EeePC not just the ones used for providing services. So I phoned the helpdesk, and naturally they asked me inane questions. My patience extended to telling them the broadcast address etc that was being used on the Ethernet device (actually a bridge for Xen but I wasn t going to confuse them). The system been power-cycled before I got there in the hope that it might fix the problem so I could honestly answer the question have you rebooted it (usually I lie rebooting systems to fix network problems is a Windows thing). But my patience started to run out when they asked me to check my DNS settings, I explained very clearly that my problem was that IP packets couldn t get through and that I wasn t using DNS and demanded that they fix it. I didn t get anyone technical to look at the problem until I firmly demanded that the help-desk operator test the routing by pinging my systems. The help-desk people don t have Internet access so that actually testing the connection required escalating the issue. It seems that the algorithm used for help-desk people is to just repeatedly tell people to check various things on their own system, and that continues until the customer s patience runs out. Either the customer goes away or makes requests firmly enough to get something done about it. So their technician did some tests and proclaimed that there was no problem. While said tests were being done things started working, so obviously their procedure is to fix problems and then blame it on the customer. It is not plausible to believe that a problem in their network which had persisted for more than 15 hours would accidentally disappear during the 5 minute window that the technician was investigating the problem. In the discussion that followed the help-desk operator tried to trick me into admitting that it was my fault. They claimed that because I had used multiple IP addresses I must have reconfigured my system and had therefore fixed a problem on my end, my response was I HAVE A HEAP OF MACHINES HERE RUNNING ALL THE TIME, I USE WHICHEVER ONE I FEEL LIKE, I CHANGED NOTHING . I didn t mention that the machines in question are DomUs on the same Xen server, someone who doesn t understand how ping works or what routing is wouldn t have been able to cope with that. I stated clearly several times that I don t like being lied to. Either the help-desk operator was lying to me or their technician was lying to them. In either case they were not going to trick me I know more about how the Internet works than they do. TPG was unable to give me any assurance that such problems won t happen again. The only thing I can be sure of is that when they lie they will stick to their story regardless of whether it works.

Russ Allbery: On vacation

It is that time of year again, in which I disappear for a while to get my head together, engage in intensive relaxation, and catch up on my reading. Don't expect to see much of me on-line for the next three weeks. I was going to post a book review tonight, since otherwise it's unlikely that I'll post any in the month of October, but I just ran out of steam. The steam that I had went to talking to friends, where I won't get much chance for a while. Since I lost all of last week sick with gastroenteritis, I think I'm going to give myself a free pass for this month on the review front. Regular reviews will resume once I get back from vacation. (Contrary to how it may appear, I have no intention of letting them slowly trickle off to nothing, nor have I stopped reading. I have three books finished so far this month and waiting for me to review. I just badly need a vacation and then better time allocation.) What with illness and with all of the work stress lately, I didn't do as good of a job this year of shutting everything down and getting everything into a good state before vacation. Apologies for the loose ends left sitting around, although I think everything will survive. I shall return refreshed, well-read, and with many more book reviews and photographs in hand. See you all in about three weeks!

Gunnar Wolf: Getting closer to the fifth EDUSOL Encounter

This is the fifth year we hold an EDUSOL, and we are closing in on it. EDUSOL is an online encounter whose topics are Education and Free Software Actually, this year we are widening our scope, and we will include Free Culture as well as a base area. Now, besides those three general areas, each year we have had a base topic around which we invite the speakers to talk about (although it is a lax requirement). This year, the base topic is social networks No, not in the Twitter/Facebook/blah sense, but as a wider phenomenon, studying interaction between people, the forming of communities. And for our particular areas, the forming of knowledge-based communities. Anyway I agreed with the organizers to provide the English translation of the participation invitation. I will skip the call for papers, as we are basically at the proposal deadline (October 17), but if you have anything you want to propose, please tell us so! Leaving that aside... Please excuse the quality of my translation, it is late and I'm tired. We will work on it :) Videoconference reception EDUSOL spans several participation categories. The closest category to a traditional, face to face conference. Each year, we invite a group of speakers to talk about a topic related to our main discoursive line. Among the speakers that have confirmed so far, we have: We invite you to be active participants in the videoconference cycle. You can invite your social or user group to be part of the Encounter. There are three ways to do it:
  1. Using the videoconference facilities in your University network
  2. Connecting from a personal computer with broadband access, by using Ekiga or any other H.323 client
  3. Following the .ogg stream and participating back via IRC
In any case (specially in the first two, which require more coordination), please contact us. For further information, visit http://edusol.info/es/e2009/convocatorias/videoconfrencias November 6: Free Education and Free Culture day We invite social and user groups to host talks regarding Free Education and Free Culture. This is not a call to promote Free Software, as there are many other spaces devoted to it. We should start with the idea that freedom resides in us, not in the software. Some of the topics our community recommends are: Further details at http://edusol.info/es/e2009/convocatorias/dialternativo We need some help in this area to generate contents with slides, making it easier for proposed scripts for the talks. If you want to collaborate, please write to our academic support list, http://lists.edusol.info/listinfo.cgi/soporte-academico-edusol.info Want to collaborate? Further questions or comments? We are holding on-line meetings for this group of topics on Thursday 22:00 GMT-5, in the #edusol channel in OFTC (irc.debian.org); you can enter the IRC channel using the Web client at http://irc.bine.org.mx or http://edusol.info/irc About EDUSOL EDUSOL started as a proposal seeking to provide a space so that people interested in education could discuss and analize the good and bad points about Free Culture and Free Software, with no geographic restrictions. Year after year, freedom-loving educators of all Latin America and Spain gather for our annual party. EDUSOL's core language is Spanish, although participation in English is allowed and encouraged (although understanding Spanish will be a strong aid). We invite you to participate and contribute in this collective effort using and commenting on our blogs, or adding your personal blog to our planet: http://edusol.info/es/node/add/blog
http://edusol.info/es/node/add/feedapi-node You can follow us by identi.ca or RSS: http://identi.ca/group/edusol
http://edusol.info/rss.xml

15 October 2009

Anand Kumria: It is easy to not hear when your fingers are in your ears.

I read this post by Steve Waddington of Exetel where he says that customers never seem to follow-up with him when he asks them about their poor customer experiences. I just had to laugh. I had actually just filled a complaint with the TIO about Exetel. I have emailed Steve Waddington a number of times, generally outlining problems, but I am yet to ever receive a response. Generally if you want to hear feedback from your customers, you have to take your fingers out of your ears. Here is my (most recent) Exetel story. To set the scene, I am synchronising a large backup of data. Think around 100Gb. In reality a small amount. Towards the end of September, we receive an email indicating that we had used a large amount of service. Furthermore that we had 72 hours to pay an interim fee of AUD$100. The email was sent in the early hours of a Friday morning. Which effectively turned it into a single business day. Heaven help you if you had decided to take a long weekend. At any rate, the fee was paid by that afternoon and a name and receipt were obtained. Everything should have be hunky-dorey. Come Monday morning - the Internet service had mysteriously failed. After some remote, expensive AU to UK phones calls and diagnostics I determined that the problem was that Exetel's system had disconnected the service anyway. I emailed them to see what the problem was, and contact was made from Australia. Around the middle of the day, service was restored. A complaint was filed with them (reference: #1691636), that day, which was summarily responded too. I left things for a while since I was busy. But on the 13th Oct night, I decided to file a complaint with the TIO (reference: 09/251856). Here is the full text:
Describe your complaint On 25 Sep, roughly 07:30am, an email was received from Exetel that they required an interim payment as our usage had exceeded AUD$100. The email indicated that if payment was not received within 72 hours - the service may be suspended. At roughly 3:15pm, on 25 Sep - i.e. the same day. A payment of AUD$100 was made and we were issued receipt number 346650646 by an employee who indicated that there name was Rukshani. On 28 Sep at roughly 8am, the Internet ceased to function. After some investigation we determined that Exetel's automated systems believed that the payment had not occurred. #1: I sent an email at 11am on 28 Sep to their billing department, along with their senior management, with payment and service details asking why this occurred. #2: A complaint was sent by the payee at 11:30am on 28 Sep indicating that we were unhappy with the service -- having been customers of long standing (over 4 years) -- being disconnected for over 4 hours despite paying is annoying. Particular when this was not through fault of our own. Nor a technical fault. How did the service provider respond to your complaint #1: On 30 Sep at 12:45 an email was received from James Lowe, who said "Your service is un block now [sic]". No explanation was provided for the outage and non-application of the payment made. #2: 2 responses were received to this email. #2a: At ~11:50am on 28 Sep we received an email from Larry Kaeto who said that the service was unavailable for 2hrs 31mins, not the 4hrs as we had claimed. Additionally he indicated that we had a residental service which is not to be relied upon for business/mission critical requirements and suggested we purchase a more expensive service which has "business grade type support". #2b: At ~09:40am on 29 Sep we received a further email from Larry Kaeto who claimed that no payment had been received by Exetel on 25 Sep. How would you like the service provider resolve your complaint Exetel appears to pride itself on its automated systems. (c.f. http://johnl.blogs.exetel.com.au/index.php?/archives/2783-Automating-Key-Systems-Is-A-Never-Ending-Task.html) However, in this case, the automated system issued a demand for money. The money was paid, but it suspended access to the service anyway. Service should not have been disrupted for 1 minute nor 150 minutes nor 240 minutes. I believe the charge of AUD$100 and the monthly charge should be credited back to us for the hassle.
I've put in the headings as they are on the TIO complaint form, and made the URL a link otherwise it is exactly as I submitted it which is also why the text is not very lengthy, as the TIO restrict how much you can submit. This morning, at 09:10 I received an email from Exetel acknowledging receipt of the TIO complaint and asking Please detail in a point by point manner your concerns. This email was from Larry Kaeto. It also contained a copy of the most recent LNS logs. I replied with a full copy of the complaint as I submitted it to the TIO (reference: #1770435) and also indicated I would speak with the TIO to confirm what they had sent to Exetel (Exetel reference: #1771491). By 12:56, Larry Kaeto was able to responsd, quoted here and edited to occlude privacy information:
Exetel acknowledge payment 25/9/09 was manually processed 25/9/09 but the record to remove the timer to suspend in 72 hrs was not removed. I did not see the manual payment of the 25/9/09. Sorry for my ''incompetence'' for saying payment was not made. The duration of suspension was 2 hours and 28 minutes (or thereabouts) as the facts show below (our session logs and your usage time logged in and out) and nto 4 hours as is claimed. As gesture of goodwill, Exetel will provide a refund of $100 Exetel has made a commercial decision to end the relationship with you. See e-mail sent separately titled ''Ticket #1771491: XXXXXXXX5X - Notice of Termination - XXXXX XXXXXX ''
So, as you can see from John Linton's post, if there is a problem with taking payment your service is summarily disconnected. And, as you can see here, even if they take payment, but their automated system fails, if you complain about it, your service is summarily disconnected. It is much easier to listen to your customers when you take your fingers out of your ears.

Enrico Zini: Building a web-based API with Turbogears2

Building a web-based API with Turbogears2 I am using TurboGears2 to export a python API over the web. Every API method is wrapper by a controller method that validates the parameters and returns the results encoded in JSON. The basic idea is this:
@expose("json")
def list_colours(self, filter=None, productID=None, maxResults=100, **kw):
    # Call API
    res = self.engine.list_colours(filter, productID, maxResults)
    # Return result
    return res
To validate the parameters we can use forms, it's their job after all:
class ListColoursForm(TableForm):
    fields = [
            # One field per parameter
            twf.TextField("filter", help_text="Please enter the string to use as a filter"),
            twf.TextField("productID", help_text="Please enter the product ID"),
            twf.TextField("maxResults", validator=twfv.Int(min=0), default=200, size=5, help_text="Please enter the maximum number of results"),
    ]
list_colours_form=ListColoursForm()
#...
    @expose("json")
    @validate(list_colours_form, error_handler=list_colours_validation_error)
    def list_colours(self, filter=None, productID=None, maxResults=100, **kw):
        # Parameter validation is done by the form
        # Call API
        res = self.engine.list_colours(filter, productID, maxResults)
        # Return result
        return res
All straightforward so far. However, this means that we need two exposed methods for every API call: one for the API call and one error handler. For every API call, we have to type the name several times, which is error prone and risks to get things mixed up. We can however have a single error handler for all methonds:
def get_method():
    '''
    The method name is the first url component after the controller name that
    does not start with 'test'
    '''
    found_controller = False
    for name in pylons.c.url.split("/"):
        if not found_controller and name == "controllername":
            found_controller = True
            continue
        if name.startswith("test"):
            continue
        if found_controller:
            return name
    return None
class ValidatorDispatcher:
    '''
    Validate using the right form according to the value of the "method" field
    '''
    def validate(self, args, state):
        method = args.get("method", None)
    # Extract the method from the URL if it is missing
        if method is None:
            method = get_method()
            args["method"] = method
        return forms[method].validate(args, state)
validator_dispatcher = ValidatorDispatcher()
This validator will try to find the method name, either as a form field or by parsing the URL. It will then use the method name to find the form to use for validation, and pass control to the validate method of that form. We then need to add an extra "method" field to our forms, and arrange the forms inside a dictionary:
class ListColoursForm(TableForm):
    fields = [
            # One hidden field to have a place for the method name
            twf.HiddenField("method")
            # One field per parameter
            twf.TextField("filter", help_text="Please enter the string to use as a filter"),
    #...
forms["list_colours"] = ListColoursForm()
And now our methods become much nicer to write:
    @expose("json")
    def api_validation_error(self, **kw):
        pylons.response.status = "400 Error"
        return dict(form_errors=pylons.c.form_errors)
    @expose("json")
    @validate(validator_dispatcher, error_handler=api_validation_error)
    def list_colours(self, filter=None, productID=None, maxResults=100, **kw):
        # Parameter validation is done by the form
        # Call API
        res = self.engine.list_colours(filter, productID, maxResults)
        # Return result
        return res
api_validation_error is interesting: it returns a proper HTTP error status, and a JSON body with the details of the error, taken straight from the form validators. It took me a while to find out that the form errors are in pylons.c.form_errors (and for reference, the form values are in pylons.c.form_values). pylons.response is a WebOb Response that we can play with. So now our client side is able to call the API methods, and get a proper error if it calls them wrong. But now that we have the forms ready, it doesn't take much to display them in web pages as well:
def _describe(self, method):
    "Return a dict describing an API method"
    ldesc = getattr(self.engine, method).__doc__.strip()
    sdesc = ldesc.split("\n")[0]
    return dict(name=method, sdesc = sdesc, ldesc = ldesc)
@expose("myappserver.templates.myappapi")
def index(self):
    '''
    Show an index of exported API methods
    '''
    methods = dict()
    for m in forms.keys():
        methods[m] = self._describe(m)
    return dict(methods=methods)
@expose('myappserver.templates.testform')
def testform(self, method, **kw):
    '''
    Show a form with the parameters of an API method
    '''
    kw["method"] = method
    return dict(method=method, action="/myapp/test/"+method, value=kw, info=self._describe(method), form=forms[method])
@expose(content_type="text/plain")
@validate(validator_dispatcher, error_handler=testform)
def test(self, method, **kw):
    '''
    Run an API method and show its prettyprinted result
    '''
    res = getattr(self, str(method))(**kw)
    return pprint.pformat(res)
In a few lines, we have all we need: an index of the API methods (including their documentation taken from the docstrings!), and for each method a form to invoke it and a page to see the results. Make the forms children of AjaxForm, and you can even see the results together with the form.

Christian Perrier: Thy laptop shalt be a database server

So, nowadays, installing a brand new sid machine with the KDE task leads to...installing a MySQL server on one's laptop (thanks to the whole akonadi crap). There's probably a Debian bug report about this but I am too lazy (and too angry) to look for it. I think we should really congratulate KDE upstream developers for this very wise decision that's definitely a big progress in terms of user friendlyness. Being prompted for the MySQL root password while installing a new shiny laptop is a huge progress and will certainly never make Windows users laugh loudly. As a very longstanding KDE user, I am incredibly happy that Debian has chosen to install GNOME by deault. Really.

14 October 2009

MJ Ray: SPI October 2009

A board meeting of Software in the Public Interest will take place on irc.oftc.net #spi tonight (Wed 14 Oct) at 20:00 UTC. The meeting announcement was posted only yesterday, containing a proposal to hold a debian domain. The proposal says SPI Inc. will support a transfer of said domain to a registered non-profit organization in Taiwan which surprises me after the reply I had about Transferring to another non-profit that I d say that any transfer to a non-US non-profit is likely to be impossible. Oh and what happened to the contributing membership expiry resolution? I thought that was coming back this month. I see that there wasn t a SPI September 2009 meeting log summary sent to spi-general, probably because I wasn t there. I ll go do that now.

Next.

Previous.