Search Results: "nate"

24 January 2010

Russell Coker: Old Mobile Phones as Toys

In the past I have had parents ask for advice on buying a digital camera for a young child. For some years there have been digital cameras on sale for much less than $100 cheap enough that no-one will be THAT bothered if the child breaks it, so digital photography is a good hobby for a young child. Such cameras are however quite bulky and require AA batteries which often don t last that long between charges. Some of the cheap phones are large enough that a 3yo child can have trouble carrying them. I recently gave an old LG U8110 phone to a young child for use as a camera. The phone has a 640*480 resolution camera and a display that is a few centimeters wide. It s no good for any remotely serious photography, and among other problems I never managed to get it s USB connection to work so the only way I ever managed to get a photograph off it was to MMS it to a newer camera. But it s quite adequate for a child to play with, it s small, light, and the battery stays charged for ages. Also the phone has a clock built in which is a handy feature it seems that nowadays the trend in society is away from wearing a watch and towards using a mobile phone to discover the time. Also a phone is a fairly capable computer, I think that the first two computers that I owned had significantly less CPU power and RAM than an LG U8110 and lots of newer phones compare well to PCs that were manufactured in the mid 90 s. The trend has been towards having an increasing number of applications and games on phones which of course gives more things for a child to play with. I believe that playing with computers that have a variety of different user interfaces and sets of applications is good for the education of young children. Now to make a phone work you need to have a SIM. If a phone was designed by someone who was intelligent and who was acting on behalf of the owner of the phone then it would support the camera etc without a SIM. But it seems that mobile phones are either designed by idiots or they are designed to act on behalf of the phone companies to the exclusion of the customer s interests, so I haven t seen a camera-phone that is usable for any purpose other than calling the emergency services when there is no SIM installed. Fortunately it is possible to get old SIMs, I had one that was replaced due to an intermittent fault that caused calls to drop out. I also have some SIMs from other telcos that would probably work (I m not sure whether a phone that is locked to one carrier will take photos if a SIM from another carrier is installed). Update: It seems that there is a range of phones that operate without a SIM, a Nokia N900 (if you consider it to be a phone rather than an Internet tablet), an Android, or a phone running the Symbian OS. I suspect that the majority of phones that are currently in use and due to be replaced soon will require a SIM though. One final notable aspect of giving a phone to a child is the possibility of it being used to call emergency services (which will work even when there is no SIM or a SIM that is not associated with an account). If you are planning to give a phone to someone else s child then you should ask the parents first, some parents believe (either correctly or incorrectly) that the chance of their child making prank calls to the emergency services is too great. A present that a child receives which is undesired by their parents will probably get lost or broken quickly When such a phone gets broken by a child (they are tough, but almost everything that is used without restriction by a child gets broken) the next thing to do is to disassemble it. With modern design and manufacturing probably all that a child could really learn from a phone is how the keyboard works and not even that for a touch-screen phone. But it s still a good experience for a child to take apart old machines. When I was young my father gave me many old machines to take apart, I had a lot of fun and learned some interesting things. I find it really sad to see those boxes for recycling old phones at the mobile phone stores which are full of 2yo phones that are mostly in good condition. Almost everyone has some young relatives or friends who have children who could find a good use for that stuff. Send the bits to be recycled AFTER the children nearest to you have finished doing things to the old phone!

22 January 2010

Russell Coker: How to Lose Customers

Bruce Everiss who is famous for being threatened with legal action by Evony has been writing about the supposed losses from game piracy, in his latest missive he copies the text from a number of blog comments without citing the original authors [1]. He copied my text without citing me as the author (which is at best shoddy journalism and by a fundamentalist attitude such as his could be considered as piracy). He also copied my text in with a bunch of other comments which he attributes to The thieves . It s unfortunate that Bruce doesn t seem capable of understanding irony, he wrote There is no doubt whatsoever that downloading and playing a game that should have been paid for is theft and then copied part of the text of my comment where I provided a dictionary definition of theft that directly contradicts his claim. If he was at all interested in quality writing he would cite his references and then when a dictionary is cited which disagrees with his opinion he would at least try to find a dictionary with a more agreeable definition. It shouldn t be THAT difficult to find a dictionary that has multiple definitions of theft of which one is agreeable to the MAFIAA [2]. Now if Bruce had properly read my comment he would have seen I ve started watching content from sites such as blip.tv (in the little time I have for such things) and I only play games that are part of the Debian distribution of Linux (free software) which makes it very clear to any reasonable interpretation that I am not a game pirate and probably not even a movie pirate. I did mention in a comment on Bruce s blog that the DVD experience of being forced to sit through a whinge about piracy was a factor that made buying a DVD a worse experience than downloading it, a concept that I expanded into a blog post on the relative technical merits of DVDs and pirate MP4 files [3]. That post received a number of interesting comments including one from Josselin Mouette which had some useful technical detail about subtitles and audio track storage. I had believed that there were some real technical advantages of DVDs but Josselin corrected me on this matter. Also one thing that is noteworthy is that Bruce seems to use a copyright picture in almost every post but he doesn t attribute any of them. It does seem unusual for someone to use commercial artwork without any copyright or trademark notices attached. This usually isn t a big deal for a blogger, a liberal interpretation of copyright and trademark law is usually expected in terms of blogging corporations will tend to be hesitant to invoke the Streisand effect by suing a blogger (EG Bruce blog came to fame when he was sued by Evony). But when a blogger is writing about the importance of not pirating anything it would seem sensible to go to the effort of citing trademark and copyright references and also mentioning the licence agreements under which the IP was used. I believe that any loss of customers and revenue by the MAFIAA and the gaming industry is due to the actions of the companies involved. They should just try to make their customers happy, otherwise they lose the customers. The same goes for bloggers. I read blogs written by people who disagree with me, and sometimes by people who offend me on occasion. But Bruce is making baseless claims while deliberately ignoring evidence. He is calling for strong anti-piracy measures while doing what could be considered as pirating my work. He uses words in ways that conflict with dictionary definitions, and he calls for an end to our current legal system by demanding punishment based on three accusations rather than any legal process. I even pointed out to Bruce that if there was a three strikes law regarding accusations of copyright infringement then his blog would be offline after three accusations by Evony. Sorry Bruce, if I was looking for irrational rants about copyright then I would look at what the members of the Science Fiction Writers of America (SFWA) are doing [4]. The SFWA people demonstrate as much knowledge of computers and the Internet as Bruce does, but they are at least really good writers. If it was just me unsubscribing from Bruce s RSS feed then it wouldn t matter (I m one of tens of thousands of readers). But I expect that a large portion of the new readers Bruce acquired after being attacked by Evony will disappear when they see Bruce as the attacker and everyone who uses the Internet as a potential victim of the Three Strikes law.

