January 26, 2006

Going the extra mile… to piss off students!

Filed under: Uncategorized — spiro @ 4:37 am

We all know, we’ve all been there. The classroom seems to be a constant battle between the students and the teachers. The profs want the attention, the students won’t give it to them. Typically, professors will waste half the class telling pupils to sit up straight and pay attention, and the other half having boring conversations with the black board. Isn’t that such a blasphemy to the subject they are teaching?

In many university classes, professors use slides to teach. Nothing wrong with that, and, acutally I prefer that to a prof wasting valuable class time filling the board with nonsensical crap. But there’s gotta be something wrong with those slides right? Students may not come to class, may not pay attention, but still get by, so let’s piss them off a little bit. They take their time to edit their slides to put “holes” in them, so that students actually “miss” something valuable. A student is not a tangerine, in fact, we pay for these stupid classes and thus we deserve any help we can get. Many students have other commitments, thus may or may not be able to attend one or more of these classes.

So here’s one prof that went the “extra mile”:

Slides with holes

Sounds like the typical “slides with holes” thing. But, consider that the diagram is an image, so you can’t just go and remove text on PowerPoint like you would do on a text box. He sure got us covered! With some patience, he went and drew color-matching squares to hide the good stuff:

Uncovered

In fact, the color-matching is so precise you can’t really tell the difference on an LCD screen. Turns out there’s a little flaw in PowerPoint that existed since vector-based drawing programs were introduced on Amigas: it takes some time to draw the shapes :)

I usually attend class pretty often, but this time, I missed class. The reason was very legitimate: I had a term test worth 60% of my grade the next day, on a pretty tough subject. I needed some time to study. I missed the material! The question was asked on the final, and it turns out I did pretty well (a combination of luck and smarts) and got most of the marks for that question. But, did I learn what an observer pattern was? Nope, as a matter of fact, it just came back to haunt me tonight.

January 21, 2006

CUSEC 2006 : Day 3

Filed under: Uncategorized — spiro @ 4:23 pm

Today, last day of CUSEC, but not the least. This morning started off by Chad Fowler giving the “Ruby on Rails” keynote, as David Heinemeyer could not make it in town. But that’s OK, we got another great lecture by Chad, “Rails is Boring, Ruby is a toy”. He succeeded in making me really interested about ruby, and I WILL try it out within one (or two) weeks.

Basically, traditionnal languages force you to type stuff you don’t really need. For example, a simple program that prints “Hello World!” in Java would look like this:


class HelloWorld
{
public static void main (String args[])
{
System.out.println("Hello World!");
}
}

What’s wrong with this? Well, you need to create a class and a method simply to have one statement executed. Too much typing, basically for nothing. Ruby’s Hello World:

puts "Hello, world!"

Short, sweet and simple.

Rails is to ruby what servlets are to Java, but much more than that too. It allows real simple and effortless coding of MVC applications. Chad literally did a demo of a Rails application in barely 5 minutes, and all that was missing was the template view.

The conference ended by a presentation about the horrid financial world of software development, and a panel.

Until next year!

Update: I have not yet had time to put links to the relevant materials on the CUSEC posts, and I don’t know if I will ever have time to do it. Google is your best friend.

CUSEC 2006 : Day 2

Filed under: Uncategorized — spiro @ 3:16 am

Today was the best day so far. The day started with a tutorial by Chris Laffra from the Rational Performance Engineering Team at IBM. One thing to say, that was a great lecture about AJAX. For those who don’t know, AJAX stands for Asynchronous Javascript plus XML, or whatever runs Gmail, Google Maps, Microsoft Start, and all these great sites.

The main challenge with AJAX is browser compatibility. Basically you need to know Javascript and XML inside out. Once you mastered these you can do really cool things in terms of integrating content from the four corners of the web, like Mr. Laffa, who pulled out all housed for sale in a desired area onto a Google map and added the area schools and their ratings, all by aggregating some data from the web.

I think this is really cool and we are to see more of this in the future, as people don’t have time to scour the web for information, so presenting it in an aggregate form that the user wants is a great thing. Aggredate your blogs, news, weather and read it on your cell phone on the bus, is an example of how useful this thing is. The challenges in this is to design algorithms that “steal” data from the relevant pages and aggregating it on your own. Though I am happy to see a big push for RSS lately, which I hope maintains momentum and stays. Though, as he pointed out, some things (well actually many things) must stay server side!

