I like to see the contents of my home directory on my desktop background, it just makes a little more sense to me from an organizational point of view. All the important things are in my home folder, so why not have them displayed right on the Desktop as icons?

Gnome has a gconf setting you can modify to do this. XFCE4 takes a bit of conf file modification to get this working though.
Open the file ~/.config/user-dirs.dirs.
Change the line:
$XDG_DESKTOP_DIR=$HOME/Desktop
to
$XDG_DESKTOP_DIR=$HOME
and restart your session.

Your home directory now has all your background icons, instead of whats in ~/Desktop!

Pandora Goes Pay

July 8th, 2009 by Kevin

The popular music streaming site Pandora radio,  has buckled under the streaming radio royalty rates imposed by law through the lobbying of the labels, and has been forced to limit the site’s usage to 40 hours a month. Users who use the service more than this will have to pay a surcharge of about $1. “Pandora One” subscribers ($36 per year) will not be affected by the limits.

The notification, sent to the inboxes of current Pandora users, says that this will only affect 10% of the users. I love the service, and probably fall into that 10% category. I may just have to shell out the cash to keep using it.

Personally, I love Pandora and I was pretty disappointed to find that message from their CEO in my inbox this morning. I cannot blame the site though. They’re doing a great job, and its unfortunate that external business and political pressures have colluded to stifle freedom and creativity that comes from innovation like Pandora has always displayed. Pandora chose to do introduce these necessary fees in a “classy” way, if you will, by my estimate by maintaining their free service for most of their users.

Mark one more in the Big Content’s “Evil Victories” column.

Posted in News | No Comments »

Let’s be honest, how often do you ever use caps lock? Hardly ever. Personally, I can count on one hand the number of times I’ve ever really found caps lock to be worth the trouble. Yet its right there, millimeters away from the “A” key. Such prime real estate going to waste.

Conversely, how often do you use Escape? I use it all the time. Yet its way the hell up there on the keyboard. You have to remove your fingers from the home row, and go hit the Escape button, and reorient your hand every time you want to hit Escape.

In the name of efficiency (and the little finger on my left hand) I deactivate caps lock all together and force the caps lock key to work as the “Escape” key. Its one keyboard hack I can’t really live without, especially as a vim user. You can make the switch easily on linux. Just run
xmodmap -e 'clear Lock' #ensures you're not stuck in CAPS on mode
xmodmap -e 'keycode 0x42=Escape' #remaps the keyboard

With this hack, your caps lock key will work as an escape key, and your hands just became a little less prone to carpal tunnel syndrome.

Funny RFC’s

July 4th, 2009 by Kevin

RFC’s (Requests for Comments) are important technical documents. They precisely define the details that make the Internet possible. There’s an RFC for TCP. There’s an RFC for http. There’s an RFC for rtp. You get the point.

What most people don’t know are that there are some pretty humorous RFC’s out there if you look for them. (in contrast to IEEE, who are way  too serious to make jokes) :P.

Here’s my favorite joke RFC’s:
  • RFC0968 “Twas the night before start-up”
    A standardized adaptation of the classic poem.
  • RFC 1882 “The 12-Days of Technology Before Christmas”
    Another Christmas inspired RFC, this one is the classic carol, adapted for engineers.
  • RFC3251 “Electricity over IP”
    How you can use the IP protocol to distribute electricity.
  • RFC2324 “Hyper Text Coffee Pot Control Protocol (HTCPCP)”
    Because, who wants to get up to make a pot of coffee?
  • RFC2795 “The Infinite Monkey Protocol Suite (IMPS)”
    The protocols an infinite amount of monkeys sitting at an infinite amount of typewriters should follow in order to produce the works of Shakespeare.
  • RFC748 “Telnet randomly-lose option”
    Telnet’s a bit before my time, but its pretty funny anyways.
  • And my all time favorite…
    RFC1149 “A Standard for the Transmission of IP Datagrams on Avian Carriers”
    The internet, 19th century style. All you need is a piece of paper, and an extinct bird. :D

Its nice to know some engineers have a sense of humor. I’m sure there’s more of these out there, but these are just a few I found from trolling the RFC Index today. Let me know if you find more! :

Happy Birthday, America

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

Posted in Random | 1 Comment »

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 »

Graphing, Gtk, and Clutter

June 4th, 2009 by Kevin

A day or two ago, I was doing some calculations and plots in octave the other day, and took a break to check my blog stats. It occurred to me that the animated flash chart that appears on my blog was heads-and-shoulders prettier than the simplistic 2d plotting done with gnuplot. Gnuplot is not antialiased, not animated, and doesn’t support alpha blending, whereas my blog stats do.

Like any good open source coder, I decided that I could change that. I made a custom Gtk widget that uses clutter and cairo to produce animated 2d plots. The entire thing is an embeddable clutter scene with its actors rendered by cairo, which means that its antialiased, animated, and can do alpha-blending. It still needs to have its API polished up so its usable by developers, but I’m pretty happy with how the plot turned out. Check out the video

Planet Users:click here to see it in action, or, just check out this screenshot:

A coder can add this plot easily with code like this:
GtkWidget *grph;
grph = gltz_graph_new ();
gltz_graph_add_pts (grph, 10, 20, TRUE);
gltz_graph_add_pts (grph, 50, 110, TRUE);
gltz_graph_add_pts (grph, 100, 0, TRUE);

You’ll have to figure out how to pack and expose the widget into the window yourself, but if you’re a GUI programmer, you can probably see how easy it is to throw this in your app.

Its still a work-in-progress, and I need to work out a better coordinate designation scheme for the users. (right now, the points are just placed in x-y position, with the UR corner being 0,0) I also need to provide some mechanisms for user customization of the animation and of the appearance, but those are small issues. I’ll publish the code in a few days, once its not ugly anymore :D.

« Previous Entries Next Entries »