Marc 'Zugschlus' Haber: Block devices in KVM guests

In the last few days, I found the time to spend some with KVM and libvirt. Unfortunately, there is a subject that I haven t yet found a satisfying solution: Naming of block devices in guest instances. This is surely a common issue, but solutions are rare. Neither an article on Usenet (in German) nor the German version of this blog article has found solutions for the main question. I should have written this in English in the first place and am thus translating from German to english, hoping that there will be some answers and suggestions. KVM is quite inflexible when it coms to configure block devices. It is possible to define on the host, which files or whole devices from the host should be visible in the guest. The documentation suggests that devices should be brought into the guest with the virtio model, which needs suppport in the guest kernel. Importing a device as emulated ATA or SCSI device brings a performance penalty. The devices brought into the guest via virtio appear in the guest s dev as /dev/vd<x> and do also have their corresponding entries in /dev/disk/by-uuid and /dev/disk/by-path. The vd<x> node is simply numbered in consecutive order as hd<x> and sd<x>. /dev/disk/by-uuid is the correct UUID of the file system found on the device, at least if it s a block device partitioned inside the guest and formatted with ext3 (I didn t try anything else yet). The terminology of the /dev/disk/by-path node is not yet understood, and I am somewhat reluctant to assume the PCI paths of emulated hardware as stable. Looks like I am forced to configure inside the guest when I have changed the host s mass storage system (for example, after migration to a different file system or after new block devices have been added) to accommodate for the new order of the /dev/vd<x> or to have the UUID correctly configured. This is like calling for configuration errors. This is a reincarnation of the same issue that has been killed by LVM on Linuxes running on bare metal : The block device itself has a mnemonic name which is constant even in migration and copy actions. This works without file-system specific stuff like UUID or label, and wouldn t even be possible with a UUID (which won t be unique in this case). The mnemonic names of LVs are also available when the data is directly written to the raw device such as a CNFS buffer of a news server. I would love to have something like a paravirtualized device mapper interface which would allow to say in the host s configuration which of the host s LVs should be visible in the guest with which name in /dev/mapper. That way, the guest s configuration could remain stable during data wrangling operations on the host. One solution is to have a single LV for each guest and import this LV as /dev/vda into the guest. /dev/vda would then be partitioned like a real disk and have its own LVM installation. This would however need kpartx if one wants to access the data from the host, and loses flexibility when resizing file systems. These issues appear in every installation of KVM virtualization, and I would expect that there are gazillions of other possible solutions. I am interested in knowing how other people have tackled this issue and whether there are more possiblity that I haven t thought of before. Maybe there is a solution that doesn t leave me with the feeling of having implemented something ugly. Does the interface between the host s KVM and the guest s device mapper that I have been dreaming of maybe exist. Or is there any other possibility of configuring the device node s name in the guest Linux on the host side?

21 January 2010

Daniel Kahn Gillmor: TCP weirdness, IMAP, wireshark, and perdition

