Monday, November 29, 2004

Please Ignore the Google Ads.

Okay, perhaps Google AdSense isn't the best thing for a blog... I noticed when I checked the page that it picked up one the word "s.u.i.c.i.d.e" (had to do that so it won't see it again) in my last entry and both the ads were for suicide prevention centers. Don't they have a sense of humour over at Google? It was a JOKE, people, come on...

In other news, today I officially had over 2,000 hits on this page. Who the hell actually wants to read this drivel? Honestly, get a hobby or something. There are far more important things to do than read this... my life isn't as interesting as most of the stuff you would encounter on a day-to-day basis. Hell, my life isn't as interesting as an average trip to the washroom.

Well, seeing as my first exam is now in less than a week, I'd better go do some work. And study. And stuff. Although HL2 looks really good on my new video card. (GeForce 6800 GT, oh yah).... ooooooooh...... /me wants to go play more HL2....

Saturday, November 27, 2004

I Have Absolutely Nothing To Write About

So why, you might ask, am I posting something here? Well, I suppose there are two reasons for that. On reason is that I am sick of doing homework, and need a break. The second reason is that I don't want all my loyal readers (yah, all 2 of you) to think that I've died or something.

I really need to stop posting everything on Massassi that I find interesting, and start using my blog for what it's supposed to be used for. You'll notice that I refrained from posting "Give Bush a Brain", "Transformer Car", and "Jet-Propelled Outhouse" on here. Perhaps if I put them here instead of on the Massassi forums, I would get more visitors. Of course, the forums are also my main source of visitors, so I need to create lots of threads and post a whole bunch in order to get new visitors. I guess that's what's called a "Catch-22".

But I truly am bereft of any ideas for what to put here. Perhaps I should emulate 50% of the blogs that I find around here... please don't take this too seriously:

LoL gUyZ wUtz uP?!! mY nAmE Iz cAsEy aNd this iS my 1St pOsT oN mY bl0g!!!!1~~~~~ i'M 14 aNd i hAvE lOtZ uV gR8 fRenZ!!11~~` yAh U nO wHo u aRe!!!```~~~!!1 lol kAte yAh U 2~~~~~````!!@!!!!

Of course, then there's the other 50% of the blogs:

Life Sucks:

Current Mood: Suicidal

I've noticed that ever since turning 15, everyone seems to hate me. I'm so alone. It feels like I'm falling into a pit of despair. my parents don't care about me, and I wish they would die. but I want to kill myself too. i'm so depressed. my life will never get better. i'm seriously considering suicide. the reason i feel like this right now is because my g/f broke up with me last week. we had been going out for almost three days, and i was in love with her. and now she broke my heart, and i want her to die. i want everyone to die. i cut my wrists last night, just to see what would happen. it was kind of scary, but i want to do it again, and more. one day i'm going to take the knife and cut my throat with it, so i can watch myself bleed... and die... i wrote a poem about it

the hurt is unbearable
i can't take it
lost in a sea of evil
swimming in pain

life is pain
death is escape
can i bring death on myself?
i look at the world
and realize i must

By the way, when I become a billionaire, I am going to personally hunt down anyone who puts stuff like this on the internet, and punish them for their hideous waste of server space.

Thursday, November 25, 2004

Riding The Exponential Wave...

I was having a very interesting conversation on MSN about mortality, technological progress, the end of the universe, etc., and the subject of exponential technological growth came up. I had never really thought about it before, but once I did, I thought it was pretty fascinating that technological progress maps out to orders of magnitude almost exactly. Essentially, this is what I came up with:

10,000,000 years to invent language
1,000,000 years to invent fire
100,000 years to invent social structures, homes, simple machines
10,000 years to invent cities and civilizations
1,000 years to invent gunpowder and the steam engine
100 years to invent airplanes, computers, and nuclear power

So, I ask, what will happen in the next ten years? And in the year after that? What about a month later? Three days more? It's kind of scary, and unless this curve does some serious levelling off... Well, suffice it to say that in 2020 we won't even recognize the place.

Wednesday, November 24, 2004

Feeling the Pressure...

I suddenly realized today that this semester is coming to an end far faster than I ever imagined. And with that end comes what is known as "crunch time". Five exams, three lab reports, a computer science assignment, an engineering design project... One more week of class. Then finals are spread over two weeks. Kind of scary really. Hell, I should be working, not posting here.