Next was Dr. Grogono’s presentation, a professor from Concordia. When Dr. Grogono lectures, it’s always a fascinating lecture about programming languages through time. It’s very nostalgic indeed, because it is amazing what we have learned since the time of LISP. This talk focused on concurrency, one of the biggest problems in computer science, and today’s languages do not support it too well. Dr. Grogono presented a new set of languages that will meet the challenges of tomorrow’s software. I think this is an exciting field, and whateger comes up is going to be a totally new way to think about programming!

Then I went to Laffra’s second presentation, “Eclipse performance”. That was pretty awesome, but also very serious. Yes, there have been a lot of critics about IBM’s software performance, notably with Eclipse, and Rational Software architect, but performance isn’t the goal with this kind of software. People want features, coders are paid to provide features, so we give them features! Optimization is often the last concern of programmers and they do it only after the 8th iteration, where it should be done from the get-go. I agree to this, but I would also add SECURITY, because it’s really critical in this day and age. IMO, coding for performance and security should be viewed as a concern rather than an activity they call “optimization”, which is often neglected because there is no time.

The day ended with a keynote from Kathy Sierra. Think you can take a nap after a day of lectures? Not quite, her presentation was about about keeping people interested! Creating Passionate Users is about ways to keep the user hooked to a product, kind of like the iPod. That was a great, energetic presentation, and I did learn a lot in the software marketing front, and at the end, I won OREILY’s PHP and MySQL book!

So far I am having lots of fun at CUSEC, and I can’t wait till tomorrow, where Chad Fowler will give a keynote about Ruby on Rails. Being a software engineer ROCKS!

January 20, 2006

CUSEC 2006 : Day 1

Filed under: Uncategorized — spiro @ 1:56 am

Today was day 1 of the Canadian University Software Engineering Conference, or CUSEC, a three-day conference about software engineering being held in Montreal this year, though there is word that next year’s will be held in Waterloo.

The day started with Chad Fowler’s keynote. After (not so briefly) summarizing his biography, he talked about the offshoring of jobs to India. He toughed on a point I strongly believed in: the jobs being exported to India aren’t the good ones!You don’t know how much I hate it when people tell me that I should not do software engineering because “everything” is going to India. And yes Chad, I know you are a great sax player. I think he is a very great lecturer and puts out statements with very well constructed and convincing arguments, thought there are some things I am not too sure about.

Next was Robert Sabourin (or, in the other room, something that has to do with SAP and open source, somewhat of an oxymoron). Robert gave a great speech at CUSEC 2004 that focused on his company, Amibug, and some important observations about the software industry. Today he focused on “What Hollywood has taught him about software engineering.” Very very entertaining show!

Then I went to Nancy Acemian’s presentation, a professor at Concordia. She presented a project that she did with software engineering undergrads, that illustrates execution of snippets of code to help her teach introductory computer science classes. Control structures, iterations and recursion are basic programming language constructs that we take for granted, but do take some effort to grasp for beginners, mainly because they cannot easily be illustrated. Actually, I am thinking, my brother will be taking his first progranming course in CEGEP this semester :)

Then I went to Cen Kaner’s presentation on Software Metrics. I chose that one over the Eclipse Test and Performance Analysis tutorial because I am taking a metrics course. The main lesson from that is that while many people think that using a flawed measurement tool is better than nothing, Kaner disagrees, and I do too. A flawed measurement tool will give flawed results, which will lead to flawed conclusions, flawed work, and flawed software. Software metrics isn’t a mature field yet, and there are no known mathematical models that can model software development.

I went home after that, too tired for the paper presentations.

January 3, 2006

Anyone’s got PC-133 128 MB SDRAM Sticks?

Filed under: Uncategorized — spiro @ 4:07 am

I have been wrestling with this computer for awhile. It’s a Pentium III, 733 MHz, 128 MB RAM, 20 GB HD, and a royal pain in the arse. It’s got a nice little Abit BE6-II motherboard, which is enough to test the patience of anybody.