This is the story of a weirdly unfriendly/non-compliant IMAP server, and some nice interactions that arose from a debugging session around it. Over the holidays, i got to do some computer/network debugging for friends and family. One old friend (I'll call him Fred) had a series of problems i managed to help work through, but was ultimately basically stumped based on the weird behavior of an IMAP server. Here's the details (names of the innocent and guilty have been changed), just in case it helps other folks in at least diagnosing similar situations. the diagnosis The initial symptom was that Fred's computer was "very slow". Sadly, this was a Windows machine, so my list of tricks for diagnosing sluggishness is limited. I went through a series of questions, uninstalling things, etc, until we figured it would be better to just have him do his usual work while i watched, kibitzing on what seemed acceptable and what seemed slow. Quite soon, we hit a very specific failure: Fred's Thunderbird installation (version 2, FWIW) was sometimes hanging for a very long period of time during message retrieval. This was not exhaustion of the CPU, disk, RAM, or other local resource. It was pure network delay, and it was a frequent (if unpredictable) frustrating hiccup in his workflow. One thought i had was Thunderbird's per-server max_cached_connections setting, which can sometimes cause a TB instance to hang if a remote server thinks Thunderbird is being too aggressive. After sorting out why Thunderbird was resetting the values after we'd set them to 0 (grr, thanks for the confusing UI, folks!), we set it to 1, but still had the same occasional, lengthy (about 2 minutes) hang when transfering messages between folders (including the trash folder!), or when reading new messages. Sending mail was quite fast, except for occasional (similarly lengthy) hangs writing the copy to the sent folder. So IMAP was the problem (not SMTP), and the 2-minute timeouts smelled like an issue with the networking layer to me. At this point, i busted out wireshark, the trusty packet sniffer, which fortunately works as well on Windows as it does on GNU/Linux. Since Fred was doing his IMAP traffic in the clear, i could actually see when and where in the IMAP session the hang was happening. (BTW, Fred's IMAP traffic is no longer in the clear: after all this happened, i switched him to IMAPS (IMAP wrapped in a TLS session), because although the IMAP server in question actually supports the STARTTLS directive, it fails to advertise it in response to the CAPABILITIES query, so Thunderbird refuses to try it. arrgh.) The basic sequence of Thunderbird's side of an initial IMAP conversation (using plain authentication, anyway) looks something like this:
1 capability
2 login "user" "pass"
3 lsub "" "*"
4 list "" "INBOX"
5 select "INBOX"
6 UID fetch 1:* (FLAGS)
What i found with this server was that if i issued commands 1 through 5, and then left the connection idle for over 5 minutes, then the next command (even if it was just a 6 NOOP or 6 LOGOUT) would cause the IMAP server to issue a TCP reset. No IMAP error message or anything, just a failure at the TCP level. But a nice, fast, responsive failure -- any IMAP client could recover nicely from that by just immediately opening a new connection. I don't mind busy servers killing inactive connections after a reasonable timeout. If it was just this, though, Thunderbird should have continued to be responsive. the deep weirdness But if i issued commands 1 through 6 in rapid succession (the only difference is that extra 6 UID fetch 1:* (FLAGS) command), and then let the connection idle for 5 minutes, then sent the next command: no response of any kind would come from the remote server (not even a TCP ACK or TCP RST). In this circumstance, my client OS's TCP stack would re-send the data repeatedly (staggered at appropriate intervals), until finally the client-side TCP timeout would trigger, and the OS would report the failure to the app, which could turn around and do a simple connection restart to finish up the desired operation. This was the underlying situation causing Fred's Thunderbird client to hang. In both cases above (with or without the 6th command), the magic window for the idle cutoff was a little more than 300 seconds (5 minutes) of idleness. If the client issued a NOOP at 4 minutes, 45 seconds from the last NOOP, it could keep a connection active indefinitely. Furthermore, i could replicate the exact same behavior when i used IMAPS -- the state of the IMAP session itself was somehow modifying the TCP session behavior characteristics, whether it was wrapped in a TLS tunnel or not. One interesting thing about this set of data is that it rules out most common problems in the network connectivity between the two machines. Since none of the hops between the two endpoints know anything about the IMAP state (especially under TLS), and some of the failures are reported properly (e.g. the TCP RST in the 5-command scenario), it's probably safe to say that the various routers, NAT devices, and such were not themselves responsible for the failures. So what's going on on that IMAP server? The service itself does not announce the flavor of IMAP server, though it does respond to a successful login with You are so in, and to a logout with IMAP server logging out, mate. A bit of digging on the 'net suggests that they are running a perdition IMAP proxy. (clearly written by an Aussie, mate!) But why does it not advertise its STARTTLS capability, even though it is capable? And why do some idle connections end up timing out without so much as an RST, when other idle connections give at least a clean break at the TCP level? Is there something about issuing the UID command that causes perdition to hand off the connection to some other service, which in turn doesn't do proper TCP error handling? I don't really know anything about the internals of perdition, so i'm just guessing here. the workaround I ultimately recommended to Fred to reduce the number of cached connections to 1, and to set Thunderbird's interval to check for new mail down to 4 minutes. Hopefully, this will keep his one connection active enough that nothing will timeout, and will keep the interference to his workflow to a minimum. It's an unsatisfactory solution to me, because the behavior of the remote server still seems so non-standard. However, i don't have any sort of control over the remote server, so there's not too much i can do to provide a real fix (other than point the server admins (and perdition developers?) at this writeup). I don't even know the types of backend server that their perdition proxy is balancing between, so i'm pretty lost for better diagnostics even, let alone a real resolution. some notes I couldn't have figured out the exact details listed above just using Thunderbird on Windows. Fortunately, i had a machine with a decent OS available, and was able to cobble together a fake IMAP client from a couple files (imapstart contained the lines above, and imapfinish contained 8 LOGOUT), bash, and socat. Here's the bash snippet i used as a fake IMAP client:
spoolout()   while read foo; do sleep 1 && printf "%s\r\n" "$foo" ; done  
( sleep 2 && spoolout < imapstart && sleep 4 && spoolout < imapfinish && sleep 500 )   socat STDIO TCP4:imap.fubar.example.net:143
To do the test under IMAPS, i just replaced TCP4:imap.fubar.example.net:143 with OPENSSL:imap.fubar.example.net:993. And of course, i had wireshark handy on the GNU/Linux machine as well, so i could analyze the generated packets over there. One thing to note about user empowerment: Fred isn't a tech geek, but he can be curious about the technology he relies on if the situation is right. He was with me through the whole process, didn't get antsy, and never tried to get me to "just fix it" while he did something else. I like that, and wish i got to have that kind of interaction more (though i certainly don't begrudge people the time if they do need to get other things done). I was nervous about breaking out wireshark and scaring him off with it, but it turned out it actually was a good conversation starter about what was actually happening on the network, and how IP and TCP traffic worked. Giving a crash course like that in a quarter of an hour, i can't expect him to retain any concrete specifics, of course. But i think the process was useful in de-mystifying how computers talk to each other somewhat. It's not magic, there are just a lot of finicky pieces that need to fit together a certain way. And Wireshark turned out to be a really nice window into that process, especially when it displays packets during a real-time capture. I usually prefer to do packet captures with tcpdump and analyze them as a non-privileged user afterward for security reasons. But in this case, i felt the positives of user engagement (how often do you get to show someone how their machine actually works?) far outweighed the risks. As an added bonus, it also helped Fred really understand what i meant when i said that it was a bad idea to use IMAP in the clear. He could actually see his username and password in the network traffic! This might be worth keeping in mind as an idea for a demonstration for workshops or hacklabs for folks who are curious about networking -- do a live packet capture of the local network, project it, and just start asking questions about it. Wireshark contains such a wealth of obscure packet dissectors (and today's heterogenous public/open networks are so remarkably chatty and filled with weird stuff) that you're bound to run into things that most (or all!) people in the room don't know about, so it could be a good learning activity for groups of all skill levels. Tags: debugging, imap, perdition, wireshark

Jaldhar Vyas: There's No Hope With Dope

With Guantanamo Bay about to be shut down, and President Obamas' first year in office complete, what do the American public think of him?
% of Americans who approved of Pres. Bush after one year in office
% of Americans who favor waterboarding the Christmas bomber
% of Americans who approve of Pres. Obama after one year in office
How did this happen? Well, once upon a time, the USA was really racist. Then a light skinned African American with no negro dialect entered the presidential contest and the country entered a new post-racial era. Unfortunately not everyone had the audacity to hope. Things got so bad, people wanted to cut obamas nuts off but the change we sought within us prevailed and became president. Unfortunately some parts of the US are still filled with overweight Jesus and gun loving Walmart shoppers who insist on voting Republican even though that party doesn't exist anymore. Why? Racism. It's the only possible explanation

Benjamin Mako Hill: Annual Free Software Foundation Membership Drive Appeal

I wrote this for the FSF's annual membership drive where it was originally published. I am reposting it here.
At its core, I think of free software as about the ability of computer users to take control of their technology. Insofar as our software defines our experience of the world and each other, software freedom is an important part of what allows us to determine the way we live, work, and communicate. Free software is not really about software in this fundamental sense; it's about bringing freedom to users through software. In free software's incredible success over the last two decades, many people have lost sight of this simple fact. We have created an incredible array of applications, libraries, and tools. We have created vibrant development and support communities. We have created new development methodologies, powerful copyleft licenses, and massive collaborative projects. But these are all how we give users freedom. They are not freedom itself. They are not what we were trying to achieve. They are our instruments, not our goal. This distinction becomes central in a world where technology is in flux. Indeed, we live in such a world. We can see signs of this in how, as most users' primary computers become mobile phones and new types of network services make up most of many users' interactions with computers, the free software movement's old applications, communities, development methodologies, and licenses can become ill-suited to, or ineffective at, protecting user freedoms. And indeed, in the next few years, bringing freedom to computer users will need to involve new software and new forms of advocacy. It will need to involve new licenses and new techniques for their enforcement. It will need to involve new forms of collaboration and organization. If the free software movement is to succeed, it must stay focused on computer users' freedom -- on the question of why we do what we do -- and then work creatively on how to best respect and protect the freedom we are working toward. If we are overly focused on how we've done things in the past, we may lose sight of the most fundamental goal of supporting users' control over their technology in general. There are many organizations that support the how of today's free software in various ways -- they are law firms and companies and nonprofit organizations supporting various free software projects. The Free Software Foundation is, by far, the most important organization focused on why --- on the underlying principle of software freedom. As such, it plays an essential role in keeping our broader community focused on the key issues, threats, and challenges that will affect the success of every free software project, and every computer user, in the present and in the future. In this period of rapid change in computer technology, its role is more vital than ever. The consequence of any failure is more dire. Here are some of the ways that I will be encouraging the FSF to serve the free software movement in the coming year: Mobile Phones In a short essay I wrote earlier this year, I pointed out that there are now billions of mobile phones and that, although these phones are increasingly powerful computers, they represent one of the most locked-down, proprietary, and unfree technologies in wide use. The implications of this fact for users' control over their technology are dire. Although some widely used phones make extensive use of free software, most free phones are locked down and Tivoized and their users remain fettered, divided, and helpless. We must raise awareness of free software issues among users of phones, communicate to users that phones are powerful general purpose computers, and explain that control over these devices has critical implications for individual autonomy in the future. Toward this end, the FSF staff will launch an advocacy campaign around mobile phones and software freedom in the coming year. Network Services As network services -- like those built by Facebook, Google, and others -- have continued to grow both in scope and penetration over the last year, the importance of a meaningful free software responses grows as well. The launch of products like Google's network-centric ChromeOS offers one glimpse of what a future computing platform may look like. The implications for user freedom, and for the effectiveness of traditional free software approaches, are frightening. The fact that many network services are built using free software does not make the effect of these services on users' autonomy and freedom any less catastrophic. In the next year, the FSF is planning to release the first of what I hope will be several statements on software freedom and network services. Building off the work of the FSF-supported group Autonomous, the Foundation will help provide guidelines for those implementing network services, for users deciding whether to use services, and for developers trying to build services that go further to respect their users' freedom. Reaching beyond our traditional communities Successfully fighting for user freedom is going to mean successfully reaching out to users outside the FSF's historical base . The FSF continues to do so with its Defective By Design anti-DRM campaign and its End Software Patents work. In the last year, the FSF has also reached out to younger users through its "GNU Generation" campaign run by and for high school students. Additionally, the FSF convened a summit this year on women in free software. The FSF plans to build on these successes in the coming year and to expand similar outreach projects. Of course, fighting for and promoting software freedom is more work than today's FSF has the resources to accomplish. Each of my three points above represents an ambitious undertaking, and yet just a portion of the items on the plate of the FSF's small but dedicated staff. Even just continuing its existing projects will require that the FSF adds hundreds of new members by the end of this period. Your membership and donations help make goals like this possible. A strong free software movement focused on the principled issues of software freedom -- and a strong FSF in particular -- will determine what freedoms the next generation of computer users will enjoy. At stake is no less than that next generation's autonomy. I know that this is not the first fundraising appeal you've read this season and I know that the weakened economy makes giving difficult for many. I understand that the cost of a membership or donation may be less easy to afford this year. But we also cannot afford a weakened FSF at this important point of technological transition. If you are not an FSF associate member, now is the time to become one. If you've read my appeal the last two years and decided to wait, now is the time to take the plunge. Membership is $120 per year ($60 for students) and payable monthly. If you are already a member, please join me in giving generously through a tax-deductible donation, or encourage a friend to sign up. The FSF is a small, humble organization of passionate individuals working tirelessly for our software freedom. I've seen firsthand that even small gifts make a difference.

Join now with a $10 monthly donation

20 January 2010

Theodore Ts'o: The Transitive Grace Period Public Licence: good ideas come around

I recently came across the Transitive Grace Period Public License (alternate link) by Zooko Wilcox-O Hearn. I fonud it interesting because it s very similar almost identical to something I had first starting floating about ten years ago. I called it the Temporary Proprietary License (TPL). I m sure this is a case of great minds think alike . One things that I like about my write up is that I gave some of the rationale behind why this approach is a fruitful one:
A while ago, I was talking to Jim Gettys at the IETF meeting in Orlando, and the subject of software licensing issues came up, and he had a very interesting perspective to share about the X Consortium License, and what he viewed as bugs in the GPL. His basic observation was this: Many companies made various improvements to the X code, which they would keep as proprietary and give them a temporary edge in the marketplace. However, since the X code base was continually evolving, over time it became less attractive to maintain these code forks, since it would mean that they would have to be continually merging their enhancements into the evolving code base. Also, in general, the advantage in having the proprietary new feature or speed enhancement typically degraded over time. After all, most companies are quite happy if it takes 18-24 months for their competitor to match a feature in their release. So sometime later, the companies would very often donate their previously proprietary enhancement to the X consortium, which would then fold it into the public release of X. Jim Gettys complaint about the GPL was that by removing this ability for companies to recoup the investment needed to make major developmental improvements to Open Source code bases, companies might not have the incentive do this type of infrastructural improvements to GPL ed projects. Upon reflection, I think this is a very valid model. When Open Vision distributed the Kerberos Administration daemon to MIT, they wanted an 18 month sunset clause in the license which would prevent commercial competitors from turning around and bidding their work against them. My contract with Powerquest for doing the ext2 partition resizer had a similar clause which kept the resizing code proprietary until a suitable timeout period had occurred, at which point it would be released under the GPL. (Note that by releasing under the GPL, it prevents any of Partition Magic s commercial competitors from including it in their proprietary products!)
For more, read the full proposal. No related posts.

18 January 2010

Matthew Garrett: Nook GPL update

"We are currently working on getting the code shipped out, we have your shipping address on file and will ship the code out as soon as it is ready, this will be by the end of this month."

2/10, must try harder. Even ignoring the fact that it's taking the best part of two months to get from shipping binaries to shipping source, it'll be interesting to see which version of the firmware the source release corresponds to given that the 1.1.0 update included a new kernel.

Speaking of firmware updates - as shipped, the nook was a disaster. The firmware update improved things greatly, but I'm still stuck with cases where books render with the last couple of words in a page left out, and the order of books in the local content library is now based on last modification time rather than, say, author name. The continuing lack of any way to implement catagorisation or provide worthwhile metadata means that it's frustrating having to remember which order the books in a series go in. The fact that there's even a distinction between content you've obtained from B&N and content you've obtained from elsewhere is mindboggling. You need to explicitly switch between the two, which means that collections are broken up if you've had the audacity to buy some books from B&N and some books from elsewhere.

Having now spent a while travelling with the nook, it's clear that it's still not an especially effective example of its type. If my Sony hadn't suffered an unfortunate accident, I'd be using it instead. The nook's hardware is significantly better and as a platform it's got much more potential, but it just doesn't do a terribly good job at its core role - reading books. It'll get better with time, but if you're in the market for something that actually works today then go elsewhere.

There's other little things that are upsetting at a conceptual level. The 1.0.0 firmware will flash unsigned firmware, which is useful[1] but also an obvious wtf. The filesystem is full of scripts that are world writable and executed as root. There's a libGLES, but the coverflow implementation appears to be handled entirely in software. There's a general feeling that the platform's been put together by people who either don't know what they're doing, don't care about doing it properly or were working under sufficient time constraints that getting it right wasn't an option. I'm really not impressed.

[1] Especially given that the 1.1.0 firmware will happily flash the 1.0.0 firmware...

17 January 2010

Gustavo Noronha Silva: Cool hack - html5tube

Did I mention I hate flash? I do. It crashes a lot, and is overall a bad thing for the web, in my opinion. But I do enjoy watching videos on the web, and unfortunately, up to this day, flash is what most sites use to show videos. Months ago I read a couple of blog posts with nice hacks to make Firefox able to play youtube videos without using the flash player. Some recent discussions with colleagues at work got me itching to try my hand at something similar for Epiphany. HTML5Tube working So I went ahead, and wrote a new extension that does just that - in youtube video pages, it finds the flash player element, and replaces it with an HTML5 video tag pointing to the actual movie file. This causes the internal HTML5 media player built into WebKitGTK+, that is based on GStreamer, to play the movie. That means you only need to have the necessary GStreamer magic, and the extension enabled, to enjoy the movie. There are some caveats - in-video text messages are gone (though I m pretty sure we could get them added somehow), playlists, and other places which display videos other than the normal video watching page are not handled, youtube needs to think you have the flash plugin installed, at least, so the only way to make it work right now is to actually have a flash plugin installed. I think we could probably get away with the last problem somehow, by looking at what the totem youtube plugin code does, for instance, and replicating it.

15 January 2010

Eddy Petri&#537;or: Busy, busy, busy and lazy me

It has been quite some time since my last post. I have been involved in quite a few things and the last part of 2009 which left no time for anything else. At the begining of 2010, just to set things on a good tone from the new year, I went on a snowboarding vacation to Austria to Kitzb hel.

Presidential campaign and pure irrationality in Romania

I got involved in Remus Cernea's presidential campaign, which was quite a success, considering the media blockade he was subject to. Unfortunately, Romanians seem to more and more indoctrinated, idiotic and gullible, probably thanks to newer generations that come through public schools after 12 years of religious indctrination and media promoting stupidity, non-values, ignorance and so on.

The more I live in this country, the more I realize how I don't feel like fitting in, because I refuse to be a mindless sheep, a moron, listening to anything the news at 5 say (those living in Romania know what I mean). I obstinately form my own ideas and question everything.

Significant event in my life

In September 2009 a life-turning event took place in my life - don't worry, is nothing bad, is pure good - and my eyes opened entirely. I have bacame a sponge trying to know more and more and this has helped me see the world with new eyes, from a new perspective, without lies or preconceptions.

Now I am thingking freely.


I am sorry for not going into details, but I have my reasons. Those who have the eyes and brains to understand what I am talking about, surely have understood by now what has happened to me ;-) .

Snowboarding vacation

At the begining of this year I went with my wife and some friends to Austria for a vacation. Kitzb hel's slopes and conditions were very good (bad points were only due to a couple of areas where snowboarders had to open at least one binding).

<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="http://www.openstreetmap.org/export/embed.html?bbox=12.2575,47.3556,12.5092,47.5304&amp;layer=mapnik" style="border: 1px solid black" width="425"></iframe>
View Larger Map

Weather was good and snow was icy only late in the afternoon. I was quite suprised to see stores close at 6pm, but overall, it was a well deserved vacation and I enjoyed it very much. My wife's skills on the board got better, although the third day some beginner skyer broke one of the bindings of my wife's snowboard and she had to use a rental instead. The rental was a quite new Burton board and Otilia got used to it and liked to the extent that we decided the next board we buy (for either of us) will be a Burton.

Did it worth it to drive 1500 km (roughly 1000 miles for the metric system challenged people :-P) for this vacation? Definitely! Did I enjoy the drive? Well, let's just say that the 950km from Kitzb hel to the Romanian border were made in approximately the same time it took us to make the last 550km to Bucharest, while 110km of those last were on the A1 "highway".

I'll probably put some photos from my vacation somewhere on the intenets, but don't hold your breath :-P .

Instead of conclusions

I know I promissed a lot of people to take care of some things like Wormux and some kernel bug debugging and I didn't kept my promise. I appologise, yet I don't expect anyone to accept my appologies. I am still unsure when I'll get back to that. I still care for Debian, yet the day has only 24 hours and I have to use at least 7 of those on sleep.

Christian Perrier: Samba 3.4.4 in unstable

It tooks me one week, this time after Karolin released upstream samba 3.4.4, to get Debian packages in unstable. That release will unfortunately be the first to use a "~dfsg" suffix to upstream version. In short, upstream used to distribute RFC files in their tarball. They first removed them when we pointed them at this (because we had an RC bug by our zealous "non-free documentation" hunters). However, they were reinstated after a discussion in upstream lists where it was pointed that these RFC files were needed for Samba 4 sources (that are distributed along with Samba 3 though not used to build Samba 3 packages). So, well, even though I don't feel really concerned by cutting hair in 4 about documentation files freeness, I fixed this by repackaging the upstream tarball without these files. I did choose to use "~dfsg" as suffix so that someone wanting to upgrade from our packages to some unofficial packages using the standard versioning (such as SerNet packages) can do it.

14 January 2010

Sam Hartman: Open Source Accounting Software

I m developing a huge backlog of things to write about, going back as far as a couple of posts inspired by the Kerberos conference in October. However, those require more effort putting together the post, so I m going to focus on something more recent. Part of running a business even a small business like Painless Security is dealing with the administrative and bookkeeping. The normal solution seems to be Intuit s Quick Books. When I set up the company, I looked into that. However, Intuit s accessibility story starts with give up, and goes down hill from there. Apparently, screen reader vendors have offered to work with Intuit to help them, but have been turned down, or at least that s the strong implication I get from reading blogs from these accessibility vendors. So, I d definitely rather not give Intuit my money. I m also looking for a bit more than the minimum in accounting software. Keeping the books in order enough to pay taxes would be easy. However I want to be able to understand where I m making money; I want to be able to figure out if the fixed price contracts I enter into end up being good ideas. I want to understand how expensive community projects Painless Security gets involved in like Debian and IETF work are both in terms of direct costs and opportunity costs. I want to understand what sorts of work ends up being the most profitable. All of these are fairly typical management questions; solutions to varying degrees are understood. however it means I m actually going to use an accounting product more than just to track my invoices and prepare taxes. I decided to see what the open source world was like in this space. I started with Ledger SMB. Ledger SMB s main claim to fame is that it tries to be better than SQL Ledger. Being better than SQl Ledger is definitely a good thing. It worked well enough to generate invoices and income statements. It nominally had facilities to track the sort of per-project information I m looking for, but the facilities are not near good enough. Also, there were some issues things like the fact that total debits didn t particularly need or tend to sum to total credits got old after a very short while. Also, facilities for correcting mistakes were unfortunate. You could either operate in a mode where you could delete a transaction, or a mode where you reverse transactions. Deleting transactions in practice meant deleting most of a transaction; balances became out of sync and half of the transaction tended to stick around using some interfaces but not other interfaces. Database cleanup was almost always required. In principle, reversals are better. However, there is no facility to indicate that you re not expecting payment on a reversed invoice. The receivables/payables account balance out because of the reversing transaction, but both the reversing and reversed transaction end up becoming over-due. Hey, can you please send me some anti-money to clean this up? The code was dreadful; the goal was to have better abstraction than SQL Ledger. Perhaps that was achieved, but man that leaves a lot to desire. Now, I m playing with Open ERP. It wants to grow up some day to be a competitor to SAP R3. In a way that sounds good, although it does mean there s a high complexity cost. There s a lot of functionality. There s reasonably good separation between view and model (and possibly even controller). The code is often clean, although the random blocks of commented out code with no explanation cause me to cringe. Many aspects of the system seem incredibly well designed; you can approach the system through a web client, graphical client, two different RPC mechanisms, XL and Open Office plugins. However, there s this mix of missing stuff and completely broken that causes me to wonder whether I m going to be sad. First, there appears to be basically no support for the US. All addresses are European format and are hard coded. Each individual report needs to be changed. Recently, I found cases where as best I can tell debits and credits are just reversed. I ve found a case where backing up the database succeeds but generates a zero length file. I almost lost data through that last one. There s a complex set of mechanisms to deal with units-of-measure for products for example, some jobs billed in hours, some are billed in days. However other parts of the code just add quantities. Playing around with this I am reminded again that I really enjoy thinking about these sorts of problems. An interesting ERP project could be fun to work on. for example, I bet handling ERP needs for some cloud-centered company would be a lot of fun. Also, as part of looking at Open ERP, I ve more or less developed the necessary scripts to migrate a simple service company from Ledger SMB to Open ERP. There are limitations of course, but if this would be useful to you, drop me a line.

13 January 2010

Matt Brubeck: Finding SI unit domain names with Node.js

I'm working on some ideas for finance or news software that deliberately updates infrequently, so it doesn't reward me for checking or reloading it constantly. I came up with the name "microhertz" to describe the idea. (1 microhertz once every eleven and a half days.) As usual when I think of a project name, I did some DNS searches. Unfortunately "microhertz.com" is not available (but "microhertz.org" is). Then I went off on a tangent and got curious about which other SI units are available as domain names. This was the perfect opportunity to try node.js so I could use its asynchronous DNS library to run dozens of lookups in parallel. I grabbed a list of units and prefixes from NIST and wrote the following script:
var dns = require("dns"), sys = require('sys');
var prefixes = ["yotta", "zetta", "exa", "peta", "tera", "giga", "mega",
  "kilo", "hecto", "deka", "deci", "centi", "milli", "micro", "nano",
  "pico", "femto", "atto", "zepto", "yocto"];
var units = ["meter", "gram", "second", "ampere", "kelvin", "mole",
  "candela", "radian", "steradian", "hertz", "newton", "pascal", "joule",
  "watt", "colomb", "volt", "farad", "ohm", "siemens", "weber", "henry",
  "lumen", "lux", "becquerel", "gray", "sievert", "katal"];
for (var i=0; i<prefixes.length; i++)  
  for (var j=0; j<units.length; j++)  
    checkAvailable(prefixes[i] + units[j] + ".com", sys.puts);
   
 
function checkAvailable(name, callback)  
  var resolution = dns.resolve4(name);
  resolution.addErrback(function(e)  
    if (e.errno == dns.NXDOMAIN) callback(name);
   )
 
Out of 540 possible .com names, I found 376 that are available (and 10 more that produced temporary DNS errors, which I haven't investigated). Here are a few interesting ones, with some commentary: To get the complete list, just copy the script above to a file, and run it like this: node listnames.js Along the way I discovered that the API documentation for Node's dns module was out-of-date. This is fixed in my GitHub fork, and I've sent a pull request to the author Ryan Dahl.

11 January 2010

Gunnar Wolf: Engineer? Scientist?

Looking over some articles in the March 2009 issue of the Communications of the ACM magazine, I found a very good piece column (Is software engineering engineering?, Denning, Peter J., and Riehle Richard D. , Communications of the ACM, 03/2009, Volume 52, Number 3, p.24-26, (2009) ). Quoting from it:
The search for an alternative to the programmer image is already a generation old. In 1989 we asked: Are we mathematicians? Scientists? Engineers? We concluded that we are all three. We adopted the term "computing", an analogue to the European "informatics", to avoid bias towards any one label or description. (...) Predictable outcomes (principle of least surprise) Engineers believe that unexpected behaviors can be not only costly, but dangerous; consequently, they work hard to build systems whose behaviorthey can predict. In software engineering, we try to eliminate surprises by deriving rigurous specifications from well-researched requirements, then using tools from program verification and process management to assure that the specifications are met. The ACM Risks Forum documents a seemingly unending series of surprises from systems on which such attengion has been lavished. Writing in ACM SIGSOFT in 2005, Riehle suggested a cultural side of this: where researchers and artists have a high tolerance, if not love, for surprises, engineers do everything in their power to eliminate surprises. Many of our software developers have been raised in a research tradition, not an engineering tradition.
It would be an interesting excercise to find how people rate themselves in this regard in a large group of developers, and find the differences in their coding styles, or how varied (in developer profiles) are each of the sub-groups.

9 January 2010

Andrew Pollock: [life] Renovations coming along

renovate
v 1: restore to a previous or better condition
  2: make brighter and prettier
remodel
v 1: do over, as of (part of) a house
  2: cast or model anew
I much prefer the term renovate to remodel. Remodelling to me feels more like tearing down internal walls and changing the actual layout of the place. But we're in America, so remodelling it is. We've had a bit of (mostly self-inflicted) scope creep. It started with just wanting to get some Ethernet cabling installed, then we decided to get recessed canned lighting (the whole lamp thing over here drives us nuts), and then we discovered that acoustic ("popcorn") ceilings are a haven for dust mites (we're both allergic) so it made sense to get the ceilings redone while they were putting the lights in. We're also getting the light switches replaced, and new childproof power outlets. We also got the electrical panel upgraded. Removing popcorn ceilings is somewhat hilarious. They put down plastic everywhere, then have at it with a garden hose, and then it just scrapes off. The ceilings they've completely finished already look a million bucks, so we're very happy with the decision to do that. The Ethernet cabling installation caused a lot of wall carnage, so we're going to get the walls repainted as well. Then we can get the carpets cleaned and stain proofed, and then we can start thinking about trying to move some non-essential stuff in. Hopefully it'll all be done by next weekend. The kitchen cabinets have a six week lead time, so the kitchen remodelling will have to be done while we're living there. Unfortunately some unexpectedly time demanding stuff has come up at work, right in the middle of this, so Sarah's had to do the bulk of the running around to sort out contractors for all of the work, and I've been stuck at work until all hours, 7 days a week. To cap it off, I've managed to come down with a cold, and feel quite crappy. NyQuil consumption is ensuing.

Andrew Pollock: [life] Twenty weeks later

Sarah hit the 20 week mark on Monday, and so we had the big anatomical ultrasound. We also found out that it looks like we're having a girl. We're now trying to come up with a name. There was also a worrying piece of news: they couldn't see the cavum septum pellucidum, while they were checking out her brain. Apparently the cavum septum pellucidum is a particular marker they look for when they're checking everything out. Now what the absence of the cavum septum pellucidum actually means isn't terribly clear. Apparently normally this is found along with other abnormalities, but the rest of her brain structures look fine. The nuchal translucency we had earlier in the pregnancy came back fine also. So we got bustled off to have a chat with the genetic counsellor (during which the 4.1 earthquake happened). We got booked in for an amniocentesis for later that afternoon, as well as a fetal MRI at 22 weeks, and trundled off home. To cap things off, when we were trying to park back at the hospital for the 2pm appointment, I managed to scrape the car up against one of the poles in the car park. (The lower level parking is notoriously tight). Note to self: always use the free valet parking service from now on. Sarah had some second thoughts about the amniocentesis, as it does carry with it some risk of miscarriage, and after chatting with with a couple of the obstetricians, we elected not to do it. The fetal MRI should definitively determine if the cavum septum pellucidum is absent, and then we can talk to a paediatric neurologist about what the ramifications of that might be. One of the reasons they wanted to do an amniocentesis now, rather than after the fetal MRI, is the amniocentesis itself takes a couple of weeks for the results to come back, and that would bring us up to the 24 week mark. Apparently if we wanted to terminate the pregnancy, once it was at 24 weeks, we'd have to go to LA to do it. Whilst I consider myself an atheist these days, I was raised a Catholic, and although I like to think of myself as pro-choice, I still have a lot of problems with abortion, so I don't think I'd be comfortable terminating unless it could be shown with reasonable certainty that our baby was going to be in a really bad way. Based on how the rest of the brain looked, and the nuchal translucency results, and the fact that the amniocentesis would only identify chromosomal and not genetic neurological disorders, I don't think we'll be aborting. From my limited research, it sounds like the cavum septum pellucidum disappears at about 3 months after birth anyway, so looking at it one way, you could say our baby's brain is developing faster. Other research has indicated a correlation with optic nerve development issues, so I don't know if that means she might be blind. We really need to chat with a paediatric neurologist. But hopefully the fetal MRI will find it, and this will turn out to be nothing. An anxious two weeks will now follow.

7 January 2010

Joachim Breitner: screen-message ported to Windows

Over the holidays I investigated how to cross-compile GTK applications for Windows, and managed to port screen-message. I also created an Inno Setup based installer for it that includes the necessary GTK DLLs. You can grab it from the screen-message homepage. The installer optionally binds screen-messages to the key combination Alt-Ctrl-S.
I would have published the binary much earlier if starting the application had not always given the error message
The application failed to initialize properly (0xc000007b). Click on OK to terminate the application.
on Windows, while it worked fine under WINE. It took me a while to find the cause, as there seems to be only one mention of it in the internet: One must not use MinGW s strip.exe utility on DLLs not created with MinGW, it seems. I added a make installer target to the Makefile to create the installer. If you are curious about how that works, have a look at the source.

5 January 2010

Russell Coker: Which is Better, Original DVD or Pirate MP4?

For a long time it has been obvious that in all cases anti-piracy technologies discourage purchases and in many cases encourage piracy. I first discovered the significance of this in about 1991 when I attended a public lecture by a senior employee of Borland and a member of the audience claimed that the Borland product he bought didn t function correctly due to anti-piracy measures. The Borland employee firmly stated that Borland did not use anti-copying technology on any of it s products, didn t have any plans to do so, and the problem in question must have been caused by something else. Of all the hostile questions that were asked, this was the only one that caused the speaker to appear agitated so it was obviously an issue that was considered to be important within Borland. In the late 80 s anti-piracy measures were mostly based around creating floppy disks that couldn t be easily copied (violations of various aspects of the disk formatting standards). This meant that you couldn t make a backup copy of the data, so it wasn t uncommon for people to seek pirate copies of their commercial software for daily use to avoid wearing out their valuable original floppy disks. Then the dongle was invented and people who bought software sometimes sought pirate copies so that they could use their printer and their commercial software without having to change plugs on their PC. But in those cases the benefits to uncrippled software to the users were small. Now a large part of the battle on copy protection concerns DVDs. If you had a DVD of a recent movie and an MP4 which would you rather watch? Would you prefer to be forced to watch some anti-piracy rubbish for a couple of minutes at the start of the movie (with fast-forward disabled) or would you prefer to just start watching it? Would you prefer to be able to pre-program the sections of the movie that you watch (as some parents desire to skip the sex and/or violence in movies for their teenagers) or would you prefer to be forced to watch the movie straight-through with only a manual fast-forward to skip sections? Would you prefer to have a DVD that can t be played properly on many (most?) computers because of the CSS encoding or an MP4 that plays on everything from PCs to mobile phones without an issue? Would you rather have 100 movies in the spare space on your laptop hard drive when you travel and 1000 movies on your desktop system or the much smaller number of boxed DVDs that you can store? I think that in most cases a pirate MP4 will give a better experience than a DVD. So the question is, why pay for a DVD when in most cases you get a lesser experience than you will get from a MP4 file downloaded by bittorrent? One reason for buying the DVD is to support the film industry. But I doubt that such a profitable industry will get much sympathy in today s economy. Another reason is the morality, some people consider piracy to be theft (it isn t by definition theft requires that for at least a moment the property be completely in the possession of the thief) and therefore avoid it. One technical reason for buying a DVD is the fact that it may have multiple languages supported, it will have subtitles, it may have an audio track with the creators giving a commentary, and it may have extra scenes that were cut from the main release. I believe that work on adding subtitles to the video file formats is a work in progress, so it s only a matter of time before the DVD rips include all this extra data. Really the content creators should focus on making a product that meets the needs of users and that they want to pay for. Pirating books is technically possible, but almost no-one does it. Some successful authors such as Charles Stross freely publish significant parts of their work and Cory Doctorow freely publishes all his work in electronic form. Books just work well, they meet the needs of users and people want to buy them. Sure they can sell them second hand, lend them to other people, and it s technically possible to pirate them, but they remain profitable. On my documents blog I have a page of links to free short stories that I liked [1] and a page of links to free books [2]. It seems to me that creators of other copyright content should consider how they can be of service to their customers. We are all familiar with corporations and misguided individuals who get whiny about the supposed losses due to piracy. Bruce Everiss has unfortunately joined this trend and demanded the disconnection of Internet users based on unproven accusations of game piracy [3]. I don t know whether the game buying experience sucks as badly as the DVD buying experience, but based on the reports of locked-down consoles that have to be cracked before they run Linux I expect that the modern game industry is doing at least as badly as the movie industry. They need to provide things that users want! One thing to note is that a Windows or console game player who uses pirate games will probably buy some games at some future time, while someone like me who uses free software both by principle and because it gives a better user experience will probably never pay for a game (I haven t got time to play all the free games so I probably wouldn t even buy a Linux game).

Vincent Sanders: Back to work

Well that is the end of my time off, tomorrow it is back to work. However my break started with snow and it seems its finishing that way.


Unfortunately despite my previous enthusiasm this weather is becoming a little tedious. Schools have been closed today so I had to child mind instead of getting anything done.

Speaking of getting things done...I have completely failed to do anything productive whatsoever for the last couple of weeks. I have played some computer games, watched some TV read some books and listened to music and you know what? Aside from a tiny guilty feeling, I have thoroughly enjoyed myself.

I suppose I should apologize for not contributing to all those open source projects that could have used my help, but that would imply remorse which I seem to be lacking. Oh well

Mentioning music, I have acquired a selection of new music over the holiday which I ought to talk about. In no particular order:Unfortunately none of it was outstanding which sometimes happens when I take a punt on a large pile of new music. On the upside none of it was particularly bad either, so a kind of "no win" deal. Though on re-listening the "XX" album is starting to grow on me and the albums from the DFTBA label are so inexpensive they are more than worth it.

3 January 2010

Russ Allbery: Lintian 2.3.1

This is primarily a bug-fix release, cleaning up some issues introduced in 2.3.0. Specifically, it fixes collection of the contents of *.a files, fixes the severity of spelling errors in man pages, properly parses Depends starting with a newline for weak-library-dev-dependency, and fixes the spurious display of archive areas in some cases in the HTML reports. This release also includes Raphael Geissert's work to eliminate unpack level two (which means having a full unpacked copy of the package) in favor of a collection script that does this and a new type of collection that's automatically removed after processing. This is the first step towards eliminating the internal Lintian distinction between unpack and collection scripts and implementing both using the same mechanisms. As usual, there are a variety of other fixes and improvements, but there shouldn't be any major user-visible changes in this release. Note that, following advice from Joey Hess, Lintian now warns about missing $ misc:Depends dependencies for any package that uses debhelper, since any debhelper script may start adding dependencies there. This was already mostly in place in 2.3.0, but is the source of a large number of new warnings in the archive.

Next.

Previous.