Here’s my talk from PyCon 2013 (I tried to queue it up to where I start (@ 16:14)
A bit more giggley then I intended, but apparently it’s endearing.
If anyone’s actually interested in Hy, check out #hy on irc.freenode.net, star the code @ git.io/hy - it’s actually pretty feature complete. If you want to play with it, check out the magic repl
With GNOME 3, if you want to override a setting with a new site default, assuming your app has been updated to use the new gsettings API and doesn't still use the old gconf one, the best guide on what to do is still Ross Burton's blog post from two years ago, although you can find most of what you need to know buried deep in the GSettings C API specification, which is not the first place I would have looked (lesson learned!)
Note: In this context I'm in the role of systems administrator, rather than distributor/vendor or software author. Whereas you are generally advised to use gsettings itself and not poke at the backend (dconf for Linux), the documentation seems to point sysadmins towards dconf hackery rather than gsettings. However gsettings worked for me, and I got nowhere with dconf direct.
Some caveats worth knowing about:
- Throughout the GNOME documentation and tools, "schema", "key" and "path" are used nearly interchangeably to mean roughly the same thing. (I think a path describes a key within a schema, to be precise.)
- schemas/keys/paths "must start with and end with a forward slash character", except when they mustn't, such as in override files, where you must use a dot, and you don't prefix or suffix the schema/key/path with dots. In fact the command line gsettings tool only accepts dotted schemas, not slash-separated ones.
- Sometimes, people choose XML, and save themselves the trouble of writing a custom parser, but at the expense of ease for humans having to read or write files. gsettings uses XML for schema files, but a separate ini-style format for override files. Everybody wins?
- glib-compile-schemas requires a path argument, so all your schema and override files must be in the same place. Sites have to lump stuff into /usr/share/glib-2.0/schemas alongside distribution files, rather than separated out to (say) /usr/local/share/glib-2.0/schemas.
- It's quite possible to get an override file past glib-compile-schemas which non-the-less is broken. The result is gsettings clients, including the gsettings binary itself, complaining and then segfaulting. Do not rely on glib-compile-schemas to ensure compliant override files.
- glib-compile-schemas would appear to read override files in native byte order, so make sure you name your override so that it sorts after any distribution-provided overrides. E.g., 20_my_gnome-shell.gschema.override to sort after 10_gnome-shell.gschema.override.
Today I had to create 40 guest accounts on our 70-seat Linux cluster, including randomly generate passwords, set up persistent storage on our NFS server, etc.; quickly. As a nice-to-have I also wanted to add some application icons to the GNOME 3 "Favourite Apps" menu for the guests. Would you like to guess which of those jobs was the easier of the two?
This is the result.
non-compressed file is 2.1GB and we've compressed to 0.5GB. If we would use xz, it becomes 0.4GB.
debian.tar.bz2 files are 6.3M, if we would use gz, it becomes 40M, it means that package maintainers' choice is right.
After having used mutt for about a decade, I decided it's time I move away from it, for various reasons that I won't go into here.
I've been evaluating thunderbird^Wicedove now for a few weeks, but I can already see I won't keep using it forever, because I find too many issues with it:
- I can't tell the thing that I never ever ever want to write HTML-formatted emails. While there is an option "Compose messages in HTML format" in the "Account settings" dialog, that only seems to impact the behaviour of the client upon "new mail", not its reply behaviour, forcing me to go to Options->Format and switch it off.
- To make matters worse, the HTML editor and the plain-text editor are not the same dialog. That means it is not possible to switch on HTML formatting if it wasn't on originally (not a problem for me, but I can imagine it being a problem for others), but also that the fugly quoting style (vertical line next to the text) of the HTML editor is not removed when you switch from HTML to plain-text. Further on, it has issues when you want to remove white space, where it will remove entire quoting levels rather than just an empty line. This is horrible, horrible behaviour.
- While there is support for multiple email addresses connected to the same IMAP account, it does appear that there is no support for automatically choosing the right email address based on user-defined rules, such as "which mail folder are we currently in". Having to remember that I need to select the right mail address is tiresome and error-prone; e.g., when I'm in a Debian-related mail folder, I want my mail client to use my Debian mail address automatically. It appears the only way in which icedove can automatically select sender addresses is by checking the recipient list in the To: and Cc: headers for any of its configured mail addresses, and using that to decide what to put in the from: header.
Any one of the above would eventually be enough for me to grow tired of icedove and switch to something else; but the three combined mean that I'll be looking for something else fairly soon.
Suggestions are, of course, welcome.
I've moved (only a couple of blocks from where I was before), and as the new place has Webpass I've reluctantly given up my Sonic.net connection, along with its static IPv4 address and ISP IPv6 tunnel. Hard to resist a 200Mb/s ethernet connection for the same price I was paying for 18Mb/s ADSL2 though.
However that leaves my DGN3500 router somewhat inappropriate for providing my net connection. Freed from the need for an ADSL/cable router I decided it was time to build an all in one house server (I'm a believer in as few always on boxes as possible). I already had a nettop acting as a media box, but wanted to build something that would handle:
- Gateway for the external network connection
- Routing to internal ethernet
- 2.4GHz wifi router
- 5GHz wifi router
- Printer server
- House NAS
- Backup server (syncing externally as well)
- DLNA server
- mpd server
- ATSC based PVR
Probably in that order if it turns out I'm asking too much. The intention is the box is the only one that always needs to be on, so I wanted it to be low power consumption. I also wanted the option of hooking it up to the TV if it turned out to have enough grunt, so the case needed to be something suitable for the living room.
I like Intel's approach to graphics drivers, in particular the existence of Free video acceleration support, so I went with an Intel Core i3-3220T as the processor. It's a 35W Ivybridge processor with HD 2500 graphics, plus I got it for a decent price.
For the case I chose a CFI A2059. There's a local supplier I was able to pick it up from, it has a couple of large fans which helps keeps the noise down while keeping things cool and as I was aiming for backup / file sharing being more important than a media box the 2 hot swap bays tipped the balance away from an AV style case.
The small case limits the motherboard options. I wanted twin GigE ports so the external was entirely separate from the internal (my switch does VLANs so I could have made do with a single port, but with a 200Mb/s connection I didn't really want to share the port). The Gigabyte GA-H77N-WIFI seemed to fit the bill, with the added advantage of a built in WiFi card (an Intel 2230 in a mini PCI-E slot) which leaves the PCI-E slot free for either a TV tuner or a second WiFi card to cover 5GHz.
I maxed out the board with 2 8G G.SKILL DDR3-1600 DIMMs. I normally go Crucial because I've found them reliable, but these were slightly cheaper and available from the same place as the motherboard.
Finally I added a Seagate ST4000DM000 for storage. It actually came from a Backup Plus that Costco were selling for about $20 less than the bare drive sells for. The plan is to add at least another 1T drive to RAID1 the most important bits (or possibly a 2T - it depends which of my existing drives I can tidy stuff off most easily).
Of course it's running Debian and I took the opportunity to try out the RC1 Wheezy image. For extra giggles I did an EFI install; this all worked fine except I didn't end up with grub-efi installed at the end, instead I had grub-pc. I booted with legacy BIOS enabled and followed Tanguy's switch to UEFI boot instructions.
Further notes on software setup to follow...
Review: An Election, by John ScalziPublisher: Subterranean Copyright: 2010 Printing: 2012 ISBN: 1-59606-496-X Format: Kindle Pages: 24
This is another story from the Subterranean Scalzi Super Bundle that probably doesn't justify a full review, particularly since this time it's a short story and not even a novelette, but as with the others it's been independently published on the Kindle (and is still available that way for 99 cents). So by my obsessive internal consistency that matters only to me, it gets a full review anyway.
I was mildly surprised to find that this was actually my second reading, and now vaguely remember that Subterranean had actually sponsored the story's appearance on Scalzi's blog as an advertising experiment. So I originally read the story from Scalzi's blog, and if you don't really want to pay money for it, you still can as well. Along with a couple of ads that appear to have bit-rotted.
The chief feature of An Election is the background: a world in which aliens and humans are intermingled in a political district, going about their lives against a background of rather extreme multispecies diversity. The protagonist, David, decides to run for the upcoming city council special election, despite living in a district that's minority-human and that hasn't seen a human councilor in forty-four years. (David also happens to be a gay man, which goes entirely unremarked in the story and is, in fact, entirely unremarkable given the excitingly diverse characteristics of his alien neighbors. I thought that was a nice touch.) He of course appears to stand no chance, particularly when one of the city bosses decides to run as well, but ends up with a campaign advisor almost by accident and determinedly attempts to connect with his neighbors and earn their votes.
This felt quite typical to me of Scalzi's humor writing. The protagonist is a good-hearted person who gets in rather over his head but is still determined to do the right thing, while not taking anything too seriously. The background humor is never particularly threatening and tends towards slapstick and banter. I found it similar in tone to most of Agent to the Stars, although of course much shorter. As usual, Scalzi's grasp of conversational banter is probably the strongest part of the story; the dynamic between David, his husband James, and his campaign advisor brought several chuckles for me.
This is slight but enjoyable. I wouldn't go out of my way to read it, but it's a good story to toss into a bundle of other work, and I remember it holding my interest when reading it on-line. (Which is rare; usually I fail to finish any fiction I try to read in a browser unless it's extremely short.)
Rating: 6 out of 10
So one of the first things I need to do when I get my apartment today is get the electricity on. I've actually already ordered ADSL, which shows you what I think is more important, but without electricity, there is no Internet...
It would appear that in 2007, Queensland opened up its electricity and gas markets to "full retail competition". According to Energex, they do the generation, distribution, and the retailer handles connections, disconnections, billing and green energy.
I still need to deal directly with Energex for power outages, reporting faulty street lights, requesting a tree that's near power lines be trimmed, and so on.
So if the retailers have no say in what price they're paying for the electricity that's being generated by Energex, I'm struggling to see what their point is. I guess they get to differentiate on customer service, but really, that's it?
It was also really hard to find a canonical list of retailers to choose from. I would have thought that'd be linked off Energex's "Choosing your electricity retailer" page, but no, it's buried in the FAQ.
Now it comes down to a case of doing a comparison between 11 retailers and trying to choose one. Or just going with the first one on the list. It's just electricity, people. It's a utility. I do not want to expend as much time on choosing an electricity retailer as I would my ISP (interestingly, it looks like Dodo has gotten in on the electricity retailing act).
But one could say that an upside of having jet lag and being awake since 3am, is that one has time to comparison shop the 11 electricity retailers, except I won't. I'll just write this blog post instead.
I have heard of one horror story, where a homeowner returned to living in his house, and had a nightmare time with one retailer because the previous occupants had an outstanding debt with that retailer, and he was trying to get a connection going with a different retailer, and lots of hilarity ensued. Except it wasn't hilarious. So I'll have to keep an eye on that.
My current thought is to go with AGL, because
- there is brand recognition there from when I lived in Canberra and used ActewAGL
- it looks like I can sign up online without having to talk to anyone (as soon as my damn mobile phone number ports over to Internode and starts working)
- they're first on the list of electricity retailers
What's pretty crazy is that at no point from quickly skimming AGL's landing page for Queensland pricing is there any indication of kWh or an actual price for anything. There's lots of noise about discounts, and flexibility, and other nonsense, but it seems like the actual cost of energy is so buried, it's incredible. It seems to be all about locking in on a contract, which is somewhat amazing. This is just electricity, but they seem to have turned this into a mobile phone plan type of situation. Amazing.
After more digging, it looks like I can pay 5.5 cents per kWh for 100% green energy. Maybe.
Lisandro Damián Nicanor Pérez Meyer: On the road to Qt 5: Qt 4.8.4 and qtchooser uploaded to experimental
Developers will be interested in qtchooser, the tool that allows to switch between Qt 4 and 5 development apps. It has also been uploaded to experimental.
Of course, all this has been possible thanks to the efforts of the wonderful Qt/KDE team =)
Update: our efficacious FTP masters have already made Qt pass the NEW queue. Thanks a lot!
A few months late, perhaps, but I wanted to mention that my team (Codex) competed, once again, in the MIT Mystery Hunt. The prize for winning is the responsibility of writing the hunt next year. After being on the 2012 writing team I have mixed feelings about the fact that we did not win again.
Although I did not walk away with another coin, I did manage to make an appearance in a multimedia story that the MIT Tech shot about the hunt which provides nice introductions to those who are not familiar with it.
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/R-tmBfZ8CwQ" width="560"></iframe>
It was fun to reflect a little bit on why I find the hunt so fun. I said:
In my day job, I work on a lot of problems that maybe don’t have answers. It’s really awesome to work in a space where if you put in 1-5 hours of mental energy, you will have a solution. Someone has test-solved for it, you know that it’s solvable; you know that there is an answer and that there was designed to be an answer. There’s something really satisfying about being able to do that.
If you’re looking for a team to hunt on next year, feel free get in contact — codex is generally quite open to new members.
Once finished translating Wheezy Release Note to Japanese language.
Before releasing Wheezy, I've prepared to translate Release Note to Japanese. I know, it will be changed some times before it would be really released but do much as we can before it is good thing.
Also I think if we can do time-based update for Release Note - add new info, delete obsolete info, review and finish it (since sometimes some English speakers may not care about translations unintentionally or ignore it to hurry. We translators require some days to do it - to make it with good enough quality, at least. ;)
Well, we're back in Brisbane, for good. Now starts the long and involved process of bootstrapping a new life for myself. Fortunately it's slightly more familiar territory than starting up in the US was.
The tenants in my Hawthorne apartment have agreed to terminate their lease early, and I should get the keys tomorrow. The lease on my Woolloongabba apartment ends on Friday I think, and all of our stuff is scheduled to be delivered there next Monday.
My primary goal is to get my apartment habitable for Zoe and I as soon as possible. That means beds and a fridge, and Zoe's going to need some way of being kept entertained while I'm running around like a chook with its head cut off, which is most likely going to mean a TV and a DVD player.
This week is going to be spent doing a lot of running around. I need to get a car, get a Queensland driver's licence, get the electricity on, get the ADSL on, buy appliances, furnish Zoe's room, furnish my room, heck, furnish the whole apartment, really. It's going to be very full on busy. I don't want to race out and buy anything today, even though the shops seem to be open, because I want to measure up my apartment first.
The day's sole purchase was an electric screwdriver from Bunnings. There will be much Ikea assembly in my future.
Review: Echo, by Jack McDevittSeries: Alex Benedict #5 Publisher: Ace Copyright: November 2010 Printing: November 2011 ISBN: 1-937007-00-6 Format: Mass market Pages: 367
This is the fifth book in the ongoing Alex Benedict series, but reading the previous volumes is generally optional. While there are references to earlier events (and indeed I resorted to Wikipedia at one point to refresh my memory of the plot of the the first book in the series), they aren't critical to the plot. They mostly are background for the reactions of other characters to Benedict and his firm.
Echo opens with the now-familiar prologue, giving us a fleeting and limited glimpse into the mystery that Benedict and Chase Kolpath will be pursuing for the rest of the book. This time, it features the explorer Somerest Tuttle, who has spent most of his life looking for intelligent alien life. (In the far future setting of these books, humanity has spread through a large region of the galaxy but has only encountered one other alien race.) In the twilight of his career and life, a friend who works as a tour guide for astronomical tours comes to him with a story about something she saw. What, we don't know, and won't for most of the book. But, whatever it is, Tuttle never goes public with it, which is directly contrary to what everyone would expect him to do with any news about alien life.
Benedict and Kolpath get involved some years later, after Tuttle's death, when a stone slab with unknown markings that was part of his estate shows up on the future equivalent of Craigslist, free to the first person who will haul it away. Benedict finds that interesting enough to go pick up, but then is really hooked when someone else goes to considerable lengths to try to make the slab disappear before anyone can get a good look at it. This, slowly, leads into poking around Tuttle's life and connections, the star tour industry, and the possible origins of the slab.
If you've read any of the previous books in this series, Echo is more of the same, and I mean that in a good way. I think McDevitt is at his best when writing this sort of cross between scientific puzzle, mystery, and non-military adventure, full of people who care deeply about knowing and understanding things and don't like to be thwarted in their efforts. There is McDevitt's trademark halting and red-herring-ridden investigation that succeeds in being engrossing and compelling, plenty of opportunities to guess what's really going on (a bit easier this book than in some others), and a bit of action that I thought was better-handled than the somewhat strained action scenes of The Devil's Eye. The book moves right along, despite multiple reversals in the progress of the investigation, and the final revelation does indeed justify the strange behavior of the various people Benedict encounters.
As with McDevitt in general and this series in particular, there is one caveat: the astronomical details are often interesting, but the world building in general is not terribly believable. Despite supposedly taking place millennia into the future, the society is a straight transplant (projection would imply more change than exists) of middle-class American culture, with bonus air cars, space ships, and slightly better computers. Similarly, alien ecologies suffer from severe Star Trek problems: all the planets feel like copies of Earth with a few minor tweaks. This just goes with the territory, and if you're up to the fifth book of the series, you've probably gotten used to it, but the unrealistic lack of divergence is actually used as a plot point here. That strained my suspension of disbelief a bit.
That said, this sort of extremely familiar social context does give the books an oddly calm, comfortable feeling. It's tempting to describe McDevitt as cozy science fiction. There's a bit of danger, a bit of suspense, but one is fairly certain that everything will work out in the end and the reader will leave the book knowing the solutions to most of the mysteries raised without having to work very hard at understanding the society or the puzzle. If that's what you're in the mood for (and I was when I read Echo), McDevitt delivers reliably.
If you like the Alex Benedict series in general, recommended, as this is an excellent example of the type.
Rating: 8 out of 10
After moving from a hard drive to an SSD on my work laptop, I decided to keep the hard drive spinning and use it as a backup for the SSD.
With the following setup, I can pull the SSD out of my laptop and it should still boot up normally with all of my data on the hard drive.Manually setting up an encrypted root partition
Before setting up the synchronization between the two drives, I had to replicate the partition setup.
I used fdisk, cfdisk and gparted to create the following partitions:
Device Boot Start End Blocks Id System /dev/sdb1 * 2048 499711 248832 83 Linux /dev/sdb2 501760 500117503 249807872 5 Extended /dev/sdb5 503808 500117503 249806848 83 Linux
and then loosely followed these instructions to create an encrypted root partition on /dev/sdb5:
$ cryptsetup luksFormat /dev/sdb5 $ cryptsetup luksOpen /dev/sdb5 sdb5_crypt $ pvcreate /dev/mapper/sdb5_crypt $ vgcreate akranes2 /dev/mapper/sdb5_crypt $ vgchange -a y akranes2 $ lvcreate -L247329718272B -nroot akranes2 $ lvcreate -L8468299776B -nswap_1 akranes2 $ mkfs.ext4 /dev/akranes2/root
Finally, I added the new encrypted partition to the list of drives to bring up at boot time by looking up its UUID:
$ cryptsetup luksUUID sdb5_crypt
and creating a new entry for it in /etc/crypttab.Copying the boot partition
Setting up the boot partition was much easier because it's not encrypted. All that was needed was to format it and then copy the files over:
$ mkfs.ext2 /dev/sdb1 $ mount /dev/sdb1 /mnt/boot $ cp -a /boot/* /mnt/boot/
The only other thing to remember is to install grub on the boot loader of that drive. On modern Debian systems, that's usually just a matter of running dpkg-reconfigure grub-pc and adding the second drive (/dev/sdb in my case) to the list of drives to install grub on.Sync scripts
To keep the contents of the SSD and the hard drive in sync, I set up a regular rsync of the root and boot partitions using the following mount points (as defined in /etc/fstab):
/dev/mapper/akranes-root / ext4 noatime,discard,errors=remount-ro 0 1 /dev/mapper/akranes2-root /mnt/root ext4 noatime,errors=remount-ro 0 2 UUID=0b9109d0-... /boot ext2 defaults 0 2 UUID=6e6f05fb-... /mnt/boot ext2 defaults 0 2
I use this script (/usr/local/sbin/ssd_boot_backup) for syncing the boot partition:
#!/bin/sh if [ ! -e /mnt/boot/hdd.mounted ] ; then echo "The rotating hard drive is not mounted in /mnt/boot." exit 1 fi if [ ! -e /boot/ssd.mounted ] ; then echo "The ssd is not the boot partition" exit 1 fi nice ionice -c3 rsync -aHx --delete --exclude=/ssd.mounted --exclude=/lost+found/* /boot/* /mnt/boot/
and a similar one (/usr/local/sbin/ssd_root_backup) for the root partition:
#!/bin/sh if [ ! -e /mnt/root/hdd.mounted ] ; then echo "The rotating hard drive is not mounted in /mnt/root." exit 1 fi if [ ! -e /ssd.mounted ] ; then echo "The ssd is not the root partition" exit 1 fi nice ionice -c3 rsync -aHx --delete --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/boot/* --exclude=/mnt/* --exclude=/lost+found/* --exclude=/media/* --exclude=/var/tmp/* --exclude=/ssd.mounted --exclude=/var/lib/lightdm/.gvfs --exclude=/home/francois/.gvfs /* /mnt/root/
To ensure that each drive is properly mounted before the scripts run, I created empty ssd.mounted files in the root directory of each of the partitions on the SSD, and empty hdd.mounted files in the root directory of the hard drive partitions.Cron jobs
The sync scripts are run every couple of hours through this crontab:
10 */4 * * * root /usr/local/sbin/ssd_boot_backup 20 0,4,8,12,16,20 * * * root /usr/local/sbin/ssd_root_backup 20 2,6,10,14,18,22 * * * root /usr/bin/on_ac_power && /usr/local/sbin/ssd_root_backup
which includes a reduced frequency while running on battery to avoid spinning the hard drive up too much.
We've done all we can so far: Debian Women, the Diversity Statement, the anti-harassment contact, gender neutral language, lots of education all round, but we still suffer from a strong gender imbalance in Debian.
I think that the reason is that the majority group of cisgender men in the project, although they don't actively work /against/ the rest, still have /no incentive/ to be inclusive, and generally do not understand what bearing a female name online is like.
I think it is about time we addressed that, and after a lot of thinking and discussing with many other concerned debianers, I think I have just the right proposal, which is twofold.
The first part is this: since the goal is to have an equal gender perception in Debian, we can just decide to only approve one obviously-male-named DD for every obviously-female-named one. That's right: no new obviously-male-named DD unless an obviously-female-named DD has just been approved.
It may sound like affirmative action gone wild, but please stop a moment to think about it: this would create precisely the right incentive for the currently dominant group of developers to be inclusive! People shouldn't just assume they can get a Debian account regardless of what happens around them. We already ask NM candidates to fix RC bugs and, well, gender imbalance should be treated as an RC bug, and everyone should feel compelled to join the effort to fix it!
Now, of course since there currently are many male names in NM but not a single female name, it would not be reasonable to just stop the flow of new developers into the project: that would just have the effect to make us starve on personpower.
So here is the second part of the proposal: the one-female-name-one-male-name policy will not be enforced for, say, a year. But during this year, everyone currently in NM or joining NM will be asked to adopt a female identity.
Crazy? No, genius! It's about time people understood what it means to get advances in private every time they make a public contribution! What better way than just trying it out for themselves?
On top of that, as more and more female names appear in Debian changelogs, fake or not, people will finally start to understand that it does not matter what name is used to sign the contribution, but the contribution itself.
I don't know if this will give us a community where people realise female or male contributions are equally valuable, which is what I hope, or a community where people will think that everyone is a cisgender man even if they have female names. In the end, really, it does not matter. Either way, we finally get to have a community where everyone is /guaranteed/ to be treated the same.
But gender imbalance isn't the only imbalance we have in Debian. People accrue a reputation over time, good or bad, and this reputation tends to stick on you for years, regardless of how you may change, for better or for worse. When we evaluate the merit a contribution, we should not be biased by the reputation of the contributor! How can new contributors be taken seriously otherwise? I believe we are loosing lots of fresh, good ideas this way. And how much damage could be wrecked on the project by a well-respected contributor, like a Debian Account Manager, who is having a funny day?
I think we can address this just as I propose to address gender imbalance: let's swap identities from time to time, like it usually happens with nametags at the end of Debconfs. Let's see gregoa upload a patched versions of python3.2, and enrico upload a new upstream version of eglibc! See if we won't finally have some peer review at last!
Reputation and real identities have many merits, but we have come to rely too much on them, and it is hurting us. It is time we did something about it, before it is too late!
seems like the release is imminent, at least I hardly find anything to work on anymore. so this week's "report" contains just an upload for one old bug:
- #697221 – motion: "motion: No longer has support for mysql"
add some info to the bug report, then add a version to the build-dep and upload to DELAYED/1
Russ Allbery wrote an informative post about how to determine which charities are worth donating to . He has a link to another article about the charities to which he donates and concentrates on ways of analysing the effectiveness of charities. So someone who has different ideas about which types of charity are worthy of donation could still learn a lot from his post.
Adam Green wrote an interesting article for The New Yorker about Apollo Robbins who is one of the world’s best pick-pockets . Apollo picks pockets as a magician to entertain people and always returns what he steals. Now he is working with neuroscientists who are devising experiments to determine why his tricks work.
Rick Falkvinge wrote an insightful article describing the way that the copyright monopoly is in direct opposition to the freedom to make contracts . It’s a good rebuttal of a common argument in favor of copyright law.
Seth Godin gave an interesting TED talk about the problems with the education system, how and why it teaches conformity and little else . One of his suggestions for improvement is to have students spend their evenings watching lectures by experts and class time asking questions. He also says that everything should be open book and that there is no value in memorising anything – it’s a bit of an overstatement but it’s essentially correct.
Cory Doctorow wrote an interesting article for The Guardian about positive externalities and copyright law . I think that he didn’t choose the best way of framing this issue, but he makes some very interesting points anyway.
Andrew Norton wrote an interesting article about how to reduce corruption in the police force and other government agencies . A large part of this is based on making them subject to the same laws as everyone else, which seems to be a radical idea.
Emily Oster gave an interesting TED talk about the factors that determine the spread of AIDS in Africa . It’s quite different to what you probably expect.
-  http://www.eyrie.org/~eagle/journal/2012-12/006.html
-  http://www.newyorker.com/reporting/2013/01/07/130107fa_fact_green
-  http://tinyurl.com/apovrka
-  http://www.youtube.com/watch?v=sXpbONjV1Jc
-  http://tinyurl.com/a7rutft
-  http://tinyurl.com/a227fvg
-  http://tinyurl.com/a5zo6tn
-  http://tinyurl.com/3f7283s
For one of my classes, the final project is to work on a personal project for four weeks. Since I have never done mobile programming before, I decided I would use this project as a chance to teach myself the basics of Android development. Paul Tagliamonte recently blogged about a Google Summer of Code project idea for a Debian Android application. It was this post that motivated me to create a Debian Android application for my final project. We are only in the middle of week one, but my plan is to have at least a basic BTS and PTS interface done by the end of the project. Then, depending on a few things, I hope to turn it into a Google Summer of Code project or simply continue developing it on my own.
As I mentioned, I am only a few days into the project. One of the first hurdles I encountered was interacting with the SOAP interfaces available for the PTS and BTS. There are a few examples available on the wiki, but there are not any for Java. A Google search also failed to return any clear and simple results. As a result, I decided I would create a Python script that would accept requests from the Java Android application via a REST API and pass them on to the SOAP API before returning the result as JSON. Before I could finish writing the script, Paul mentioned that he had already written a similar program a few months ago. I immediately stopped working on my script and began preparing a patch for Paul's program to add support for some missing PTS SOAP functions as well as the entire BTS. After a few hours, I had the ability to query the PTS and BTS via a REST API from Java.
While I normally prefer to use VIM for my programming, I decided to follow Google's recommendation and use Eclipse. I was able to follow their guide to get the SDK setup and a simple demo application running. One of the few hurdles I encountered was when I wanted to make web requests. Due to the ability for such requests to stall, you are required to perform them in a separate thread. This only becomes aparant when you try to test your application on an actual device; the emulator will happily run the process in the main thread. Regardless, I was eventually able to modify the demo application to allow me to make requests to my Python REST server and then parse and display the result.
Here are some screenshots of the application running.
If you have any feature suggestions, questions, or comments, feel free to send me an email (email@example.com). The source code for the Android application is currently not available, but I plan to put it up in a git repository sometime in the near future. The source code for the Python script that provides a REST API to access the PTS and BTS SOAP interface is available on GitHub.
Recently, I was wondering how many Debian Developers are actively working on RC bugs in some way or another in the time period of the last release (squeeze) to now (shortly? before wheezy).
I therefore grabbed the mailing list archives of debian-bugs-dist@ from gmane, used only those messages whose X-Debian-PR-Message header matches an RC bug (list retrieved from UDD) and then attributed the message counts to the appropriate Debian Developer.
I am sure that there are subtle mistakes in the data I retrieved and that there most likely is a better way to achieve the same results, but this is only to get a trend and should be good enough for that.
So, it turns out that 514 different Debian Developers have sent messages regarding RC bugs since squeeze. That’s about half of our 985 total active Debian Developers.
I would love to show a good histogram of the actual message counts (not sure how well received showing the raw data is…), but I suck at visualizing such data in a compact way. Is there anyone familiar with R (or other free data visualization tools) and willing to help? I can send you the CSV file, just send me an email to stapelberg@.
Four years ago I started using Goodreads to maintain the list of books I've read (which had lived in a flat text file for a decade+ before that).
Now it's been aquired by Amazon. I doubt it will survive in its current form for more than 2 years. Anyway, while Goodreads has been a quite good way to find what my friends are reading, I've been increasingly annoyed by the quality of its recommendations, and its paucity of other features I need. It really doesn't seem to help me keep up with new and interesting fiction at all, unless my friends happen to read it.
So I looked at LibraryThing. Actually, I seem to have looked at it several times before, since it had accounts named "joey", "joeyh", and "joeyhess" that were all mine. Which is what happens to me on sites that lack Openid or Browserid.
Digging a little deeper this time, I am finding its recommendations much better than Goodreads' -- although it seems to sometimes recommend books I've already read. And it has some nice features like tracking series, so you can easily tell when you've read all the books in a series or not. The analytics overall seem quite impressive. The UI is cluttered and it seems to take 5 clicks to add and rate a single book. It supports half stars.
Overall I get the feeling this was designed for a set of needs that doesn't quite match mine. For example, it seems it doesn't have a single database entry per book; instead each time I add a book, it seems to pull in data from primary sources (library of congress, Amazon cough) and treat this as a separate (but related) entry somehow. Weird. Perhaps this makes sense to say, librarians. I'm willing to adjust how I think about things if there's an underlying reason that can be grasped.
There's a quite interesting thread on LibraryThing where the founder says:
Don't say we should open-source the code. That would be a nightmare! And I have limited confidence in APIs. LibraryThing has the book geeks, but not so much the computers geeks.
I assume that the nightmare is that there would be dozens of clones of the site, all balkanized, with no data transfer, no federation between them.
Except, that's the current situation, as every Goodreads user who is now trying to use LibraryThing is discovering.
Before I ever started using Goodreads, I made sure it met my minimum criteria for putting my data into a proprietary silo: That I could get the data back out. I can, and have. LibraryThing can import it. But the import process loses data! And it's majorly clunky. If I want to continue using Goodreads due to its better UI, and get the data into LibraryThing, for its better analytics, I have to do periodic dumps and loads of CSV files with manual fixups.
This is why we have standards. This is why we're building federated social networks like status.net and the upcoming pump.io that can pass structured data between nodes transparently. It doesn't have to be a nightmare. It doesn't have to rely on proprietary APIs. We have the computer geeks.
Thing is, sites like GoodReads and LibraryThing need domain-specific knowledge, and communities to curate data, and stuff like that. Things that work well in a smallish company. (LibraryThing even has a business model that makes sense, yearly payments to store more books in it.)
With free software, it's much more appealing to sink the time we have into the most general-purpose solution we can. Why build a LibraryThing when we could build something that tracks not only books but movies and music? Why build that when we could build a generic federated network for structured social data? And that's great, as infrastructure, but if that infrastructure is only used to build a succession of proprietary data silos, what was the point?
So, could some computer & book geeks please build a free software alternative to these things, focused on books, that federates using any of the fine APIs we have available? Bear in mind that there is already a nice start at a comprehensive collection of book data in the Open Library. I'd happily contribute to a crowd funded project doing this.
Step one: building OpenRC, and force it with a big hammer to replace sysv-rc.
A few minutes later, with even more hacks, we have a more decent boot process which uses Gentoo boot scripts (amazingly, most of them do work out of the box!):
Notice the udev script, which is hacked from the Debian sysv-rc, still has the color scheme of Debian, while the other scripts are just drop-ins from Gentoo.
Of course, this is only a big hack to have the above. There is only so much you can do in a 4 hours hacking session. It will need more serious work to make it a viable solution (like finding a way to upgrade smoothly and allow the first reboot to shutdown processes which aren’t running using cgroup, converting existing init scripts automatically, hooking into update-rc.d, etc.). Though the proof of concept is there: the “rc-status” command works, we have cgroups working, and so on.
Thanks to Patrick Lauer for spending with me this fun afternoon, hacking OpenRC in SID.