Nothing else notable happening; nothing that I noticed anyways. Too busy to go out of my way to find interesting stuff to talk about.

I apologize for the blatant disregard of grammar rules shown in the above paragraphs.

Sunday, November 21, 2004

Linear algebra < *

Wow, it's a math class... WITHOUT NUMBERS. How fun. From the anti-calendar: "The aptly named linear algebra features a conucopia of Greek letters. There will be no numbers and confusion is a pre-requisite. Throughout this course, you will begin to question yourself as you fail to prove that 0 + 0 = 0..."

Naturally, I thought this was an exaggeration when I first read it, but it is true. I am studying for the third (and last) term test, as well as finals, and I realized that I really have no idea what the hell is going on in this class. At least in calculus you can draw pictures to illustrate concepts...

Honestly, I don't know why we need to learn all of this stuff that we will never use again. Sure, it's useful if you are going to become a mathematician, but is an engineer ever going to have to calculate matrix inverses without a calculator? Computers were invented for a reason, you know. And while certain parts of finite element analysis and computational fluid dynamics use linear algebra, there is no need to have anything more than a basic understanding of the concepts involved as long as the computer doesn't break down. On second though, if your computer breaks down, you would have to be insane to try doing computational fluid dynamics by hand anyways. Unless you had several hundred years, a lot of paper, and infinite reserves of patience and perseverence, it would be impossible.

In other news, Pizza Hut is one of the greatest restaurants ever. Mmmmm... just thinking about it makes me hungry for more pizza.

Friday, November 19, 2004

It Finally Happened...

Yes, the day I have been waiting for has finally arrived. Today, I enjoyed more pure bliss than can be described in words. I still can hardly believe it. There were so many things I wondered about... was it as good as everyone said it was? Would my equipment give adequate performance? Would I EVER find out the true meaning of pleasure? Well, all of my questions have been answered. It was, without a doubt, the most beautiful thing I have ever experienced. It was as good as, and better, than my expectations led me to believe.

Anyways, believe it or not, I'm now heading off to experience more of this joy. I'm tired already; I don't know how much more I can take!

Some parting words: If you haven't tried this, I highly recommend it. It's more fun than you can imagine.

Okay yah, I give up. I'm talking about Half-Life 2. I could only come up with a certain amount of sexual-sounding stuff. So STFU.

Wednesday, November 17, 2004

Proof That Assignments Should Not Be Done The Night Before Due...

Late last night, I was working feverishly to complete my computer science assignment (due today). Today I woke up with only a very fuzzy recollection of what I had done on the assignment. But it was sitting there on my desk in a brown paper envelope, ready to be handed in. After handing it in, I began to remember what I wrote. And these memories scared me. Apparently I had gotten so sick of working on it that I just started writing down whatever came to mind.

Later on, I found on my computer the "overview document" which I wrote to explain certain aspects of the program I wrote. Just to illustrate some of the stuff that your brain produces at 3:00 in the morning, here it is in its entirety:

Part 3: Overview Document

Class Design – Part 1:

In part 1, Three classes were used: Student, Graduate, and Undergraduate. Student was the parent class for Graduate and Undergraduate. Inheritance was used because both Undergraduate and Graduate students share characteristics like student number, first name, and last name, and also because the assignment said we were “encouraged to use inheritance”. In each class, all member variables are kept private, and Get() and Set() functions are used to read and write to these variables. The Student class runs no constructors or destructors, because it should never be called except by Graduate or Undergraduate, which have their own. Destructors are in fact never used, because the “new” command was not used, and as such the memory does not need to be freed. Which is a good thing, because I am pretty sketchy on how memory works. But that doesn’t matter, right? As long as I can comment my code properly, and separate function definitions and implementations, it’s all good. Heck, on assignment 2 I got 30/50 and my program didn’t even work.

The class Graduate has three constructors: one for no initial parameters (which sets the student number to -1), one for only one parameter, and one that sets all the variables according to the passed parameters. The constructors have a simple tester to make sure the student number is 8 digits long. Similarly, the Undergraduate class also has three constructors; the only difference being the set variables and the tester checking for a 9-digit student number.

