Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment

why you must use pinned transfers to compare CUDA device bandwidth

correct me if i’m wrong, but NVIDIA’s bandwidthTest program included in the CUDA SDK takes single timing measurements and reports them. if there’s any noise in the measurements, these single reports may be misleading. i wrote my own bandwidth test program that takes 100 measurements and spews out the resulting data for analysis. with my program at least, there is plenty of noise if you measure unpinned rather than pinned transfers.

Continue reading

Posted in Uncategorized | Leave a comment

notes on The Mythical Man Month

For tips on designing a software system, I read The Mythical Man-Month. I recommend it, but here are my notes in case you just want the juicy bits:

Continue reading

Posted in Uncategorized | Leave a comment

migrate from Google Docs to Evernote with gdocs2evernote

Google Docs and Evernote will both store your text data on their servers. I’ve used both for keeping my diary, but I’m moving over to Evernote completely now. Here’s a python program I wrote that downloads all of your Google Docs from a particular folder and puts them into an Evernote notebook: gdocs2evernote.zip (Windows only)

Posted in Uncategorized | Leave a comment

do arithmetic on time with Timelab

A calculator that could do arithmetic on time, like 5:13*2 + 10:50 = 21:16, would be handy. So I built it. Download Timelab to try it! You’ll need python to run Timelab (macs already have this installed).

Posted in Uncategorized | Leave a comment

Eigenfaces for art

If you discard color, a 100×100 pixel image has 10,000 pieces of information–one for each pixel. Consider each image a data point. To plot them, you’d need graph paper with 10,000 axes, because each pixel’s value tells you the position of the image (data point) along the corresponding dimension. And you thought images were 2-D.

Continue reading

Posted in Uncategorized | Leave a comment

real-time seam carving with openFrameworks

As a final project for my computer graphics class last semester, I implemented a fast version of a technique called “seam carving”. Seam carving resizes an image by removing the least noticeable bits. I designed my seam carver to do this resizing on video streaming in from a webcam in such a way that you could remove an object from the video. Read on for my writeup, or just download the code and try it for yourself.

Continue reading

Posted in Uncategorized | Leave a comment