In my last blog post, I wrote about learning Rust and implementing the RaptorQ (RFC6330) fountain code. I only optimized the library for handling small message sizes, since it was mainly a project to help me learn Rust. However, since releasing it, a number of people have started using the raptorq crate, so I’ve been working on making it more polished.
Shortly after open sourcing my…
I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set about optimizing it. Below is a journal of the steps I took to profile and…
I skipped 17.04, since it didn’t seem to add much that I was excited about, but 17.10 has switched from Unity back to Gnome3, so I wanted to give it a try. I did a fresh install of 17.10 on my Macbook Pro Retina mid-2012 (rMBP 10,1). It continues to simplify the installation process, and seems quite stable so far.
Improved from 16.10 No longer need to use rEFInd Hi-DPI scaling!
I did a fresh install of 16.10 on my Macbook Pro Retina mid-2012 (rMBP 10,1). It seems quite stable so far, and brings a bunch of small improvements over 16.04.
Improved from 16.04 Startup Disk Creator can be used for creating the ISO Installer works more smoothly Nvidia drivers no longer required for good performance Intel power management works correctly Now for the directions!
1. Resize…
I did a fresh install of 16.04 on my Macbook Pro (rMBP). It seems quite stable so far, and brings a number of improvements over 14.04.
Improved from 14.04 No more special ISO (works with the default amd64 image) EFI is setup by default now Nvidia driver is automatically configured Now for the directions!
1. Resize Partitions This step is pretty straight-forward. Just open Disk Utility in…
I recently spent a bunch of time investigating why a Java application was spending a significant amount of time paused, even when garbage collection cycles were only taking ~200ms. The issue turned out to be other safepoints.
For those that don’t know, the VM uses safepoints to perform a variety of internal operations, and they involve pausing every Java thread. Garbage collection is the…
I did an upgrade install of 13.10, so I skipped writing a blog post about it. However, I did a fresh install of 14.04 on my macbook pro (rMBP). It seems quite stable so far, and is mostly the same as 13.10 and 13.04.
Improved from 13.04 Better nvidia support (no more need to set kernel options) Now for the directions!
1. Preparation Just follow steps 1 through 3 in my first guide, to get…
I’ve been using 13.04 (raring ringtail) daily build on my macbook pro (rMBP) for a couple days now, and things have been working great so far. Definitely a major improvement over 12.10, and for a daily build it’s been pretty stable too.
Improved from 12.10 Better modesetting support in the kernel (no more need for nomodeset option) Proprietary Nvidia drivers finally work right New…
I’ve been working on an autonomous hexacopter, which has a Pandaboard ES running Ubuntu on it, and I wanted it to setup its own wifi network in the field for easy ssh access. Turns out this is pretty simple to do, but you need to configure several different daemons to get it working right.
1. Check your wifi card You’ll need a wifi card that supports master mode, if you’re…
Well, 12.10 (quantal quetzal) is out and runs a lot better on a Macbook Pro retina (rMBP) than 12.04. Just installed it on my retina and I think I can finally use it as my day to day laptop!
Improved from 12.04 Better APIC support in the kernel (previous you had to boot with noapic) Special keys on keyboard work (volume control…etc) Better touchpad support (two-finger scrolling works!)…
1. Install rEFIt Download and mount the rEFIt-0.14.dmg disk image. Double-click on the “rEFIt.mpkg” package. Follow the instructions and select your Mac OS X installation volume as the destination volume for the install. If everything went well, you’ll see the rEFIt boot menu on the next restart.
If you run into any problems, you can find more details on their website.
2.…
Adding snapshot versions to your setuptools packages from SVN is easy, using the tag_svn_revision = true options in setup.cfg. However, getting this working for GIT proved to be more difficult, as there’s no built in support. However, I finally settled on a bash script that does the job quite nicely.
now=`date +%s` gitversion=`git describe --long --dirty=-$now | sed…
I started using Eclim a couple days ago, and kept running into Error running command: pyflakes <path to my code>, when my files contained more than one syntax error/warning. After a bit of googling I discovered this bug, which suggests that the version of pyflakes in Debian isn’t compatible with Eclim. Sure enough, removing the the .deb package (apt-get remove pyflakes) and installing it…
I just got my Orangutan SVP-1284, which uses the Atmega1284 processor.
Getting your dev environment setup on Ubuntu is pretty easy:
Download the prerequisites you need (http://www.pololu.com/docs/0J20/2) sudo apt-get install avr-libc gcc-avr avra binutils-avr avrdude
Download the latest Pololu library from: http://www.pololu.com/docs/0J20/3
Extract the library, and install it. From…
Well, I’ve moved on from LEDs, and built a little robot. It’s powered by a 16MHz Atmel chip, and currently you have to hard code instructions into it, but I’m hoping to add wireless control soon.
Your browser does not support the HTML5 video tag.

I decided to learn how to program microcontrollers. SparkFun has some really good tutorials http://www.sparkfun.com/commerce/tutorials.php. So far nothing too exciting, but I managed to compile and load the code onto the microcontroller and make a blinking LED =P
Your browser does not support the HTML5 video tag.