Each class, per the assignment requirements, is contained within its own .cpp file, and has its own .h file. This makes for lots of “#include” statements, but I suppose it makes things somewhat neater.

Class Design – Part 2:

For part 2, a new class called StudentRecords was created. It uses no constructors or destructors. Again, all the member variables are kept private, because there are some variables (such as arraylength) that could cause serious problems if modified from outside. Get(), Insert(), and Delete() functions handle everything that is allowed to be modified externally.

For a data structure, an array was used. This seemed at the time (sometime late Tuesday night) to be the best choice, because I was sick of linked lists. In retrospect, a linked list is probably a much better choice, but as it is now Wednesday morning, there isn’t much time to entirely rewrite the code. However, there are some advantages to using arrays:
1. Eliminates pointers! (I hate pointers)
2. They take up less space in computer memory (kind of; this will be addressed later).
3. They are phenomenally easy to write algorithms for (being able to address an array member with a variable comes in handy sometimes).

The only problem with using an array is that you can’t dynamically change their size. To get around this problem, I wrote the code blindly assuming that you could. After all, if you can do it in Java, it should be fair game for a C++ assignment that isn’t even being marked electronically. Writing the code with this assumption is actually pretty neat, because it allows you to write algorithms for deleting and inserting without having to call functions that create new arrays and passing around pointers and all that garbage. I figure that it’s the concept that’s important, not the implementation. Perhaps this should wait until next semester’s course though (Algorithms and Data Structures). Anyways, since the students are stored as an array of pointers, it made the GetAsArray() function (which is supposed to return an array of pointers) quite easy to write too.

Space/Time Complexity Analysis:

Wow, when you say “space/time” it sounds like you are talking about relativity or string theory or something. But I digress. I don’t even know why a space complexity is needed; my computer has 1.5 gigs of RAM, and I know some people that have even more, so I’m not entirely sure why space is so critical. After all, even in the worst case there are still the page and swap files (which one is it that acts as extra RAM? I can never remember. It’s like the difference between the stack and the heap.). Although I must admit that when I tried to declare an array that would be big enough to store all possible student numbers (all 900,000,000 of them), it gave me an error. I guess Windows XP doesn’t like competition for taking up the most system memory. Granted, nine hundred million student numbers would never be used, but until you get up to that number you can never really be sure that the array is big enough. “Segmentation fault”, here I come! So. Time complexity. For the Insert() function, the complexity is O(n) for a list of length n, because it runs through the loop once to move all the items, then adds the new item. Get() is O(1), because it just goes right to whichever entry is i+1th. GetStudentNumber() is again O(n) because it has to go through each item in the list and check for the correct student number. Delete is O(n), and so is DeleteStudentNumber(). GetAsArray is O(1) because the array already exists and it just gets passed back.

Monday, November 15, 2004

Am I Just Stupid, Or Is Blender Impossible To Work With?

Blender: I swear; a more unintuitive, user-unfriendly program has never been made. I won't even bother complaining about the strange choices for keyboard shortcuts (which aren't really shortcuts; there's no other way to do things). I figure they chose things like "w" to stand for "boolean operation", "b" to stand for "select", and "g" to mean "translate" because they are Dutch or something. No, what irks me is the lack of basic functionality. You'd think that joining three vertices together to make a triangle would be something that any basic 3D modeling and rendering program should be able to handle. Well, Blender can handle it - but only when it feels like it. One minute, it's happy to let me select any number of vertices, click "shift-f" (because that obviously stands for "triangles"), and it would fill (maybe it means fill?) the space between them with triangles. But then the next time I try to do it, even with only three vertices (which is pretty elementary), it tells me "error: can't make face/triangle". Near as I can tell, the only difference between the two situations is that the second time they weren't parallel to the XY, YZ, or XZ planes. And while I admit that it would be theoretically possible to align everything parallel before joining the vertices and then rotate it back, it would take an inordinate amount of time to do so. And I've been told that Blender is efficient. Ha! Efficient!

Another gripe I have with Blender is it's apparent inability to change the number of frames in an animation. Yes, believe it or not, I actually figured out how to do an animation (on a curved path no less). But it is preset at 100 frames, and no matter what you set the number of frames to be, it will always be 100 (plus some number of copies of the last frame). This isn't changed by modifying the frame rate or duration either. Thankfully, I didn't need an animation for a project or anything... Oh wait, I did. Well, it's a good thing that 4 seconds was enough.

