Archive for May 2007
Countdown: 3 days until I leave
Nothing is left in my apartment besides a backpack and a suitcase.
I just spent an hour figuring out my schedule for next year. I hated the one I had. Badly. Really really badly.
But it’s cool because I came up with this instead:
Fall:
Computer Science Senior Project I
Mathematics Senior Project I
Technical Writing
Asian American Experience
Japanese I
Winter:
Computer Science Senior Project II
Mathematics Senior Project II
Applied Math I
Japanese II
Spring:
Computer Science Senior Project III
Mathematics Senior Project III
Applied Math II (maybe)
Japanese III
Theology (300 level)
Lee is trying to convince me to take Chinese instead of Japanese. It’s a tough choice: I like Japanese movies more, but I know far more people who speak Chinese, and come to think of it, I like Chinese martial arts films more.
I’ll probably just flip a coin to decide.
Countdown: 4 days until I leave
You take 16 credits, and what do you get?
A few months older, and deeper in debt.
Saint Peter don’t you call me cause I can’t go,
I owe my soul to the campus book store.
It’s been a tiring day.
In class, I had to give a presentation that I was way under prepared for. Nervous, tired, over-caffeinated, and desperate to avoid silence, I managed to do all of the following in the first five minutes of the presentation:
- Say that I had been up the night before, drinking and listening to Johnny Cash
- Insult the professor
- Insult the university
- Insult the students in my class
- Claim that a false statement was a theorem
Oops.
Tonight I went to the Seattle Wireless meeting, which was a lot of fun.
After the meeting I came home and wrote a 7 page essay for my Ethics class. Here’s an except you might like from the rough draft:
Suppose that I were to learn that someone was planning to attack me tomorrow night with the intention of killing me in cold blood. I investigate the matter, and in the process find multitudes of evidence implicating my neighbor. Along the way I even find evidence that my neighbor has killed before!
I even get my neighbor to write his own review of the evidence, telling him that it’s data I collected on some other guy who I’m trying to exonerate – you know, to motivate him to refute it.
I then pick 12 honest citizens – say, from a Craigslist ad – to review the evidence and read my neighbor’s rebuttal. In the end, they all agree: the evidence is pretty convincing that my neighbor is guilty.
So I do the only rational thing: I go to Walmart and buy a metal folding chair, some chains, and some wire. I then go to my neighbor’s house, shotgun in hand (also purchased at Walmart), kick down the door and capture my neighbor while he’s in the shower (it’s best to come when they’re least able to attack you). I chain him up and bring him back to my house, lock him to the chair, and wire him up to the nearest 220 outlet and watch the sparks fly.
Justice is done! I managed to execute a known murderer and save myself at the same time. The public is safer, and retribution has been had. I did exactly what the State would have done, so vigilante behavior aside, it’s all the same.
Of course, what if the evidence I collected was faulty? What if I was predisposed to believing his guilt, and therefore was willing to accept the dubious testimony of my other neighbor? What if my neighbor wasn’t competent enough to write a convincing rebuttal?
What if I just killed an innocent man?
Anyway, it’s now time for some long-overdue sleep. See you tomorrow!
Countdown: 5 days until I leave
Remember how messy my apartment was? Tonight I took most of the mess to my parents’ house. If it’s still in my apartment, it’s coming with me! Oh how my mess hath gotten smaller:
The computing equipment is getting shipped ahead of me — except for the hard drives, which I won’t let off of my person.
Today was marked by frustration at school:
First, there was the paperwork:
About a third of the way into the quarter, I decided that my statistics class wasn’t what I had in mind, so I dropped it in favor of doing independent study in de Rham cohomology.
I submitted the forms for this a few weeks ago. The registrar decided that they needed some more forms, so they sent back my paperwork to the math department, who gave it to my academic adviser, who simply assumed they were just CC’ing him and put them into his desk without saying anything.
I figured out that something was wrong when I checked my transcript and saw that the school still thinks I’m taking statistics.
So I fill out the extra paperwork and go to the registrar’s office to drop it all off. Just one problem: they have a policy that prohibits them from accepting paperwork from students directly. In order to prevent fraud, you need to have the paperwork delivered by a faculty member. I pointed out that this is the same form they had sent back to me — that it had two of their stamps on the forms, and that their computer records showed that this form had been returned to me. Did they really believe that I had fabricated the whole thing by forging the dean’s signature, getting duplicate stamps made, and hacking the database?
They didn’t see my point, but luckily they deigned to accept the form as a special favor to me. Silly registrar.
Then it came time to register for Fall quarter:
I was originally looking forward to this. You see, when I was told I couldn’t accept the offer to go to Hungary, I figured “oh well, at least this means I’ll be able to take Japanese!”
Yeah, well, turns out that my computer science degree — which I was willing to drop in order to go to Hungary — has requirements for Fall that conflict with Japanese. No matter, I thought: I’d happily drop my CS degree to a minor in exchange for the ability to spend a year studying a language and actually learning something.
Well now I’ve been told that I can’t do that, either. If I’m gonna be in Seattle, I gotta finish my CS degree. Darn.
Oh well, may as well just make the best of it and sign up for some interesting classes that’ll fulfill my core requirements. I’ve got two more core requirements that I need to satisfy:
- 300-level Theology
- Interdisciplinary
Unfortunately, while there are several interesting theology courses I would love to take, they all conflict with the CS thing. There are only two courses that’ll satisfy my theology requirement that I’m able to register for:
- Women and the Hebrew Bible
- The gospel of John
Since I’m not a woman, and I don’t like the gospels, I’m kinda disappointed.
The Interdisciplinary situation isn’t much better. In theory, there should be lots of things that satisfy this requirement, since every major program on campus is able to offer something that will fit the requirement. In practice, however, almost no one has any offering, since it requires the use of department resources that don’t advance the department’s own students (and are therefore a waste of budget).
So when it comes to Interdisciplinary offerings, there are only two classes you can depend on:
- Drug and alcohol addiction
- Asian-American experience
So in effect, the core requires you to take one of these two courses. Yup, good use of time.
Now here’s the sick irony: this Fall there is a startling number of alternatives being offered, but every single one conflicts with the CS course I need. So it looks like I get to study “Asian American experience,” which sounds way relevant to me.
I dunno friends, but I kinda feel like I’m losing ground on this one.
But what the heck, I’m outta here in 5 days. Cheers.
Free advice
Please be sure you know how your proof works before you come to class!
If you don’t plan to prepare for your lecture, please warn me in advance so I know that I should stay home and just read from the book oki thx.
Updated 22 May:
I shouldn’t be so harsh; this is just the busy week getting to me.
Let’s get ready to go!
This is what my apartment looks like right now:
My friends know that I usually keep my apartment in very good order, but under the deadlines this quarter, it just hasn’t happened. Each of the piles you see is part of an assignment. In the bottom left you can see a yellow page — that’s a form that I think was due 2 weeks ago.
So here’s the plan:
- Clean this mess up
- Move all of the “don’t need it in order to live here” stuff to my parents’ house by Wednesday
- Clean every surface I can on Thursday
- Have nothing by Friday here except for what I’m taking with me to the East Coast
Oh yeah, and somewhere in there, do the alarming amount of homework I have to do. This, my friends, is crunch time.
Seattle Wireless, College Pranks
Last night I went to the Seattle Wireless Hack Night. I spent a lot of time talking to this guy about cameras. Turns out he already knew that my camera is a very bad camera. It’s small, which means I can take it everywhere; unfortunately, it’s small, which means it has cheap optics and a bad lens. He recommended some new gear and patiently answered my n00b questions. All around nice guy.
Next week is my last week at Seattle University until next Fall (I’m cutting out early so I can go to work!) I’m happy this quarter is ending early. It’s been stressful and boring. When I return, pockets full of summer money, I plan to setup a Seattle Wireless node on the roof here at school. Hopefully with permission. We’ll see.
At the end of every school year, I come up with a sketch for what I want to accomplish during the next year. Here’s kinda where I’m at:
- Summer goals: Redacted. Can’t say.
- School 07-08 year: Focus on finishing school. Need to do “Senior Project” for computer science. My adviser literally told me to “set my expectations low.” Nice. Can’t wait. Outside of school, I want to focus my energies on program analysis, and maybe software radio. Whichever sounds more interesting next Fall. We’ll see.
- After that: who knows? I’m getting tired of the school thing. Maybe spend some more time hacking?
In unrelated news, the chair of the Seattle University physics department came in to work today to find this:
Classic.
Unreasonable bugs: type-based exceptions
When it comes to type systems, I don’t have hard and fast rules for what I like and what I don’t like. I enjoy some dynamic languages, some static languages. I pick which language to use (and consequently which typing system) based on the nature of the project I’m working on.
Usually, if I pick a strongly-typed language, it’s because I’m working on the type of program where I think type errors might be serious and complicated, and therefore I believe that static checking will help me out. Of course, all of this only applies if the language actually catches the type errors at compile time.
“But wait,” I can hear you saying, “don’t static languages always catch all type errors at compile time? Isn’t that the whole point?”
Oh yes, as far as I’m concerned it most certainly is the point. The single greatest advantage to working in a statically-typed language is that, in principle, type errors can be detected at compile time. Unfortunately, for two major languages, there exists type errors that are not caught until runtime. (And I’m not talking about C++ here!)
The problem goes something like this: in both C# and Java, if A is-a B, then A[] is-a B[]. In other words, if we have a function like
void messWithArray(B[] someArg) {...}
we are permitted to invoke it like so:
messWithArray(new A[10])
Now, if messWithArray only intends to read from the array, nothing will go wrong. Unfortunately, this can cause massive problems if messWithArray wants to assign new elements in our array.
To to prevent this from being an issue, the Java Virtual Machine performs run-time type checks on array assignments. Yup!
Here’s some code in Java that demonstrates this problem:
// CParent.java:
public class CParent {
}
// CChild1.java:
public class CChild1 extends CParent{
public void CChild1() { }
}
// CChild2.java:
public class CChild2 extends CParent{
public void CChild2() { }
public void doStuff() { }
}
// typefoo.java:
public class typefoo {
public static void main(String[] args) {
System.out.println(“Creating array of CChild2’s”);
CChild2[] a = new CChild2[10];
System.out.println(“Calling setElements on our array”);
setElements(a);
System.out.println(“Calling useElements on our array”);
useElements(a);
System.out.println(“All done!”);
}
public static void setElements(CParent[] a) {
a[0] = new CChild1();
}
public static void useElements(CChild2[] a) {
a[0].doStuff();
}
}
$ java typefooCreating array of CChild2'sCalling setElements on our array Exception in thread "main" java.lang.ArrayStoreException: CChild1 at typefoo.setElements(typefoo.java:14) at typefoo.main(typefoo.java:7)
Disgraceful.
Toorcon Seattle
Last weekend was Toorcon Seattle. Here’s a picture of me outside the venue (thanks Divide!):
It was a great event. Most of the talks went pretty well, although several people got bit by the lack of Internet connectivity while presenting. Overall the quality was better than I’m used to seeing at other events, which is really a reflection of how badass the Seattle hacker community is.
Some of my favorite talks (hit up the Seattle Toorcon website for links to abstracts and slides):
- WiFight Club by Beetle
- Automating Exploitation by Pusscat
- Plastic Money, Plastic Trust: Why you should never trust a merchant with your credit card by Rodney Thayer
- Body Hacking – Functional Body Modification by Quinn Norton
- Further Adventures In Visual Data Exploration by Dan Kaminsky
- Memory Manager Attack and Defense by Richard Johnson
I also enjoyed the rant “Web 4.0″ by Christopher Abad, which was absolutely hilarious. Plus it’s cool because he’s a mathematician.
After the conference there was a fun party at the Public N3rd Area. Brilliant music provided by the DJ’s, although I especially enjoyed the sets by Keith Myers and by Holt Sorenson. Things ended before TProphet could play his set, which was a real shame because he had a great playlist setup.
I’ve got my golden ticket. See you next year?
So much going on!
My academic adviser got this in the mail today. It’s for me!
It’s a certificate from the MAA. I gave a not-a-big-deal-at-all 15 minute student talk on matroids at our recent Pacific Northwest section meeting, and they gave me a certificate! I gotta say, the MAA is nice to students.
I also went to a talk today by Michael Orrison who is visiting Seattle while his students at Harvey Mudd work on their finals. He delivered a great presentation on modelling election outcomes using linear algebra (by the way, that is a very poor summary on my part. It was way neat.) He used more linear algebra than we typically cover at Seattle University, though. I wouldn’t have been able to follow the presentation had I not been studying functional analysis independently.
Which brings me to one of my favorite gripes about Seattle University: when are you guys gonna wake up and start offering some math-student-quality Linear Algebra and Multivariable Calculus classes? Both of these classes are taught for the engineering audience that doesn’t care about things like divergence, curl, Jordan canonical form, and many other important things that aren’t covered in our classes. No, seriously, it’s weak. Gotta shape that up.
Speaking of functional analysis: I’m doing a directed reading this quarter with this guy (who happens to be my academic adviser). It’s good stuff.
Finally, it turns out that I simply can’t come up with the money to go to Hungary — the deadline is just too soon. Sooooo, I’ll be hanging out in Seattle in Fall. On the one hand I’m way sad because I was way looking forward to taking Elite Hungarian Combinatorics, but on the other hand there’s nothing I can do about it. So here’s a picture of me holding my acceptance packet, but now with a sad face:
And there you have it.
The Hungarian Experiment
Today I got my packet from the Budapest Semesters in Mathematics. Here’s what it looks like in the dark:
Between this and my summer employment, I’ll be gone for about 6 months. The question on everyone’s mind: but what about your girlfriend? Actually, there’s one person who isn’t asking this question: my girlfriend. It turns out that everyone has this controlling image of women as having fluttery-hearts and being easily persuaded to forget about their men while they’re away. How old fashioned.
Anyway, it’s still not clear whether or not I’m going to Budapest. It turns out that, aside from (a) Missing my friends while I’m going, I’m also worried about (b) The extreme cost of going to Europe for a semester. It’s that second thing that might really cause problems. We’ll see.










