Category Archives: School

Graduation & Aftermath

It’s been a while since my last post, due to my intervening graduation with a Bachelor of Science degree in Computer Engineering and Computer Science from the University of Wisconsin–Madison. It would be a lie if I were to say that some frivolity thereafter did not also keep me from this blog. 😀

So, to quickly recap what’s been happening, in pseudo-sequential order:

  • Me, Dave, and Jared graduated
  • Apparently the University thought I was smart enough to get some extra red for my costume, which clashed magnificently with the orange tassel of Engineering:

    Actually, I’m pretty proud of that: the red stole is the “Distinguished Scholar Award”, which is given to the top 20% of each class in GPA. I hit that category pretty well, having managed to keep a 4.0 all the way through college!
  • Then since the red stole with orange tassel didn’t cover enough of the spectrum, I further added some yellow and gold in the form of an Eta Kappa Nu honor stole & cords:

    And, because I think it’s an awesome shot and I want to highlight Jason who took all of the above graduation photos, here’s that golden stole again:
  • After graduation I enjoyed some great food with my relatives, at Biaggi’s in Middleton (awesome Italian) and Pizzeria Uno as well (great deep dish, but watch out for the “Spinoccoli”, it gave my sister food poisoning).
  • The next day Dave and Jared both had grad parties, at Devil’s Lake and in Green Bay, respectively. Good times all around.
  • Later in the week, Jason, Justin, and I took a 10.4-mile bike ride along Lake Mendota Drive, with a brief detour through Dairy Queen on the way home. Later that night we cooked up our own custom stir fry with Dave. It was pretty decent, though left a few lessons learned 🙂
  • Later in the week, I went to Body Worlds at the Milwaukee Public Museum with Jeni. It was pretty cool to see, though also fairly creepy…
  • On Friday night, Nate had his birthday party / Lauren’s going away party at our place, reuniting me with Em and Jamie, who I don’t think I’ve seen in at least a year. Good times again.
  • Finally by Sunday I was headed back to Green Bay, through a rather amazing storm just North of Madison. The clouds were so thick I thought it was night… up until I reached the edge of them and saw that the sun was only just setting. It was beautiful.
  • Oh yeah. And lest I actually graduate having accomplished something with that ridiculous fountain I’ve been working on for four years… Check out what we found (and flooded ourselves with) in the basement:


Graphics Project Completed

So it turns out you can actually do a 3-week project the day before it’s due, still do a decent-enough job, and turn it in on time. Though, you may need to commit 8am Sunday straight through to noon on Monday to do it, with perhaps a break from 6:15am to 8:15am for some shut-eye.

Yeah, In retrospect, it was a terrible idea. But, here are some screenshots! (Yes, I know my art skills leave something to be desired… but the algorithmic parts [fractal mountains, sqrt(3) subdivision of arbitrary meshes, etc] are good!)

City in the Sky

Sqrt(3) Subdivision

Helicopter & Sky (the helicopters take off, fly to random helipads, and land, all on their own 🙂 )

Environment-Mapped Sphere

Overhead Map View

A Gallery of Ways Not to Resize Images

So for CS 559: Computer Graphics, our first project is to implement a program that can do various things to images. For instance, we need to turn color images to gray scale (or part way there), resize them, rotate them, etc.

As it turns out, the mathematics behind some of these things that we take for granted in Photoshop or the GIMP are actually fairly complex, though I don’t want to get into them now. What I do want to show you are several ways that one (say, me) could try to implement a simple “resize” operation and fail, due to tiny little bugs:

How to Screw Up the “Resize” Function, in Pictures

  1. (First off, here’s the original, full size image. Click for a larger view. Each attempt below was to make it 2/3 size.)
    Original image
  2. Use < where you meant <= to define your resampling filter. (Causes the filter not to include certain values that are exactly on the edge, like, say, all the exact integer multiples):
    Less-than vs Less-than-or-equal
  3. Use an unsigned char instead of an int to store your y coordinate index. (unsigned char‘s can only hold the numbers 0 to 255, whereas ints can hold +/- 2 billion):
    Use char instead of int
  4. Cast float to unsigned char after using a filter not guaranteed not to amplify values. This one is pretty subtle, but you can see red & yellow splotches appear on the shirt (e.g., dots on my left shoulder), and my right ear has holes in it. Very annoying. (If the filter amplifies values, then it can output, say “257” from inputs ranging 0-255. When you try to fit “257” in an unsigned char, you get overflow and the output becomes “2”.)
    Amplifying Filter + direct cast to char



Jared and I beat the Onion crossword this morning, and I am embarassed to have to tell Scott that he had to pull out DIGG for this clue that I couldn’t figure out. “If one were to —, one would get articles about crazy online personal ads” Nice work Jared!

[Update 10.4.07]: So it seems putting dashes in my post title on my phone is a bad idea… I missed the fact that this post was titled “T” instead of the correct title it now has for two solid days… oops. Moral of the story: dashes are for categories on Postie. 🙂

So I Think I'm Done

I’m sitting here at home in Green Bay, after 4 hours of sleep last night, a 7:45am (yuck) final, some errand-running, lunch, several hours of packing & hauling to fill the van whilst Kaisa & my parents were touring UW-Madison, a 2.5-hour drive nap home, supper, unloading the van, and watching the movie Cars, and despite all these out-of-the-ordinary things, I still can’t really wrap my head around the idea that I have moved out of my apartment, will be leaving for California in a week, and am now officially a college senior.


Procrastination: A Successful Strategy to Term Projects

It’s 2:48 am. I’ve just recently reached the comforts of my apartment after a lengthy work session in the computer lab with Ryan. I try to avoid posting at this hour of the morning, because I tend to be less than coherent, but I think the jubilation of this moment calls for an exception.

We have a semester project in ECE 551: Digital System Design & Synthesis (aka “Verilog”). The project was assigned in the vicinity of a week or two before Spring Break. That is, we have had in the neighborhood of a month or more to work on it. Of course, we didn’t complete any work at all until we were required to implement one subcomponent for a homework assignment a week ago. So we completed that 2 hours before the deadline, and handed it in. No big deal.

Now tomorrow the initial draft of our project report is due. Initial “draft”, as in: feature-complete implementation of all components, including explanations of how they work, timing and space analysis, and testing to demonstrate their correctness. As of 2:15pm today, Ryan and I had completed exactly 1 major subcomponent, for the aforementioned homework assignment. Less than 12 hours later, including a break for Subway, we were done. There will certainly be things that we need to tune up and optimize for the final report, but every major component of our processor is complete, in place, working perfectly, and passing every test case.  All in less than 12 hours, less than a day before it is due.

Who ever said procrastinators never make it anywhere in this world?

…And now I need some sleep. Badly.

Not so much learning today

I apologize to Professors Hill and Solomon, because I don’t think I did much today but offend them by continually nodding off through their lectures… oops. Dave and I stayed up, well, a bit late last night finishing our 552 project. I got up at 7:30 Monday morning, and then went to bed at 1:15 PM this afternoon.

The moral of the story is: do your work when it’s assigned, not when it’s due.

Now do I go and sleep more or do I try and do something tonight?