Search Results: "spa"

16 September 2009

Roland Mas: FusionForge news, June 2009

Quick heads-up about FusionForge. The main news of course is that 4.8 has been released upstream (and uploaded to Debian experimental). We'll keep fixing major bugs on that branch of course, but our focus is now on trunk. We're finding it tedious to deal with legacy code, so one of the goals we have now is to clean up the codebase to bring it more in line with good practice. That's going to take some time, though, because there's lots of code. Some of that code, however, seems unused (it's been broken for some time without anyone complaining), so it's likely that we'll deprecate and/or remove bits of code unless someone steps forward to maintain it (or at least bring it into shape). In particular, we're looking at the MySQL support (which hasn't been maintained for years) and some of the old visual themes which are going to require some work to keep working with some changes we're planning in the way the pages are displayed. This should make maintenance easier for the implementation or integration of new features down the line. Which will be the subject of a future post, when a currently undercover French Forge Cabal actually starts producing concrete results. Watch this space.

Isaac Jones: Three Wiki Uses

Over the last few years, I've been pretty immersed in the world of wikis. A wiki is like a collaborative web site; it lets several people view and edit a web page and link to other pages, maybe new pages that they themselves create. Wikis let tech-savvy people all over the world collaborate on a single web page, a single document. That's a pretty powerful idea, really. The obvious thing to do once an idea like wikis appears is to attempt to cram all of humanity's knowledge into it. Well that's just crazy enough to work. Wikipedia is the gold standard of wikis. It's a collaborative encyclopedia with lots and lots of articles. As the gold standard, it influences people's thinking about wikis in ways that might not be quite true. If Wikipedia were the only wiki you'd ever heard of, you might think that wikis are used to create encyclopedias. If that were true, you'd really only need one of them. If Wikipedia were the only wiki you'd ever heard of, you might be under the false impression that all wikis everywhere are editable by anyone. So if you create a wiki page, it's no longer yours. Other people can scribble on it. Well, some kinds of documents perhaps just aren't suitable for being edited by anyone, and the good news is that you can build a wiki for you and your classmates, or you and your coworkers, and you can decide who gets to edit what. I want to think about a few distinct uses for wikis in different contexts. The most common use is of course to create a knowledge repository; a collection of information written by people who know what they're talking about. That's what Wikipedia is, mostly. That's what the Haskell Prime wiki (which I run) is. And the excellent wiki about the game of Go, Sensei's Library, is also a knowledge repository. But there are other uses for wikis that are pretty cool. I often have to work on proposals with my coworkers. One (horrible) way to do this is to write the first draft in MS Word, email it to everyone, who might edit it and email it back. Of course, only one person can actually edit it at a time, otherwise I have to figure out what everyone did and merge their changes by hand. That's what we, in the computer industry, call teh suck. A better way to do this is to use a version control system, which lets multiple people work on a document at one time. Of course, if you're editing evil document formats like Word, still only one person can edit it at a time, but at least you cut out email, so things are a bit better organized. But wikis are actually a really great way to work on a document with another person. Two or more people can each collaborate on the document using the wiki software over the web. What becomes of the document at that point depends on its ultimate use. Maybe you have to convert it to MS Word or PDF at the end. That's a bit of a bummer. So there are two uses of wikis that I've mentioned: building a knowledge repository, and collaborative writing. Google started a service for collaborating on documents called Google Docs & Spreadsheets, which is probably useful for collaborative writing, but not knowledge repositories. They also acquired a wiki startup a few days ago, so they are clearly trying to get all over this space. There's another very interesting use of wikis that I'll call situation awareness. You can get a really vivid picture of this use of wikis if you take a look at the wikipedia article on the July 2005 London bombings. By the way, I didn't discover this excellent example of situation awareness using wikis. I saw it in the slides for a talk, but I don't know the original source at this point. If you go to that link, you'll see an excellent and up-to-date encyclopedia article about the London bombings. It's not a news article. Go to Google News and try to find a news article from a major news source which is this detailed, up-to-date, and well organized. Most articles you'll find are a snapshot, taken at a particular point in time (when the article was published) that most likely contains an account of the latest developments, and usually brief background in case you missed previous stories. The wikipedia article isn't a snapshot, it's an article that explains things in a logical order, which isn't necessarily chronological. Each wikipedia article contains a link to its own history. You can look back over time and see the article evolve. If you look at the early edit history of that London bombing article, you'll notice something fascinating. The article was created shortly after the bombing, with an account of the information that was known at that time. Within an hour, many people had edited the article, adding information they know about. If you were refreshing that wikipedia entry over & over (or if you were subscribed to it using RSS), you'd see not an account of just the latest developments, but an evolving, logical understanding of the attacks. The article started evolving right away, and it continues to evolve to this moment. That's what I'm calling situation awareness. Don't get me wrong, the mainstream news media is quite good at situation awareness. They do it a bit differently, and their articles or TV stories don't become integrated into a knowledge repository like wikipedia. I've enumerated three somewhat overlapping uses for wikis that I think are pretty interesting to examine:
  • Knowledge Repositories, which are a lot like encyclopedias,
  • Collaborative writing, which is a bit like a more elegant version of emailing word documents, and
  • Situation awareness, which isn't so different from the news; it draws from the news as a source, it can also be authored by the eye-witnesses themselves, and each story becomes an integral part of a knowledge repository. I don't claim that these are an exhaustive, nor are they a partition: Wikis are also used for bug tracking and as web discussion forums, for instance. What other categories can you think of? Email me if you have ideas.
  • Sergio Talens-Oliag: Encrypting a Debian GNU/Linux installation on a MacBook

    A couple of weeks ago I updated my Debian Sid setup on the MacBook to use disk encryption; this post is to document what I did for later reference. The system was configured for dual booting Debian or Mac OS X using refit and grub2 as documented on the Debian Wiki; I don't use the Mac OS X system much, but I left it there to be able to test things and be able to answer questions of Mac OS X users when I have to. The Debian installation was done using two primary partitions, one for swap (I used a partition to be able to suspend to disk without troubles) and an ext3 file system used as the root file system. The plan was to use the Debian Installer to do the disk setup and recover the Sid installation from a backup once the encrypted setup was working OK. Backup for later recovery My first step was to install all the needed packages on the original system; basically I verified that I had the lvm2 and cryptsetup packages installed. The second step was to backup the root file system; to do it I changed to run level 1 and copied the files to an external USB disk using rsync. My third step was to boot into Mac OS X to reduce the space assigned to it; I had a lot of free space that I didn't plan to use with Mac OS X and I thought that this was the best occasion to reassign it to the Debian file system. Encrypted Lenny installation Now the machine was ready for the installer. As I formatted the system a couple of weeks ago I used a daily build of the Lenny Debian Installer, now that Lenny is out I would have used the official version. I booted the installer and on the partition disk step I selected the manual method; I left sda1 and sda2 as they were (the Mac OS X installation uses them) and set up sda3 and sda4 as follows: Note that I decided to put /boot on a plain ext3 partition to be able to use grub2 as the boot loader (if we put the kernel on an LVM logical volume we need to use lilo as the boot loader). Once sda4 was adjusted as LVM I entered on the LVM setup and created a LVM Volume Group (VG) with the name debian, using sda4 as the physical volume. Once the VG was defined I created a couple of Logical Volumes (LV): I left some space unallocated to be able to create LVM snapshots (I use them to do backups, I'll post about it on the next days). Once the LV were ready I finished with the LVM setup and went back to the partitioner to configure the Logical Volumes: Once both encrypted volumes were ready I entered on the Configure the encrypted volumes menu and the installer formatted the volumes for encryption and asked for the debian-root pass phrase. Back on the main partitioning menu I set up the debian-root_crypt encrypted volume: I didn't need to touch the debian-swap_crypt, it was configured automatically as swap because I choose a random encryption key. At this point I was finished with the partitioning; to finish I installed a minimal system and rebooted to try the system. As I had changed the disk layout I had to re-sync the partition tables from refit; once that was done I was able to boot from the newly installed system. Setting up suspend to disk I was using s2disk to suspend the system; to test if it still worked with the new setup I installed the uswsusp package and adjusted the resume device on the /etc/uswsusp.conf to /dev/mapper/debian-swap_crypt. After my first try I noticed that the resume step failed with the encrypted swap partition because it was using a random key, which means that the swap contents are unrecoverable after a reboot. Looking at the cryptsetup documentation I found that the solution was to use a derived key for the swap partition instead of a random one. The command sequence was as follows:
    # disable swap
    swapoff -a
    # close encrypted volume
    cryptsetup luksClose debian-swap_crypt
    # change the swap partition setup on the /etc/crypttab file
    sed -e -i 's%^debian-swap.*%debian-swap_crypt /dev/mapper/debian-swap debian-root_crypt cipher=aes-cbc-essiv:sha256,size=256,swap,hash=sha256,keyscript=/lib/cryptsetup/scripts/decrypt_derived,swap%' /etc/crypttab
    # open the encrypted volumes with the new setup
    /etc/init.d/cryptdisks start
    # enable swap
    swapon -a
    # update the initrd image
    update-initramfs -u
    
    After executing all those commands the suspend to disk system worked as expected. Recovering the original system If I were going to reinstall the system completely I would have finished here, but in my case I wanted to recover my original system setup (except the minimal changes required to use the encrypted passions, of course). To recover my old installation I backed up some files (/etc/fstab, /etc/crypttab, /etc/uswsusp.conf and the current /boot contents to be able to boot in case of failure with my old kernel) from the current installation, after that I recovered all the files from the initial backup (except the ones just saved) using rsync again and regenerated the initrd images of my old kernels:
    update-initramfs -u -k all
    
    After that I rebooted and everything worked as on my original installation (except for the disk encryption, of course).

    15 September 2009

    Joey Hess: Debian Installer USB partitioning

    The Debian Installer has a USB boot image that is supposed to be written raw to the USB stick. Problem is that means the image has a fixed size, 256 MB, and all the other gigabytes on your typical USB stick are unusable after writing this image to it. It's a bit of a cheat for me to blog about this, since I'm slighly responsible for the thing that I'm working around. But still. The real problem is not the fixed size of the image, but that it is written to the USB stick as a "super floppy", without any partition table. If there were a partition table, you could make a second partition in the rest of the space of the USB stick, and use it to store files, etc. So, let's set that up. It's not really hard:
    1. Use your favorite partition tool to partition the USB stick. Make a 256 MB DOS partition, that will be used to hold the installer, and set it bootable. Make a second, or more partitions for your own use.
    2. Unplug and replug the USB stick so the device files show up, and write the installer image to the first partition (/dev/sda1 in this example). zcat boot.img >/dev/sda1
    3. Make the USB stick bootable by installing the mbr package, and running install-mbr /dev/sda
    4. Copy a Debian ISO image to the USB stick somewhere. You can put it on the first partition, as ususal, or if you prefer, can put it on one of the later, larger partitions. That's useful if you want to use a larger ISO than the netinst. The installer should find it anywhere.

    Andrew McMillan: DAViCal 0.9.7.2 released

    I released a new 0.9.7.2 version of DAViCal yesterday. This reflects quite a lot of stability and small fixes for some subtle problems, and quite a lot of work with the iPhone, adding the possibility of a simpler configuration experience for iPhone users. One long-standing, but less obvious problem (well, less obvious to me) was the handling of usernames with odd characters in them. In the round-trip these needed to be urlencoded, and that wasn't happening correctly in all places, but it hopefully is now. People who want to use e-mail addresses in usernames, or spaces in calendar names, or both, etc., should all work now. One newer problem I've been seeing the effects of a little recently is that PHP 5.3 deprecates call-time pass by reference, which I had used in a few places. That's fixed now, so it should be OK to upgrade to PHP 5.3 without breaking DAViCal or having to explicitly turn those warnings off. The iPhone is a curious beast. Lots of people love them, and it is about the only mobile device that supports CalDAV (though I'm hoping the Nokia N900 also will), so it's important to support it as transparently as possible regardless of my personal loathing for it's horribly locked down state. It was pointed out to me that it is possible for it to be configured by entering three pieces of data (domain name, username, password) so I decided to make DAViCal support that process. In order for it to work for you you will need to have DAViCal running on an SSL server on port 8443, which isn't too big a deal. You can also plain http on 8008 which it will also attempt after prompting when the SSL connection fails. You'll also have to enable mod_rewrite and use some rewriting rules like the example on the wiki. For myself, I use the free SSL certificates from CACert.Org so I had to browse to their root certificate page and load the class 1 and class 3 certs into the iPhone before it would talk happily to my DAViCal server. I'm hoping to continue with reasonably frequent incremental releases of DAViCal for the rest of the year, hopefully with 0.9.7.4 sometime in late October. What will be included there might also depend on how productive my visit to CalConnect XVI is in three weeks too, and I'm looking forward to that.

    Robert Collins: 16 Aug 2009


    Hudson seemed quite nice when I was looking at how drizzle use it. I proposed it to the squid project to replace a collection of cron scripts and we re now in the final stages of deployment: Hudson is running, doing test builds. We are now polishing the deployment, tweaking where and how often reports are made, and adding more coverage to the build farm. I thought I d post a few observations about the friction involved in getting it up and running. Understand that I think its a lovely product these blemishes are really quite minor. Installation of the master machine on Ubuntu add an apt repository, apt-get update, apt-get install. Installation of the master machine on CentOS 5.2 (Now 5.3): make a user by hand, download a .war file, create an init.d script by copy-and-adjusting an example off the web. Plenty of room to improve here. Installing slave machines: make a user by hand, add an rc.local entry to run java on slave.jar as that new user. This could be more polished Installing a FreeBSD 6.4 slave: manually download various java sources to my laptop, scp them up to the FreeBSD machine, build *java* overnight, then make a user, add an rc.local entry etc. _Painful_. The next thing we noticed was that the model in Hudson doesn t really expose platforms but we want to test on a broad array of architectures, vendors and releases. i386-Ubuntu-intrepid building doesn t imply that i386-Debian-lenny will build. We started putting in tags on the slaves that will let us say this build is for amd64-CentOS-5.2 , so that if we have multiple machines for a platform, we ll have some redundancy, and so that its easy to get a sense of whats failing. This had some trouble its very manual, and as its manually entered data it can get out of date quite easily. So in the weekend I set out make a plugin, and ran into some yak shaving. Hudson plugins use maven2 to build and deploy. So I added the maven2 plugin to my eclipse (after updating eclipse to get the shiniest bzr-eclipse), and found the first bug issue 1580 maven2 and teamplugins in eclipse 3.5 don t play all that nice. Push. Removing bzr-eclipse temporarily allowed eclipse s maven plugin to work, but for some reason many dependencies were not found, and various discussions found on the net suggest manually adding them to the CLASSPATH for the project but not how to identify which ones they were. Pop. So, I switched to netbeans a 200MB download, as Ubuntu only has 6.5 in the archive. netbeans has the ability to treat a maven2 project as a directly editable project. I have to say that it works beautifully. Push. I made a new plugin, looked around for an appropriate interface, (DynamicLabellers, designed for exactly our intended use). Sadly, in my test environment, it didn t work the master didn t call into the plugin at all, and no node labels were attached. Push. Grab the source for hudson itself, find the trick-for-newcomers here do a full build outside netbeans, in netbeans open main/war as a project, and main/core as well, not just the top level pom.xml. To run, with main/war selected in the project list hit the debug button. However changes made to the main/core sources are not deployed until you build them (F11) the debug environment looks nearly identical to a real environment. Pop. There is a buglet in DynamicLabeller support in Hudson, where inconsistent code between general slave support and the master node Hudson.java causes different behaviour with dynamic labels. Specifically the master node will never get dynamic labels. So I fixed this, cleaned up the code to remove the duplication as much as possible (there are comments in the code base that different synchronisation styles are needed for some reason) and submitted upstream. Pop. I ll make the plugin for squid pretty some evening this week, and we should be able to start asking for volunteers for the squid build farm. Yay!

    14 September 2009

    Ross Burton: Facebook in Mojito!

    Thanks to those nice people at Novell, Mojito (everyone's favourite social aggregator, as used in Moblin) now has Facebook support. We now support Facebook, Flickr, Last.fm, MySpace and Twitter any requests for the next service? NP: Cold Water Music, AiM

    Russell Coker: Links September 2009

    The NYT has an interesting article about research into treating insomnia over the internet [1]. I wonder how many other psychological issues can be effectively treated over the net. From next year all Cadbury Dairy Milk Chocolate sold in Australia will be made from fair-trade cocoa [2]. Cadbury Dairy Milk Chocolate is the most popular type of chocolate sold in Australia so this is a significant market shift. For a long time Cadbury has sold fair trade chocolate under the name Green and Black. Of course we now have to wait for Cadbury to use fair trade cocoa in all their other chocolate varieties. Mike Rowe gave an interesting TED talk about the value of manual labour [3]. He suggested that there should be a PR campaign for skilled manual labour jobs and noted that his observation (through his work on his Dirty Jobs TV series) was that the people who do some of the less popular jobs appear to be happier. The GapMinder.org web site has some interesting analysis of statistical information on countries and regions [4]. It is based on the work of Hans Rosling who is well known for his high quality TED talks [5]. Unfortunately the web site requires Flash, I will probably try it out with Gnash some time. Miru Kim gave a TED talk about her work photographing herself nude in abandoned buildings and industrial spaces [6]. Among other things she photographed herself lying naked on a pile of bones in the crypt underneath Paris which is fairly dangerous. I ve visited the crypt, it s an interesting experience but I was very careful to touch nothing you never know which of the bones came from victims of smallpox and other nasty diseases. Strangely they have an ongoing problem of visitors stealing bones, when I visited there were several bones at the exit that had been confiscated from visitors some of which had mummified flesh attached Steinar H. Gunderson wrote a good description of the basics of how the TCP protocol works [7]. He also links to a web page he wrote that will measure your potential TCP throughput and give you information on the link. This is really handy if you are behind some sort of firewall and want to know what is being done to your TCP stream when it s in transit. Apparently Christian couples tend to use a shared email account to reduce the risk of cheating [8]. It s hardly a surprise that Christians have a much higher divorce rate than atheists and agnostics [9]. The NY Times has an interesting article about iPhones overloading the AT&T network [10]. Recently I ve been having some problems sending MMS with my Three phone, some relatives who use Three have been having connection problems in certain areas with marginal signal quality, and the download speed of my Three data connection is significantly reduced (used to be ~70KB/s, now I m lucky to get 20KB/s). I suspect that the new smart phones that are being sold are largely to blame. But the up-side is that when they engineer their network to work properly with the smart phones then my Internet use (ssh and basic web browsing) will work really well. Michael Tieman wrote an interesting blog post about software patents which compares them to Land Mines [11]. Of course this analogy falls down badly while the US is still leading the world in manufacturing land mines. Rebecca Saxe gave an interesting TED talk about how brains make moral judgeents [12]. In her research she did some tests with using magnetic pulses to decrease the function of the region of the brain that allows people to judge the others and she was able to significantly affect the results of judgement tests. Brendan Scott analyses the netbook wars and concludes that it has been a significant loss for Microsoft [13]. ArsTechnica has an analysis of the real word-processing requirements [14], they suggest that in most cases MS-Word (and other word-processor) documents could be replaced with HTML or Wiki pages for a better end result.

    Biella Coleman: The secret of the enjoyment of pleasure is to know when to stop

    I came across this quote while wrapping up Style: Toward Clarity and Grace, one of my favorite books on the craft of writing. The quote is remarkable not only for its content, which is spot on, but its.. clarity and grace:
    The secret of the enjoyment of pleasure is to know when to stop We do this every time we listen to music. We do not seize hold of a particular chord or phrase and shout at the orchestra to go on playing it for the rest of the evening; on the contrary. However much we may like that particular moment of music, we know that its perpetuation would interrupt and kill the movement of the melody. We understand that the beauty of a symphony is less in these musical moment than in the whole movement from beginning to end. If the symphony tried to go on for too long, if at a certain point the composer exhausts his creative abilities and tries to carry on just for the sake of filling in the required space of time, then we begin to fidget in our chairs, feeling that he has denied the natural rhythm, has broken the smooth curve from birth to death, and that though a pretense of a life is being made, it is in fact a living death. Alan Watts, The Meaning of Happiness.

    13 September 2009

    Jelmer Vernooij: CtrlProxy: Looking for a new maintainer

    After over 7 years of working on it off and on, I'm looking for somebody to help maintain (and eventually take over) CtrlProxy. I started working on CtrlProxy somewhere in 2002, only a short while after Wilmer started hacking on BitlBee. If I remember correctly I started working on it because I didn't want to run a separate dircproxy (the only real competitor at the time) instance (with configuration) for each IRC network that I connected to. It was also just a good excuse to play with the IRC protocol a bit. Over the years, CtrlProxy has served as a playground for me to try out new and interesting things. It's been rewritten or severely refactored several times in its early history, the latest time being the 3.0 release (from 2005). I've tried different build systems, I've tried different implementation languages, I've tried different configuration file formats, I've tried different support libraries, I've tried different version control systems, I've tried different documentation formats. So while it's definitely been a very educational project for me personally, I haven't really had the time or the interest to dedicate to the project that it deserved during the last few years. This was mostly because there were other more interesting FOSS projects I spent my spare cycles on. These days there are plenty of other good IRC proxies out there, including BIP, ZNC and ShroudBNC so I doubt CtrlProxy will be missed if it were to disappear. Despite that, if anybody is interested in taking over, please send me an email (jelmer@samba.org) or contact me on IRC (jelmer on the OFTC and Freenode networks). cp: Anathema - Shroud of False1

    Brett Parker: Random Storage Idea...

    So, I was reading some random mumblings on the interwebs, and the pigeon with USB stick being a quicker method of data transfer in SA than their intertubes... then there was a thread on a mailing list discussing this, and someone mentioned using stacks of microSD cards... so then my brain decided to launch itself orthogonally, as it often does. What we end up with is wondering just how much storage you could fit in to the space a 3.5" drive would normally take - not taking in to account any method of attaching it at this point. So, a 3.5" drive is approx 102mmx147mmx26mm, a microSD card is 11mmx15mmx1mm, so, assuming that we're just lying them side by side, and not optimising the way they're stored at all, you can fit (with space round the sides) 9*9*26 = 2106 microSD cards in the area of a 3.5" drive. Assuming that each of those is 16G that's just shy of 33.7TB of storage! So, that set me thinking a bit further... I reckon that in that space you could do a 6*6 grid of cards with room for connectors, and just about get it to 10 high...so, that's 360 microSD cards, and probably enough room for some control gear (haven't worked out quite what we'd use for that), I then went in to wondering if we could then create a small embedded system to talk to those 360 microSD cards, if we did that then you could potentially do RAID0 across the "platters" with RAID6 on each platter. Now, to my poor head that meant that there should be 340*16G of available storage, which is 5.44TB... of course, that involves somehow interfacing the 360 microSD cards... I'm thinking that it might be possible with some form of embedded system... Unfortunately, it appears that to actually build this with consumer components... and without including the interface gear which I haven't even begun to work out yet... we're talking around about 26 per microSD card, so, erm, 9360... but I still think it'd be a really neat project... now, if someone can arrange for me to win the lottery, have lots of spare time, and some more brain power... :) Oh dear... my brain appears to have ticked further through, and I've realised that with spacing between each microSD card, you could, in theory, easily fit 400 of them upended in the space available. Erm. Of course, this still doesn't answer the "how the hell do you then get them all to talk in any sane manner" question... but I'm sure that will work out in my head sometime...

    Stefano Zacchiroli: RC bugs of the week - week 2

    RCBW - week #2 The RC squashing game has apparently worked fine for me also this week, and it has been as fun as the first :-) . This week summary follows. PS the horrible acronym in the title stands for "Release Critical Bugs of the Week"; it is part of my shameless marketing campaign to make the initiative spread.

    Joey Hess: debhelper talk

    In Spain this summer, I gave a talk about new features in debhelper. It seemed to help a lot of people get started. So if you were not at DebConf, this is your chance to learn about dh, overrides, addons, and mimimal rules files. (low quality higher quality) The audio gets much better half-way through, and slides become visible. (We all also wake up a bit midway through -- it had been a late night!) The full slides are here.

    11 September 2009

    Sune Vuorela: Matthew Rosewarne

    Over the last months, I have been asking people in KDE irc channels and in Debian KDE channels wether they have heard from Matthew Rosewarne, on irc known as Mukidohime. No one had. Very recently, I uploaded one of his packages with the following changelog entry:
    * Switch Maintainer field to krap team and remove Matthew, he seems absent.
    We hope he comes back.
    Apparantly he was absent. Permanently. Elizabeth Krumbach writes some nice words in his memory. I remember Matthew for his work on several KDE related packages in Debian, always doing a job that was better than I expected. And I especially remember him at Akademy 2008 where he to much joy brought a black horse whip for the chairman of a talkroom. And he even brouht a spare pink horse whip for when the black one broke. Especially Adriaan had a good use of that. And at last, I will bring a image of Matthew showing off his equipment to Aaron Seigo.
    Matthew Rosewarne

    Matthew Rosewarne

    Condolences to his family. Matthew will be missed.

    Steve McIntyre: Silly photos from Spain

    While driving through Spain around DebConf, I saw a few things that I thought I should share with the world... San Sebastian runs on dbus!
    let's all take the d-bus! ALSA on a coach:
    alsa-riffic Wonderful fuel economy! We managed to fill up with diesel, then coast for about 15 miles down a very very very long downhill stretch into Bilbao. And just before we stopped at a toll booth at the bottom of the hill, the car's estimated MPG figure flipped to 99.9 and we got a blurry photo.
    we could drive home on that tank...

    10 September 2009

    Steve McIntyre: Cool DebConf

    Yeah, OK, I suck and I should have posted about DebConf 9 while I was there or shortly afterwards. Well, I've been busy with various things (or, to be more specific, one person \o/). I'm slowly catching up on stuff now, so I thought I'd write something and link to some photos! I drove down from the UK with Neil, Chris and Chris and we had a good trip. We left Cambridge really early on Wednesday the 22nd, stopped at Le Mans for lunch, then headed to San Sebastian overnight. The French autoroutes were mostly empty and we made very good time, swapping drivers every two hours. Le Mans The venue was superb, with just about all the facilities we needed on site. And there was a handy outdoor bar in the park just up the street. Yay! MT residence As always, it was excellent to meet up with Debian friends old and new from all over the world. The DebConf team did a great job of making the conference happen and I had a wonderful time, as did everybody else I spoke to. Tincho! There was an official day trip involved, but as we had 2 cars from the UK a group of us rebelled and made our own trip out to do touristy things. We visited the Roman ruins in Merida (photos here), then as we were so close to Portugal we decided to head over the border and found the lovely old town of Elvas. Elvas After the conference, we headed slowly back up to the north coast of Spain, stopping over in Madrid and then Bilbao before catching the overnight ferry back to England. Along the way on that trip we saw a few sights such as the historic city of Pamplona and the "Valley of the Fallen", the monument to people killed in the Spanish Civil War. Valley of the Fallen I got back to Cambridge late on Monday the 3rd, tired but happy. We'd done 2,400 or so miles in the car and several hundred more on the ferry, and we'd all had a great journey. We saw some silly stuff along the way too, and I'll post more about those soon.

    Pablo Lorenzzoni: Code testing coverage

    I like building tests for my code. That is not an old habit, it s just something I ve been developing in the recent months or some few years. No, I am not doing TDD (although that doesn t sound like a bad idea): I just build tests after I code as a safeguard to be sure I haven t broken anything. I suspect there are more programmers like myself than those using tests as part of a TDD (BDD, SDD, etc) approach, but that is just an opinion. Well I just recently became found of code coverage estimates and tools, and rcov is such a nice tool that sometimes I just find myself building tests just to please it. I also suspect there are at least a bunch of people that do the same. Here are the results of the test coverage of one of my projects:
    
    spectra@rohan:~/work/xmpp4r-observable$ rake rcov
    (in /home/spectra/work/xmpp4r-observable)
    rm -r coverage
    Loaded suite /usr/bin/rcov
    Started
    ........................
    Finished in 70.995814 seconds.
    24 tests, 97 assertions, 0 failures, 0 errors
    +----------------------------------------------------+-------+-------+--------+
                       File                                Lines    LOC     COV    
    +----------------------------------------------------+-------+-------+--------+
     lib/xmpp4r-observable.rb                                648     414    61.4%  
     lib/thread_store.rb                                      58      39    87.2%  
     lib/observable_thing.rb                                 187     118    91.5%  
    +----------------------------------------------------+-------+-------+--------+
     Total                                                   893     571    69.4%  
    +----------------------------------------------------+-------+-------+--------+
    69.4%   3 file(s)   893 Lines   571 LOC
    spectra@rohan:~/work/xmpp4r-observable$
    Sure it s tempting to get more of lib/xmpp4r-observable.rb covered, isn t it?

    9 September 2009

    Isaac Jones: Proprietary Bits in Language

    I've been on a Sci-Fi kick. I just finished reading The Dispossessed by Ursula K. Le Guin. I've read a few of her books before, but I really liked this one a lot. It reminded me a of some of Daniel Quinn's ideas. I picked it up sorta randomly because I'd read a couple of her books before. I had it sitting on my desk at work, and a few people said, "Oh, you're reading that? That's one of the best books I've ever read". Of course, I got it used for $3.50 at Powell's. I wonder how they get away with reprinting such books for $15. One interesting aspect of the book is that one of the languages used doesn't really express possessives. So instead of saying, "my book" it was always rendered as "the book". I didn't really notice this until near the end. When I did notice it, was when Le Guin wrote, "the mother" instead of "his mother". This didn't seem quite right to me, because it doesn't represent the relationship between "him" and "mother", but it's not really Le Guin's fault... there's no convenient way to represent this in English without using the possessive form. Perhaps "the mother of the man," but that still seems a bit possessive. I believe this is also true of Russian and Spanish at least. One way to look at it is that humans are so focused on possession that we don't have a convenient way to express relationships. But we are certainly not saying, "The mother that I own." Another way to look at it is that the so-called possessive case expresses more than just possession. In fact, it sometimes means possession and sometimes not. If my mother fell off her horse and I had to rush back to Ohio to visit her, and someone asked me why I was going, I might say, "Because she's my mother!" Not possessive. But clearly, it is sometimes possessive, particularly in romantic relationships. Jealousy is possible in all forms of relationships, but is probably most clear in romantic ones. "Why did you go to the prom with him when you're MY girlfriend?" This reminded me of the "object" formulation in object-oriented programming languages. (Didn't know that I was going to say THAT, did you? Ha!) In a language like Java, you say something like "the car's first wheel's last screw", "car.wheel[0].screw[3]". In Haskell, you also have aggregate types, where one type is composed of others but to access them, instead of saying, "the car's wheel" we say, "there's a relationship between cars and wheels. It doesn't matter what the relationship is, but the function from cars to wheels is called "wheels". So we have "last $ screws $ first $ wheels car". That is, "the last screw of the first wheel of the car"... actually that's clearer than "the car's first wheel's last screw" isn't it? There we go. I've once again proven that Haskell is morally and technically superior to C++. Randomness Here is an article linked from Slashdot about how people are giving up on the internet because of spam and spyware. The article doesn't mention GNU/Linux or Firefox. I just took one of those quizes that you've all been doing, and I was pretty disappointed.

    Pete Nuttall: qmail users.

    I get lots of spam, and the normal techniques get rid of it. I also get lots of DSNs, which are a mail server's way of telling me it accepted my mail but can't deliver it for some reason. DSNs are ok, but suffer from the problem that someone can fake addresses and get the DSNs sent to another address. Spammers, for example. The procmail people like to claim that if a person if filtering spam with procmail, then he/she has already lost. By this they mean that accepting spam at smtp-time is a bad idea. Most systems filter mail at smtp-time, and reject the spam right then. This way, they never take the mail and never have to send a DSN. A simple bit of reasoning might be: Never accept mail unless:
    1. You actually want it
    2. You have somewhere to put it
    Qmail users, on the other hand, appear to have a nasty habit of accepting anything then bouncing it back. Thats nice for the warm friendly internet that qmail was written for (joke) but its less good in these days of spammers. So, if you run qmail, or any mail server, reject at smtp time, don't bounce. The temptation to compose a standard mail saying "I didn't send this mail, stop bouncing like a moron" and binding a key to send it in mutt is great.

    Francois Marier: Twitter tracking clicks to external sites

    Lately, while using the Twitter web interface with Javascript turned on, I've been redirected to a Privoxy error page whenever I click on an external link:
    Request for blocked URL

    Your request for http://twitter.com/link_click_count?url=http%3A%2F%2Fexample.com&linkType=web&tweetId=1234567890&userId=12345678&authenticity_token=f5920ebf56bfa111c54bb9f86814cafa76de00fa was blocked.

    Block reason: Path matches generic block pattern.
    Looking a little closer at the blocked URL, I noticed that for every external link you click, Twitter logs the destination URL, the originating tweet and your user ID.

    So what can you do to opt out of this tracking?
    Disable JavascriptThis is by far the easiest solution. You can simply install an extension like Noscript and use Twitter with Javascript turned off. That's what I do most of the time since the website is mostly usable without it.

    A very fortunate side-effect of using Twitter without Javascript is that you can avoid a number of the worms which propagate through that service from time to time.
    Use Privoxy to disable the link counterFor those times when I have to enable Javascript on the site, I use Privoxy, a great privacy-enhancing web proxy, to alter the Javascript code executed when clicking on external links. This effectively disables the extra tracking and takes me directly to the intended URL.

    First of all, make sure you have this line in your /etc/privoxy/config:
    filterfile user.filter
    then, add this filter to /etc/privoxy/user.filter:
    FILTER: twitter-link-count Disable the Twitter link tracker
    s@twttr\.countClick=function@twttr.dsbldCountClick=function@Uig
    and finally turn this filter on for the affected URLs (/etc/privoxy/user.action):
      +force-text-mode +filter twitter-link-count   
    .twimg.com/.*/javascripts/twitter.js
    Switch to IdenticaIf you want to avoid similar privacy problems in the future, you can also switch to an Open platform which respects your basic freedoms.

    The main contestant in this space is Identica. It's a great alternative to Twitter and has a lot of interesting features (like groups and XMPP integration) which are not yet available on Twitter.

    The StatusNet developers have kindly released their source code under the AGPL and their goal is to build the most open micro-blogging system out there.

    So go over there now and claim your username!

    Next.

    Previous.