Perhaps Abit does make some decent hardware. Apart from that, it seems they can’t really do anything else right. They decided it would be a good idea to ship several versions of the board, version 1, version 1.2 and version 2. Sure, there might be reasons to this dictated by higher management to deliberately confuse people, but, there is only one manual, which refers to version 1 only. Their web site does acknowledge the existence of the three versions when it comes to downloading bios upgrades, but not when it comes to manuals.

This manifests itself during the Windows XP installation. Windows does not detect the hard disk controller, so I go hunting for the HighPoint HPT366 controller. Abit’s site refers the user to the HighPoint site, and HighPoint’s site tells the user to contact their board’s manufacturer for support. Good going guys! Finally I find it burried deep in the hierarchy of Abit’s FTP site. A realy easter egg hunt. I don’t know, but I would not trust my web site to Taiwanians!

Turns out, after careful inspection that this board has the HPT370 controller, an IDE RAID controller (who sold them this computer, this was overkill at that time!). So I find the drivers on Abit’s FTP site and pop them in, Windows finally wakes up and install continues without any problems.

Next, I attempt to install the drivers for the modem. That’s also a no-go. It defines itself as a “PCI Communications Device”, yes, OK, it’s a stupid modem, spare me with the stupid, insignificant formal wording! So, I pop in the Gentoo CD to get a better ID on the device, which has no name, it initializes itself as a Motorola SM 56. I download the drivers for that, windows detects it no problem, but then bluescreens. I install it on another slot and boot it up again, “Code 10, the device cannot start”. Damn Windblows! I give up on it, as they can find better modems for $25. I give them a call, and it turns out they have high speed now, and have not used the modem in a long time. So out it goes! I gave them a network card, as they previously connected their modem through USB.

Now, they want me to add a little ram to speed thing up a bit, so OK, I run to Micro Bytes to grab 2 sticks of 256 MB PC-133 sticks. I put them in, but only 1/2 of it gets recognized, so each stick is worth 128 in the eyes of the PC.

Happy new year!

Filed under: Uncategorized — spiro @ 3:25 am

Happy new year to all my friends, family, readers and secret admirers (yes, I do seem to have some).

I spent the new year fishing wires through walls. My parents wanted to move a TV into another room, so I went to the local home improvement store to buy some bulk coax and, while I was at it, I decided to buy some cat5, to run an extra wire upstairs, so I can finally recuperate my 100 Mbps switch, as I was always short of 100 Mbps ports down here.

I run the wires through the closet, the attic (lovely places to hang around aren’t they, and a clothes drop that in recent years began serving as a cable raceway. Then onto the basement, where the suspended ceiling makes the job real easy.

I crimp the connectors, and fire things up. That’s where the trouble starts. I notice an unusual delay in obtaining an IP address from my router. I decide to run speed tests, simply downloading a file from another computer via HTTP, with a ridiculous speed of 1 kB/s. What a shock, this is supposed to be Cat 5e wiring! I plug into my newly recuperated switch. A sensible improvement, 500 kb/s. The computer up there is a mish-mash of old parts, meaning that it features an old combo 10 mbps network card. So I bring up my laptop, run the same test. The bloody thing won’t go over 1000 kbps. Just to make sure I am not dreaming, I run the test on my brother’s PC, which is on the room beside, which has been wired with cat 5 about 5 years ago: 5000 kb/s.

Considering the new wire runs along with the older wires, I highly doubt it would be subject to any special interference the other wires aren’t subject to. I re-crimped the connectors to make sure they are right, paying lots of attention, with little change. I have successfully crimped many network wires, so I must know what I am doing! The only thing left to check out might be the spool of wire I keep in the basement, in case I need to relocate the switch, but again, the other cat 5’s are also subject to that! So either the cable has a defect somewhere, or is not up to grade!

Anyway, I only paid 18$ for it, at 53 cents a meter, and I guess I can use the existing cable to pull through another cable in case I ever need to in the future. I’ll still be e-mailing General Cable, since their name proudly appears all over the cable, along with their “cat 5e” rating. They seem to have a good warranty, which they will replace the cable if defective, so we’ll see what that does :P