Archive for the ‘Student Life’ category

Opening a Dell Inspiron 6400/E1505

August 31, 2009

It’s been about a month since my last post, and a lot of things happened. I’ve been working on my work term report, finishing things up for the work term, playing Street Fighter 4… yeah. Now that my work term is over, one of the things I’ve been stalling on is changing my laptop fan.

I bought my Dell Inspiron 6400/E1505 just before going into university (Summer 2006). But once I got to university, the laptop was everywhere. I think this laptop is probably the most popular laptop of my generation, so I thought that this post might help someone with their computer problems.

Dell Inspiron 6400/E1505
Dell Inspiron 6400/E1505

I’ve been generally happy with my laptop though, had a few minor problems: a blue screen every now and then, and my CD drive doesn’t work at the moment. But from my experience, it seems like the fan is the first thing that breaks down after about 2 years of collecting dust. My fan died last summer in the middle of a LAN party. After, the fan was loud all the time; it was a little embarrassing in the library. But I never realized that the fan was the problem until I opened my computer, cleaned the dust, and checked the fan last January.

So I’ve opened my computer before. And that’s the main problem; the laptop’s annoying to open. I pried open some plastic, fooled around with some wires, and removed the palm rest, keyboard and monitor. Seems like a lot more work than needed. I don’t have much experience with technician work, but thanks to Dell’s service manual, it wasn’t that bad. You just need to be careful and follow instructions. It was good bonding time with my dad.

Innards of a Dell Inspiron 6400/E1505. Didn’t know the heat was transferred through those metal bars.
Innards of a Dell Inspiron 6400/E1505. Didn’t know the heat was transferred through those metal bars.

Replacing the fan was simple. Testing the fan turned out to be simple too. While opening the computer, I was sort of scared because I was too lazy to backup my stuff, but it turns out that the computer is still fully functional without the parts I took out. I used the palm rest to turn the computer on, and external monitor, keyboard and mouse for input/output. I used WarCraft III to trigger the fan. After, I cleaned the computer with some compressed air and put the computer back together.

Running my computer without the internal input/output components
Running my computer without the internal input/output components

Other than that, I ordered my fan off eBay. It’s the first thing I’ve ordered on eBay and I got it in about three weeks. Best of all, it was only four dollars American with shipping. Pretty good deal.

Next up, my CD drive. (You take out one screw and pull it out.)

The field of screws
The field of screws

The first language debate

July 25, 2009

As a student at the University of Waterloo during its transition from Java to Scheme as a first language to teach, the debate about “what programming language should one learn first?” has been all too familiar to me. This article got me thinking about it again.

In summary, the article states that Scheme is a simple language to learn because it expresses programs using the functional programming paradigm. The syntax has less operators and represents the programs as mathematical functions (lambda calculus) instead forcing you to learn different ways of doing the same thing. While other languages, such as C and Java, have the benefit of practicality, letting you explore and aspire to make the computer do stuff.

With Waterloo’s transition, the most common complaint I get about Scheme is that no-one uses it. And it’s true; I haven’t seen Scheme’s use outside of school. And seeing that some Waterloo students do co-op after their first four months of school, Scheme can seem pretty meaningless when job descriptions ask for Visual Basic, C++, etc. But with my first language being a Java-like language, C#, when I was in Computer Engineering, I do have some bias over my opinion (thanks to Mr. Gates’ donation to the Engineering faculty).

To be honest, I don’t truly know what functional programming and lambda calculus is, but I think the topic is important enough to cram in with my Geography courses (check out CS 442). I barely remember functional programming because I used it about two times while learning Python, such as iterating through a data structure functionally (which is pretty elegant). From my view, Scheme’s syntax is minimalistic and unlike any language I’ve worked with. Scheme deals with more recursion, while avoiding object oriented programming – something I struggled with.

It’s pretty random that I’m in CS right now; I actually avoided programming jobs for my first co-op because I didn’t understand what an object really was. (It’s a box? A recipe? Huh?). Later, I learned programming by playing around with the debugger in Visual Studio – going through the program step by step. The debugger got me over the learning bump others struggled with. I was lucky to figure out the debugger on my own, and I wish educators considered using the debugger when teaching any language.

But if C# wasn’t as practical as it was, I might not be in CS because what really got me into programming was volunteering to write a program to format and merge Excel spreadsheets during my first co-op. Practicality is what got me going into CS, and still motivates me.

Even though I don’t fully understand the pros of Scheme, I will agree with the author of the article: go for the middle ground, Python. It’s used by the University of Toronto. Python’s syntax is minimalistic, it’s easy to setup, and it can be object oriented or functional. Something as mathematical as Scheme would probably detract students like me. People learn better if they apply their knowledge outside of class. After all, school isn’t everything.

(By the way, for the Waterloo-ers, the Math Faculty curriculum for CS isn’t that bad, you get to learn C or Python later on. I’d think that the transition from Scheme to C must be brutal though.)

PS: If you know of any other good developer related RSS feeds other than InfoWorld, a link would be nice =)