Author Archives James Vasile

Free the Cyborgs!

We stand today at the brink of a cyborg revolution. We’ve been implanting little machines (e.g. pacemakers) in people to improve on their natural states for a while now, but more and more the machines keep shrinking and their uses keep growing. Every day, more and more people are becoming less and less human.

This is exciting!

It’s also scary. There are two main ways to make software: You can go closed source and get code riddled with bugs because only a few people ever saw any given section of code. Or you can write your code in the open source way, which has proven to reliably generate the most robust software around. I don’t know about you, but I’d want my pacemaker to be described by words like “robust” and “reliable” rather than “bug-riddled”.

The cyborg revolution is just beginning. It started with remedial implantable medical devices and minor (cosmetic) enhancements, but real enhancements like cochlear implants are here and poised to explode. As the chips gets smaller and faster, we’re going to keep finding new ways to stick them inside people. You can read more about why the coming golden age of cyborg tech needs to be open and free in an article by Karen Sandler of SFLC, who is a cyborg herself and knows what she’s talking about.

Gale Brewer at Debian Day

Gale Brewer, Former Chair of the New York City Council Committee on Technology will be speaking at Debian Day on Sunday, August 1 at 4PM. Gale has been a great friend to those of us who prize freedom in technology, and has used her office to do things like pressure the city to release governmental data and preserve net neutrality. She’s going to give us the view from the trenches, and I’m excited to hear what she has to say.

If you want to hear her speak, come to Debian Day. Registration is free.

Debian Day at DebConf!

Debian Day will be on Sunday, August 1, 2010 from 10AM to 6:40PM at Columbia University. They’ve got a
great lineup of speakers.

After ten editions in nine different countries spanning four continents, and for the first time in the United States, the Debian project is holding their annual Debian Developer conference, DebConf, at Columbia University in New York City. DebConf includes Debian Day, when it opens its doors to the general public. Debian Day kicks off DebConf, is free of charge, and open for everybody interested in Free Software. During this event, there will be a full day of talks on several subjects such as free software in government, design and free software, free software advocacy as well as string of talks about the Debian project and operating system.

The Debian Project is an association of individuals who have made common cause to create a free and open operating system. This operating system that we have been creating is called Debian GNU/Linux, or simply Debian for short. Every year, DebConf allows new and existing Debian project participants from around the world to assemble, share knowledge and ideas, make collaborative contributions to Debian, build tighter community bonds and improve communication within the project.

The event is free but registration is required. To register, please send an email with intent to attend to: debianday@debconf.org If you are registered for DebConf, you do not need to register for Debian Day.

Beach Reading

I’m headed on vacation next week and am borrowing Ian’s ebook reader so I can soak up some text on the beach. MIT Press has a lot of PDFs of their books available for download. The only problem is there’s no good list of just what books have PDFs and which ones don’t. Google to the rescue!

I’m really looking forward to Street Fighting Mathematicians (which I also own on paper) and Perspectives on FOSS.

BookLiberator in Forbes


Ian and I demoed our design-complete prototype for Forbes, and they did a good writeup on the device. This will help get the word out. Tell your friends, warn your enemies: BookLiberator is coming, and it will scan your books!

We’re excited that these prototypes are shippable. All we need is to nail down the manufacturing process and we’ll be shipping these in time for the holidays!

I’ll be at HOPE

Looks like I’ll be talking about the Freedom Box at HOPE. Sunday, 2pm.

The world has finally realized that “spying all the time” is too high a price to pay for social networking platforms like Facebook. Now it’s up to the hacker community to respond and build a free software social networking distribution to empower end users and help them reclaim their privacy. Software Freedom Law Center attorney James Vasile will talk about the progress of the “Freedom Box” box project and how the hacker community can get involved.

I’m delivering the talk, but not originating its ideas. I’m just carrying water for Eben Moglen.

Free Software, Speech and Banning Offenders

Free Software projects publish more than just software. They usually publish mailing lists, blogs, forums, and planets, all of which facilitate speech among the community. But providing stages for people to speak to each other comes with downside: people say stupid stuff on the internet.

By stupid, I mean the stuff that makes them regret how easy it is to hit send, the stuff that makes them glad their grandmothers don’t use the internet, the stuff that they would never say face to face without body armor. This is the stuff of incitement and defamation. These words born of anger and pseudonymity spill out on the screen and people quite naturally worry that the legal consequences of saying a stupid thing will attach to those who provided the forum in which it was said.

If you are lucky, your project will grow to attract enough passion that you will face such questions. Before you go off banning people, rewriting the historical record, or shutting down your forums, there is something you should read: the EFF rundown of the law that provides some protection in these circumstances. Strangers posting on your forum are not terribly likely to trigger giant liabilities for your project.

