<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>geeks have feelings &#187; Class</title>
	<atom:link href="http://www.geekshavefeelings.com/posts/category/all/class/feed" rel="self" type="application/rss+xml" />
	<link>http://www.geekshavefeelings.com</link>
	<description>xo wang</description>
	<lastBuildDate>Tue, 27 Jul 2010 04:54:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>I Am Now a Management Major</title>
		<link>http://www.geekshavefeelings.com/posts/i-am-now-a-management-major</link>
		<comments>http://www.geekshavefeelings.com/posts/i-am-now-a-management-major#comments</comments>
		<pubDate>Thu, 08 Apr 2010 13:32:16 +0000</pubDate>
		<dc:creator>Xo Wang</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[comp.sci]]></category>
		<category><![CDATA[gatech]]></category>

		<guid isPermaLink="false">http://www.geekshavefeelings.com/?p=599</guid>
		<description><![CDATA[So I was just chilling and minding my own business during course registration for the next semester, when BAM I suddenly get a dangerous burst of ambition. I suddenly decide that I ought to take a class that was actually relevant to my major. I saw fit to not overreach myself, and instead maybe take [...]]]></description>
			<content:encoded><![CDATA[<p>So I was just chilling and minding my own business during course registration for the next semester, when BAM I suddenly get a dangerous burst of <em>ambition</em>. I suddenly decide that I ought to take a class that was actually relevant to my major. I saw fit to not overreach myself, and instead maybe take a demure class in C++, a language which I had studied and used for years.</p>
<p>My school was rather inclined to disagree with my petition for a &#8220;prerequisite override permit,&#8221; which is what I need in order to register for the C++ class, ECE 3090. After all, you couldn&#8217;t possibly learn C++ if you hadn&#8217;t first implemented some discrete FIR filters in the digital signal processing course first.</p>
<p>OK, just read my response after my registration permit was denied:</p>
<blockquote><p>Hi Xxxxxxx,</p>
<p>But I will lose interest in schoolwork and begin to find my course-load irrelevant and tedious. Soon I will feel as if I have lost my way, and either turn to religion and/or become a Management major. Either path will only further my anxiety about my capabilities and self-worth, and soon my very existence will come into question. I will wonder if school is worth my time, or if life is even worth living.</p>
<p>Years later, as I lay on a desolate sidewalk, a vagabond stranded by the School of Electrical &#038; Computer Engineering, tears will stream down my face onto my primary religious text and/or my diploma for my Management degree. It will be my last of many cold, lonely nights on that sidewalk. Hunger and sickness have taken its their final toll on my frame, already thin and abused since the second semester of Georgia Tech.</p>
<p>But as the world fades to darkness, I will realize that my tears are not of sadness, but of joy, joy that I had completed my core subjects instead of junior electives.</p>
<p>Oh, the humanities!</p>
<p>But seriously though: could I talk to the professor teaching the class next semester about getting a prerequisite override permit? I really am quite confident about the material in the course, and would like to take it to boost my GPA, and because I feel it is more relevant to my major as well as my interests and skill level overall.</p>
<p>Thank you,<br />
Xo Wang<br />
gtID: XXXXXXXXX</p>
<blockquote><p>On Tue, 06 Apr 2010 09:59:59 -0300, Xxxxxxx Xxxx <xxxxxxx.xxxx@ece.gatech.edu> wrote:</p>
<p>ECE does not override prerequisites for its courses.  Once you have<br />
successfully completed ECE 2025, 2030, and 2040, you can take ECE 3090.<br />
ECE 3090 is offered every Fall and Spring terms, and occasionally in the<br />
Summer.  You will have plenty of time to take it in the future.  Right<br />
now you need to concentrate on completing your core subjects, not junior<br />
electives.</p>
<p>Regards,</p>
<p>Xxxxxxx X. Xxxx<br />
Manager, Undergraduate Academic Advising<br />
School of Electrical &#038; Computing Engineering<br />
Georgia Institute of Technology<br />
PHONE: 404-894-XXXX<br />
FAX:   404-894-XXXX</p>
<blockquote><p>Below is the result of your feedback form.  It was submitted by xxx@gatech.edu (ZHAO WANG) on Monday, April 05, 2010 at 19:18:02.</p>
<p>grad_ugrad: Undergraduate<br />
term: Fall<br />
GTID: &#8212;&#8212;&#8212;<br />
course: ECE3090<br />
major: CMPE<br />
graduation_term: Spring<br />
graduation_year: 2013</p>
<p>comments: I already have knowledge of C++ and programming in 3090; previously held a job at a game graphics/AI company doing software engineering with C++.</p></blockquote>
</blockquote>
</blockquote>
<p>The response I got was essentially a straight-faced &#8220;no&#8221; and &#8220;go have yourself a terrible @#$%ing day&#8221; only without those specific words and phrased a lot less politely. Yes, less politely.</p>
<p>By the way, I&#8217;m not actually a Management major now. I&#8217;m just going to be an EECS who leans towards CS rather than EE. And hates life.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekshavefeelings.com/posts/i-am-now-a-management-major/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mistakes to Make on a Raytracer</title>
		<link>http://www.geekshavefeelings.com/posts/mistakes-to-make-on-a-raytracer</link>
		<comments>http://www.geekshavefeelings.com/posts/mistakes-to-make-on-a-raytracer#comments</comments>
		<pubDate>Thu, 25 Mar 2010 19:10:11 +0000</pubDate>
		<dc:creator>Xo Wang</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[comp.sci]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.geekshavefeelings.com/?p=430</guid>
		<description><![CDATA[Writing your first classical ray tracer was at one point a big deal. Now I don&#8217;t see what&#8217;s so difficult about the dark side of computer graphics. Tray racing, as I call it, is a remarkably entertaining exercise that will become the future of gaming and 3D visualization as computing hardware catch up with our ambitions1. [...]]]></description>
			<content:encoded><![CDATA[<p>Writing your first classical ray tracer was at one point a big deal. Now I don&#8217;t see what&#8217;s so difficult about the dark side of computer graphics. <a href="http://www.youtube.com/watch?v=5J8pI8jobMo">Tray racing</a>, as I call it, is a remarkably entertaining exercise that will become the future of gaming and 3D visualization as computing hardware catch up with our ambitions<sup>1</sup>.</p>
<p>Simply put, ray tracing&#8217;s generating computer images through a physical simulation of light, by &#8220;shooting&#8221; <em>rays</em> from a viewpoint in 3D space and then &#8220;tracing&#8221; them along their paths for objects to draw on screen. Shoot a lot of them and you will have enough information for the screen.</p>
<p>This is far superior in quality and correctness, though also very much less efficient, than our current method of <em>rasterization</em>: gathering up all the objects we put into the virtual space, deciding what they should look like given a few arbitrary parameters, and then drawing them on the screen where we think they should go. Ray tracers produce such good-looking images, in fact, because they are <em>accurate</em>.</p>
<p>For an example, see Wikipedia&#8217;s exemplar specimen of ray traced work:<br />
<a href="http://en.wikipedia.org/wiki/File:Glasses_800_edit.png"><img class="alignnone size-medium wp-image-515" title="Glasses_800_edit.png from Wikipedia" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Glasses_800_edit-300x225.png" alt="" width="300" height="225" /></a></p>
<p>If you need more convincing, check out a small company in California called <a title="Pixar at Wikipedia" href="http://en.wikipedia.org/wiki/Pixar">Pixar</a>. I believe they make these moving pictures or something.</p>
<p>&#8220;Now Xo,&#8221; you ask, &#8220;why did you call this wonderful ‘tray racing’ technique the ‘dark side’ of computer graphics? Surely it would be the ‘light side (no pun intended)?’&#8221;</p>
<p>No, it&#8217;s not. I learned rasterization first, I worked hard at some very pointless but very fast <a title="Raxo project page" href="http://www.geekshavefeelings.com/projects/raxo" target="_blank">software rasterizers</a>, and I just like it more. Shoot me (no pun intended).</p>
<p>Anyways, I wrote a simple &#8220;classical&#8221; (properly known as <a title="Turner Whitted on Wikipedia (there's no page for him?)" href="http://en.wikipedia.org/wiki/Ray_tracing_(graphics)#Ray_tracing_algorithm">Whitted</a>) ray tracer for CS3451<sup>2</sup> as an assignment. To my surprise, it took only eight hours of marathon coding to write, none of them daytime. The work consisted primarily of making and fixing simple mistakes that, once I had worked out the math, were <em>physically</em> incorrect.</p>
<p>That was the nice bit of it all; if you had a rendering error, you can just look at your model of the world and see if you did something in a way that makes no sense in the real world. Once I fixed those mistakes, I had a pretty nice ray tracer, if trivial by today&#8217;s standards.<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/t2.png"><img class="alignnone size-thumbnail wp-image-519" title="A pretty standard image to be racin' trays for" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/t2-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c4.png"><img class="alignnone size-thumbnail wp-image-517" title="Lots of inter-reflections and shadows. My friend TH said this didn't look right. I said to suck it." src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c4-150x150.png" alt="" width="150" height="150" /></a></p>
<p><a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c3.png"><img class="alignnone size-thumbnail wp-image-516" title="Pretty colors!" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c3-150x150.png" alt="" width="150" height="150" /></a> <a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c5.png"><img class="alignnone size-thumbnail wp-image-518" title="If you stare real hard, you can see your own face in a hall of mirrors. Spherical mirrors." src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/c5-150x150.png" alt="" width="150" height="150" /></a></p>
<p>These are the technical issues I stumbled on (and have stumbled on before; I don&#8217;t learn too well from my mistakes<sup>3</sup>), and ones you probably should watch out for:</p>
<ul>
<li><strong>Normalize your unit vectors!</strong><br />
Rays have directions representing their straight line path through space. These are usually represented with unit vectors. If you don&#8217;t keep them normal, then the distances you get through ray-object intersections will be inaccurate. This will cause issues if you actually depend on distances at some point, like when you do shadowing or light attenuation.</li>
<li><strong>Check for negative intersections!</strong><br />
When checking for ray-object intersections. Make sure you discard intersections that are <em>behind</em> the rays origin. Say that you parameterize your ray as <strong>o</strong> + <em>t</em><strong>d</strong>, where <strong>o</strong> is the ray&#8217;s origin, <strong>d</strong> is the direction (uuunit veeector!), and <em>t</em> is the scalar parameter indicating distance along the path given by <strong>o</strong> and <strong>d</strong>. If you get an intersection of <em>t</em> &lt; 0, discard the intersection.<br />
<br />Don&#8217;t do this:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Negative-intersections.png"><img class="alignnone size-medium wp-image-524" title="Negative intersections" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Negative-intersections-300x300.png" alt="" width="300" height="300" /></a></li>
<li><strong>Terminate your reflection rays by contribution!</strong><br />
When doing lots of bounces around shiny objects, that is, objects of constant of reflection <em>K<sub>refl</sub></em> &gt; 0, make sure to stop doing more bounces when additional bounces will contribute no visible difference to the image. My measuring stick here is by recursive descent along reflection rays: with each bounce, I multiply the contribution factor (which starts out at 1) by the <em>K<sub>refl</sub></em> of the intersected object. If the contribution of the next recursive level is less than 0.5/255, which is half the value of least significance for an 8-bit/channel output buffer, then I consider further bounces to be useless and terminate further recursion. It&#8217;s just a performance thing.</li>
<li><strong>Don&#8217;t let your reflection rays check against its own origin!</strong><br />
When bouncing reflection rays, be sure to <em>not</em> check for intersections against the object you just bounced it off of. It&#8217;s a simple way to avoid a rendering artifact known as surface acne<sup>4</sup>. However, this technique will prevent objects from casting <em>self shadows</em>, which are exactly what they sound like. Therefore, omit the reflection intersection check for the biggest thing in an object that does not self-shadow, e.g. spheres, triangles, planar polygons, etc. So if you are reflecting off an object composed of many triangles, <em>don&#8217;t</em> intersect the reflection ray against the triangle it bounced off of, but <em>do</em> check against the other triangles in the object.</li>
<li><strong>Intersect your shadow rays with geometry <em>and</em> lights!</strong><br />
OK, this is hard to describe, but it&#8217;s important. You check for shadowing by shooting a shadow ray towards the light you&#8217;re trying to err, check for shadowing against, right? If there is an intersection with another object, then there&#8217;s something blocking the light, right? Non monsieur! What if the light is between the two objects? For a shadow to be cast, the distance to the intersection must be <em>less than</em> the distance to the light.<br />
<br />Example: There is a light smack dab in between two spheres. It should look like this:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Shadowing-done-right.png"><img class="alignnone size-medium wp-image-521" title="Shadowing done right" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Shadowing-done-right-300x300.png" alt="" width="300" height="300" /></a><br />
<br />Except when it doesn&#8217;t:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Shadowing-done-wrong-annotated.png"><img class="alignnone size-medium wp-image-522" title="Shadowing done wrong annotated" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Shadowing-done-wrong-annotated-300x300.png" alt="" width="300" height="300" /></a><br />
<br />Just for the heck of it, let&#8217;s add more magic:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/More-magic.png"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/More-magic-150x150.png" alt="" title="More magic" width="150" height="150" class="alignnone size-thumbnail wp-image-535" /></a></li>
</ul>
<p>So there you have it. Hopefully the technical bits in this post will help some poor uni student out there struggling to race his/her first tray, the writing has entertained you, and at the very least the pretty pictures got you all excited.</p>
<ol class="footnotes"><li id="footnote_0_430" class="footnote">Not meaning computers will get fast enough to simulate light realistically in real time; meaning they will make dining trays big enough to fit young adventurous men like myself</li><li id="footnote_1_430" class="footnote">Computer Graphics at Georgia Tech</li><li id="footnote_2_430" class="footnote">Unless I write it down with lots of parentheticals and footnotes like this</li><li id="footnote_3_430" class="footnote">See this article: <a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/Its-Really-Not-a-Rendering-Bug-You-see....pdf">It&#8217;s Really Not a Rendering Bug, You see&#8230;</a></li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.geekshavefeelings.com/posts/mistakes-to-make-on-a-raytracer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My New Logo</title>
		<link>http://www.geekshavefeelings.com/posts/my-new-logo</link>
		<comments>http://www.geekshavefeelings.com/posts/my-new-logo#comments</comments>
		<pubDate>Tue, 23 Mar 2010 05:17:05 +0000</pubDate>
		<dc:creator>Xo Wang</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[drawings]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[stuy]]></category>
		<category><![CDATA[techtonics]]></category>

		<guid isPermaLink="false">http://www.geekshavefeelings.com/?p=486</guid>
		<description><![CDATA[I really dislike English class. I don&#8217;t dislike learning English, obviously, nor do I have any grudge against literacy or writing. What I really, absolutely cannot stand is the mind-numbing amount of thought that almost every English instructor I&#8217;ve ever had puts into a book which the author would have obviously not even suspected he [...]]]></description>
			<content:encoded><![CDATA[<p>I really dislike English class. I don&#8217;t dislike learning English, obviously, nor do I have any grudge against literacy or writing. What I really, absolutely cannot stand is the mind-numbing amount of thought that almost every English instructor I&#8217;ve ever had puts into a book which the author would have obviously not even suspected he meant to put into his writing.</p>
<p>I once had an English teacher at Stuyvesant who insisted with utmost sincerity that the character Kurtz of Conrad&#8217;s <em><a title="Heart of Darkness at Wikipedia" href="http://en.wikipedia.org/wiki/Heart_of_Darkness" target="_blank">Heart of Darkness</a></em> was so named because of its supposed phonetic similarity to &#8220;Christ.&#8221; Furthermore, Okonkwo of Achebe&#8217;s <em><a title="Things Fall Apart @ Wikipedia" href="http://en.wikipedia.org/wiki/Things_Fall_Apart" target="_blank">Things Fall Apart</a></em> has his name originate from our subconscious understanding of long, &#8220;masculine&#8221; vowel sounds. How could a syllable be masculine?</p>
<p>Her most far-fetched comparisons, which she dispensed daily with an unconquerable, belittling sneer, were the only ones which could match in tenuity to this little <acronym title="Something that makes your head hit your desk">headdesk</acronym> I was subjected to in junior year: &#8220;The jolly baker down the street has elected to use powdered sugar instead of granulated sugar. What do you think the author intended by such a decision fraught with between-the-lines intention?&#8221;</p>
<p>NOTHING. The author intended nothing!</p>
<p>So when I decided to create a new avatar for myself, my traumatizing experiences with English class led to me write the following disclaimer: &#8220;<em>I intended my work to be experienced as it has been created. I enjoy the way it looks, and this work has no further meaning beyond its initial appearance</em>.&#8221;</p>
<p>Then I looked at my new piece of work, the Outline:<br />
<img class="alignnone size-full wp-image-489" title="&quot;The Outline&quot; Personal Logo. Copyright © 2010 Xo Wang" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/xow_logo_128x128.png" alt="" width="128" height="128" /></p>
<p>Yes, I did make it the way it is because it looks nice. But it very obviously contains additionally meaning, much of it inherited from its sire, the <a title="Stuyvesant Techtonics" href="http://www.stuytech.com/" target="_blank">Stuyvesant Techtonics</a> (Stuy Tech/Techtie) logo (the Tech):<br />
<img class="alignnone size-full wp-image-490" title="&quot;The Tech&quot; Techtonics Logo. Copyright © 2008 Xo Wang." src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/techtonics_fixed_final.png" alt="" width="128" height="128" /></p>
<p>I wanted to retain the nature of my work, the hexagonal power button symbol that represents the melding of electronics and mechanics that is robotics. I discarded the dramatic red bar, standing out starkly against the black and white, because that was what Techtonics was when I made the logo—a bold sliver of a team, surrounded by uncreative soulless career-seekers. But I do not need such an iconoclastic representation; I&#8217;m a pretty quiet guy. Besides, taking out the red just makes it work better for my website. I removed the sharp caps in the bar and the five-sixths hexagon as well. Techtonics was an intense, competitive team; I am a person.</p>
<p>Of course, this means that I will be finally phasing out the remnants of my previous logo, the Indoor:<br />
<img class="alignnone size-full wp-image-491" title="&quot;The Indoor&quot; AKA &quot;AnimatedGameHardV3&quot; Personal Logo. Copyright © 2005 Xo Wang" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/AnimatedGameHardV3.gif" alt="" width="49" height="40" /></p>
<p>which has made its presence known only in its favicon form <img class="alignnone size-full wp-image-492" title="Old Favicon" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/old_favicon.ico" alt="" />, which is now replaced with <img class="alignnone size-full wp-image-493" title="New Favicon" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/favicon.ico" alt="" />. The new logo resized surprisingly well.</p>
<p>Previous iterations of the Indoor have looked like so:<br />
<img class="alignnone size-full wp-image-494" title="AnimatedGameHard Copyright © 2005 Xo Wang" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/AnimatedGameHard.gif" alt="" width="50" height="40" /> <img class="alignnone size-full wp-image-495" title="GameHard Copyright © 2005 Xo Wang" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/GameHard.gif" alt="" width="75" height="52" /></p>
<p>That last one is from 2003 or 2004. I believe I stole it from another website, because I remember it as originally animated. Please forgive me, other website. I was young, and you have done me a great service for the original art that has served me for so long. However, <a title="scioly.org - Science Olympiad Student Center" href="http://scioly.org/" target="_blank">scioly.org</a>, which is where I first began to use it, had and still has a very strict requirement on avatar file sizes, due to hosting costs. I cut all but one frame from it and simplified the palette. I eventually shaped the frame to look like <a title="One of my better planes in 2007" href="http://scioly.org/wiki/File:Gh0607WrightStuff.jpg" target="_blank">my own planes</a>, and animated the image once more to arrive at the final product, but I still wonder how the original looked&#8230;</p>
<p>Also, I found this amusingly terrible GIF bunched with the collection that the Indoor came from:<br />
<img class="alignnone size-full wp-image-496" title="AntiBush" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2010/03/AntiBush.gif" alt="" width="50" height="50" /></p>
<p>Wow. The things I did at the age of 13.</p>
<p>Now, you might ask, why do I need a personal logo? I really don&#8217;t. I don&#8217;t have that much of an ego to want a pictograph that represents me. The real issue was that I was using my Techtonics logo everywhere; my <a title="Gravatar" href="http://www.gravatar.com/" target="_blank">Gravatar</a>, my chat services, my computer login, etc. It was my only work of art that was at all notable. In fact, it was my only work of art that could be said to be a work of art.</p>
<p>However, I didn&#8217;t agree with the new Techtonics leadership after I left and they took the team over. I took issue with their interpretation of the principles of Techtonics (which is that there are none), as well as the low priorities they placed upon the various activities Techtonics traditionally participated in. I didn&#8217;t want to be using the same logo that represented <em>people</em> with whom I disagreed.</p>
<p>And that is how I know I am not an English teacher. My little picture actually represents real live people now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekshavefeelings.com/posts/my-new-logo/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Take a Stab</title>
		<link>http://www.geekshavefeelings.com/posts/take-a-stab</link>
		<comments>http://www.geekshavefeelings.com/posts/take-a-stab#comments</comments>
		<pubDate>Sat, 12 Dec 2009 09:27:32 +0000</pubDate>
		<dc:creator>Xo Wang</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[gatech]]></category>
		<category><![CDATA[MIT]]></category>

		<guid isPermaLink="false">http://www.geekshavefeelings.com/?p=274</guid>
		<description><![CDATA[It&#8217;s a hectic time of year. All of us university students struggling with final exams. I remember last year at this time, I was waiting for the results of my Early Action application to MIT. Right now, another class of Stuyvesant students is experiencing that same excitement, stress, and more likely than not, trauma and [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a hectic time of year. All of us university students struggling with final exams. I remember last year at this time, I was waiting for the results of my Early Action application to MIT. Right now, another class of Stuyvesant students is experiencing that same excitement, stress, and more likely than not, trauma and depression. I got this on a wall post to my Facebook from a friend rejected from Cornell, also known as Stuy v2.0 for the massive number of Stuy students making up its class every year:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/12/2009-12-12_04-14-35.png"><img class="aligncenter size-full wp-image-275" title="2009-12-12_04-14-35" src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/12/2009-12-12_04-14-35.png" alt="2009-12-12_04-14-35" width="463" height="64" /></a><br />
Well, guess what? I&#8217;m the right guy to ask, because I got rejected from nearly all the schools I applied to, and I have a better piece of advice for you than those other chumps that tell you, &#8220;They missed out on some great talent!&#8221; or, &#8220;You&#8217;ll get in somewhere else that you&#8217;ll like more!&#8221;</p>
<p>Well, guess what. I got in somewhere else. I didn&#8217;t like it very much. <strong>And I got stabbed here</strong>.</p>
<p>Link: <a href="http://www.ajc.com/news/atlanta/georgia-tech-student-stabbed-236165.html">Georgia Tech student stabbed in Midtown</a><br />
Link: <a href="http://www.youtube.com/watch?v=OADdtoF0MjI">GA Tech Student Stabbed Near Campus</a> (they got my name wrong<sup>1</sup>)</p>
<p>You see what happens when you get rejected from the school of your choice? This happens. I hate this fucking place.</p>
<p>I can&#8217;t believe I didn&#8217;t apply to Brown.</p>
<p>I&#8217;m leaving tomorrow.</p>
<ol class="footnotes"><li id="footnote_0_274" class="footnote">No surprise there, but I actually do have quite a bit to say about FOX News&#8217;s skills at hunting me down</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.geekshavefeelings.com/posts/take-a-stab/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eclipse + MinGW + gtkmm</title>
		<link>http://www.geekshavefeelings.com/posts/eclipse-mingw-gtkmm</link>
		<comments>http://www.geekshavefeelings.com/posts/eclipse-mingw-gtkmm#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:27:00 +0000</pubDate>
		<dc:creator>Xo Wang</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[cairo]]></category>
		<category><![CDATA[comp.sci]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[mingw]]></category>
		<category><![CDATA[stuy]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.geekshavefeelings.com/?p=166</guid>
		<description><![CDATA[Hurrah! Last night, I was able to set up Eclipse with CDT, have it recognize my MinGW (with GCC 4, thanks to (these unstable MinGW builds) toolchain, and build gtkmm (the C++ interface for GTK+) programs through make. This was all so I could do my Computer Graphics project on my Windows machine instead of [...]]]></description>
			<content:encoded><![CDATA[<p>Hurrah! Last night, I was able to set up Eclipse with CDT, have it recognize my MinGW (with GCC 4, thanks to (<a href="http://www.tdragon.net/recentgcc/">these unstable MinGW builds</a>) toolchain, and build gtkmm (the C++ interface for GTK+) programs through make. This was all so I could do my <a href="http://cs.stuy.edu/mcs6/">Computer Graphics</a> project on my Windows machine instead of Linux. Not that I have any gripe with Linux, only that my Linux box has no display connected to it, forcing me to use it by remote desktopping.</p>
<p><a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/2009-03-01_15-05-52.png"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/2009-03-01_15-05-52-640x400.png" alt="Building gtkmm application on Windows using Eclipse CDT + MinGW" title="Building gtkmm application on Windows using Eclipse CDT + MinGW" width="640" height="400" class="alignnone size-large wp-image-167" /></a></p>
<p>The image shown above is my entry for the first project in the Graphics course, which is to create a program that can represent points/edges in space in a 4×n (homogenous coordinates) matrix, and apply various transformations (rotate, scale, translate) to that matrix through matrix multiplication against a 4×4 transformation matrix. The list of edges should then be drawn to an image file or displayed onscreen.</p>
<p><a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/2009-03-01_15-22-54.png"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/2009-03-01_15-22-54.png" alt="Project 1: retardedtranforms" title="Project 1: retardedtranforms" width="632" height="515" class="alignnone size-full wp-image-170" /></a></p>
<p>The end result is that you can put a bunch of coordinates in and rotate them around to see how 3D they are. <img src='http://www.geekshavefeelings.com/x/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/octa.gif"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/octa.gif" alt="Octa" title="Octa" width="300" height="300" class="alignnone size-full wp-image-202" /></a></p>
<p>Anyways, I don&#8217;t think I was supposed to use C++, Windows, gtkmm, or cairomm for my project, but then I doubt anyone will complain. After all, I believe that the output of it is probably better than the reference output in the project specs.</p>
<p>Project output:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/script2.gif"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/script2.gif" alt="script2" title="script2" width="300" height="300" class="alignnone size-full wp-image-180" /></a> <a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/script3.gif"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/script3.gif" alt="script3" title="script3" width="300" height="300" class="alignnone size-full wp-image-179" /></a></p>
<p>Reference output:<br />
<a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/refscript2.gif"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/refscript2.gif" alt="refscript2" title="refscript2" width="300" height="300" class="alignnone size-full wp-image-174" /></a> <a href="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/refscript3.gif"><img src="http://www.geekshavefeelings.com/x/wp-content/uploads/2009/03/refscript3.gif" alt="refscript3" title="refscript3" width="300" height="300" class="alignnone size-full wp-image-175" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geekshavefeelings.com/posts/eclipse-mingw-gtkmm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
