|
So, I'm 50% done my exams.. only CS 444 (compilers) and PSYCH 101 left. Saturday at 10pm, I will be free of all university obligations. Possibly earlier if I finish my psych final early, which is likely... it's a bunch of multiple choice questions.
Compilers seems like a kind of broken course - it almost has a split personality disorder. One part of the course is the lectures/final, where we learn the theory of compilers - different parsing techniques, analysis, code generation, etc.. The final exam does seem somewhat non-trivial and is worth 30% of the course mark.
The other part of the course is the compiler project. We write code like crazy, using little to none of the stuff taught in the theory part of the course (either because it's taught too late or is too complex to actually implement in the time given). The project is worth 70% of the final mark (10% for the first two submissions each, with 50% for the final compiler submission).
The problem is that for the project, we get basically zero feedback and are basically flying blind. We got back a mark for the first submission. We still haven't gotten back a mark for the second submission, never mind the final. Heck, we didn't even get a response to a question we asked the TAs a couple of months ago regarding our mark for the first submission.
With the TAs handling the project half, and the prof handling the lecture half, and almost no connection between the two, it seems like we ended up learning a lot less in the course than we should have. :( Ah well, it was a good introduction to writing a real compiler, and I want to write a fully functional compiler for a non-dead language (i.e. Java) in the near future.
[ 0 Comments... ]
Morfik's AJAX compiler, along with the GWT, seem to be foreshadowing the future of Javascript. In a nutshell: it's too ugly and error-prone to code by hand, so instead, write the code in another language and then compile it down to Javascript. There's something inherently wrong about this model: Javascript is supposed to be a human-readable programming language. Instead, it's starting to turn into more of a machine language - it's being output by a compiler on one end, and read in by a browser on the other.
Ironically, I think these Javascript generators are good news, because they introduce another level of abstraction that makes Javascript more redundant. Assuming enough people switch to using AJAX code generators, the actual Javascript should be easily replaceable with some other language. It could be an existing language like Flash, or something else entirely. Either way, less Javascript is good.
[ 0 Comments... ]
So now that I'm done compilers and real-time and have some time on my hands, I've gone and gotten me a Facebook account. Let's see if the horror stories of addiction are true.. :)
I probably should write more seeing as I haven't blogged in a while, but eh. Can't really think of anything pertinent to say right now. Maybe later..
[ 0 Comments... ]
So my earlier prediction/random musing about the PS3 and Cell doesn't seem to be as accurate as I had hoped. However, according to recent news, that massive amount of idle computing power is starting to make a difference. I still think it would be awesome to write a generalized framework for distributing tasks over idle PS3s and pay the owners for their computing cycles. Perhaps something for RapidMind to consider (go Waterloo startups! :)).
[ 2 Comments... ]
So various people in the CS club seem to be having a ball getting things slashdotted (again). The latest media hosted on the CS club servers to get slashdotted was a Bill Gates talk from '89 at UW. I wonder if IST cares about the massive numbers of people presumably downloading these gigantic videos. Eh well.
The most awesome thing about this last entry, though is this picture. Never have I seen a bunch of people look more geeky. Also surprising how short Bill Gates is. Pure gold :)
[ 1 Comment... ]
Stolen from slashdot: The Air Car. Although the car itself doesn't create any pollution while running, there's still pollution involved in compressing the air used to run it. But still, this seems strictly better and more renewable than any other alterna-car I've seen yet. Two thumbs up from me :)
The reason I'm posting this though, is the amusing image that popped into my mind when I read the article: imagine a typical Hollywood car chase scene with one of these cars. At the end, instead of the fuel tank igniting and blowing the car to bits, the compressed air tank gets punctured. That's right, 90 cubic meters of compressed air whooshes out, much like the way air rushes out a balloon when you let go after blowing it up but not tying yet. Now there's a car chase scene with a twist.
[ 2 Comments... ]
Also in the past month, we, as the graduating class of engineers, got our iron rings. The ceremony itself was somewhat less exciting than I anticipated, but pretty col nonetheless. I didn't go to the Iron Ring stag celebration afterwards, so I can't comment on that.
As is traditional, we also carried out a couple of pranks on the night before the Iron Ring ceremony. We got a ton of balloons, and filled up the Software Engineering administrative offices (well, the lobby area in front of the offices) with balloons. There's a picture in the daily bulletin. The sign on the door says "In case of balloons, use clean-up kit provided ==> [thumbtack stuck to paper]. Cleanup time: O(n)".
There was a second part to the prank, wherein we made a large "SE" sign out of the balloons and hung it from the 2nd/3rd floor walkways in the DC, so it overlooked the entire DC foyer in front of the library. I didn't have a camera so I don't have photos of it, but I should find some. (If anybody reading this has photos, do tell). There's also a few videos on Youtube of the filling of the balloons (here (00:22), here (05:44), here (01:55), and here (00:31)). There's also a video somewhere of Shaz's reaction when she saw the balloons that's really good. Again, I don't have a copy but want one.
There were a number of other pranks done by other engineering classes - there were a bunch of undergarments hanging around the engineering buildings, as well as noisemakers dangling from the ceiling in the E2 hallway. My favorite, though, was the class that filled 2007 cups with water and used them to block off the 2nd-floor bridge between the DC and the DC extension (it took them a solid 4 hours at least - they were doing it while we were filling the SE office with balloons, which is right next to the bridge). It was amusing watching people going to the bridge, realizing they couldn't get through, then having to turn around and take the stairs up to the third-floor half of the bridge.
All in all, most of the pranks were pretty harmless, and there was a lot less flak from annoyed profs this year than in previous years (in my view, at least). We did get blamed for some drunken vandalism which we didn't actually do, but that was cleared up when somebody who witnessed the vandalism was able to confirm that it wasn't us.
[ 1 Comment... ]
Swayed by the popular demand, I have decided to post again. So... life is good. Taking real-time and compilers at the same time makes life busy, but not so busy that I don't have time for other things.
Real-time is definitely the most fun course I've had in university. It's not nearly as much as work as I was led to believe it would be, mostly because the workload scales up to however much you want it to be. Getting the minimum requirements (basic kernel, train tracking/routing) wasn't overly difficult, and we didn't do a lot of the possible extensions like networking or paging or virtual memory. On Tuesday we had our train routing demo, which went pretty well. We are able to give the trains a destination and the trains go there! :) Except for a bug somewhere in our serial interrupt handler which causes random lockups, it's looking pretty good.
Our final project is going to have pots of gold randomly appearing on the train track display, and then the trains are going to go pick up the pots of gold. It's not too hard, and is almost what we have now. We just need to adjust our routing algorithm to take into account multiple trains sharing the track, and get graphics working (that's the time-consuming part now).
Overall, the course was a blast. We did the whole thing in straight C code, using no provided libraries (except for a couple of header files with a bunch of #defines). It was most awesome writing everything from scratch and owning the entire stack from the metal up to user applications.
Compilers has also been a lot of fun, although not as much as RT. There's more work involved in getting the baseline functionality done, and less room for extensions. Also, Ada (or our personalized subset of Ada/CS) is kind of a crappy language to be writing a compiler for - it's type system is quite convoluted and generally icky. Coding in Lisp has been fun, mostly. Although most of the theory in the course is common sense and/or stuff we've looked at before, actually writing a compiler is quite useful.
[ 0 Comments... ]
So the new search engine on the block, PowerSet, seems to be getting a lot of press, even though they don't seem to have a working product yet. Sure, it is/was created by a bunch of AI profs/researchers, but so far it seems like a lot of vaporware to me. And they want to take on Google - good luck with that one. The one thing they've going for them is the name.. "PowerSet" sounds pretty cool :)
In unrelated news, the longest hug.
[ 3 Comments... ]
Slashdot pointer to the NYT article on the PEAR lab closing. Rather sad, considering all the cool stuff they've done over the years. The egg project, in particular, was really cool. The possibility that you change or predict events just by thinking about them has tremendous potential, and it sucks that the scientific community is so opposed to exploring this further.
Not all observed phenomena can be explained with our current scientific knowledge, and it seems kind of stupid to just selectively ignore some of these phenomena or pretend that they don't happen. I think even random speculation on the cause would be better than ignoring it.
[ 0 Comments... ]
|