Now that you’ve read EFF’s wisdom, take the next step. Realize that the problem here is less legal than social. People who abuse your forums in this manner are not your friends. And when dealing with any member of the community who is not your friend, feel free to ban, rewrite the historical record (there really isn’t any good reason to preserve offensive material), or turn off communication channels sapped of productivity by rancorous primadonnas.

Projects are never quick enough to ban people. Freedom of expression is good, but the guy (it’s always a dude) who occasions hand-wringing and internal reflection about the edges of community standards is a distraction and a cancer. He is a net drag on your project’s work. You should cut him loose, if only to prevent further retardation of your efforts. Your project is not a pleasure cruise. Anybody who isn’t rowing in sync with the team must be tossed overboard. Carrying his weight isn’t fair to the crew. And bans should be permanent. Reconsidering people six months from now is just letting them rise from the deep to steal your precious time, energy and productivity from beyond the grave.

Here’s where I deliver the tough love: your project is too nice. Stop letting immature, self-styled gadflies take advantage of your good, open nature.

Audio File Duration Inaccuracies

My music collection is a mess of jumbled formats, inconsistent naming conventions, and incomplete (or inaccurate) tags. I am writing a script to rectify that, and discovered in the process that finding the duration of an audio file is not trivial in Python.

It’s quite easy to get a library to give you a duration. The problem is that number might not be accurate.

Most audio files contain metadata. For ease of use, that metadata includes things that could be calculated. For example, the byte rate is calculable from the channels, bytes and bitrate, but many media formats include it in metadata for convenience.

The problem arises when the metadata is wrong. This can happen, for example, when a file is truncated. Maybe the file thinks it is three minutes long, but because the program that generated it crashed, only two minutes of data got written. If you rely on the metadata, you will think the file is longer than it is.

Relying on metadata is lunacy, and it seems a lot of libraries are lunatics. I shouldn’t complain about inconsistencies in this craziness, but… they are inconsistent! Mutagen1, for example, will accurately report the duration of a truncated MP3, but not an MP4.

Even shelling out to well-regarded tools such as ffmpeg fails. Capturing stderr from “ffmpeg -i” will not accurately tell you how long an AIF is. Fortunately, ffmpeg is very good at quickly converting AIF to WAV, and ffmpeg does the right thing with WAV files. It’s inefficient, but getting the duration right would be trivial to implement.2 Perhaps inaccurate file durations don’t prevent ffmpeg from getting its job done.

Tools3 and file formats4 abound, but I still don’t know how to accurately time an MP4. I’m tempted to drill down into the libs to see how far this problem goes, but I

Fn 1: The MPEG Audio Decoder library (pymad) will also give accurate times on MP3s, but rounds to the second. Mutagen is slightly more accurate.

Fn 2:I filed a bug against ffmpeg.

Fn 3: As far as I can tell, few program can accurately time all their input formats. Totem can time AIF but not M4A, for example. Faad, which only handles MP4 and AAC, cannot time MP4. I didn’t test it with any AAC files.

Fn 4: I didn’t test any ogg files because I don’t have any. As far as I can tell, the purpose of ogg is to encrypt a media file so it only works on your linux box. It’s like DRM working for freedom instead of against it.

Fn 5: Yes, this is a blog post about minor inaccuracies in audio file duration, and yes it contains footnotes and yes I’m disappointed there’s no nerd merit badge for blogging with footnotes.

No Account Google Groups

To me, a Google Group is just an email list. It’s a shorthand email for reaching a group of people. But just like Google thinks of email as a conversation, it conceives of a group as a relationship. Google wants to associate an identity and let you pick options, and it has no easy way to let you direct mail to one of several addresses. Plus, multiple Google accounts that don’t easily map to email addresses can make things even more confusing.

If all you want is to join the email list, and and to forgo all the fancy stuff Google layers on top. Fill in this form, click submit and Google should do the right thing from there.





A note about privacy: this form is just a bit of javascript that redirects you to Google. It doesn’t show me your email address, so I don’t store your information. After you give your data to Google, however, you’re on your own.

Thanks to Onlygizmos.com for the url construction instruction.

Distributed Data Haven

There is a long-standing geek fantasy of finding a country willing to be the world’s data haven. In return for robust privacy and freedom laws, the country gets to be the in the business of managing the world’s disfavored data. So far, no country wants the job, and efforts to plant a flag on this issue have utterly failed.

If no one country is willing to race to the bottom, data haven boosters could do what every other technology is doing right now: go distributed. We might never convince Kinakuta to be our data Switzerland, but we don’t need to. We have DRM-busting in Poland. We have whistle-blowing in America (and mirrored worldwide). We have private routing in Sweden. And now we have file-sharing in Spain.

These pieces form a private way to free and share data, all using common tools. It’s not perfect and it’s not easy, but you don’t have to wait for the future. Right now, you could cobble together enough parts to broadcast and share almost anything you want with almost anybody who will listen.