If you blog it they will come?

Tuesday, December 23, 2008

Python Imaging Library

I've been diving into Python and trying to craft short little programs to improve my skillz.

One of the first Python extensions I made a move for was the Python Imaging Library. The PIL packs in an impressive amount of file format compatibility; loading and creating images could hardly be simpler.

For 90% of your typical use cases I'd say PIL does great, since loading saving and doing simple transformations on images is ridiculously simple. The PIL even supports drawing directly on images with polygons and other primitives. This is where my list of annoyances begins.

When you're drawing on an image, it seems only natural to desire transparency of shapes. Strangely, this is not possible. After some digging it seems the closest hack is to draw on a buffer image and then blend() or paste() with the original to achieve transparency. This is alright as long as the number of shapes are limited.

However, if you're trying to create multi-layered vector art, PIL isn't really up to the task.

In order to achieve the incremental layering of these shapes with true alpha values, I had to write my own pixel-by-pixel merge function, which was ridiculously slow. I'm sure there might have been a better way to do it but I found some of the documentation lacking, and on further investigation it's just literal comments from the source code, with few usage examples.

The above images took about a minute each to render, so there goes my plan to create a fun hill-climbing afternoon evolutionary image grinder. I might give this another stab with some Python OpenGL libraries.

Wednesday, December 3, 2008

Graphics class final project.

Well, I'm slowly but surely taking my tuition money back out of the department by snatching their various prize giveaways. Yesterday I received an Amazon gift certificate in my inbox from "The CSE Department" for qualifying in the regional ACM programming contest.

Today I took away a WALL-E 3-DISC Special Edition, an excellent and relevant reward for coming in second place in our graphics class' animation short festival. My graphics partner Robert and I built a strange little one-eyed Residents-style toaster creature which likes dancing and creating toast. Here's the full clip:

I'm also adding the original dancing clip below because unfortunately we didn't match up our video resolutions and it clipped out a lot of the detail. Here it is:

Dancing eye ball toaster from a f on Vimeo.

Tuesday, December 2, 2008

Last summer's big ol' DNS scare

An entertaining and well-written article about a crucial internet security flaw last summer:

Dan Kaminsky destroys, saves internet etc.

A scary reminder of how the entire web hinges on the security of e-mail of all things.

Monday, December 1, 2008


I just discovered Open Congress, a pretty sweet site for bringing clarity and perspective to US politics + legislation.

For example, check out the page for HR 2082, the CIA funding bill vetoed by Bush for its interrogation tactics restrictions:

H.R. 2082

You can see who voted Aye, Nay or abstain, its amendments, its trajectory through Congress (ending in a failed override) and related bills and news articles.

For example, these 4 Senators voted "Nay" on the bill:

Waterboarding fans

Unfortunately I could not locate a convenient "Contact this politician" button so that I could quickly dispatch an appropriate nastygram. At the least, it could link me to their Facebook profile (seeing as how I can "share" Senator Chambliss with all my friends on Facebook...)

Monday, November 17, 2008

ACM Programming Contest

It was a lot of fun to compete in the ACM Pacific Northwest regional programming contest. We didn't qualify to go on to the finals but our school (University of Washington) swept the top three spots at our site (University of Oregon in Eugene) and my team snagged the second place spot at the site with 7/11 problems correctly solved.

It was an exciting finish too--we had only solved four problems with less than an hour to go in the five hour contest, and we got 3 correct submissions in the final 45 minutes to boost our standing to the top three.

I really enjoyed the contest, they challenged our problem solving and debugging skills and I especially enjoy working with the guys who were on my team. It was also a chance for people who didn't know me as well to discover the true extent of my nerd-dom as I missed an excellent party or two to travel to Eugene and write code instead. Carpe Diem.

Tuesday, November 11, 2008

Sweet they made an instructional video too!

I'm still really excited about the coverage Google Ad Planner is receiving.

Now that it's open to everyone, they made an instructional video specifically for my feature:

Ok so the visualization has an instructional video, does this mean it's difficult to use? Not necessarily, it's powerful since there are 4 axes of control and the video helps people realize the potential sitting right at their fingertips that they may not otherwise realize!

Once again you can check it out here.

Tech Crunch write up!

My summer internship product / feature was written up on Tech Crunch!

Google Ad Planner is now open to everyone:

Check out the sweet video demo then go check it out.

I worked on the bubble chart mentioned. There was a bit more to it then hooking up the Trendalyzer API. Scale and performance were big considerations as well as prototyping and researching different audience visualization concepts.

Here's a custom close-up of the feature at work:
Motion Chart!

I'll provide another link right here so you can jump right to it:
Google Ad Planner

Sunday, November 9, 2008

What's Happening?

From the past--a project my HCI team worked on for a whole quarter, with a sweet video prototype as well as a very limited interactive demo.

What's Happening?

What's Happening?

Wednesday, November 5, 2008


Uwcourses.com is a site made by my friend Sergey which came out of data we gathered for Statistics final project.

We scraped data from the UW Course Evaluation catalog (visible only to students) and even archived evals using the wayback machine and related it with public state employee salary data (not on the page itself).

The result of the statistics project was a wealth of relational data, and the site Sergey made hooks it up to an interface that is far easier to navigate than scrolling through alphabetical pages of the eval data.

Check it out, especially if you attend the UW

Monday, November 3, 2008

Bowie, MD

Over 96% of the campaign donations from my hometown of Bowie, MD donated to Obama.

Here's the amazing chart

Tomorrow will be the first time I vote in a presidential election, I'm doing it early because I'm sure the line will be around the block here.

Sunday, November 2, 2008

The results are in

My group placed 3rd out of 21 teams in our school's ACM programming contest! We'll go on to represent the University of Washington at the regional tournament, along with the other two top teams from the UW.

The contest was to complete as many of 8 challenges as possible in 4 hours. Only three teams including ours completed 5 problems right, but we had the slowest time to do so. Some of the problems were actually kind of fun.

For example, this problem involved finding a specific kind of prime number variant named an "H-number semi-prime."

The regional tournament is on November 15 at the University of Oregon, can't wait!

(The rest of the problems/solutions are here.)

Hello world first post etc.

Ah it's the fresh new blog smell. Love the smell of that new blog.

Here's a stop motion animation video we made for no good reason. It was lots of fun to create and also to make music for, and escalated quickly after some faces were drawn on fruit. May be mildly traumatizing:

Untitled from . . on Vimeo.