Newsletter
First published: Sept. 10, 2006, 3:29 a.m. MDT
Last edited: Sept. 10, 2006, 3:29 a.m. MDT
Last edited: Sept. 10, 2006, 3:29 a.m. MDT
Last semester, the summer, and this semester!
My monthly newsletter has turned into some sort of biannual or nearly annual medium, apparently. Traditionally, I start these things off with some sort of apology or explanation about my tardiness; I see no reason to change that policy this time.I planned to update every month, really. I mean, until 2 months after my last real post, when I remembered. 3 months later it occurred to me that I should probably do something about it. So I sat down and started working on a topic list for points I wanted to hit. I had been thoroughly surprised with myself in the past of how this simple action of topic list creation carried huge momentum, and like some large primordial gears, the newsletter would come shortly, probably at the expense of sleep.
Somehow, this time, this was not the case. Once I got to over 40 lines of single word topics I felt it important to discuss, I got overwhelmed and promptly gave up.
Up until last month, I still planned on writing that newsletter. I planned on writing one in which I went into elaborate detail about stuff that happened over half a year ago. Obviously that would be foolish of me to attempt now. However, I would hate to have a hole in my written time-continuum, so I will abbreviate and not remove. At this point any sort of update is worthwhile. Hopefully the condensed version of the epic tail I even remotely planned to tell will still entertain. I mean, at least entertain me. I like being entertained.
I am slightly worried that my evolved newsletter style has become unreadable. I mean, it's egotistical for me to assume I have any readership at all, but for the sake of discussion, let's assume I do. My question is this: who wants to wait more than half a year between entries only to be blasted with one monolithic treatise every time? This is absolutely abominable that I save up this barrage of words to let loose instead of slowly releasing the building pressure throughout the year. Were it me, I'd give up waiting for new posts or simply be too lazy to read a massive missive over my morning fruit loops. Oh well. This is all to say I'm aware of your plight, reader. Less laziness and more motivation on my part might increase topic segmentation and decrease latency. But I digress. I plan to push on and release this large barrage, as it were, of what has happened since my last update instead of relegating it to the vast netherworld of untold stories. Once released, perhaps I will be more sensible and update less things more frequently.
Massive missive. Haha. I crack myself up.
Currently, my sophomore year of college is quite over. It is reasonable to assume it will stay that way. In fact, the summer before my junior year is quite over. This also will remain to be the case indefinitely. I have even started classes for my junior year. Having junior-year classes will probably not be a consistent theme to my life after this year, but here we are. However, since the last update was in something like January, I suspect I'll start there. :)
College (last school-year)
Last newsletter entry I discussed how my initial class run was going, and I suspect I suggested I would update with information on how the classes went. I plan to do that now.
I had 5 classes. Probability and Statistics, Numerical Computing, Discrete Structures, Computer Architecture, and Racquetball. There's not much to say about Racquetball class though.
Probability and Statistics (MATH 5651) was definitely one of my most fun classes yet. The professor was indubitably incredible, and the material was a blast. Yeah, math was a blast. I didn't like the statistics side so much, but the class emphasis was on probability, and though I was initially worried about the class, it turns out I love that sort of stuff, and wish I could do more. Unfortunately, that was likely my last math class ever. I perceive that I received a mathematics minor out of the deal though.
Numerical Computing (CSCI 2031) was distasteful to me. The material was boring and, when not completely obscure, relatively obvious. My summary of the first few weeks is as follows: "So, guess what? We store numbers in a finite bit string. This means we can't store an infinite amount numbers! Unlucky day! Let's talk about it." The class then progressed into strange, though intriguing, systems for numerically calculating tough maths, but the proofs and explanations were non-existent. It was just plug and chug the whole way. What a bore. If I need to integrate something numerically, I'll load a numerical integration library, thank you.
Discrete Structures (CSCI 2011) was originally very intriguing to me, but it never took off at the pace I expected it to. I was bummed. Furthermore, the professor started to jar me a little with his method of discussion and presentation. He had a sense of hubris about him that turned me off to some degree. However, he was incredibly good at racquetball. I couldn't beat him.
Computer Architecture (CSCI 2021) was my favorite Computer Science class up to that point (I can't say ever now, as I've started the next semester!). We did C and Assembly programming, we disassembled binaries, and basically just gained a very thorough knowledge of basic computer operation. I loved it. It was amazing. I have an aside here from my original topic list for this newsletter about this specifically. I realize that the following is not really any language most of you speak, but just for posterity, bear with me while I journey to nerd-town. Here is a code chunk from the final test in assembly:
foo:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $0, -8(%ebp)
movl $0, -4($ebp)
.L2:
movl -4(%ebp), %eax
cmpl 8(%ebp), %eax
jge .L3
movl -4(%ebp), %eax
leal -8(%ebp), %edx
addl %eax, (%edx)
leal -4(%ebp), %eax
incl (%eax)
jmp .L2
.L3:
movl -8(%ebp), %eax
leave
ret
We were supposed to convert this to a C program. I was particularly pleased with my answer. Not only did I duplicate the functionality (as requested), but I increased the efficiency from O(n) to O(1)!
int foo(int n) {
return (n <= 0) ? 0 : n*(n-1)/2;
}
Okay, I've returned from nerd-town.
I typically enumerate stories of my various shenanigans in these newsletters, but as I don't really have time to go into all of them, I'll just highlight some of the best ones since last update.
- We figured out how to open the outside portion of the elevator doors in Middlebrook hall while allowing the inner door to shut. This effectively locked people into the elevator temporarily, as the inner door wouldn't open for about a minute. We then developed a game for Middlebrook hall that involved getting your team to its target floor whilst trapping the other team in the elevator. It was great. Here's a picture.
- My roommate discovered that FedEx and USPS would deliver free shipping boxes to customers if they wanted to ship anything. The assumption behind these free boxes is that the customer would use them to ship things. We did not, of course. They also failed to put limits on the amount of free boxes you could request. Something like 900 free cardboard boxes later (involving 2 trips to the post office and a meeting with the residence director), we had built two forts with about a third of the boxes left over. Here's some pictures. Needless to say, all of my stuff was packed in 30 or so little priority mail boxes over the summer.
- I was carrying around WD-40 because there's some squeaky chairs in my classrooms and they drive me nuts. I sit in the swivel chairs and I really like swiveling unhindered. Naturally, WD-40 is a good solution. Of course, I never expected to make the entire back row of the classroom laugh, and I never expected that to cause the professor to stop class until I was finished. I also never expected to be stopped in a metal detector and asked to explain why I had WD-40 with me. My response was "squeaky chairs?"
- There was a lot of excitement and time spent on our build-a-projector project. Of course, though we did succeed in building a projector, it was never any good, and the brightness/contrast in movies was horrible. Really we just wanted to watch movies on projectors. I didn't care where so much.
Obviously the university has lots of projectors. In fact, one in every classroom. You might see where this is going. There's no way every door to every building is locked every night. Needless to say we had multiple movie nights in different classrooms around campus. I thought it was a pretty brilliant idea, but I'm predisposed to thinking that, as Jeromie and I thought of it. Or so I thought. Apparently this isn't a new idea. One time as we were leaving, the room across the hallway had a bunch of people in pajamas and sleeping bags having a pajama party. - I don't know if I mentioned the Nerf Gun battles? but those were intense. They spanned multiple floors. Little Nerf darts were being delivered to us by people we didn't know for days after each battles. The forts helped.
- There's a pretty neat sub-sandwich shop in this area. I don't know if it's national but we don't have them in Utah. Anyway, they obviously don't sell pancakes. Here's some coupons. I thought that "2005BassmasterClassic.com" or whatever was sufficiently Surrealist.
Summer
I got home for the summer on May 13th. It took a little getting used to driving again. If not for the helpful shout from my brother during the first few days I very well may have continued driving on the left side of the road. I don't know what that was all about. Obviously, I really liked seeing my family, but this summer I liked it more so. Ask me about my siblings. I start gushing about how cool they are. My parents are doing pretty good too. I felt like I got closer to my mom this summer, which was good.
I took my brother to church camp, and that was a blast. It was so cool to watch him get to know people and experience stuff I'm not sure he experienced before. Maybe he had. I don't know. There's pictures of that camp here! There's a cool one of him here. Anyway, that was one of the main actual goals for my going home that summer, was helping him out with food stuff at camp. I cooked him all his meals (for those of you just tuning in, my family has some pretty severe food allergies).
The thing that I spent most of my time during my summer doing, though, was working. I was super blessed to be able to work with the folks at Mozy again and so I pretty much coded all summer. I had never used Ruby or Rails or any of that ilk before, but I have to say that while there is growing pains in many areas, I don't think I could say that its hype is without reason. I really can't imagine coding a big web application without using Ruby on Rails now. Look for MozyPro, coming soon! (That was my project). One of the senior coders there seemed really pleased with my code and said I probably had a job waiting there for next time, which is always an ego boost. Both times I've quit for college I've felt bad about leaving. I'd almost much rather just work there then do some of the stuff I'm doing now, but I think getting a college degree is important too! :)
Whatever free time I had left I spent playing ultimate frisbee with my bible-study studs from my church, or racquetball with Nick and Kevin. I'd like to think I'm getting much better at frisbee now. I love that game.
Also, I sold my van. To my middle school math teacher. Random string of events there. Apparently he had his eye on it back when I was in middle school. So yay! I can pay for college this year! I bought a little '96 Saturn named Sadie from my grandparents with left over cash. It's a manual, and I love it. I adore that car.
Well, so this is progress. I've gotten this entry of the newsletter right up until where my new calendar starts on my website. Woot. I'm quite ostensibly pleased.
College (this school-year)
So August rolled around, and I went to an Olds Family Reunion in Tennessee. I didn't know I had relatives in Tennessee. Apparently some moved there. Anyway, that was super cool. I love my family. Oh man.
I then had 2 or 3 days afterwards to chill in Utah before heading back to Minnesota to start Residence Advisor training, only, they call it Community Advisor training. I spent two weeks of about 12 hour days sometimes getting to know the staff I'll be working with this year better and figuring out how best to take care of college students! Of course, by now, college has started, classes have started, and I've already met all my residents. I'm living alone in a little room in Centennial Hall and I have about 33 residents in my charge. They've been awesome and well behaved so far. The girls seem very social and fun, and the guys seem to be a little more withdrawn on average, but definitely no complaints. With the combination of my staff and residents, I have a pretty good feeling I've made or at least started a lot of long lasting relationships. Luckily I've gotten no homework yet, so everything's been a breeze so far.
I'll close with a prospectus of sorts of the coming semester. Hopefully I'll update before next semester.
This semester is going to be busy. I have 4 classes, 3 of which are upper division CSci classes. I'm taking ECON 1101 (which is like, what, apparently linear Cartesian graphs and algebra?). I guess I can't really complain about the material as it's an intro class, but it's like, I don't know. I'll probably go to class to set a good example for my residents, but that's the only reason I can think of for going. I'm also taking Operating Systems (super psyched about that one), Algorithms and Data Structures (super psyched about that one too. The professor seems awesome), and Software Design or something (basically how to use 'make,' CVS, and other dev tools). Software Design has been pushed as a very time-consuming class, as we have class projects and stuff.
On top of my classes, I would really like to join USwing (the swing dancing club on campus), but that will come after my Astronomy Department job and my CA duties. CA duties will be draining at times I suspect (I've already nabbed 11 students for underage drinking), but mostly fun. One of my CA responsibilities I wasn't really expecting was that I need to plan programs for my residents, which sounds great, but just isn't really my personality if you know what I mean. I have some good ideas, but those, of course, take time.
The todo list for my astronomy job is growing astronomically (haha) and I need to go take care of that stuff. That will be about 10 hours a week for astro work alone.
Furthermore, I've been placed in somewhat of a leadership role at Campus Crusade. I run their newsletter and website, just like the end of last year I guess, but that takes time, too.
Lastly, I'm supposed to be doing research this semester too if I want to graduate with latin honors! Ahhh!
Fun projects at bat:
- I was thinking to myself this summer, after installing a compositing window manager on my computer with the XGL cube, "you know, wouldn't it be awesome if I could control window placement, workspace switching, and window focus with my feet? Why not get a DDR pad and hook it to my computer to increase productivity? Just keep it under my desk and use my feet?" Great idea.
Unfortunately my new DDR pad doesn't completely fit under my desk. That hasn't stopped me though; I've folded the pad up so that 4 of the 9 buttons are accessible.
Anyway, I've already merged the code from wmctrl and joy2key, and now I'm just cleaning it up, adding my own logic, and daemonizing it such that it will run cleanly in the background. I love coding in C, and I already have a working sample going. I plan on improving my code, and since both sources were GPL'd to begin with, I should probably release the source code too. That should be up on my website sometime. Hopefully, I'll get "dugg". - This DDR pad project has already had unexpected benefits. My Playstation to USB adapter has two input ports, so I connected a normal Playstation controller to my computer as well. Since the Linux kernel joystick interface was fairly trivial to operate, I wrote a quick daemon that controls my music program in C with my Playstation controller. So in my room I have my one computer driving two keyboards, two mice, my 18" LCD desk screen (free) running over DVI, 4 speakers, a 27" monitor (free) I'm using as my TV, my DDR pad, and my Playstation controller. It's pretty much freaking awesome. I expect I'll find ways to improve my system over the course of the year.
- I don't know if you've seen my new schedule page, but it's run by Google Calendar now, and I can update it with my cellphone.
Fun projects on deck:
- The Nintendo Wii - Not so much of a project really. I just need to be in line to buy one opening day.
- My cellphone plan expires on Talk Like A Pirate Day (September 19th), so I get to get a new phone and plan! I'm looking for cheap, minimal radiation, maximal text-messaging, and bluetooth enabled. What I'd like to do is get a little blue-tooth keyboard so I can type on my phone with an actual keyboard. Wouldn't that be cool?
Hopefully this isn't the latest sentence on my website for another large multiple of months.