July 4th, 2009 by Kevin

This is the first 4th of July that I have ever spent outside of the country. I
will be in Strasbourg, France for most of Independence Day. I’m pretty sure there won’t be any fireworks, no Star Spangled Banner. Therefore, I choose to celebrate the 4th of July via this blog post. I apologize for the deviation from my normal topic, technology.


On this date two hundred and thirty three years ago, 50 men, and the 13 colonies they represented “pledge[d] to each other our Lives, our Fortunes, and our sacred Honor” in order to forge the nation of the United States of America.

The philosophical underpinnings of the Declaration given in the first paragraphs individuality and the allotment of unalienable rights given by the Creator. Principally, these rights are famous “Life, Liberty, and Pursuit of Happiness”. The middle of the document lies out the grievances leading to its ratification. The last paragraph, declares the 13 State’s sovereignty, and severs ties with the King.

One short blog post cannot adequately sum up the philosophy of the American Revolution. So today, I encourage you to read the Declaration of Independence. I encourage you to read the Constitution, the Federalist, and anti-Federalist papers. I encourage you to read the words, works, and biographies of Jefferson, Madison,Washington, and the other founding fathers. I encourage you to read the philosophers that influenced their mindsets and decisions; Edmund Burke, Adam Smith, and Alexis deTocqueville, among others. Consider who these men where, and why what their ideas forged stands as a testament to civil society, prosperity, and humanity itself. I also encourage you to honestly ask yourself the question, would these men agree that “our individual salvation depends on our collective salvation” or that “the Constitution is a living and breathing document” subject to broad, undefined interpretation?

The solution to America’s problems lie not in social and economic experimentation and radical departures from the principles of the Founding, but in a return to the values that created and nourished this nation in the first place, those endorsed by the men who signed the Declaration so long ago.

I have been shaken from complacency by what I see happening to my nation, and I will stand with the Founders. I have no sympathy for leaders who would abandon the individual liberty granted by the Creator and outlined in the Founding Documents, nor do I have sympathy for politicians that insist they can spend the wages of my labor better than I can. To my fellow citizens, I implore that you join in maintaining the Vision of the Founders, a vision of individual liberty, free of undue governmental interference, as laid out more than 200 years ago.

“Prudence, indeed, will dictate that Governments long established should not be changed for light and transient causes…” — The United States of America’s Declaration of Independance

Mixxx-ing Tracks on Linux

July 2nd, 2009 by Kevin

I recently discovered a great app for sharpening up your DJ skills on linux called Mixxx. Its simple to get, there’s no messing with weird audio subsystems like Jack. If you’re on Debian/*buntu, just run
sudo apt-get install mixxx
Here’s a screenshot:

As you can see, its a very clean interface that has a fair amount of knobs and whistles you can use to mix your tracks together. It can use ogg, flac, mp3, m4a for input. As for filtering the sound, it has a per-track 3 channel equalizer towards the bottom, and you can adjust playback speed, and volume.  There are also a few options for “bumping” the track so the beats line up when you switch between songs. Right below where the two tracks are displayed is the fader. Another nice feature is automatic beat detection. You can see it detected the beats per minute on my second track. Its a really nice feature for someone new to mixing (like me), who doesn’t have the developed ear necessary to determine what the bpm of a song is.

Would a professional stage DJ use this program for a live show? I’m not sure, but its great for someone like me who is just trying to learn the ropes, or for someone just looking to mess around with mixing. Give it a try.

Bonus points to whoever can name those two tracks from their waveforms :-)

Much Ado over Mono (Flowchart Included)

June 29th, 2009 by Kevin

If you monitor the free software blogosphere, you will have noticed some debate going on over the inclusion of Mono in some major distributions, and other major distributions specifically barring its use. Here’s my spin on it.

Let’s not debate exactly how good the language is. Let’s not debate how fast, how maintainable, or how efficient Mono may or may not be. That would devolve into some sort of “Ruby v. Python” argument that leads nowhere. I’ve enumerated the possible outcomes I can think of in this flowchart:

There are coders out there who “just like” Mono. Open source is all about having fun with what you’re doing, and to a lot of people out there, they have fun with Mono in a way that makes it rewarding for them to continue working with it. We don’t want to lose them. On the other side, Mono (and C#) does indeed have patent ties to Microsoft. While these patent ties might not amount to anything, they are somewhat of a “legal toehold” into the Linux ecosystem.

My personal final verdict? Mono should be treated by distribution makers as something that is “legally sticky” and should be included much in the sense that audio and video codecs, or flash are “included” in the distribution. For example, the mp3 codec is not distributed in large by most distributions, because its a legally sticky inclusion. Corporations own the rights to the mp3 codec, and distros make it easy to install the codecs, but don’t distribute it. This saves the distros from potential legal snafus. Just because “Mono” designates an ecosystem of programs doesn’t mean it has to treated any differently than “patent-sticky” codecs or plugins. Mono could be something that is easily installed (like flash nowadays, or A/V codecs), and even easily suggested by a GUI for the non-technical users who don’t understand what goes on under the hood. Caution like this won’t hurt the Mono community very much, and insulates Linux distros against potentially devastating patent claims. Seems like a win-win to me.

Summer of Code update

June 23rd, 2009 by Kevin

Image thanks to 2.bp.blogspot.com So, like I briefly blogged about earlier, I’m in the Google Summer of Code for the FFmpeg project. I’m working with my program mentor Vitor Sessak in order to create a flexible filtering audio filtering library that can be used in ffmpeg, or any other program that needs to do audio filtering. The end goal is to have a library that is able to configure audio filters in any way you want to use them. For instance, with the way my project looks, you should be able to take two audio streams, bump up the volume on one of the streams, apply an equalizer on the other, and mix them together, and normalize the combined output (all in real time!). I’m hoping it should be pretty useful once its done.

This week I’ve made some pretty good progress on the whole thing. While not in really a useable state yet, I did manage to chain simple ‘proto-filters’ together, have the filters ingest some data, and run the chain, all good steps toward completion. I still need to complete some format negotiation between the filters, and work on optimizations and data handling. The way its looking, I’m also mildly confident that splitting the filtering off into its own thread would be a pretty easy task, all things considered. That’s pretty far down the road, though.

My next steps are to clean up the programming interface, and refine how the data is passed down the chain, so to avoid performance hits in copying buffers all around. Once that’s done (hopefully by the SoC’s midterm review in a few weeks), I’ll send the code for a general brainstorming thread on the FFmpeg mailing lists to see what the other developers think of it.

Hello from Zurich…

June 19th, 2009 by Kevin

Maybe a few days late, but work sent me to Zurich, Switzerland last week until the end of August to visit and reorganize the datacenters we have there. Its the first time I’ve been to Europe, and like it so far. The 6h time difference took a bit to get used to, but I’ve explored the city a bit and gotten over jetlag. Hopefully since I’m closer to UTC time, I won’t miss the Ubuntu Regional Board approval meeting next week like I did last time :P. I’m impressed by all the trains, trams, and busses in the city, and the overall orderliness of the city, considering how big it is. Its also pretty expensive (eg, $15 for a big mac), but the beer is better and the area is beautiful, so give and take, I suppose. My US phone has also been turned off for the summer.

Thanks to http://www.iswc.ethz.ch/ for the image

I’m living in an apartment in Oerlikon with some coworkers during this time. Its just a short train ride from the city, so if you’re in the area, I’m always willing to go out for a drink, so drop me a line if you’re interested. They also don’t seem to have Mountain Dew or Taco Bell around here, so if you know where I can find either, pointers would be appreciated. :D

Posted in Random | 2 Comments »

« Previous Entries