After one more month, I will have completed my last final exam and last semester as an undergrad. I CAN’T WAIT to be done with ECE.
This semester I actually like my classes a lot more. I’m taking 4 courses, 13 credits. 3 of those courses are purely project courses so that means I only have one final exam. That’s really great, but it also means this month pretty much sucks.
My ECE project is an “internet-enabled” magnetic swipe reader system that can read a credit card, take in numerical keypad input (i.e. a price or transaction amount), and send the transaction information over the internet to say, a PHP script that parses the information and stores it in a database. Maybe that doesn’t sound that cool or fantastic for a senior design project, especially since I’m buying a magnetic card reader and an ethernet module that implements a set of network protocols. But it’s also not trivial to implement either, mainly the interface between the micocontroller and the ethernet module. The major source of headache is knowing how to use the darn ethernet module (Wiznet WIZ812MJ module). Wiznet has some firmware source code that supposedly provides an API, but I still have to go through it and understand to know how to use it. I skimmed through it and it’s not going to be fun. Not to mention that in order to understand it, I have to pretty much memorize the datasheet (pinout, memory mapping, register descriptions, etc). But once I get that out of the way, the rest of the project SHOULDN’T be too bad. The interface to the card reader is just an RS-232 interface, and there’s no API with the card reader that’s needed (I don’t think). Then there’s the keypad and LCD display to interface, but we’ve done that already in labs so should be straightforward. The web side of it shouldn’t be bad either. Ugh….Arduino is so much more convenient. I look forward to having more fun with that after graduation.
In another class, software engineering, my group is developing an iPhone application! It’s a Cornell map/directory application that will be able to find your location on campus, and show you surrounding locations that can be searched for, such as dining halls and eateries (what we are focusing on). It’s all fine and interesting except for the fact that 1) it doesn’t work on a real device yet (works in the simulator), and 2) the map doesn’t really correlate well to the GPS data given to us, which means it places marker in the completely wrong place. We’re still working on that….in 4 weeks it will be perfect (ideally). The fact that development can only be done on a mac doesn’t help either.
In my last project class, operating systems practicum, I’m writing a sparse petabyte filesystem using fuse. What the heck is fuse? Chances are you probably don’t care and I’ll probably never use it again after this class. The project is written in C. I hate C (or to put it more softly, I’d rather not use it). Maybe it’s because in ECE we didn’t really program in C much and the CS program really likes Java. In any case, the project is kind of cool in the sense that I’m learning more about how filesystems work. I needed to implement a B+ tree which was kind of gratifying after I finally made it bug-free (I think…). What sucks is for the second part of the project, I probably won’t even be using my code because the data structure I used is not really optimized for synchronization/multi-threaded access. Poop.
Well, maybe my projects sound kind of interesting to my small reader audience. And they are! So why am I complaining about it? I guess you could say….SENIORITIS. I’m lazy and tired of school. Honestly, this microcontroller stuff, I’d LOVE to do as a hobby after I graduate, and make geeky things. iPhone development is also something I’d love to pick up and continue pursuing if I ever get a mac (but both my sisters do so I could use their computers too…and their iPhones). Filesystems? Well, I probably wouldn’t do that in my spare time….but the point is I just don’t want to deal with it NOW and ALL at the same time. Like, I’ll have my moments of excitement from the idea of creating a cool system or application, but then I see how much work it turns out to be and I’m like blahhhhhh. For you Naruto fans, I feel like Shikamaru (minus the strategical genius); I’d rather just lay down and stare at the clouds passing over. So much trouble.
One thing I must say though – we take technology for granted SO MUCH. We don’t get how much rigor and detail is needed just to make something as simple and commonplace as a touch tone dialer. Or when we’re using a computer and open a file – do you really know what the heck is going on when you double click on a set of pixels on a screen? How does “the internet” really allow computers to communicate with each other? I certainly don’t know, although thanks to the engineering education, I have a slightly better idea. Just slightly.
Sometimes I wonder if engineering was really for me. My parents always said a doctor was a good fit for my personality, and I don’t disagree. Besides the fact that theres like countless years of schooling required, I think the pressure of making an incorrect diagnosis or screwing up something during surgery would get to me. Plus, I like having this technical knowledge. I don’t know. I guess that means I’m still waving my arms around, reaching for what truly interests me. I have a feeling that it won’t ever lead me to getting a PhD though….the parents won’t like that.
Anyways, I find myself struggling to transcend all this stress from “fulfilling your potential and ambitions” and to just keep things simple. I’m a Christian; the most important thing is pleasing God. That’s all that really matters, when it comes down to it. If I can’t grasp that, life is moot. Seriously.
Well, time to go read that datasheet and firmware code….