• Coding,  Random,  Ubuntu

    Programming: Its all about the attitude

    CEO David Barrett wrote an excellent post a few months ago about their hiring practices. While a lot of the article focuses on .NET programming (and has a lot of great points), there’s one excerpt that I was cheering as I read it… See, experience is cheap.  All it takes is time.  Skill is harder, but really only requires hard work — a lot of people can get that.  But attitude.  You either have it, or you don’t.  The right sort of person is so passionate about coding, they can’t be stopped from doing it.  They typically started before high school — sometimes before middle school — and never looked…

  • Coding,  Random,  Ubuntu

    Hacks They Don’t Teach in School… (#1)

    I thought it would be interesting to do a series on Hacks they don’t teach you in university. I’ve thought of quite a few. I like thinking about this, stirs my memories to back when I was just fledging. Today, we’re going to talk about… Debug #define dumps Debuggers like gdb are great, but sometimes you need logging or debugging, and the ability to turn it on and off when you need it. I learned this trick from my coworker Eric P. (creator of Handbrake) back when I was an intern. Obviously, this isn’t a secret, but its something you’ve got to learn at some point if you’re a C…

  • Coding,  Hardware,  Open Source,  Random,  Ubuntu

    Crash Course on Mixing C and Assembly on Linux/x86

    Editor’s Note: This article is designed to get you thinking a bit about assembly on i386 machines, and to provide an example of x86 convention function calling. Its not really comprehensive enough to serve as a thorough tutorial. Look here, or here for a bit more comprehensive introduction. Tinkering with assembly code is a great way to learn about how code compiles and runs, and provides great insight into writing better code. Its probably easier and [frankly] more useful, to insert some carefully crafted assembly code into a C program at just the right place. However, you learn more about the machine, and the way your code is stitched together…

  • Coding,  Open Source,  Ubuntu

    How To Make A Kernel Sandbox using QEMU

    Last post, I described a few reasons why a kernel sandbox might boost your ability to tinker with the kernel. Now I’m going to describe how you can do this! I use a debian virtual disk image, along with QEMU for the virtualization. Why QEMU? Its open source (always a plus), free, and has been used pseudo-extensively by a lot of kernel developers. Furthermore, its controlled by the command line, which makes it easier for the type of development we’re doing. First, we have to make the virtual machine’s system disk image by allocating a hunk of disk space in a big amorphous file. You can do this easily using…

  • Coding,  Open Source,  Ubuntu

    Graphing, Gtk, and Clutter

    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,…

  • Coding,  Compiz,  Open Source

    New Compiz Shatter Effect!

    Digg This! For a while now, I’ve wanted an effect for Compiz Fusion that makes closing windows look like shattering glass. I finally got around to coding it up, and am pretty pleased with the results! Take a look at the demo videos to see what I mean! Also, I took the time to make a debian package for Ubuntu Hardy, so you can easily install it, as well as get the other animations like Helix and Blinds that I’ve coded up! (Instructions for Ubuntu install after the videos) Many medium sized windows shattering: Effect in slowmo : Basically, I split the window up radially from a central point, and…

  • Coding

    Great Development Hacks

    One of the best development hack setups I have is the one I use to develop compiz fusion. When developing compiz, you have the tendency to lock up your screen, a lot. One segfault, and you can loose control of the X server, or just lock up your screen. This make using a debugger all but impossible, as you can essentially be locked out of your mouse and keyboard. Furthermore, you find yourself wasting a ton of time waiting for your computer to reboot after a lockup. This isnt very conducive to a pleasant development experience, so I have a workaround! The drawbacks is that it needs two computers, but…

  • Coding

    My New Compiz Fusion Effects on Compiz’s Gitweb

    The compiz fusion guys gave me a repository on their git servers to host some of the animation effects that I wrote! I compile all of compiz from the latest git and advise that you do too for building these effects. I recommend you follow this official distro-independant guide to install a bleeding edge compiz version. Don’t worry, its not too tough. Anyway, if you want my new effects, install compiz from git and follow these steps. git clone git://anongit.compiz-fusion.org/users/kdubois/extra-animations cd extra-animations make make install (I think this by default installs to ~/.compiz) Once installed, fire up ccsm and look for the plugin called ‘Animations Plus’. Click it, and a…