Another serious problem is the lighting system. I'm a pretty experimental person; and I tried every combination of every setting on anything to do with lighting, and I couldn't even make it do shadows. But that's okay; it wouldn't have helped the looks because the textures all looked like plastic. Yes, all of my solid-colour textures (because I can't for the life of me figure out how to load .BMPs), looked like plastic (no matter what I did with that "specularity", "reflectiveness", or whatever other options there were.

Anyways, before I get a flood of e-mails saying "OMG UR STUPDI LOL READ THE TUTORIALS ON TEH INTARNETS!!", I did so, and all of them seem to be describing either:
1. How to move the camera so you can look at the default cube in different ways, or
2. Real-time animated boolean operations with patch NURBS splines controlled by bezier curves in advanced ray-traced 7-dimensional space for models with half a billion vertices.

So if someone could write a Blender tutorial covering stuff in between those two, like:
1. Why the shortcut keys are so counter-intuitive,
2. How to make things not look like plastic,
3. How to make shadows,
4. How to make a collection of three vertices into a face, and
5. How to make animations with more than 100 frames.

I would be very appreciative.

But for now I'll stick to JED.

Sunday, November 14, 2004

3 AM Pizza, and More Fun With Road Cones

Last night, me and my roommate decided to go get pizza at 3 in the morning. There's never a bad time for pizza (a sentiment that is shared by many, judging by the number of people who seemed to be getting pizza at the same time as us), so we set off on our arduous trek to the pizzeria. Halfway there, we noticed two guys lining up road cones across the street. I have a picture of this, but unfotunately Adobe Photoshop refuses to co-operate when I want to do such hard tasks as "opening a file". I suppose I could just use the Gimp, but that would mean figuring out it's user-unfriendly, multi-window interface. And right now I'm feeling too lazy for that. Maybe I should just post the photos at their full 1600*1200 resolution? Maybe later.

Anyways, after the funny randomness of the road cones, we witnessed a garbage truck driving by - with a broom glued to the side. I kid you not. I have a picture of this as well.

Saturday, November 13, 2004

I Have Nothing Better to Do, So I'm Posting Here

I realized something today. All my life I strove to not be seen as "nerdy", or "geeky"; labels that come all too quickly when one is a math genius and likes computers more than people. But what if it's not that bad? I just spent my entire friday night with little to no human contact (and what contact I had was unintentional), and I ENJOYED it. I watched seven hours of Stargate SG-1 episodes without a break, from 3 until 10. Then - get this - I get a knock on my door, and it turns out to be three attractive females that want me to go to some stupid "pub night" or something... (that, by the way, was the extent of my human contact). I turned them down; it was the only logical thing to do, because I had already decided that I wanted to watch Return of the Jedi. Oh, and I drank an entire 2-liter bottle of Coke.

So, I'm thinking that if I have fun doing stuff like this, then why should I change? Why should I leave my room, and run the risk (and a large risk it is) of social humiliation? The only things that I have to fear in here are malnutrition and computer breakdowns. Yes, I suppose that's what keeps me in here. Fear. Fear that I will go out there and not know how to interact with other people. Not be able to adapt to changing situations. Fear that I will do something so incredibly stupid that I will never be forgiven. And judging from my past, that has a large probability of occuring.

It's interesting what one will write, when one knows that (in theory) the entire world can access it, and yet nobody will read it. I'm sure it reveals some part of the mind that isn't normally seen. But now I'm talking about psychology, which puts me way out of my depth. I'm an engineer, dammit! And until we get to the point where we can re-engineer the human mind, I'll be perfectly happy with inanimate objects.

So I guess that's all that I will write tonight. I'm sure that tomorrow night will be just as interesting; although I need to download some more Stargate. I really need to get a hobby...

Friday, November 12, 2004

Fun In the Structures Laboratory

That's right, they let us into the structural testing lab this morning. We got to see an interesting demonstration of a wooden beam failing in shear, as well as some other chunks of wood failing under compression. Basically we snapped stuff and squished other stuff. Not that these were small pieces of wood though - they were all 10 x 10 pieces. It takes an insane amount of pressure to fail a 10 x 10 piece of wood, but the machine we used can generate up to 12 million pounds of force. So it was no big deal. The machine was quite impressive though. Installed in 1961, it is still the largest machine of it's kind in Canada. It can test objects that are up to 20 meters long, 3 meters wide, and 7 meters tall (the size of a double-decker bus). And yet it is sensitive enough that it could measure the force it takes to crack an egg. The concrete floor under it is something like 5 feet thick, so it can take the force of a test that would actually use the full 12 million pounds that it's capable of.

Seeing the wood being tested was an interesting experience. The first piece we tested was a 10x10 beam that was about 2.5 meters long. It was kind of like snapping a stick over your knee, except on a much larger scale. And it took several minutes for the snapping to complete. The next piece was a chunk of a 10 x 10 that was loaded perpendicular to the wood grain. It was literally "squashed", probably down to about 60% of its original height. Next we tried squishing a piece parallel to the wood grain. This one was much stronger, taking over 1 MN of force before failing. I got a piece of that one as a souvenir (I deserve it; it snapped off during the testing and nearly hit me).

I was going to upload pictures, but unfortunately Photoshop has decided that it wants to be a bitch. So maybe later.

Tuesday, November 09, 2004

Doom 3's Harmonic Simultaneous Four-Day SOUL CUBE

You are stupid. Evil media like email and video discs have brainwashed you. Soul cube is ultimate. Souls have FOUR SIDES not one like you stupid moron believe. Soul cube DISPROVES linear soul. Soul cube is a hypercube and takes five four-sided souls to complete the corners. You are educated stupid! I offer $10,000 to any stupid academic professor who disproves soul cube. Evil bastard Bertruger and his DEMONS try to stop you from seeking soul cube.

You are stupid and cannot comprehend soul cube. Evil liars have hidden soul cube and DENY it. You are lazy and worthless if you do not seek soul cube. Religious bastards say you will go to hell for seeking soul cube. SOUL CUBE DISPROVES HELL! Since souls have four corners: life, death, light, and dark they cannot reside in stupid linear hell. Five souls complete soul cube and makes it symmetric. Soul cube is perfect! Do not believe LIES from evil UAC. They CONTROL THE MEDIA and will not acknowledge soul cube because they are STUPID EVIL! Power of media is the power to ignore. THEY IGNORE SOUL CUBE TO HIDE ITS EXISTENCE. Stupid lazy sheep do not protest, and believe soul is linear.

SOUL IS CUBIC. Evil bastards DENY soul cube and yet OPENLY ATTACK those who seek soul cube. I will give $1000 to anyone who disproves soul cube BUT NOBODY TRIES because they are educated stupid! Soul can rotate from life, death, light, and dark and cannot exist in stupid linear world. SOUL CUBE DISPROVES THREE DIMENSIONS! World has four space dimensions and four time dimensions, but EVIL teachers still teach STUPID WRONG linear soul and world.

I am more powerful than your god. Anyone who finds soul cube gets equal power. YOU ARE WEAK AND STUPID! Evil media are AFRAID of power so they IGNORE soul cube, and ignorant people DO NOT PROTEST. Unless you seek soul cube you will always be WORTHLESS MORON. Soul cube is the TRUTH. Without soul cube the EVIL will OVERCOME US. Soul cube will DESTROY EVIL and yet you are stupid and will not try to find soul cube.

Congratulations for reading through all of that. It is a parody of Time Cube , which is even more mind-bending than this.

Sunday, November 07, 2004

I Have Officially Graduated From High School.

That's right, last night was my graduation. Despite the guest speaker calling us the class of 2003, and the guy beside me on the stage grabbing my ass, it went pretty well. I recieved a grand total of 10 awards (though I could have had even more), which got me the title of "the person who won the most awards". As for the party afterwards (it goes without saying that you party after graduation), it was nothing to complain about either. Though I didn't get laid, I still managed to have a good time. And then today I spent two hours on the train with a former crush of mine... but that's another story.

Speaking of trains, whoever organizes the rail schedule must be brain-dead. Ever since I proved to myself that a monkey could get a train to its destination on time without much effort, I figured that it must be the scheduling that sucks. And indeed that's what it is. I don't know how many times the train actually had to stop and wait for other trains to pass, but it was quite excessive. Any idiot with two weeks of CSC 181 experience could write a program in 5 minutes that could schedule trains better than whatever dolt (or team of dolts) does it at the Via headquarters. I suppose nobody has ever told them that trains are most efficient when they aren't stopping and starting every five minutes. If I wanted that, I would have driven. But the ultimate solution, of course, is to simply rip up the rails and replace the trains with a mag-lev system. Sure, the cost runs up into the millions of dollars per kilometer, but I would be willing to bet that people would pay good money for a trip at 600 km/h. The tracks and trains would pay for themselves in 20 years or less, I'm sure of it.

Tuesday, November 02, 2004

The U.S. Presidential Election, and My Theory Of Engineers.

Well, in case you have been living in a cave for the past few months, today is the day that the President of the United States gets elected. Although I'm Canadian, I'm watching the results on CNN as if it's a game of Risk (which it does resemble). Personally, I'm rooting for Kerry, but at this point (and God knows things can change) Bush is in the lead. It's funny how the vast majority of the rest of the world would prefer Kerry to be in power, but it's about a 50/50 split in the States. I really hope Bush doesn't win. However, there is a positive side: after another four years under Bush, the U.S. will be so weakened economically (and possibly even militarily) that it will set up my plan to take over the world quite nicely.

I must admit, I am the master of awkward social situations. By "master", I mean they happen to me a lot, not that I am good at handling them. Due to an overwhelming abundance of such situations, I got to thinking. Why do I find it so hard to be accepted by my peers? Once I thought about it for a while, the answer became clear: social interaction is muddled and ambiguous (one might even call it chaotic), while my mind works (most times) in a logical and ordered manner. It explains why I am more comfortable with my computer than with other people. It even explains why I can have long, meaningful conversations on MSN. You see, unlike a "real-life" conversation, an IM convo has structure (it's handily arranged in chronological order), there is only one data stream (the text), and in general there are only two people per conversation. Whereas with a real life conversation has multiple overlapping data streams (speech, tone of voice, eye contact, body language, etc.) and multiple people interacting at the same time. It's no wonder I find it hard to adjust to social situations where many people are interacting.

Holy Jeebus... I just refreshed the election results page, and it looks like Bush has control of the bible belt, as well as basically the entire midwest. But it's still a close race.

Anyways, after explaining my inability to act correctly in social situations, I felt that I should extend the theory to something else that was bugging me. A contradiction, of sorts. You see, I'm an engineer; and historically, engineers have been known for being loud, fun-loving, and huge party animals. But in my classes, I look around me, and what do I see? A bunch of quiet Asian guys (my class is about 95% Asian, and 95% male). Where did the discrepancy come from? Was it a long-standing tradition from back in the days when engineers were the "real men"? Was it the fact that we hate artsies with a passion, and would do anything to prove ourselves superior? Or was it something else?

Before this question can truly be answered, let's look at some of the stereotypes about engineers:
1. We love to party.
2. We are extremely loud.
3. We can drink inordinate amounts of beer.

How are these connected? The answer is obvious when one thinks about it. Assume that I am a typical engineer. I represent what would most likely be classified as a computer engineer (though that is not what I am). I am shy, nerdy, and absolutely terrified of social interaction. Note that these attributes map DIRECTLY to the three stereotypes presented above, except they are opposite. How can this be? Well, first let's look at the similarities between the three stereotype characteristics. The obvious similarity is that beer-drinking and being extremely loud would most likely be accomplished at parties. This links the three together, and the key is that parties are social situations, which engineers despise. So what gives? Why would engineers go to parties if they hate them? TO DRINK BEER. An engineer will go to a party, realize that he or she is not having a good time, and then start drinking. Now, the effects of alcohol are well known. One of these effects, of course, is to make a person very extroverted. So the typical engineer is remembered as someone who is a great guy to have at a party, as well as someone who has the ability to absorb large quantities of alcohol.

It's too bad I don't drink.

Monday, November 01, 2004

Boycott ATI

As many of you already know, ATI has extremely poor customer service. I have personally experienced this twice, first when I had problems with the drivers for an old Radeon 32Mb back in 2000; and now, as I have been waiting three months for them to ship the X800 XT that I ordered.

They may, as some people think, make superior products, but this doesn't make up for their complete lack of good customer service.

In light of these events, I am asking each and every one of you to help me boycott ATI. Never buy any of their products again. nVidia all the way!
Who Links Here