<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8409852605057424355</id><updated>2011-09-03T09:06:37.421-04:00</updated><category term='pm'/><category term='grace hopper'/><category term='introduction'/><category term='diarrhea'/><category term='generic'/><category term='movies'/><category term='spec'/><category term='small'/><category term='modplug'/><category term='corporate'/><category term='senate'/><category term='surgery'/><category term='ghost in the shell'/><category term='think'/><category term='sleep'/><category term='test'/><category term='timeon'/><category term='pamela'/><category term='python'/><category term='feature crew'/><category term='link'/><category term='.net'/><category term='code'/><category term='c90'/><category term='stl'/><category term='blogs'/><category term='update'/><category term='500 days of summer'/><category term='idea'/><category term='math'/><category term='up late'/><category term='tech'/><category term='business'/><category term='fei song'/><category term='basic'/><category term='java'/><category term='talk'/><category term='awesome'/><category term='programming'/><category term='Wyatt used darkness; it&apos;s super-productive'/><category term='typing'/><category term='customize'/><category term='cpes'/><category term='ted'/><category term='school'/><category term='blog'/><category term='c'/><category term='time'/><category term='butIwanttosleep'/><category term='turing'/><category term='essay'/><category term='communicator'/><category term='arizona'/><category term='toe'/><category term='mac'/><category term='entropy'/><category term='microsoft'/><category term='dev'/><category term='c99'/><category term='timeoff'/><category term='beginning'/><category term='fancy'/><category term='compiler'/><category term='stepanov'/><title type='text'>Kickass Home Base</title><subtitle type='html'>Keeping you up to date on me.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1476486647359136106</id><published>2011-02-09T12:10:00.001-05:00</published><updated>2011-02-09T12:13:18.350-05:00</updated><title type='text'>The Guelph Seven</title><content type='html'>Whatever you're doing, it's not as important (or awesome) as going to The Guelph Seven's &lt;a href="http://guelphseven.com"&gt;website&lt;/a&gt; and checking out what we're up to. If you catch this before March 5th-11th, you'll get to meet our team. If you find it during that period, you'll get fresh-off-the-press news about the cool stuff we're making and how we're doing it, and if you show up late, you'll get the whole experience laid out like a beautiful collage of creation. Don't miss it - check it &lt;a href="http://guelphseven.com"&gt;out&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Follow our &lt;a href="http://twitter.com/guelphseven"&gt;twitter&lt;/a&gt;, while you're at it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1476486647359136106?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1476486647359136106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1476486647359136106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1476486647359136106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1476486647359136106'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2011/02/guelph-seven.html' title='The Guelph Seven'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5015149606148412287</id><published>2010-12-06T19:46:00.002-05:00</published><updated>2010-12-06T19:47:39.641-05:00</updated><title type='text'>I host my own blog now.</title><content type='html'>&lt;a href="http://wcarss.ca/blog"&gt;http://wcarss.ca/blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5015149606148412287?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5015149606148412287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5015149606148412287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5015149606148412287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5015149606148412287'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/12/i-host-my-own-blog-now.html' title='I host my own blog now.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-7612393583856277490</id><published>2010-09-10T22:22:00.002-04:00</published><updated>2010-09-10T22:27:25.883-04:00</updated><title type='text'>Usability Mnemonic: Map and Fetch</title><content type='html'>I read &lt;a href="http://designingwebinterfaces.com/6-tips-for-a-great-flex-ux-part-5"&gt;this&lt;/a&gt; and felt like the sum-up of each of Nielsen's &lt;a href="http://www.useit.com/papers/heuristic/heuristic_list.html"&gt;heuristics&lt;/a&gt; into a single word was useful for memorization. I wrote down the first letters and jumbled them around a bunch until I found something that could be construed into a memorable phrase:&lt;br /&gt;&lt;br /&gt;MMP RN FEDCH, 'map and fetch' - from this, I can remember:&lt;br /&gt;&lt;br /&gt;memory&lt;br /&gt;metaphor&lt;br /&gt;prevention&lt;br /&gt;&lt;br /&gt;recovery&lt;br /&gt;navigation&lt;br /&gt;&lt;br /&gt;feedback&lt;br /&gt;efficiency&lt;br /&gt;design&lt;br /&gt;consistency&lt;br /&gt;help&lt;br /&gt;&lt;br /&gt;Just by going over this list a few times, I can keep these words in memory as the correct way to fill out the "map and fetch" letter list. Next up is keeping good associations with the words:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;memory&lt;/h3&gt;don't make the user remember things; keep data visible&lt;br /&gt;&lt;h3&gt;metaphor&lt;/h3&gt;bring real life metaphors and interactions into your designs&lt;br /&gt;&lt;h3&gt;prevention&lt;/h3&gt;even better than good error messages is to keep errors from occuring. Prevent them.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;recovery&lt;/h3&gt;Show a clear path to recovery; no codes, just step-oriented, precise information&lt;br /&gt;&lt;h3&gt;navigation&lt;/h3&gt;The user should always be able to see how to get places; including an escape hatch&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;feedback&lt;/h3&gt;system status should always be visible&lt;br /&gt;&lt;h3&gt;efficiency&lt;/h3&gt;put in just enough ui to use; make it flexible. Experts get accelerators, novices get ui&lt;br /&gt;&lt;h3&gt;design&lt;/h3&gt;minimalist aesthetic - needless words compete with useful words for attention&lt;br /&gt;&lt;h3&gt;consistency&lt;/h3&gt;keep your metaphors the same everywhere; don't make similar things act differently&lt;br /&gt;&lt;h3&gt;help&lt;/h3&gt;searchable, step oriented, easy to find, easy to use, precise, detailed, available&lt;br /&gt;&lt;br /&gt;I just wrote out paraphrases of nielsen's rules beside them - and in order to keep myself thinking about it a bit, I wrote this quick blogpost. Hopefully it's useful to someone else, too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-7612393583856277490?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/7612393583856277490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=7612393583856277490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7612393583856277490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7612393583856277490'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/09/usability-mnemonic-map-and-fetch.html' title='Usability Mnemonic: Map and Fetch'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-467146337442591681</id><published>2010-08-16T08:05:00.012-04:00</published><updated>2010-08-16T15:57:38.462-04:00</updated><title type='text'>The Next Big Thing</title><content type='html'>Edited: Some HackerNews comments have prompted me to clarify that this was written with a sense of humour. The alleged 'pattern' of 2 little, 2 big was a joke, and the sensible expectation of persistence or new input/output technology just happened to fit with it. So I commented on it.&lt;br /&gt;&lt;br /&gt;This article, &lt;a href="http://technosailor.aaronbrazell.com/2010/08/13/the-web-is-passing-most-of-you-by-and-you-are-asleep/"&gt;The Web Is Passing Most Of You By... And You Are Asleep&lt;/a&gt; put my mind back onto the topic of what tomorrow's great tech fads that shape our world will be. It seemed prudent, at the time, to make a chart:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_30mGAz-a_bY/TGk2SeenGQI/AAAAAAAAACY/Vudj-J4b1_c/s1600/next_big_thing.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_30mGAz-a_bY/TGk2SeenGQI/AAAAAAAAACY/Vudj-J4b1_c/s400/next_big_thing.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5505991710484142338" /&gt;&lt;/a&gt; (click to see it a bit bigger, dumb blogspot)&lt;br /&gt;&lt;br /&gt;The thing speaks for itself, generally. I chose the timeline to be every five years because it was easy, and it didn't seem too far off the mark for the rise of each of these technologies - in some cases it's closer than others. Paradigm is intended to be a one word description of the fad, be it product or idea. 'why' attempts to explain how that fad fit into society, again in a word, and then who is done in two categories, generally did big or little companies make this happen / profit from this fad, and then specifically what companies they were.&lt;br /&gt;&lt;br /&gt;The letters are for reference to be briefly discussed here:&lt;br /&gt;&lt;br /&gt;a: this is what we're trying to find out&lt;br /&gt;b: this word will help us figure out a&lt;br /&gt;c: a "pattern" of 2 big, 2 little seems to have emerged. I'd call shenanigans, but it does seem likely that a big company will be winner of the next major fad - if it's either of the fads I'm going to identify in a moment.&lt;br /&gt;d: looking at the history of companies, if it's big, we can take some guesses&lt;br /&gt;e: two steps in the future is worth thinking about, but predictions a decade out are like shooting a pistol at the moon&lt;br /&gt;f: following the 2 by 2 trend from before&lt;br /&gt;g: these are the people we want to be, if the aforementioned trend is an actual thing&lt;br /&gt;&lt;br /&gt;Now, the two things I can think of are related; they both focus on one answer to b. I think the next word will be 'whole', 'full', or 'all'. The idea is that cell phones do not do everything laptops and desktops do yet, and should. They perform an excellent subset of what we need, but the winners in the next 5 years (I think) will be the ones who complete the experience and give us full functionality through our phones. There are a few key things that need to happen:&lt;br /&gt;&lt;br /&gt;Input and output will change drastically. Tiny buttons don't cut it, and maybe touch screens are the shit but I think voice, gesture, and projection will be reaching a point soon that they'll exceed even apple's multi-touch magic. Just watch Pranav Mistry &lt;a href="http://www.ted.com/talks/pranav_mistry_the_thrilling_potential_of_sixthsense_technology.html"&gt;go&lt;/a&gt; (ted talk; you've likely seen it).&lt;br /&gt;&lt;br /&gt;Coding on phones is a perfect example of an everyday task that's kind of ludicrous, due to input and output, but also due to synchronization. It just isn't worth the effort to a user of making a workflow persist between a larger machine and a phone yet. This leads to the second key thing, I call it &lt;b&gt;persistence&lt;/b&gt;. It would be great if people would call it this, because it gets across the concept really well: your workflow or session &lt;b&gt;persists&lt;/b&gt; while you transit between devices. Email and some chat programs have this already - web browsing has got it in a patchy fashion, but the rest of the computing experience has to come along too.&lt;br /&gt;&lt;br /&gt;Size (physical and disk space), bandwidth, and cost restraints are also still in the mix, but they are second to input/output and persistence. Google and Mozilla seem to have done the most work so far in persistence, and MIT has all the best work on projection input/output systems. Microsoft has the money to catch up, and Apple has sufficient investment that it will need to keep up. It's moved in this direction already by trying to create a more complete, and yet mobile experience with the iPad. Apple seems to believe the answer here is a new form factor - maybe they've got it, but I think they're too early. If you wanted to, you could look at persistence as the final advent of "the cloud". It's about time.&lt;br /&gt;&lt;br /&gt;If correct, this will leave us in 2013-2015 with new input schemes, new output schemes, and a lot of power to play with. Cue little companies to rush in and do interesting things, causing the next fad of 2020.&lt;br /&gt;&lt;br /&gt;This is just fun conjecture, but it suggests that small facebook-killers like diaspora or next-googlers will not become juggernauts of the industry any time soon -- though it certainly does not bar them from success. The listed companies were just the ones that got into huge dominant positions from exploiting the fad of the day.&lt;br /&gt;&lt;br /&gt;It also suggests that the coolest and most important work of the next 3 years will be done in big companies working toward these fundamental gains, and the next 6 years after that will be building the foundations of what we need to use this stuff well, and doing cool 'world-of-tomorrow' shit with it.&lt;br /&gt;&lt;br /&gt;I'm excited, are you?&lt;br /&gt;&lt;br /&gt;edit: added a chart filled with my assumptions, for the sake of visualization:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_30mGAz-a_bY/TGlB2w29M3I/AAAAAAAAACg/UXafv6SXMOg/s1600/next_big_thing_edit.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_30mGAz-a_bY/TGlB2w29M3I/AAAAAAAAACg/UXafv6SXMOg/s400/next_big_thing_edit.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5506004428521288562" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-467146337442591681?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/467146337442591681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=467146337442591681' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/467146337442591681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/467146337442591681'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/08/next-big-thing.html' title='The Next Big Thing'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_30mGAz-a_bY/TGk2SeenGQI/AAAAAAAAACY/Vudj-J4b1_c/s72-c/next_big_thing.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5418891386956014237</id><published>2010-07-25T02:50:00.002-04:00</published><updated>2010-07-25T03:01:11.889-04:00</updated><title type='text'>A whole new world...</title><content type='html'>Well, not really. I've just added a lot to the tests. Codedump:&lt;pre&gt;class World&lt;br /&gt;  def initialize(x_size=20, y_size=20, building_control=10)&lt;br /&gt;    remake(x_size, y_size, building_control)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def remake(x_size=20, y_size=20, building_control=10)&lt;br /&gt;    @x_size = x_size&lt;br /&gt;    @y_size = y_size&lt;br /&gt;    @building_control = building_control&lt;br /&gt;    &lt;br /&gt;    @map = createMap&lt;br /&gt;    placeBuildings&lt;br /&gt;    placeRobot&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def createMap&lt;br /&gt;    map = Array.new(@x_size)&lt;br /&gt;    map.each_index do |col|&lt;br /&gt;      map[col] = Array.new(y_size)&lt;br /&gt;      map[col].each_index do |i|&lt;br /&gt;        map[col][i] = " "&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;    map&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def display&lt;br /&gt;    @map.each do |col|&lt;br /&gt;      col.each do |i|&lt;br /&gt;        printf(i)&lt;br /&gt;      end&lt;br /&gt;      puts ""&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def placeBuildings&lt;br /&gt;    1.upto(@building_control) do&lt;br /&gt;      placeObject("B")&lt;br /&gt;    end&lt;br /&gt;    # fills the world with buildings&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def placeRobot&lt;br /&gt;    placeObject("P")&lt;br /&gt;    # puts Robot in a place where buildings aren't&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def placeObject(string)&lt;br /&gt;    placed = false&lt;br /&gt;    while placed == false&lt;br /&gt;      x = rand(@x_size)&lt;br /&gt;      y = rand(@y_size)&lt;br /&gt;      if @map[x][y] == " " then&lt;br /&gt;        @map[x][y] = string&lt;br /&gt;        placed = true&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def line_of_sight&lt;br /&gt;    # returns position of next visible object&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  attr_reader :map, :x_size, :y_size, :building_control&lt;br /&gt;end&lt;/pre&gt;&lt;pre&gt;require 'test/unit'&lt;br /&gt;require 'src/world.rb'&lt;br /&gt;&lt;br /&gt;class WorldTest &lt; Test::Unit::TestCase&lt;br /&gt;&lt;br /&gt;  @@x_size_list = Array.new(10) {|i| i+10}&lt;br /&gt;  @@y_size_list = Array.new(10) {|i| i+10}&lt;br /&gt;  @@building_control_list = Array.new(3) {|i| i+50}&lt;br /&gt;&lt;br /&gt;  def setup&lt;br /&gt;    @space_count = 0&lt;br /&gt;    @building_count = 0&lt;br /&gt;    @player_count = 0&lt;br /&gt;    @other_count = 0&lt;br /&gt;&lt;br /&gt;    @w = World.new(@@x_size_list[0], @@y_size_list[0], @@building_control_list[0])&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "properly set the x_size parameter"  do&lt;br /&gt;    assert_equal @w.x_size, @@x_size_list[0]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "properly set the y_size parameter" do&lt;br /&gt;    assert_equal @w.y_size, @@y_size_list[0]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "properly set the building control parameter" do&lt;br /&gt;    assert_equal @w.building_control, @@building_control_list[0]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "generate a 2D map" do&lt;br /&gt;    assert_equal @w.map[0][0].class, String&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "generate a 2D map to at least the specified dimensions" do&lt;br /&gt;    assert_equal @w.map[@w.x_size-1][@w.y_size-1].class, String&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  must "generate a 2D map not exceeding the specified dimensions" do&lt;br /&gt;    assert_raises(NoMethodError) do&lt;br /&gt;      assert_equal @w.map[@w.x_size][@w.y_size].class, String&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  @@x_size_list.each do |x|&lt;br /&gt;    @@y_size_list.each do |y|&lt;br /&gt;      @@building_control_list.each do |b|&lt;br /&gt;#        puts "#{x} #{y} #{b}: layout"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        must "place #{b} buildings on size #{x} * #{y}" do&lt;br /&gt;#          puts "#{x}, #{y}, #{b}: buildings"&lt;br /&gt;          @w.remake(x, y, b)&lt;br /&gt;          count_map_contents&lt;br /&gt;          assert_equal b, @w.building_control&lt;br /&gt;          assert_equal b, @building_count&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        must "place #{(x * y) - (b+1)} spaces on size #{x} * #{y}" do&lt;br /&gt;#          puts "#{x}, #{y}, #{b}: spaces"&lt;br /&gt;          @w.remake(x, y, b)&lt;br /&gt;          count_map_contents&lt;br /&gt;          assert_equal ((x * y) - (b+1)), @space_count&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        must "place 1 player on size #{x} * #{y}, building control #{b}" do&lt;br /&gt;#          puts "#{x}, #{y}, #{b}: 1 player"&lt;br /&gt;          @w.remake(x, y, b)&lt;br /&gt;          count_map_contents&lt;br /&gt;          assert_equal 1, @player_count&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        must "not put any ambiguous spaces on size #{x} * #{y}, building control #{b}" do&lt;br /&gt;#          puts "#{x}, #{y}, #{b}: no ambiguous"&lt;br /&gt;          @w.remake(x, y, b)&lt;br /&gt;          count_map_contents&lt;br /&gt;          assert_equal 0, @other_count&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def count_map_contents&lt;br /&gt;    @w.map.each_index do |col|&lt;br /&gt;      @w.map[col].each do |i|&lt;br /&gt;        if i == "B" then&lt;br /&gt;           @building_count += 1&lt;br /&gt;        elsif i == " " then&lt;br /&gt;           @space_count += 1&lt;br /&gt;        elsif i == "P" then&lt;br /&gt;           @player_count += 1&lt;br /&gt;        else &lt;br /&gt;           @other_count += 1&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Sooo yeah. 1340 tests, 1640 assertions, 0 failures and 0 errors. I'm not sure whether I should do the line of sight/check code next or the linking code next, to pass the messages around. I'm betting the line of sight will be a lot easier, but it may have to change when I glue tings together - so I'm wary of pushing into it. Glad to get world into a good, test-passing state before I head to Ottawa for a week. I think I'd like to put something into the Hunters story over in Fiction, after I'm back. And keep learning physics -- and of course, finish off this robot game. It's good to design something small, to wean myself onto the process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5418891386956014237?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5418891386956014237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5418891386956014237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5418891386956014237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5418891386956014237'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/07/whole-new-world.html' title='A whole new world...'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3146323853519351218</id><published>2010-07-18T02:05:00.002-04:00</published><updated>2010-07-21T02:01:12.362-04:00</updated><title type='text'>Continuing with the ruby text game</title><content type='html'>Posting from Ubuntu 10.04 now, so I'm much more ready to use ruby properly.&lt;br /&gt;&lt;br /&gt;I've made updates to my files, as shown here:&lt;br /&gt;&lt;br /&gt;Rakefile:&lt;pre&gt;require "rake/testtask"&lt;br /&gt;&lt;br /&gt;task :default =&gt; [:test]&lt;br /&gt;&lt;br /&gt;Rake::TestTask.new do |test|&lt;br /&gt; test.libs &lt;&lt; "test"&lt;br /&gt; test.test_files = Dir[ "test/test_*.rb" ]&lt;br /&gt; test.verbose = true&lt;br /&gt;end&lt;/pre&gt;test/test_game.rb&lt;pre&gt;require 'test/unit'&lt;br /&gt;require 'test/extension.rb'&lt;br /&gt;require 'stringio'&lt;br /&gt;require 'src/game.rb'&lt;br /&gt;&lt;br /&gt;class GameTest &lt; Test::Unit::TestCase&lt;br /&gt;&lt;br /&gt;  command_list = ["left", "right", "forward", &lt;br /&gt;                  "go", "back", "shoot", "pew",&lt;br /&gt;                  "pewpew", "map", "look", "check"]&lt;br /&gt;&lt;br /&gt;  bad_command_list = ["up", "down", "north", "3", "go wildcats",&lt;br /&gt;                      "wepwep", "a map", "map ", "go map"]&lt;br /&gt;&lt;br /&gt;  def setup&lt;br /&gt;    @input  = StringIO.new&lt;br /&gt;    @game   = Game.new(@input)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  command_list.each do |command|&lt;br /&gt;    must "set the inputted command: \"#{command}\"" do&lt;br /&gt;      #puts "set the inputted command correctly when parsing #{command}"&lt;br /&gt;      provide_input(command)&lt;br /&gt;      @game.get_command&lt;br /&gt;      assert_equal @game.command, command&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  command_list.each do |command|&lt;br /&gt;    bad_command_list.each do |bad_command|&lt;br /&gt;      must "retain the command \"#{command}\" and fail to set \"#{bad_command}\"" do&lt;br /&gt;        provide_input(command)&lt;br /&gt;        @game.get_command&lt;br /&gt;        provide_input(bad_command)&lt;br /&gt;        @game.get_command&lt;br /&gt;        assert_equal @game.command, command&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def provide_input(string)&lt;br /&gt;    remember = @input.pos&lt;br /&gt;    @input &lt;&lt; string&lt;br /&gt;    @input.pos = remember&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;src/game.rb&lt;pre&gt;class Game&lt;br /&gt;  attr_reader :command&lt;br /&gt;&lt;br /&gt;  def initialize(readin=STDIN, output=STDOUT)&lt;br /&gt;    @input = readin&lt;br /&gt;    @output = output&lt;br /&gt;    @command_list = ["left", "right", "go", "back",&lt;br /&gt;                     "shoot", "check", "look", "pew",&lt;br /&gt;                     "pewpew", "exit", "map", "forward"]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_command&lt;br /&gt;    temp_command = @input.gets&lt;br /&gt;    temp_command.chomp!&lt;br /&gt;    if @command_list.index(temp_command) != nil then&lt;br /&gt;     @command = temp_command&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def loop&lt;br /&gt;    while @command != "exit"&lt;br /&gt;      get_command&lt;br /&gt;      puts @command      &lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;This has all gone rather well. Running 'rake test' gives:&lt;pre&gt;(in /media/sda1/Users/wcarss/code/ruby)&lt;br /&gt;/usr/bin/ruby1.8 -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/test_game.rb" &lt;br /&gt;Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader&lt;br /&gt;Started&lt;br /&gt;..............................................................................................................&lt;br /&gt;Finished in 0.012626 seconds.&lt;br /&gt;&lt;br /&gt;110 tests, 110 assertions, 0 failures, 0 errors&lt;/pre&gt;Excellent! Now that's out of the way...&lt;br /&gt;&lt;br /&gt;What next?&lt;br /&gt;&lt;br /&gt;We've got a game class accepting commands - I think it'd be pertinent to have a Robot who can receive them. A robot ought to have a position, ought to be able to take actions, and have a name. I figure that means making the files test/test_robot.rb and src/robot.rb&lt;br /&gt;&lt;br /&gt;test_robot.rb:&lt;pre&gt;require 'test/unit'&lt;br /&gt;require 'test/extension.rb'&lt;br /&gt;require 'src/robot.rb'&lt;br /&gt;require 'matrix'&lt;br /&gt;&lt;br /&gt;class RobotTest &lt; Test::Unit::TestCase&lt;br /&gt;&lt;br /&gt;  directions = ["north", "east", "south", "west"]&lt;br /&gt;  base_pos = Vector[5,5]&lt;br /&gt;  &lt;br /&gt;  forward_list = ["go", "forward"]&lt;br /&gt;  backward_list = ["back", "backward"]&lt;br /&gt;  new_pos = [Vector[0,1], Vector[1,0], Vector[0,-1], Vector[-1,0]]&lt;br /&gt;&lt;br /&gt;  def setup&lt;br /&gt;    @bot = Robot.new&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  directions.each_index do |i|&lt;br /&gt;    must "change direction to #{directions[i]} from #{directions[i-1]} on right" do&lt;br /&gt;      @bot.direction = directions[i-1]&lt;br /&gt;      @bot.right&lt;br /&gt;      assert_equal directions[i], @bot.direction &lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  directions.each_index do |i|&lt;br /&gt;    must "change direction to #{directions[i-1]} from #{directions[i]} on left" do&lt;br /&gt;      @bot.direction = directions[i]&lt;br /&gt;      @bot.left&lt;br /&gt;      assert_equal directions[i-1], @bot.direction&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  forward_list.each do |command|&lt;br /&gt;    directions.each_index do |i|&lt;br /&gt;      must "move correctly forward when facing #{directions[i]}, using #{command}" do&lt;br /&gt;        @bot.pos = base_pos&lt;br /&gt;        @bot.direction = directions[i]&lt;br /&gt;        @bot.send(:"#{command}")&lt;br /&gt;        assert_equal @bot.pos, base_pos + new_pos[i]&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  backward_list.each do |command|&lt;br /&gt;    directions.each_index do |i|&lt;br /&gt;      must "move correctly backward when facing #{directions[i]}, using #{command}" do&lt;br /&gt;        @bot.pos = base_pos&lt;br /&gt;        @bot.direction = directions[i]&lt;br /&gt;        @bot.send(:"#{command}")&lt;br /&gt;        assert_equal @bot.pos, base_pos - new_pos[i]&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;robot.rb&lt;pre&gt;require 'matrix'&lt;br /&gt;&lt;br /&gt;class Robot&lt;br /&gt;  attr_reader :pos, :direction, :name, :score&lt;br /&gt;  attr_writer :pos, :direction, :name, :score&lt;br /&gt;&lt;br /&gt;  @@directions = ["north", "east", "south", "west"]&lt;br /&gt;&lt;br /&gt;  def initialize(name="Killbot 4000", x_pos = 0, y_pos = 0, direction="north")&lt;br /&gt;    @pos = Vector[x_pos, y_pos]&lt;br /&gt;    @name = name&lt;br /&gt;    @direction = direction&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def left&lt;br /&gt;    @direction = @@directions[ direction_as_int() - 1]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def right&lt;br /&gt;    @direction = @@directions[ (direction_as_int() + 1) % @@directions.size] &lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def direction_as_int&lt;br /&gt;    @@directions.index(@direction)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def next_pos&lt;br /&gt;    angle = 90 * direction_as_int() * Math::PI/180&lt;br /&gt;    Vector[Math.sin(angle).round, Math.cos(angle).round]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def forward&lt;br /&gt;    @pos = @pos + next_pos()&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def backward&lt;br /&gt;    @pos = @pos - next_pos()&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def look&lt;br /&gt;    puts "Your windows are fogged!"&lt;br /&gt;    # not implemented&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def shoot&lt;br /&gt;    puts "KABOOM (probably)"&lt;br /&gt;    # not implemented&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  alias back backward&lt;br /&gt;  alias go forward&lt;br /&gt;  alias check look&lt;br /&gt;  alias pew shoot&lt;br /&gt;  alias pewpew shoot&lt;br /&gt;end&lt;/pre&gt;So, what on earth's going on here? Hopefully a lot of it is self-evident! The robot knows 4 directions, and I generated tests to check that left/right properly cycle through those. Then I generated a set of tests to check that, for every command, for every direction, the robot alters its position correctly. For example, if facing north using 'go', the robot should increment its y-position by 1. (I'm using north as positive, south as negative y, while west is negative x and east is positive x).&lt;br /&gt;&lt;br /&gt;The bot itself is a little scattered for the moment - I'll collect private/public methods together next iteration, and I'm thinking I might make a "Direction" class, because a surprising amount of direction-logic had to go into the robot class. If I could just say the bot has a facing = Direction.new("north"), then print facing.to_s or .to_i, facing.left, facing.right, all these things - it would simplify the robot code tremendously. And it's all mostly done already!&lt;br /&gt;&lt;br /&gt;Next after that I think is the World class, which will have a text-representation and some notion of simple buildings. From there I'm going to have to implement shooting stuff and looking around, which I think will involve line of sight, which I've never even really /thought about/, so it should be pretty cool.&lt;br /&gt;&lt;br /&gt;OH! Actually, what I'll do next iteration is the following:&lt;br /&gt;&lt;br /&gt;actually make the game loop send commands to the robot (haha, kinda important)&lt;br /&gt;split direction into its own class with its own tests&lt;br /&gt;&lt;br /&gt;then the one after that will be the world class / displaying the map&lt;br /&gt;&lt;br /&gt;then like a half iteration should be all I need to make buildings blowupable and implement score. Sounds fun. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3146323853519351218?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3146323853519351218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3146323853519351218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3146323853519351218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3146323853519351218'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/07/continuing-with-ruby-text-game.html' title='Continuing with the ruby text game'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1924878181250819072</id><published>2010-07-15T15:31:00.006-04:00</published><updated>2010-07-18T02:24:05.704-04:00</updated><title type='text'>Let's make a small text game in Ruby</title><content type='html'>Want to do some stuff with Ruby? So do I! I'm going to make a small text game, where you control a robot and blow up buildings.&lt;br /&gt;&lt;br /&gt;So let's start by thinking about how the game will work. Pretty much, I want it to be command-line interactive and turn based. So you enter a command, and then something happens, and then you can enter another thing, and so on. You should be able to turn left or right and move forward and backward, and check what's in front of you. You should also be able to shoot.&lt;br /&gt;&lt;br /&gt;I'm thinking sensible commands would be:&lt;br /&gt;&lt;br /&gt;left&lt;br /&gt;right&lt;br /&gt;forward (maybe also go)&lt;br /&gt;back&lt;br /&gt;shoot (also pew or pewpew)&lt;br /&gt;look (or check)&lt;br /&gt;&lt;br /&gt;everything should be lower case for now. There'll be buildings randomly placed about, and when you are facing them and shoot, they should blow up. Maybe an extra command, &lt;br /&gt;&lt;br /&gt;map&lt;br /&gt;&lt;br /&gt;would be useful so you can see there's a building (demarcated by a B) somewhere, and a blown up building (demarcated by an X) somewhere else, and you the player, demarcated by a P. Later, I could make you be one of ^ v &gt; &lt; depending on your facing or something. A score for how many buildings you blown up would be neat too.&lt;br /&gt;&lt;br /&gt;COOL!&lt;br /&gt;&lt;br /&gt;So where do we begin? Well, if I want it to be interactive I'm going to have to have some kind of game-loop. I *could* just make this a game you play by issuing Class.command commands in irb or something, but that feels cheap. So it makes sense to me that I'd have some sort of controller class I'll call Game. I'm also going to need a Player.. or a Robot who moves around. Yeah, I like the thought of Robot being the thing that shoots. Then I'm gonna need Buildings, and a Map.&lt;br /&gt;&lt;br /&gt;So, the Game will have a Robot, Buildings and a Map.&lt;br /&gt;each Building will have a location and a status: either it exists or it doesn't!&lt;br /&gt;the Robot will have a location, a direction, and maybe a name.&lt;br /&gt;the Map will have to show the Robot and the Buildings, and eventually (I hope) the facing.&lt;br /&gt;&lt;br /&gt;So let's get started already!!!&lt;br /&gt;&lt;br /&gt;First, Iteration 1: Let's make the Game class and the main loop inside it, which will receive commands. What do we do now? That's right, we write some tests!&lt;br /&gt;&lt;br /&gt;I'm going to lift some code pretty closely out of Ruby Best Practices here, because it does just about exactly what we want:&lt;pre&gt;class GameTest &lt; Test::Unit::TestCase&lt;br /&gt;  def setup&lt;br /&gt;    @commandlist = ["left", "right", "forward",&lt;br /&gt;                    "go", "back", "shoot", "pew",&lt;br /&gt;                    "pewpew", "map", "look", "check"]&lt;br /&gt;    @input  = StringIO.new&lt;br /&gt;    @game   = Game.new(@input)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  commandlist.each do |command|&lt;br /&gt;    must "set the inputted command correctly when parsing #{command}" do&lt;br /&gt;      provide_input(command)&lt;br /&gt;      Game.get_command&lt;br /&gt;      assert_equal Game.command, command&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def provide_input(string)&lt;br /&gt;    @input &lt;&lt; string&lt;br /&gt;    @input.rewind&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;not having run this yet or ever done testing in ruby before, I have /no idea/ if this will actually work. Having written it though, I'm going to throw my Game class together (which now essentially writes itself)&lt;pre&gt;class Game&lt;br /&gt;  attr_reader :command&lt;br /&gt;&lt;br /&gt;  def initialize(readin=STDIN, output=STDOUT)&lt;br /&gt;    @input = readin&lt;br /&gt;    @output = output&lt;br /&gt;    @command_list = ["left", "right", "go", "back",&lt;br /&gt;                     "shoot", "check", "look", "pew",&lt;br /&gt;                     "pewpew", "exit", "map", "forward"]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def get_command&lt;br /&gt;    temp_command = @input.gets&lt;br /&gt;    temp_command.chomp!&lt;br /&gt;    if @command_list.index(temp_command) != nil then&lt;br /&gt;            @command = temp_command&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def loop&lt;br /&gt;    while @command != "exit"&lt;br /&gt;      get_command&lt;br /&gt;      puts @command&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;I don't have rake or rubygems on this computer, so I can't test this yet! I'll have to do so a little later - after a quick manual test of the Game class, it looks like it is in the right place. I realized while making it though, that I forgot to test that I'm not taking inappropriate commands! Fortunately I built it into the game class, and I'll modify the test soon to check for it.&lt;br /&gt;&lt;br /&gt;Also of note, my directory structure at the moment:&lt;pre&gt;/&lt;br /&gt;/Rakefile&lt;br /&gt;/src/&lt;br /&gt;/src/game.rb&lt;br /&gt;/test/&lt;br /&gt;/test/test_game.rb&lt;/pre&gt;ah, and what exactly is in the rakefile? I've never used rake before! But again lifting from Ruby Best Practices (a fantastic book!), I've got&lt;pre&gt;require "rake/testtask"&lt;br /&gt;&lt;br /&gt;task :default =&gt; [:test]&lt;br /&gt;&lt;br /&gt;Rake::TestTask.new do |test|&lt;br /&gt;        test.libs &lt;&lt; "test"&lt;br /&gt;        test.test_files = Dir[ "test/test_*.rb" ]&lt;br /&gt;        test.verbose = true&lt;br /&gt;end&lt;/pre&gt;And that's where I'll leave it for now. More later when I can actually run tests and find out all the things I've done incorrectly. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1924878181250819072?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1924878181250819072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1924878181250819072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1924878181250819072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1924878181250819072'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/07/lets-make-small-text-game-in-ruby.html' title='Let&apos;s make a small text game in Ruby'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3827424460423581208</id><published>2010-05-14T16:40:00.002-04:00</published><updated>2010-05-14T17:09:35.649-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entropy'/><category scheme='http://www.blogger.com/atom/ns#' term='corporate'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='essay'/><title type='text'>Corporations are re-enacting the histories of Nations</title><content type='html'>At least in some sense, Corporations and Nations are each large hierarchies of people that serve a common purpose. It's interesting to look at some recent corporate situations and see how far the comparison takes us.&lt;br /&gt;&lt;br /&gt;Apple v Adobe&lt;br /&gt;&lt;br /&gt;Apple and Adobe, founded around similar times by similarly minded people, have each grown spectacularly, and each hold very similar values. Recently, Apple decided that Adobe might have a bit too much control, and so decided to attack(No Flash, and Section 3.1.1, various written statements). Adobe has counterattacked in various ways (working around tech limitations, but mostly written statements), and the two could be said to be at war with one another. It's interesting to see how they manage to fight each other without spending lives, and while continuing to hold similar ideologies.&lt;br /&gt;&lt;br /&gt;Google v China&lt;br /&gt;&lt;br /&gt;Google is at war with China over ideology. One of the world's largest companies is fighting the government of the most populous nation on earth over what comes down to human rights. That a corporation can see itself as an adversary and competitor to an enormous (super?)power like China shows how much corporations are themselves like nations today.&lt;br /&gt;&lt;br /&gt;Facebook v The People&lt;br /&gt;&lt;br /&gt;Facebook is currently dealing with a revolt. The large-scale population of its users may or may not be aware of it, but a vocal minority is calling for the downfall of the site, and regularly publishing articles, studies, and anti-facebook propaganda, while organizing events designed to help get people to quit. I'm not particularly a fan of facebook myself, but it doesn't change the tactics that are being used. Facebook, a corporation, is at risk of being overthrown by its population and disbanded.&lt;br /&gt;&lt;br /&gt;Conclusions&lt;br /&gt;&lt;br /&gt;To my mind, there are at least three major corporate wars taking place in the tech world at the moment. There are classic rivalries like Coke v Pepsi, Nintendo v Sega (or Sony (or Microsoft)), acquisitions and annexations occur all the time, and corporations live their own lives as entities on a scale above our own, just as nations do, only corporations are borderless and have the ability to pivot themselves. Religious organizations may fit within this class of entity as well, and certainly wars and revolutions have occurred within them, but perhaps they are not as successful as the corporate being is, because there were by necessity so many fewer of them? Small population, small diversity, slow evolution?&lt;br /&gt;&lt;br /&gt;Regardless of what my own spin is, living in a time where such tremendous conflicts as Apple v Adobe, Google v China, and The Facebook Revolt are taking place has me excited. The balances of power are shifting restlessly, and that means there's probably a way to gain advantage and come out with a lot of power.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3827424460423581208?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3827424460423581208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3827424460423581208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3827424460423581208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3827424460423581208'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/05/corporations-are-re-enacting-histories.html' title='Corporations are re-enacting the histories of Nations'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3110414971986890553</id><published>2010-04-27T03:06:00.003-04:00</published><updated>2010-04-27T03:09:06.664-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wyatt used darkness; it&apos;s super-productive'/><title type='text'>Good work</title><content type='html'>Learned a lot about SDL in the last day or two. Making a tile-based game of some sort this evening. I'll get back with screenshots tomorrow.&lt;br /&gt;&lt;br /&gt;Once I've got some experience, a Tetris RPG will be on its way (I've had this idea on a backburner forever waiting for a key concept to make sense that finally worked itself out in my head a few days ago)&lt;br /&gt;&lt;br /&gt;Then I'll settle into drupal and wiki stuff, and see what I can do with a Wiimote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3110414971986890553?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3110414971986890553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3110414971986890553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3110414971986890553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3110414971986890553'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/04/good-work.html' title='Good work'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5630991301208473877</id><published>2010-04-24T13:29:00.003-04:00</published><updated>2010-04-24T13:53:16.114-04:00</updated><title type='text'>It's a reasonable thing to do</title><content type='html'>My last posts were correct, I suspect. One of my largest issues is that of distraction, and of a lack of focus. When I get focused, I can get into a fantastic groove (and produce excellent things quickly! Looking at you, lexical analyzer for pish I wrote in an evening), so the problem becomes getting focused.&lt;br /&gt;&lt;br /&gt;My day-to-day activities have helped to breed a lack of focus in me. I switch contexts so frequently that it is now habitual. I wake up, check hackernews for articles, read a few sentences from an article, and then engage switching between MSN, email, getting ready for school, and reading whatever little bits of whatever article I go to when alt+tabbing or ctrl+tabbing around. This has left me switching contexts in places where it's not demanded, and not focusing in when that's precisely what I need.&lt;br /&gt;&lt;br /&gt;So the question becomes, "how can I focus?". It may be something I need to learn, but again, how? My thoughts are that it comes down to the mental discipline to force myself to finish a task. If I am blogging (for example) and I decide I would like to watch the new episode of Lost today, or check out a book on my shelf, or read old blog posts, I must force myself to finish my task and &lt;span style="font-style:italic;"&gt;then&lt;/span&gt; switch instead of just switching as soon as the thought occurs.&lt;br /&gt;&lt;br /&gt;This is likely applicable at a larger scale. Getting a project off the ground, or getting a serious improvement to one's self going, takes a lot of energy, which is present in the early stages. As time progresses though, New Task Energy wears off and you want to switch to something more exciting. I've got to learn to be fuelled by Achievement Energy (when I've finished a task) instead of by the energy I get from having something new to work on. I've got to pick reasonable goals and work toward them, and not start new things until I'm done chewing what I've bitten off.&lt;br /&gt;&lt;br /&gt;This summer, I have some hopes. I'd like to build two things minimally, and five things maximally:&lt;br /&gt;&lt;br /&gt;compiler&lt;br /&gt;code style switcher&lt;br /&gt;3d drawing environment&lt;br /&gt;zoomable code editor&lt;br /&gt;knowledge map collaboration station&lt;br /&gt;&lt;br /&gt;I'm not even certain which of those is toughest. I also want to do other things, like dissect some open source code and mess with it (particularly the Cube engine used in games like Sauerbraten) and learn some webGL/jQuery/drupal stuff, and then general stuff like math and science skills, etc.&lt;br /&gt;&lt;br /&gt;So, knowing that these are the things I'd like to end up with, I should draft some goals, some critical paths to the goals, and see what seems reasonable. The things which have my attention most at the moment are the knowledge map collaboration station and the 3d drawing environment.&lt;br /&gt;&lt;br /&gt;That said, my plan is to not be especially productive until I want to be. I'm going to watch television, sleep, play video games, and read until I'm very bored of doing these things (I predict just less than 2 weeks of slacking) and then to come out of it a masterfully productive sort of person.&lt;br /&gt;&lt;br /&gt;The biggest point I need to make here is that once I've set these goals up, I can break down tasks for what I'd like to finish, but once I am in the midst of a task, I must perform it to completion. Working on something halfway and dropping out is how to not finish it. Once I start a thing, I will go until it's done. Then it just becomes a problem of starting.&lt;br /&gt;&lt;br /&gt;Good luck, future me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5630991301208473877?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5630991301208473877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5630991301208473877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5630991301208473877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5630991301208473877'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/04/its-reasonable-thing-to-do.html' title='It&apos;s a reasonable thing to do'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8092237275370777179</id><published>2010-03-28T19:25:00.004-04:00</published><updated>2010-04-14T14:58:37.190-04:00</updated><title type='text'>Failure and success</title><content type='html'>Goals are coming along, but I didn't report back on Friday or even really start the phil paper. I'm working on it at the moment, finally picked up some steam.&lt;br /&gt;&lt;br /&gt;Will report once it's a reasonable thing to do.&lt;br /&gt;&lt;br /&gt;edit (many days later): post coming tonight&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8092237275370777179?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8092237275370777179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8092237275370777179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8092237275370777179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8092237275370777179'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/03/failure-and-success.html' title='Failure and success'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8462128356631838263</id><published>2010-03-24T14:45:00.003-04:00</published><updated>2010-03-24T14:55:21.041-04:00</updated><title type='text'>It's been a fun couple of months.</title><content type='html'>I am realizing that I need a framework for living - not as a ruleset, but as a guideline. One that permits failures, and has guidelines to return onto track.&lt;br /&gt;&lt;br /&gt;Regularly, I'll have things to do, and I'll suddenly be really tired. Or really distracted. Or really want to do something else first (in one of those right now). Somehow I'm never getting to sleep on time, never getting home on time, never getting projects in on time, never getting to school on time. Never doing enough, always planning more than I can achieve.&lt;br /&gt;&lt;br /&gt;This ultimately means that I'm less capable than I think. Whether that's because I lack the attention span or discipline to achieve what I would be ideally capable of, or because I set my sights far beyond even what I'm ideally capable of, I'm uncertain. What I am certain of is that I need to change, because I'm not in a good spot. There are too many deadlines approaching, too quickly, even after having made sacrifices.&lt;br /&gt;&lt;br /&gt;So this is what my spare cycles will go into for the next while. Wait a minute, how can I have spare cycles with so much to do? Well that's precisely the problem. I feel like my programs aren't optimized to my hardware -- rather than packing 4 1-cycle instructions together for alignment, I've got empty space floating around and do nothing with it. So I'll make this my ambient thought-topic: what guidelines can get a person back on track, and keep them on track?&lt;br /&gt;&lt;br /&gt;Off the bat, I see that I need goals. These goals will provide motivation and metrics, and from those I can set myself tasks and make plans. I can develop small heuristics to remind myself with whenever I suddenly decide "this'd be a great time to write a blog post", "I could hang out with Sophie later", or "man, I'm tired. Sleep is good for me -- I'll (stay asleep / go to sleep) even though I've got stuff to do."&lt;br /&gt;&lt;br /&gt;Alright, hope I can stick to it even marginally. A first goal: report back on friday with some progress. A second goal: finish my philosophy paper this evening.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8462128356631838263?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8462128356631838263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8462128356631838263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8462128356631838263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8462128356631838263'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/03/its-been-fun-couple-of-months.html' title='It&apos;s been a fun couple of months.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8345604450653843937</id><published>2010-02-10T15:09:00.003-05:00</published><updated>2010-02-10T15:31:53.866-05:00</updated><title type='text'>How I solve problems</title><content type='html'>I'm not really sure how I solve problems. What I'm betting though, is that I could improve my problem solving ability by paying attention to the process as I bumble through it. Maybe we all could. So let's define this with a touch of formalism.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Where I'm at&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have a problem to solve. I've got an existing program, and I need to make some changes to it to enhance its functionality. I must think that this is a hard problem, because I have procrastinated significantly on it, and every time I go to start it, I get a little lost.&lt;br /&gt;&lt;br /&gt;The sense of being lost comes from a few directions.&lt;br /&gt;&lt;br /&gt;1) There are multiple ways to solve the problem - some easier than others, but with hard to quantify costs of later complexity and code to rework.&lt;br /&gt;&lt;br /&gt;2) The existing program is a hacked together mess.&lt;br /&gt;&lt;br /&gt;3) I haven't really solved this problem before.&lt;br /&gt;&lt;br /&gt;4) There are technical tools which would help with some of my possible plans for moving forward, but I am not certain that those are necessary or, more importantly, allowed.&lt;br /&gt;&lt;br /&gt;Knowing this, I see my primary boundaries (and solutions to them) as:&lt;br /&gt;&lt;br /&gt;1) I have a goal and a starting point, but no real hints about a transformation function to arrive there. I need to choose what path I'll walk along.&lt;br /&gt;&lt;br /&gt;2) The existing program may be useful later, but for now, it must be disregarded. I'll see what I can salvage once I know how I want to do this. Note: this is easy, because the existing program is only a few hundred lines of C/C++ in a single file.&lt;br /&gt;&lt;br /&gt;3) This just makes me a little less sure of myself.&lt;br /&gt;&lt;br /&gt;4) I do not know enough about the limitations on the assignment to make good assessments for technology to use or to not use. It is unspecified in the design document which technology I cannot use. So, I'll just assume it's allowed unless we're told it's not. Within reason.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;What next?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I need to choose a path, and that would be easiest to do if I just start working along a hypothetical path. I've been bogging myself down in the different possibilities at the start and not wanting to commit - well, I'll just start thinking my way through the beginning (and then the rest) in as high level a manner as I can. This is a problem well suited to a top-down design, and I know (from up above) that I don't have to keep much of my existing work.&lt;br /&gt;&lt;br /&gt;So the next step is: draft out some plans.&lt;br /&gt;&lt;br /&gt;Depending on the sort of work I'm doing, I like to make plans a variety of ways. I tend to work well by expressing things verbally, which means I like to talk through them. This is why I'm writing this blog post.&lt;br /&gt;&lt;br /&gt;Next up, I want to do some more specific planning. Like code planning. But rather than pop open vim (where I'm fast when I know what I'm doing, and slow when I don't), or MSVC++ (where I'm constantly trying to think of how to do things better), I'll work on paper, with a pen. This will make diagramming (should I want to do it) faster, and help to free me from thinking about technical details for the moment. Right now I don't want technical details; I want high level organization, overall understanding, and to work through some math. Paper is the perfect technology for this.&lt;br /&gt;&lt;br /&gt;But what I really have to do right now, is mark some students in a class I'm TAing, for the next three and a half hours. It'll be hard to work during, but hey, it's a living. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8345604450653843937?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8345604450653843937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8345604450653843937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8345604450653843937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8345604450653843937'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/02/how-i-solve-problems.html' title='How I solve problems'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-2980218213819620997</id><published>2010-01-25T17:24:00.002-05:00</published><updated>2010-01-25T17:59:04.203-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='timeon'/><title type='text'>School's on</title><content type='html'>Entering week 3 of Semester 6, all looks well. The lineup for this semester:&lt;br /&gt;&lt;br /&gt;CIS 4800: Graphics&lt;br /&gt;CIS 4650: Compilers&lt;br /&gt;CIS 3120: Digital Systems&lt;br /&gt;PHIL 2100: Critical Thinking&lt;br /&gt;PHIL 2370: Introduction to Metaphysics&lt;br /&gt;&lt;br /&gt;The rundown for each of them:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hebb.cis.uoguelph.ca/~dave/4800"&gt;Graphics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OpenGL and its associated helper libraries - pushing and popping matrices and gluing together random bits of code to make a game called Qix(beware the audio!), which is rather fun to play.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usrlocal.ca/~dbm/teaching/CIS4650/"&gt;Compilers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Constructing a compiler to translate a Pascal-ish language (termed Pish) into MIPS Assembly. We're starting with DFAs and simplistic ideas of scanning, then walking forward through parsing, generating meaningful symbol tables, abstract syntax trees, intermediate code, register allocation, and machine code generation. It should be an awesome project to get through.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://teachweb.cis.uoguelph.ca/cs3120/"&gt;Digital Systems&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Starting with CMOS networks of transistors to build basic gates and then gluing gates together to make a half-adder, then a simple 8 bit ALU, then a CPU with a data and control path. We'll be seeing the theoretical and practical side of digital design - touching on minimization of boolean expressions, hazard detection and reduction, designing for cost/speed/safety, and some neat things at the end about FPGAs and such.&lt;br /&gt;&lt;br /&gt;Critical Thinking&lt;br /&gt;&lt;br /&gt;A lot of hullabaloo about arguments. This is a course about using, identifying, and thinking about people's arguments in day to day life and an academic context. It's really the english half of symbolic logic (conversely the math half), which I took over a year ago. I'd better do pretty damn well in it.&lt;br /&gt;&lt;br /&gt;Intro to Metaphysics&lt;br /&gt;&lt;br /&gt;We read a bunch of old stuff and discuss it with the prof, basically. Good reading, good discussion, all about foundational and arguably (oh so arguable!) useless topics like identity, time, the structure of universe, and the nature of reality. Some smart people in there.&lt;br /&gt;&lt;br /&gt;Also going to put my name in the hat for B. Comp Senator again, and.. yeah. Good semester, I think. (And hope.) (And a democamp this week! I will try to go!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-2980218213819620997?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/2980218213819620997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=2980218213819620997' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2980218213819620997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2980218213819620997'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2010/01/schools-on.html' title='School&apos;s on'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1139699868489611223</id><published>2009-12-26T08:39:00.003-05:00</published><updated>2009-12-26T08:51:24.621-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='generic'/><category scheme='http://www.blogger.com/atom/ns#' term='link'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='stl'/><category scheme='http://www.blogger.com/atom/ns#' term='stepanov'/><category scheme='http://www.blogger.com/atom/ns#' term='think'/><title type='text'>So, generic programming</title><content type='html'>&lt;a href="http://www.antiquark.com/escape/public_html/stepanovusa.html"&gt;This&lt;/a&gt; is a good read.&lt;br /&gt;&lt;br /&gt;It's an interview with &lt;a href="http://en.wikipedia.org/wiki/Alexander_Stepanov"&gt;Alexander Stepanov&lt;/a&gt;, and contains gems like:&lt;blockquote&gt;"I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting - saying that everything is an object is saying nothing at all. I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work."&lt;/blockquote&gt;and&lt;blockquote&gt;"You can't write a generic &lt;tt&gt;max()&lt;/tt&gt; in Java that takes two arguments of some type and has a return value of that same type. Inheritance and interfaces don't help. And if they cannot implement max or swap or linear search, what chances do they have to implement really complex stuff? These are my litmus tests: if a language allows me to implement max and swap and linear search generically - then it has some potential."&lt;/blockquote&gt;Good stuff; making me &lt;span style="font-style: italic;"&gt;think&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1139699868489611223?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1139699868489611223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1139699868489611223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1139699868489611223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1139699868489611223'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/12/so-generic-programming.html' title='So, generic programming'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1179596762078269496</id><published>2009-12-24T10:51:00.005-05:00</published><updated>2009-12-26T08:52:59.539-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='customize'/><title type='text'>Customizing the blog a bit</title><content type='html'>This layout has always been rather insistent that I have a very thin middle column in which to place my posts. It's bugged me for a long time, but I decided that messing with the CSS template was outside of my competence level and just asking for trouble.&lt;br /&gt;&lt;br /&gt;At the same time, I've always wanted to be able to place code into the blog without it looking like some awful monster crapped out unformatted text.&lt;br /&gt;&lt;br /&gt;Well this morning I've fixed these issues.&lt;br /&gt;&lt;br /&gt;The latter was as easy as googling "&lt;a href="http://www.google.com/search?q=showing+code+in+blogspot"&gt;showing code in blogspot&lt;/a&gt;" and then following the instructions at the &lt;a href="http://blogkori.com/how-to-show-htmljava-codes-in-bloggerblogspot-blog-posts/"&gt;top link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Essentially, you go to the Layout section of your dashboard, click "edit HTML", find a tag "]]&amp;gt;&amp;lt;/b:skin&amp;gt;", and insert some CSS in the section above it. It adds the necessary stuff to make pre and code tags to work wonderfully.&lt;br /&gt;&lt;br /&gt;Then it recommends running code through a &lt;a href="http://www.accessify.com/tools-and-wizards/developer-tools/quick-escape/default.php"&gt;converter&lt;/a&gt; to quickly change it to escaped-text before posting it.&lt;br /&gt;&lt;br /&gt;I feel like (and am, really) a script kiddie but hey, I've got code showing up in my blog like so:&lt;pre&gt;#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include&amp;lt;stdlib.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[])&lt;br /&gt;{&lt;br /&gt;   int a, b, c;&lt;br /&gt;   int *d = NULL;&lt;br /&gt;&lt;br /&gt;   a = 5;&lt;br /&gt;   b = 6;&lt;br /&gt;   c = 7;&lt;br /&gt;   d = malloc(sizeof(int));&lt;br /&gt;   d[1] = 8;&lt;br /&gt;&lt;br /&gt;   if(argc == 2)&lt;br /&gt;   {&lt;br /&gt;       printf("What a lame example!\n");&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   free(d);&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;/pre&gt;which is wonderful.&lt;br /&gt;&lt;br /&gt;Then I got to thinking "Hey, I'm a cocky CSS editing fiend, why not solve the problem of the blog's lacking width?" And I looked over the code in the layout section.&lt;br /&gt;&lt;br /&gt;I found in there (this is likely specific to this template)&lt;pre&gt;#header-wrapper {&lt;br /&gt; width:660px;&lt;br /&gt; margin:0 auto 10px;&lt;br /&gt; border:1px solid $bordercolor;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;#main-wrapper {&lt;br /&gt; width: 410px;&lt;br /&gt; float: $startSide;&lt;br /&gt; word-wrap: break-word; /* fix for long text breaking sidebar float in IE */&lt;br /&gt; overflow: hidden;     /* fix for long non-text content breaking IE sidebar float */&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;and&lt;pre&gt;#footer {&lt;br /&gt; width:660px;&lt;br /&gt; clear:both;&lt;br /&gt; margin:0 auto;&lt;br /&gt; padding-top:15px;&lt;br /&gt; line-height: 1.6em;&lt;br /&gt; text-transform:uppercase;&lt;br /&gt; letter-spacing:.1em;&lt;br /&gt; text-align: center;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;These all have 'width' attributes that look like they're big enough to be most of the screen, and they're the only similar ones in the file. 660 pixels isn't very wide - I imagine it was set at that to work on an 800x600 screen, should one need to see my page.&lt;br /&gt;&lt;br /&gt;Well you know what? I'm officially leaving those people in the dust.&lt;br /&gt;&lt;br /&gt;Following some common design advice of 960 pixelwidth pages (see &lt;a href="http://960.gs/"&gt;960.gs&lt;/a&gt;), I decided to directly increase 660 to 960, and 410 (correspondingly) to 710. This widened the main post section of my blog considerably, and seems to have had no negative consequences.&lt;br /&gt;&lt;br /&gt;Hooray for a productive blogging morning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1179596762078269496?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1179596762078269496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1179596762078269496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1179596762078269496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1179596762078269496'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/12/customizing-blog-bit.html' title='Customizing the blog a bit'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1274985636087915705</id><published>2009-12-24T09:23:00.005-05:00</published><updated>2009-12-26T08:55:07.786-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Python Fun</title><content type='html'>Every programmer, when learning something new, hits on that devilish quandary:&lt;br /&gt;&lt;br /&gt;"What should I program?"&lt;br /&gt;&lt;br /&gt;And I am a man like all others, who twiddles my thumbs and wonders "ah... if only I had something to /do/ with this language, I would really start to learn it!"&lt;br /&gt;&lt;br /&gt;Well, I've decided to just dink around uselessly and see what comes of it. Then share.&lt;br /&gt;&lt;br /&gt;The things we'll cover:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Some stupid string stuff&lt;/li&gt;&lt;li&gt;some more stupid string stuff, with numbers involved&lt;/li&gt;&lt;li&gt;then some regular old math&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:190%;"&gt;stupid string stuff:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First I started off playing with the string and list functions, and interchanging between them. Throughout this, I might duplicate existing functionality -- if I do, comment and tell me how to do it better! I'd love to learn.&lt;br /&gt;&lt;br /&gt;I decied that I wanted to take a string, say "Hey man, what's up?" and insert stuff between each letter. I couldn't really find a quick way to do this, but some related things popped up.&lt;pre&gt;a = "Hey man, what's up?"&lt;br /&gt;a.split()&lt;/pre&gt;will give you ['Hey', 'man', 'what\'s', 'up?'] - and that's nice, but I want things broken down to the letter. So I wrote a function breakout:&lt;pre&gt;def breakout(input):&lt;br /&gt;   r = []&lt;br /&gt;   for i in input:&lt;br /&gt;       r.append(i)&lt;br /&gt;&lt;br /&gt;   return r&lt;/pre&gt;breakout("hello") returns ['h','e','l','l','o']&lt;br /&gt;&lt;br /&gt;then you can do a str.join() - let's wrap it into a function!&lt;pre&gt;def splitByChar(instring, splitchar):&lt;br /&gt;   return splitchar.join(breakout(instring)&lt;/pre&gt;you can, through this, call splitByChar("hello", '.') and receive 'h.e.l.l.o'&lt;br /&gt;&lt;br /&gt;ah, stupid pointless string stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:190%;"&gt;more stupid string stuff, with some math&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next up, I decided to play with phone numbers. I decided to break them up into their constituent digits and add them. This was (as many things in python are), an easy task.&lt;pre&gt;def summit(input):&lt;br /&gt;       sum = 0&lt;br /&gt;       for i in input:&lt;br /&gt;               if i.isdigit():&lt;br /&gt;                       sum += int(i)&lt;br /&gt;&lt;br /&gt;       return sum&lt;/pre&gt;This function runs quickly through the string and adds to the sum for every integer found.&lt;br /&gt;&lt;br /&gt;I put in my phone number, print(summit("519-703-3336")), and received 42. Exciting!&lt;br /&gt;&lt;br /&gt;Then I got to wondering.... I wonder how many phone numbers out there sum to 42? I wonder what the distribution is like across the rang of sums from 0 to 90? Let's write some code to find out:&lt;pre&gt;def smattering(input):&lt;br /&gt;       arr = []&lt;br /&gt;       for i in range(0,9*input):&lt;br /&gt;               arr.append(0)&lt;br /&gt;&lt;br /&gt;       temp = []&lt;br /&gt;       for i in range(0,input):&lt;br /&gt;               temp.append('9')&lt;br /&gt;&lt;br /&gt;       upper = int(''.join(temp))&lt;br /&gt;       upperStr = str(upper)&lt;br /&gt;       for i in range(0, upper):&lt;br /&gt;               arr[summit(str(i))] += 1&lt;br /&gt;               if i % 1000000 == 0:&lt;br /&gt;                       print(str(i) + ", " + str(upper - i) + ", " + str(i/upper))&lt;br /&gt;&lt;br /&gt;       return arr&lt;/pre&gt;This code makes a 90-element list, then brute-force walks from 0 to 9,999,999,999 and calculates every single sum, stopping every million steps to print out how far we are in, how far we have left, and a percentage through the path we've walked. I did some simple calculations, every printout occurs about 9 seconds apart, and 9,999 of them are required to take the calculation to completion.&lt;br /&gt;&lt;br /&gt;This translates to about 24.9 hours. That's a pretty long calculation -- and it's kind of required; summing each of 10 digits for each of 10 billion numbers is 100 billion operations no matter what way you cut it. I've left the calculation running in a terminal (two, actually - one which will conclude and print the values to the screen and to a text file, and another in an interactive terminal in case I come up with fun things I want to do to the list off the bat) - but I'm beginning to think&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:190%;"&gt;some regular old math&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;is in order to find out the answer to this question a bit faster. The clock is ticking, and I have a day to find out. I'll update once I've thought about it a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1274985636087915705?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1274985636087915705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1274985636087915705' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1274985636087915705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1274985636087915705'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/12/python-fun.html' title='Python Fun'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-37636864938481855</id><published>2009-12-23T08:26:00.004-05:00</published><updated>2009-12-23T08:41:11.571-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timeoff'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><title type='text'>Hard to settle</title><content type='html'>So far I've played with Python, learned some piano, written a program to help me learn large-number multiplication, played hours of Ogre Battle 64, and watched the first season and a half of Weeds. Also seen friends, walked many kilometers, and slept gratuitously.&lt;br /&gt;&lt;br /&gt;I think a haircut is in order. Maybe not today, maybe the 27th or so. Also, laundry.&lt;br /&gt;&lt;br /&gt;I'm going to move forward with watching the SICL videos, and then dive into the Graphics/Language stuff. Math can happen in my spare time, as can piano. I've also got a phone-interview for an internship today. I'm not certain quite what to expect - algorithms and code-related questions, a history of myself, or just good discussion. I hope it goes well.&lt;br /&gt;&lt;br /&gt;It's been wonderful to have time not committed - when I decide I want to do something, I can generally just go do it. I've learned a lot and I feel much happier than I have in weeks.&lt;br /&gt;&lt;br /&gt;I also fixed up my home-server's &lt;a href="http://wcarss.ath.cx"&gt;webpage&lt;/a&gt;, have read a bunch of my various books (Contact, The God Particle, the latest Wheel of Time book), listened to a TON of the music I've accrued over the past semester, and played with some VMs. Installing Slackware is an interesting experience to say the least.&lt;br /&gt;&lt;br /&gt;I'll post back in a few days (likely just post-christmas) about my progress on SICL, Python, Graphics, and my C-spitting-extensions to C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-37636864938481855?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/37636864938481855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=37636864938481855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/37636864938481855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/37636864938481855'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/12/hard-to-settle.html' title='Hard to settle'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3899142970294415957</id><published>2009-12-16T08:41:00.002-05:00</published><updated>2009-12-16T08:58:13.600-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='butIwanttosleep'/><title type='text'>A flurry of activity</title><content type='html'>Well, that's another semester past.&lt;br /&gt;&lt;br /&gt;I have from &lt;span style="font-style: italic;"&gt;right now&lt;/span&gt; until January 10th to myself, effectively. It's time to decide how to use it.&lt;br /&gt;&lt;br /&gt;So from what I can tell, my options are:&lt;br /&gt;&lt;br /&gt;Graphics&lt;br /&gt;Languages&lt;br /&gt;Base Skills&lt;br /&gt;Something Complex&lt;br /&gt;&lt;br /&gt;Graphics would be making computers do graphical things for me and also making graphics myself. Playing with Blender, with the GIMP or Photoshop, with Paint and maybe Flash, reading about colour-theory and how to paint a perdy picture. I'd also be drawing a lot, and reading about basic art stuff. And of course, playing with C/OpenGL to make the computer do cool things, and learning related math (Matrix Algebra, anyone?)&lt;br /&gt;&lt;br /&gt;Languages would be reading about and learning Lisp and Python through the development of simple (and slightly more complicated) projects with them. I would watch the SICL videos from MIT's Open Courseware, generally get a better feel for Lisp, and I'd just do stuff with Python. I would like to implement my scope/stack/reference/object stuff for C.&lt;br /&gt;&lt;br /&gt;Basic Skills would be math and physics and chemistry and maybe biology, just learning voraciously over the break -- very largely just improving my mathematical skill and comfort level. I would also be spending a lot of time working on music and some basic technology things, like awk/sed and being a better vimmer, using the full extent of regexp's and scripting.&lt;br /&gt;&lt;br /&gt;Something Complex would be choosing a project - I'd spend a few days choosing, then go through a design phase and build myself something good. Something that I could sell, or at least use in my day to day life. Maybe this could include working on an Open Source project, or attacking Sam Altman's company Loopt, which just does not seem to be doing a good job with my idea.&lt;br /&gt;&lt;br /&gt;Anyway, one of those four things. I'll have to ask myself "Where do I want to be on January 10th", and my answer could be "I want to walk up to a Piano and lay down the driving rhythm line from 'Don't Stop Me Now'.", or "I want to be able to take 4 files of similar data in disparate formats and spit them sorted into a single new file, every 10 seconds or when the file exceeds 100 lines, and I want to be able to write the thing to do it in about two minutes.", or maybe "I want to be able to spend a weekend and make a simple game, with my own pixel graphics, my own physics, my own everything, and run it on Linux or Windows.", or maybe "I want to be able to do what I want to be able to do. In Lisp. (really poor recursion joke)". Ooh, or, "I want to be able to read a Wikipedia article on a mathematical topic and not have it go over my head before I'm halfway down the page."&lt;br /&gt;&lt;br /&gt;So, which of those sounds best? Or at least, sounds like the one I'd like first? I'm going to spend an hour or two thinking about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3899142970294415957?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3899142970294415957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3899142970294415957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3899142970294415957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3899142970294415957'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/12/flurry-of-activity.html' title='A flurry of activity'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-2254053508673746196</id><published>2009-11-09T13:47:00.003-05:00</published><updated>2009-11-09T13:54:51.570-05:00</updated><title type='text'>The next few weeks, schoolwise</title><content type='html'>Networking,&lt;br /&gt;Modelling,&lt;br /&gt;3750,&lt;br /&gt;and a tiny bit of databases&lt;br /&gt;&lt;br /&gt;Networking I've got a good mental start on. I'm agreeing so far with Martin on using a linked list - I considered just making a big buffer and filling it in using some neat math, but that...&lt;br /&gt;&lt;br /&gt;that sounds complicated. Easy to write out, hard to set up. I'd much rather save each datagram into a list and then sort the list, and iterate through it to write it out/test whether or not stuff was received. So I'm going to set up my listeners, send out the request, read everything in, sort and check my data (likelier I'll sort as I read), rerequest what I haven't got, repeat until I've got everything, then write the data out. Cool.&lt;br /&gt;&lt;br /&gt;Haven't looked at modelling or databases yet. Will do so soon.&lt;br /&gt;&lt;br /&gt;Have a meeting for 3750 tomorrow, we'll have discussion and such, and get back on track.&lt;br /&gt;&lt;br /&gt;Alright, school is looking manageable. Modelling and Networking are both due circa Nov 26th, DB will be sooner, and 3750 is ongoing and constant. This iteration (final) is due next Thursday.&lt;br /&gt;&lt;br /&gt;Then Finals!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-2254053508673746196?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/2254053508673746196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=2254053508673746196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2254053508673746196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2254053508673746196'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/11/next-few-weeks-schoolwise.html' title='The next few weeks, schoolwise'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1670144473178883275</id><published>2009-11-03T14:35:00.003-05:00</published><updated>2009-11-03T14:47:37.223-05:00</updated><title type='text'>TA ta ta</title><content type='html'>Just dropping a note whilst TAing:&lt;br /&gt;&lt;br /&gt;registered for my courses for next semester: phil: critical thinking and phil: intro to metaphysics, also cis: digital systems, cis: computer graphics, and cis: compilers -- compilers isn't actually signed up yet, I have to get waived in like everyone else.&lt;br /&gt;&lt;br /&gt;finally got "The Great Hunt", book 2 of the Wheel of Time back. I'd left it on the plane on the return-trip from Tucson. Also bought "The Light Fantastic", because I freaking love discworld.&lt;br /&gt;&lt;br /&gt;Started reading manga. Got through a volume of Legend of the Strongest Man: Kurosawa last night, and I've started on Trigun. Downloaded Gambling Emperor Zero v1 and 2 as well. I'm gonna check what sort of things I find at the end of the internet for marvel comics now. I knew I liked this format - just never got into it.&lt;br /&gt;&lt;br /&gt;It's a time of great opportunity: Networking and Modelling aren't due until late November, and there's no more midterms. I have only to push forward on 3750 and get a decent (&gt;75%) mark, same with databases, and I can safely devote some time to side projects. I'm looking at you, &lt;a href="http://wcarss-awesome.blogspot.com"&gt;Awesome&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Which reminds me: What the hell, blogroll? I've posted since "Still Working". I posted last night. I posted a week or two ago. Yet you &lt;span style="font-style: italic;"&gt;insist&lt;/span&gt; on showing that I haven't worked on my project in 3 months. I've remade the blogroll, deleted caches, tried alternate URLs, it always pulls up some ancient thing out of the XML. confusion++;&lt;br /&gt;&lt;br /&gt;I'll try to figure that out&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1670144473178883275?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1670144473178883275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1670144473178883275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1670144473178883275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1670144473178883275'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/11/ta-ta-ta.html' title='TA ta ta'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3619607745631619753</id><published>2009-11-02T02:03:00.002-05:00</published><updated>2009-11-02T02:33:55.050-05:00</updated><title type='text'>Breaking the rules</title><content type='html'>It's 2:03, and I promised myself about a week (maybe a bit more?) ago that I would absolutely fundamentally definitely start going to bed by 1 as a soft deadline, with 2 as an absolute final hard deadline. By 2 AM, I would be lying down in my bed, trying to sleep.&lt;br /&gt;&lt;br /&gt;Well, here we are. 2:04.&lt;br /&gt;&lt;br /&gt;I'll be done this in a few minutes, it's okay. I feel like this quarter hour of blogging is more important to me in the long run than this quarter hour of sleep. I'd rather look back and remember this, than vaguely remember a dream I may have had at some point in the future. So let's move on! (this was the title's namesake by the way, I broke my new rule. This isn't the first, the last, or even a notable time I've done so). So let's move on to a few random tidbits worth mentioning.&lt;br /&gt;&lt;br /&gt;Justice is awesome. I've known this for a while (I started listening in earnest back in the summer), but some things, like their unreleased fabriclive mix, are just staggeringly good.&lt;br /&gt;&lt;br /&gt;I became vegetarian after being vegan. My original reasoning for switching to being vegan was that we have no right to hold any dominion over any creature, aside from the thought of "might is right", which isn't at all universalisable, or even really that reasonable at all. A friend of mine (Andrew Stoneburgh) suggested the argument that we are actually being farmed right now. What if we're in the matrix, and being farmed, would I be cool with that or freak out about it? And after some deep consideration, I'm really okay with it. I am fine with that thought. Continuing that, if I'm okay with being farmed without my consent, it is unreasonable for me to have a problem with farming animals. I do still have problems with the way they are treated, absolutely. I just don't feel like the very notion of farming is evil or wrong, which brings use of animal products back into reasonability. Still not okay with killing them for their meat though.&lt;br /&gt;&lt;br /&gt;Well, that's about it for now. I'm hoping that November will be a good, productive month. I don't have too much to think about scheduling wise, just TAing and assignments at the end, and 3750. Signing up for courses as soon as possible, and OSAP for next semester. Hoping to take Compilers with McCaughan, Graphics with Calvert, and some other stuff or something.&lt;br /&gt;&lt;br /&gt;Okay, it's 2:33. Half an hour is enough. Goodnight, world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3619607745631619753?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3619607745631619753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3619607745631619753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3619607745631619753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3619607745631619753'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/11/breaking-rules.html' title='Breaking the rules'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-4764430875373295491</id><published>2009-10-26T14:53:00.001-04:00</published><updated>2009-10-26T14:54:09.089-04:00</updated><title type='text'>Your star burns; I require frozen treats.</title><content type='html'>I really enjoy Penny Arcade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-4764430875373295491?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/4764430875373295491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=4764430875373295491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4764430875373295491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4764430875373295491'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/10/your-star-burns-i-require-frozen-treats.html' title='Your star burns; I require frozen treats.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-895399892546918862</id><published>2009-10-08T04:32:00.003-04:00</published><updated>2009-10-08T05:16:26.639-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grace hopper'/><category scheme='http://www.blogger.com/atom/ns#' term='sleep'/><category scheme='http://www.blogger.com/atom/ns#' term='arizona'/><title type='text'>Robyn can't figure out the difference between dependency and composition</title><content type='html'>That's what you get for a title when I'm writing a brief post at 4:00 AM. You get a snippet of something a confused housemate says regarding UML diagrams.&lt;br /&gt;&lt;br /&gt;-- A breakthrough! He has realized that what he is observing is aggregation. Now he has expressed a desire to know what aggregation really means. I can dig it.&lt;br /&gt;&lt;br /&gt;I am prepared to believe that there is more good music than I can hear out there, and it's a fascinating thought. Every stone turned brings about a revelation of a musician who leaps not off the page, but out of the speakers? That was a good try at being clever, I guess.&lt;br /&gt;&lt;br /&gt;The past week has been pretty full!&lt;br /&gt;&lt;br /&gt;I travelled to Arizona on Tuesday, September 29th, to attend the Grace Hopper Celebration of Women in Computing, with my friends Melanie Veltman and Ali Tremblay. Ali and I flew out through Toronto and Dallas Fort Worth to Tucson, where the amazing weather embraced us (so warm! at night even!) and the intriguing desert flora crowded in to be awesome and bizarre. 20 foot cacti and strange green trees, spiny little bushes, and prickly fuzzy bulbus things were scattered about!&lt;br /&gt;&lt;br /&gt;That was just the environment. The conference itself took place at a right-fancy hotel nestled between some tall (cactus covered!) hills on the outskirts of Tucson. Google, Microsoft, the NSA, Facebook, IBM, Intel, Amazon, Intuit, Sun, many more businesses, many universities, and thousands of attendees from all over the world at various levels of academia and industry attended the conference, to celebrate the role of women in the field of computing.&lt;br /&gt;&lt;br /&gt;I had the educational and intriguing experience of witnessing an inverted female:male gender computer science ratio while in attendance. I was not on the receiving end of hostility or under attack, but it was at times lonely, isolating, or embarrassing. Being the only male in a room while a gender issue is discussed is bizarre - you can feel all eyes glancing at you. I may have abstractly understood what it is like to be a woman in a male dominated field before, and while I cannot claim to have a full understanding of the experience now, I am definitely more learned.&lt;br /&gt;&lt;br /&gt;Please don't misconstrue this as me saying I in any way had a bad time! Everyone I met was intriguing and friendly. I made some new friends and we explored the conference and some of the foothill paths around the hotel. The Grace Hopper Conference is an unbelievably friendly and supportive place - everyone seemed interested to learn about one another. I feel lucky to have attended and to have met some of the most interesting people in the world - I'll definitely try to attend again.&lt;br /&gt;&lt;br /&gt;And oh, the weather! This reminds me though, I have to post photos I took.&lt;br /&gt;&lt;br /&gt;The time since our return has been one of the least sensible in terms of sleep schedules that I've ever held during regular class time. I have not fallen asleep before 7AM on any of Saturday (after flying in), Sunday, Monday, or Tuesday night. It's Wednesday and here I am, 5:08 AM, wrapping up my evening. I'm preparing for a whopper of a sleep at a projected 4 hours. There's quizzes tomorrow, assignments and deliverables due, friends to visit, movies to see, then friday. Which is TAing, more assignments, and then probably heading to London for Thanksgiving. Which means I won't be around home for a weekend until the 17th. I can't wait to see my family!&lt;br /&gt;&lt;br /&gt;Final notes: I'm trying to be vegan. Have been for a week or two, it's going okay. Causes a lot of moral self-reflection. I still think meat and animal products are delicious and I wish I could eat them, but I must not due to the moral imperative.&lt;br /&gt;&lt;br /&gt;Hopefully I start a new trend of regular blogging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-895399892546918862?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/895399892546918862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=895399892546918862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/895399892546918862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/895399892546918862'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/10/robyn-cant-figure-out-difference.html' title='Robyn can&apos;t figure out the difference between dependency and composition'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1375659267073622057</id><published>2009-08-25T05:09:00.001-04:00</published><updated>2009-08-25T05:09:29.858-04:00</updated><title type='text'>I'm just gonna leave this here</title><content type='html'>theme="Whatever magic does not already exist in nature, we have the power and perhaps, the duty, to create."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;for later, when I need it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1375659267073622057?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1375659267073622057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1375659267073622057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1375659267073622057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1375659267073622057'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/08/im-just-gonna-leave-this-here.html' title='I&apos;m just gonna leave this here'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3141560869186269854</id><published>2009-08-08T10:22:00.003-04:00</published><updated>2009-08-08T10:37:03.779-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='up late'/><category scheme='http://www.blogger.com/atom/ns#' term='typing'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='diarrhea'/><category scheme='http://www.blogger.com/atom/ns#' term='500 days of summer'/><title type='text'>Typing can be enjoyable for the sake of it</title><content type='html'>Every once in a while, when you get into a certain state of mind, you can easily think of what you want your hands to say and just let them fly acrsoss the keyboard for an extended period of time, as I"m doing now. It's cathartic, really, kind of a close bond between you and the machine. You just think, type, and try to take the buffer out between. Don't even look at it - at the keys, at the sctreen, just close your eyes and let the text spread out beneath you like a warm safe cloud.&lt;br /&gt;&lt;br /&gt;I find I run upon that certain style of thought very early in the morning, when I still exist in a day the rest of the world has moved successfully on from. Living in the past, you might say, puts me into a place where my disjoint mind can do naught but want to spout out a never ending stream of ASCII love.&lt;br /&gt;&lt;br /&gt;There are those who would take the humorous phrase, "diarrhea of the mouth", and appropriate it for the keyboard: "diarrhea of the hands" or "fingers", which manages to at once make the whole thing less and more disgusting. I am not one of those - but I am &lt;span style="font-style:italic;"&gt;aware of them&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I saw 500 Days of Summer last night, and Terminator: Salvation (on to very different factors of form) and enjoyed them both (Terminator &lt;span style="font-style:italic;"&gt;less&lt;/span&gt;). Perhaps the Esquire Article is onto something with a supposition that Sam Worthington is a very great actor (he fared well in McG's slaughterhouse, as did Anton Yelchin. But Yelchin &lt;span style="font-weight:bold;"&gt;always&lt;/span&gt; fares well.), and I was positively enthralled by the work of Marc Webb, Zooey Deschanel, and Joseph Gordon-Levitt. Funny and watchable, well composed and endearing. I've also finally called Joseph Gordon-Levitt by his actual name, instead of (I confess!), "that kid from 3rd rock" or "angels in the outfield". I'll strive to keep it up.&lt;br /&gt;&lt;br /&gt;So I'm done now, my hands are no longer playing that mad piano game with my mind and are starting to make typos at merely par. Good morning to you, good night to me, and let's all have a chat sometime later this weekend yes?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Indeed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gosh italics are fun&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3141560869186269854?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3141560869186269854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3141560869186269854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3141560869186269854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3141560869186269854'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/08/typing-can-be-enjoyable-for-sake-of-it.html' title='Typing can be enjoyable for the sake of it'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-3128162705741188418</id><published>2009-08-06T18:53:00.003-04:00</published><updated>2009-08-06T19:03:03.898-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pm'/><category scheme='http://www.blogger.com/atom/ns#' term='feature crew'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='modplug'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Whose laughing now, Twitter?</title><content type='html'>Looks like I found an alternate means of getting my stupid messages out to the world just in time, before the great Twitter Outage of ot-nine.&lt;br /&gt;&lt;br /&gt;Working hard, will write some fiction tonight. Summer party tomorrow, went to a tech talk earlier about Testing. Got a rad book, "How We Test Software At Microsoft". The book was written by the three guys who did the presentation, Alan Page, Ken Johnston, and Bj Rollison, who all do neat Test related stuff here at Microsoft. They're pretty cool guys, and illuminated the topic magnificently.&lt;br /&gt;&lt;br /&gt;For those who don't know, Microsoft splits production up into "feature crews" which have a Developer (Software Development Engineer), a Tester (Software Development Engineer in Test), and a Spec-Writer / Designer (Program Manager), who all work together to create a feature. This sounds like perhaps a trivial detail from the outside, but it is a vital piece of our culture. Think about how important testing software is, and how undervalued it tends to be. Now think about your perception of "oh god microsoft makes bad products lawl". Now think about the fact that they employ about 11,000 SDEs (devs) in total, and about 9,000 SDETs (tests) - there is nearly a tester for every dev in the company. Testing is taken very seriously here, and regardless of any person's opinions on Microsoft or its products, this is a powerful defense against bugs and defects. Complex software will have issues - and our testers (in conjunction with devs, and pms) do a damn fine job of sorting those out and producing high quality software.&lt;br /&gt;&lt;br /&gt;Anyway, that's enough of my hivemindspeak for now. Tried ModPlug recently; where has it been all my life?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-3128162705741188418?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/3128162705741188418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=3128162705741188418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3128162705741188418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/3128162705741188418'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/08/whose-laughing-now-twitter.html' title='Whose laughing now, Twitter?'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-6476099061996850984</id><published>2009-08-04T19:27:00.004-04:00</published><updated>2009-08-04T22:32:59.131-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c90'/><category scheme='http://www.blogger.com/atom/ns#' term='spec'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='c99'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><title type='text'>That Ambiguous Comma Operator</title><content type='html'>The ternary 'conditional operator' can be tricky sometimes. If you've ever looked at &lt;a href="http://www.cise.ufl.edu/%7Emanuel/obfuscate/12bugs.of.c"&gt;The 12 Bugs of Christmas&lt;/a&gt; and been frightened off by them, congratulations on your humanity.&lt;br /&gt;&lt;br /&gt;After seeing a particularly confusing piece of code today, of the form:&lt;br /&gt;&lt;br /&gt;func(a, b ? c : d, e);&lt;br /&gt;&lt;br /&gt;I began to ponder whether func takes 2 parameters or 3, and what the heck I should assume is going on here. It also (for the first time) made the question of "does d,e evaluate to d, or to e" relevant to me. So I wrote a test program!&lt;br /&gt;&lt;br /&gt;First, let's see what happens when we use commas in the ternary operator during assignment:&lt;br /&gt;&lt;br /&gt;num = v0 ? v1 : v2, v3; /* each of these is a variable vn where n is the value */&lt;br /&gt;&lt;br /&gt;This evaluates to 2. Simple enough-- let's move on.&lt;br /&gt;&lt;br /&gt;What happens within 'func(0 ? 1 : 2, 3);'?&lt;br /&gt;&lt;br /&gt;This case ends up being straight forward. The comma is taken as part of the parameter list and not as part of the conditional operator, regardless of the prototype of the function. I'd started out thinking that whatever works might be done (if func took 2 ints, this would treat the comma as a parameter separator, and if func took 1 int, it would be a comma operator inside the condition) - but it does not. The comma is strictly for parameters in this case. Neat - but I'm still curious what would happen to it used as a comma operator here. Should be the same as before, right? Let's force it to be used in the conditional and find out.&lt;br /&gt;&lt;br /&gt;func((0 ? 1 : 2, 3), -1);&lt;br /&gt;&lt;br /&gt;This is the function I tested. The second parameter (-1) isn't necessary for anything other than illustration, and so that I didn't have to rewrite the function. 'func' Now becomes meaningful to specify: it takes two ints and prints them out in the left-right order in which they were received. This is the output:&lt;br /&gt;&lt;br /&gt;one, two: 3, -1&lt;br /&gt;&lt;br /&gt;Wait a minute. This time, the comma operator's right hand value was treated as the expression's value! That's not the same as before! What the heck? Let's check the &lt;a href="http://flash-gordon.me.uk/ansi.c.txt"&gt;spec&lt;/a&gt;*:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;3.3.17 Comma operator&lt;br /&gt;&lt;br /&gt;Syntax&lt;br /&gt;&lt;br /&gt;        expression:&lt;br /&gt;                assignment-expression&lt;br /&gt;                expression ,  assignment-expression&lt;br /&gt;&lt;br /&gt;Semantics&lt;br /&gt;&lt;br /&gt; The left operand of a comma operator is evaluated as a void&lt;br /&gt;expression; there is a sequence point after its evaluation.  Then &lt;span style="font-weight: bold; font-style: italic;"&gt;the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;right operand is evaluated; the result has its type and value.&lt;/span&gt;/43/&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt; As indicated by the syntax, in contexts where a comma is a&lt;br /&gt;punctuator (in lists of arguments to functions and lists of&lt;br /&gt;initializers) the comma operator as described in this section cannot&lt;br /&gt;appear.  On the other hand, it can be used within a parenthesized&lt;br /&gt;expression or within the second expression of a conditional operator&lt;br /&gt;in such contexts.  In the function call&lt;br /&gt;&lt;br /&gt;       f(a, (t=3, t+2), c)&lt;br /&gt;&lt;br /&gt;the function has three arguments, the second of which has the value 5.&lt;br /&gt;&lt;br /&gt;Forward references: initialization ($3.5.7).&lt;br /&gt;&lt;/blockquote&gt;My own emphasis is added in the 'Semantics' paragraph. Clearly the right-hand operand is the one which should normally provide the value. What happened in the assignment then, which caused this to be reversed?&lt;br /&gt;&lt;br /&gt;To the best of my knowledge, the answer is actually inside of the 'Example' paragraph. I quote,&lt;br /&gt;&lt;blockquote&gt;in contexts where a comma is a&lt;br /&gt;punctuator (in lists of arguments to functions and lists of&lt;br /&gt;initializers) the comma operator as described in this section cannot&lt;br /&gt;appear.&lt;br /&gt;&lt;/blockquote&gt;So the issue is that this comma is (again) not treated as part of the ternary conditional operator, but treated as an illegal comma operator floating around on the far right of an initialization. My guess is that this&lt;br /&gt;&lt;blockquote&gt;If a ``shall'' or ``shall not'' requirement that appears outside of&lt;br /&gt;  a constraint is violated, the behavior is undefined.&lt;br /&gt;&lt;br /&gt;(from the definition of 'undefined behaviour')&lt;br /&gt;&lt;/blockquote&gt;is what is allowing the situation to occur. A comma can not be placed within an initialization list and be treated as a comma operator. So if you force that to happen... whatever the heck the comma and the people who wrote the compiler have agreed on could occur.&lt;br /&gt;&lt;br /&gt;In this particular case, it looks like what they've done (this is in gcc) is just ignore the comma and everything after it until the semicolon. Thus in the line&lt;br /&gt;&lt;br /&gt;num = v0 ? v1 : v2, v3;&lt;br /&gt;&lt;br /&gt;num evaluates to 2, and the ", v3" just doesn't enter the picture. Giving us our unexpected result.&lt;br /&gt;&lt;br /&gt;Crazy cool.&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;* You may have noticed that this is not coming from an official ANSI or ISO standards site, and if you're particularly astute, you may have also noticed that this is merely a &lt;span style="font-weight: bold;"&gt;draft&lt;/span&gt; of the &lt;span style="font-weight: bold;"&gt;C90&lt;/span&gt; spec. That's because I found it first and feel like C90 is good enough. But I checked the &lt;a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n869/n869.txt.gz"&gt;C99&lt;/a&gt; spec as well (again just a draft), and the only modification is an explicit statement that a comma operator does not yield an lvalue. I only looked at drafts because ISO and ANSI are mean and don't like people to see specifications without paying money. I'm cheap, so our learning is lessened. :P&lt;br /&gt;&lt;br /&gt;** What? a double star? That's right folks, you get a bonus note! During the writing of this post, I realized that my test program was being rather silly. I made several variables 'v0', 'v1', etc to hold simple int values. It was only while writing that I recognized I could have simply used '0', '1', etc, and that this would be less confusing to read about. I originally wrote&lt;br /&gt;&lt;br /&gt;num = 0 ? 1 : 2, 3;&lt;br /&gt;&lt;br /&gt;As the first expression, which now uses the variables. I didn't think this could possibly cause any difference - and was wrong! When writing a second program later to do some different tests, I used my newfound sensibility and bypassed the creation of variables. I was given the following unfriendly error code:&lt;br /&gt;&lt;br /&gt;newterntest.c:5: error: syntax error before numeric constant&lt;br /&gt;&lt;br /&gt;It took just a moment to recognize that this was because of the comma! The comma is (as we've discussed) unexpected and not allowed here, but it looks like this case is obviously wrong enough to the compiler writers that they generate a syntax error before the integer '3'. So whileThis on its own isn't too crazy - the crazy part is that&lt;br /&gt;&lt;br /&gt;num = v0 ? v1 : v2, v3;&lt;br /&gt;&lt;br /&gt;doesn't even throw a warning under -Wall -pedantic (with or without -ansi as well), while the literal integer actually causes a syntax error. Every other parenthesized use of comma operators in this situation gives at least a "warning: left-hand operand of comma expression has no effect", but our code draws a blank!&lt;br /&gt;&lt;br /&gt;General weirdness.&lt;br /&gt;&lt;br /&gt;edit: removed the pre/pre tags from the blockquotes. They were there by default, made the quoted text appear in a plaintext-ish font and I felt they added to the post. But in the published version, they rendered underneath the righthand column. So they're gone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-6476099061996850984?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/6476099061996850984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=6476099061996850984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6476099061996850984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6476099061996850984'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/08/that-ambiguous-comma-operator.html' title='That Ambiguous Comma Operator'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8584860376956376275</id><published>2009-08-02T07:18:00.002-04:00</published><updated>2009-08-02T07:42:58.038-04:00</updated><title type='text'>I'm back.</title><content type='html'>I didn't forget about this (these) blog(s). I didn't stop posting for a lack of things to post. I didn't lose motivation or stop for any of the reasons I have before. This time I had something else to do that was more important - and I wasn't going to let myself spend time here when I knew I should be there. I procrastinated on it for a long time regardless, and I've finally moved past.&lt;br /&gt;&lt;br /&gt;So let's get these cogs a cranking.&lt;br /&gt;&lt;br /&gt;In the time I've been gone, I've flown on my first airplane, stayed in a hotel alone for the first time, climbed my first mountain, played my first game of whirlyball,  had a highway cleared so my friends and I could ride along it, bought a second laptop, started an internship at Microsoft, and spent my first whole month (well, more than) in a different country. It's been quite a journey - and it's not nearly over yet.&lt;br /&gt;&lt;br /&gt;I can't wait to be back in Canada, but I've got the rest of my work left to do, my first time skydiving to have, PAX to attend, and who knows what else? I miss my friends and family, but I'm having a good time here and I've made some new connections too. I can't say much about my work other than that I'm working on Office, and I'm coding a small feature that'll be present in a few of the major apps in Office 2010.&lt;br /&gt;&lt;br /&gt;I've been learning lisp, listening to a lot of music, learning some foundational graphic design, and working a bit on Awesome. I'll update again soon; I have things I can show - pictures and personal work and such.&lt;br /&gt;&lt;br /&gt;Catch you on the flipside.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8584860376956376275?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8584860376956376275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8584860376956376275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8584860376956376275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8584860376956376275'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/08/im-back.html' title='I&apos;m back.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-4267575592854948764</id><published>2009-03-10T05:41:00.002-04:00</published><updated>2009-03-10T06:04:29.974-04:00</updated><title type='text'>Coding right feels good.</title><content type='html'>I have been converting my 2750 project from a hellish nightmare to dreamy pie. When I first wrote things, back in assignment one, I needed a main, and server functions. Thus, main.c and serverfuncs.c were born.&lt;br /&gt;&lt;br /&gt;How much hard coded, non-modular spaghetti I managed to throw together is ridiculous. Over the course of the next two assignments, I expanded main.c and serverfuncs.c - never by much. It was incremental, but repeated. Over and over again I added a single function, three lines here, four there.&lt;br /&gt;&lt;br /&gt;I ended up with a 150 line main.c with a 70 line while loop full of garbage, and a 550 line serverfuncs.c, which had keyboard io, dynamic library loading, network functions, fifo functions - shit was not so cash.&lt;br /&gt;&lt;br /&gt;My project has been to nicify this in time to use it for the database portion of the assignment, which will be due in a day or two. I am feeling very good about it at the moment.&lt;br /&gt;&lt;br /&gt;main.c&lt;br /&gt;common.h&lt;br /&gt;common.c&lt;br /&gt;network.h&lt;br /&gt;network.c&lt;br /&gt;gui.h&lt;br /&gt;gui.c&lt;br /&gt;dynamics.h&lt;br /&gt;dynamics.c&lt;br /&gt;httparse.h&lt;br /&gt;httparse.c&lt;br /&gt;&lt;br /&gt;Are now my code files. Main is about 20 lines of intensely readable code, and everything else just works marvelously at the moment. The only errors valgrind gives are dlopen() related, and there are no leaks.&lt;br /&gt;&lt;br /&gt;What became network.c used to be a series of functions which figured out the size of a file, read the entire thing into memory as a string, then repeatedly ran a function on the string which would find replacement tags and replace them. It then wrote the string to a temporary file, which would be read back in moments later to be sent out to the client.&lt;br /&gt;&lt;br /&gt;The repeated function - this was the worst part. "replacements" was called on the string 'data', which could be very large. "replacements" would load up the first search string, and then perform a strstr() on "data" repeatedly looking inside it. When it found the string it wanted, it would perform a lot of loopy string manipulation and pointer arithmetic, allocate a new string of a slightly altered size from data's, copy everything over, then free data. Repeatedly until it couldn't find the search string in data any more. Repeatedly until it ran out of possible search strings.&lt;br /&gt;&lt;br /&gt;Now, when a tag is found by yacc, it gets passed into the new "replacements", which acts very similarly, but only on a small piece of text, and in a much less complicated fashion with less string and pointer manipulation. It was nice to see entire functions bite the dust as everything became streamlined.&lt;br /&gt;&lt;br /&gt;I still have the gui/fifos to reimplement (the code is there, just needs to be brought over), and lex/yacc to fix. Then there's the database portion of the assignment. Which is due Wednesday at midnight / Thursday at 9:00 AM. In other words, I haven't got a lot of time left.&lt;br /&gt;&lt;br /&gt;This has been a good part of an ongoing lesson in time management. Balancing the development of this code with TAing, SOCIS, Senate, and 3 other courses (now 2) has been difficult, but not impossible.&lt;br /&gt;&lt;br /&gt;I've gained a lot of respect for proper code as opposed to messy code - and learned that even the intent of "doing things right" is meaningless when you don't know what "right" is, or adhere to it when you find out.&lt;br /&gt;&lt;br /&gt;Challenges ahead? I'm not certain how to actually find the dynamic bits with whitespace - unless lex and yacc return every possible tag and I check it, I have no idea how I'm going to get them to find a dynamically loaded string as part of a precompiled token/rule.&lt;br /&gt;&lt;br /&gt;Also, there's the instability that my program had during the last assignment. I don't know what caused it - and I spent a long, long time walking through valgrind traces looking. If I can make it be more stable with a &lt;20 line delta, that's great - but it's unlikely I can do so.&lt;br /&gt;&lt;br /&gt;Also: letter writing went well enough. Glad to have that done. And good night.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-4267575592854948764?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/4267575592854948764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=4267575592854948764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4267575592854948764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4267575592854948764'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/03/coding-right-feels-good.html' title='Coding right feels good.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8325196885089866473</id><published>2009-03-01T04:18:00.004-05:00</published><updated>2009-03-01T04:24:57.392-05:00</updated><title type='text'>Calculation Complete!</title><content type='html'>On a particularly inane note, after some calculation, since the beginning of this project (16 weeks, 2 days, 10 hours, 36ish minutes ago), I have (by one naive metric) averaged a bit better than a post every two days.&lt;br /&gt;&lt;br /&gt;60 posts (now), divided into that time, comes out at about 1.9 days / post. I'd like to get that number below 1, but I'm happy with my progress and commitment. Go team Wyatt.&lt;br /&gt;&lt;br /&gt;My notes:&lt;br /&gt;&lt;br /&gt;5:54 PM, November 6th, 2008&lt;br /&gt;6 minutes&lt;br /&gt;6:00 PM, November 6th, 2008&lt;br /&gt;6 hours&lt;br /&gt;12:00 AM, November 7th,&lt;br /&gt;2 days&lt;br /&gt;12:00 AM, November 9th, 2008&lt;br /&gt;16 weeks&lt;br /&gt;12:00 AM, February 28th, 2009&lt;br /&gt;4 hours&lt;br /&gt;4:00 AM, March 1st, 2009&lt;br /&gt;30 minutes&lt;br /&gt;4:30 AM, March 1st, 2009&lt;br /&gt;&lt;br /&gt;16w2d10h36m, 59 blog posts&lt;br /&gt;&lt;br /&gt;16 * 7 + 2 + ((10 + (36 / 60)) / 60)&lt;br /&gt;&lt;br /&gt;114.44166666666666 / 60 = 1.9073611111111111, ~1.9&lt;br /&gt;&lt;br /&gt;I'd like to thank &lt;a href="http://www.python.org/"&gt;pyt&lt;/a&gt;&lt;a href="http://www.cynical-c.com/archives/bloggraphics/python.jpg"&gt;hon&lt;/a&gt; for being my desktop calculator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8325196885089866473?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8325196885089866473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8325196885089866473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8325196885089866473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8325196885089866473'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/03/calculation-complete.html' title='Calculation Complete!'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-6120468494822801999</id><published>2009-02-28T19:50:00.003-05:00</published><updated>2009-02-28T20:08:50.661-05:00</updated><title type='text'>New Things</title><content type='html'>I just finally replaced those awful speakers I've been dealing with for the past few years. There was an issue with the power connection on them, and my jerry-rigged solution finally gave out. I had the power cord pegged underneath my computer monitor, and a deck of magic cards holding pressure on the speaker. It was awful. Anyway, these are nothing crazy - just a $40 2.0 system that doesn't sound awful. Insignias from Future Shop.&lt;br /&gt;&lt;br /&gt;I also bought headphones - after so foolishly leaving my other pair in a classroom, I decided I &lt;span style="font-style: italic;"&gt;would&lt;/span&gt; shell out for another pair and just take much better care of them. Sennheiser PMX-60's. I like them so far, and bought the replacement warranty, so I can be abusive to them like I'd like to be. .. I also just checked them out online and found I've overpaid by about $20. Presently deciding if it's worth the hassle of returning them and waiting for shipping.&lt;br /&gt;&lt;br /&gt;Going to work on 2750 tonight, and probably watch some Scrubs. I've got big ideas for how to reorganize that code - and I'm excited to get in there and do this right. Also bought a sweater that I swear Sheldon could wear.&lt;br /&gt;&lt;br /&gt;A sentence I'm happy with: "Sometimes you make me feel... Like I am Worf and we are on the Starship Enterprise."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-6120468494822801999?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/6120468494822801999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=6120468494822801999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6120468494822801999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6120468494822801999'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/new-things.html' title='New Things'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-1795374714671048541</id><published>2009-02-22T17:48:00.002-05:00</published><updated>2009-02-22T17:53:33.756-05:00</updated><title type='text'>The coding (working) groove</title><content type='html'>As a personal note:&lt;br /&gt;&lt;br /&gt;I love working. I love coding, reading, playing music, doing math questions  - counting these here as types of work - they are always intensely fun. I just also love doing nothing. If one were to count it as a type of work for the sake of argument, then you could say I get stuck in the groove of doing nothing.&lt;br /&gt;&lt;br /&gt;This is just one more brick in the wall that reads: Whatever you have to do, you have less time to do it than you believe. Whoever you love knows it less than you think they do, and whatever you apply yourself to, you can enjoy.&lt;br /&gt;&lt;br /&gt;I guess it's a bit of a steal from "A journey of a thousand miles starts with a single step."&lt;br /&gt;&lt;br /&gt;-also, Microsoft Interview time is scheduled. I'll be writing about this more soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-1795374714671048541?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/1795374714671048541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=1795374714671048541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1795374714671048541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/1795374714671048541'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/coding-working-groove.html' title='The coding (working) groove'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-6143785133712939761</id><published>2009-02-14T02:01:00.002-05:00</published><updated>2009-02-14T02:17:43.550-05:00</updated><title type='text'>Mission: Success</title><content type='html'>Slightly less time spent running about than I planned on, but I covered good ground. My trip went as follows...&lt;br /&gt;&lt;br /&gt;Part I&lt;br /&gt;&lt;br /&gt;Ran around the college bend,&lt;br /&gt;Trotted up to the Hanlon,&lt;br /&gt;Slinked onto Centennial's grounds,&lt;br /&gt;Maneuvered to the top of the sled hill,&lt;br /&gt;Waited.&lt;br /&gt;Rollicked down the slope,&lt;br /&gt;Frollicked across the field,&lt;br /&gt;Sauntered onto the hidden path,&lt;br /&gt;Emerged onto Edinburgh.&lt;br /&gt;&lt;br /&gt;Part II&lt;br /&gt;&lt;br /&gt;Trekked toward downtown,&lt;br /&gt;Rocked into the great river,&lt;br /&gt;Walked across Wellington,&lt;br /&gt;Strolled up to Waterloo.&lt;br /&gt;Music'd.&lt;br /&gt;Stole past the Montessori School,&lt;br /&gt;Followed under the train tracks,&lt;br /&gt;Visited God in his house,&lt;br /&gt;Caught a falling star.&lt;br /&gt;&lt;br /&gt;Part III&lt;br /&gt;&lt;br /&gt;Ate the rice of the double sun,&lt;br /&gt;Stood in the royal bank with everyone,&lt;br /&gt;Jogged across the square,&lt;br /&gt;Wandered down baker to the bridge.&lt;br /&gt;Moonrose.&lt;br /&gt;Revisited old haunts,&lt;br /&gt;Returned home nostalgic,&lt;br /&gt;Fled long held memories,&lt;br /&gt;Worshipped long known prophecies.&lt;br /&gt;&lt;br /&gt;Part IV&lt;br /&gt;&lt;br /&gt;Heard the oncoming future,&lt;br /&gt;Zipped along the tunnel,&lt;br /&gt;Descended the hilltop stairs,&lt;br /&gt;Bounded onto the hundred,&lt;br /&gt;Train'ed.&lt;br /&gt;Found my way to Elizabeth,&lt;br /&gt;Hopped a bus back downtown,&lt;br /&gt;Purhased a Large Quebec (and got my own fork),&lt;br /&gt;Stalked beneath the tracks.&lt;br /&gt;&lt;br /&gt;Part V&lt;br /&gt;&lt;br /&gt;Ate past the silent fast food stores,&lt;br /&gt;Texted on the bridge,&lt;br /&gt;Explored through the park,&lt;br /&gt;Deposited my garbage.&lt;br /&gt;Laughed.&lt;br /&gt;Sang my song to a different tune,&lt;br /&gt;Bolted up the hill,&lt;br /&gt;Greeted an unforeseen friend,&lt;br /&gt;Wound up back home.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ah, what a way to express an adventure. I had fun. Especially the falling star, and the simultaneous train viewing. That was a good touch. We are now on the flipside: you have been caught.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-6143785133712939761?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/6143785133712939761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=6143785133712939761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6143785133712939761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6143785133712939761'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/mission-success.html' title='Mission: Success'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-2079509630260750403</id><published>2009-02-13T21:41:00.002-05:00</published><updated>2009-02-13T21:43:08.043-05:00</updated><title type='text'>Enjoy this while I can.</title><content type='html'>My feet work. I am not ill. For the first time in a half decade I simply feel good.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am going on an adventure. New music: check. Ambitious plans: check.&lt;br /&gt;&lt;br /&gt;Catch you on the flipside.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-2079509630260750403?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/2079509630260750403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=2079509630260750403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2079509630260750403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2079509630260750403'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/enjoy-this-while-i-can.html' title='Enjoy this while I can.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5408252100996608546</id><published>2009-02-10T02:09:00.002-05:00</published><updated>2009-02-10T02:11:31.132-05:00</updated><title type='text'></title><content type='html'>Another quick bit here-&lt;br /&gt;&lt;br /&gt;I need to sleep better, clean more, organize more, and think less.&lt;br /&gt;&lt;br /&gt;... That is all? I wouldn't say work more or harder, but work smarter for sure. Like that screensaver from mom's 486 back in 1992. "Don't work harder, work smarter! Do it!"&lt;br /&gt;&lt;br /&gt;Yeah. Too late at night. Goodnight, moon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5408252100996608546?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5408252100996608546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5408252100996608546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5408252100996608546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5408252100996608546'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/another-quick-bit-here-i-need-to-sleep.html' title=''/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-316640548437563062</id><published>2009-02-08T11:55:00.002-05:00</published><updated>2009-02-08T11:57:05.795-05:00</updated><title type='text'>Quick note</title><content type='html'>I have a job and I'm going somewhere neat. I got through 2750 (barely) but I'm gonna have to gear up again real soon.&lt;br /&gt;&lt;br /&gt;Lots of meetings and events and everything coming up this week. Reading week right after. CS Games moving forward and Roboticon on the horizon. Gotta SRM AGM and other stuff.. so much to do, but it's all very rewarding-feeling.&lt;br /&gt;&lt;br /&gt;Gonna go watch Tom Cruise be the man.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-316640548437563062?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/316640548437563062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=316640548437563062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/316640548437563062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/316640548437563062'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/02/quick-note.html' title='Quick note'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5502574729815258673</id><published>2009-01-25T19:03:00.002-05:00</published><updated>2009-01-25T19:24:18.985-05:00</updated><title type='text'>Man things get busy quick.</title><content type='html'>SOCIS, 2750, Digital, Operating Systems, Letters, Roboticon, 1200-TAing, laptop crashes... Just when am I going to be able to watch Andy Richter Controls the Universe?!&lt;br /&gt;&lt;br /&gt;Things have been very busy recently. I would be (joyfully) working on 2750 right now, but I have a letter to write. I'd be doing that, but I have OS and DS (Operating and Digital Systems) to do... They're kind of competing here, as this OS assignment is worth way more, but this DS assignment is due first. Actually I only remembered that OS is worth way more than DS as I wrote that ... *researching*&lt;br /&gt;&lt;br /&gt;Okay yeah. This is one of 3 OS assignments, and is worth 10% of my final mark. Conversely this is one of 10 DS assignments, and is worth 1.5% of my final mark.&lt;br /&gt;&lt;br /&gt;If I quickly try to do what DS I can, then I can switch over to OS and put in a lion's share of time there. Yeah. If I can get OS to a reasonable spot, then I can do letters, and then 2750! ... Man.&lt;br /&gt;&lt;br /&gt;Also co-op stuff. I haven't done nearly enough co-op stuff. I've been sidetracked from writing this by doing stuff. Write more another time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5502574729815258673?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5502574729815258673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5502574729815258673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5502574729815258673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5502574729815258673'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/01/man-things-get-busy-quick.html' title='Man things get busy quick.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-5683428208535034815</id><published>2009-01-04T23:42:00.002-05:00</published><updated>2009-01-05T00:21:45.147-05:00</updated><title type='text'>School's in for the Semester.</title><content type='html'>As opposed to &lt;span style="font-style: italic;"&gt;out for summer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I'm not at all ready, but that's okay with me. I have Digital Fundamentals, Operating Systems, 2750, Algorithms, and a TA meeting tomorrow. Fun stuff.&lt;br /&gt;&lt;br /&gt;(For my use later: They are at 10:30/227, 11:30/124, 12:30/117, 2:30/029, 3:30/Dyer's Office tomorrow)&lt;br /&gt;&lt;br /&gt;Okay.&lt;br /&gt;&lt;br /&gt;So I just played a bunch of piano, by which I mean I played around with a piano a bunch. I'm using a lesson book my friend Robyn has, it was pretty enjoyable - but I reached a certain point and just needed to stop or something.&lt;br /&gt;&lt;br /&gt;Over new year's a few friends and I played Risk: The Game of World Domination. It was swell. We all used computers to talk strategy back and forth, and everyone played a pretty unique and interesting role, we will have to play again. We made an awesome setup with the board on a large piece of wood balanced on a few piles of stuff (books, TVs, etc), and moved our chairs in around it, in a room that could be called The Perfect Game Room.&lt;br /&gt;&lt;br /&gt;As a reflection on the break ... I didn't really do that much. Which is not to say I did nothing - but as usual, I didn't become the paragon of productivity I had intended to. This is not a surprise, but disappointing nonetheless. I traveled, played video games, read Ender's Shadow, learned things, wrote programs, played music, watched Television, cleaned, and thought - so I guess that's enough for some guy.&lt;br /&gt;&lt;br /&gt;Also, I started a twitter. I'm pretty happy about it still - that could pass.&lt;br /&gt;&lt;br /&gt;Anyway, off to continue cutting things off my todo list before school.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-5683428208535034815?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/5683428208535034815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=5683428208535034815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5683428208535034815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/5683428208535034815'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2009/01/schools-in-for-semester.html' title='School&apos;s in for the Semester.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8110441310364774605</id><published>2008-12-28T07:32:00.001-05:00</published><updated>2008-12-28T07:34:06.983-05:00</updated><title type='text'>Wind is so awesome it's already the past tense of victory</title><content type='html'>The world got intensely windy in the past 20 minutes, and it's incredibly neat.&lt;br /&gt;&lt;br /&gt;It's raining out, but I think I've got to go outside. Ridiculous wind.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wooooo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8110441310364774605?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8110441310364774605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8110441310364774605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8110441310364774605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8110441310364774605'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/12/wind-is-so-awesome-its-already-past.html' title='Wind is so awesome it&apos;s already the past tense of victory'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-6355376678235928515</id><published>2008-12-28T05:56:00.002-05:00</published><updated>2008-12-28T06:06:04.322-05:00</updated><title type='text'>Harumph</title><content type='html'>Transitional stages suck.&lt;br /&gt;&lt;br /&gt;Once you get settled in, hunkered down, into the groove, whatever flashy cliche you'd like to use - work gets a lot easier. Time flies by but the work flies by faster and you look around to think "Wow, I can't believe I've done all this stuff!" and feel proud. Then you decide to grab a sandwich and take a break and it's approximately a hundred trillion years before you can concentrate again.&lt;br /&gt;&lt;br /&gt;I'd like to know if people who work this way (because really, it's difficult to believe that we &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; work this way) get more done, or less done, than people who don't.&lt;br /&gt;&lt;br /&gt;The type of work that gets done during those focused periods is incredible! It boggles the mind to think about how ridiculously productive a person can be - but then there's these innumerable lengthy periods of downtime hanging about and you might come out at a balance overall, or even a loss on productivity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyway, I'm in one of those places right now.&lt;br /&gt;&lt;br /&gt;I want to be doing stuff, but there are a million little things pulling in different directions. I want to play video games but they're in Windows - just the slight bit of difficulty to boot out is enough to make it not worthwhile. I want to do some animation but it takes a level of concentration I really don't feel I have at the moment. I want to go to sleep but I've been drinking a lot of pop and I don't want to just waste my time in a comatose state. I'd love to watch more Scrubs but that means downloading more and I've already watched several hours of it tonight.&lt;br /&gt;&lt;br /&gt;I want to make food but I don't have anything complete to eat: Pasta without sauce, soup without crackers, cereal with old milk.&lt;br /&gt;&lt;br /&gt;I want to clean my room and do laundry but it's the middle of the night and cold everywhere - it'd mean being up for the next several hours.&lt;br /&gt;&lt;br /&gt;Most of all I want to stop whining on about my completely non-problems, but here I am complaining away, wah wah wah, 'I can't make up my mind on simple things booo' - it's kind of pathetic.&lt;br /&gt;&lt;br /&gt;I think I'll work on the taxonomy - by which I mean &lt;span style="font-style: italic;"&gt;think&lt;/span&gt; about the taxonomy while I tidy the room and somewhere in there, fall asleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-6355376678235928515?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/6355376678235928515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=6355376678235928515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6355376678235928515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/6355376678235928515'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/12/harumph.html' title='Harumph'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-755273459960030276</id><published>2008-12-22T04:54:00.004-05:00</published><updated>2008-12-22T05:17:44.396-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Ahhh, no! Back ye vile bout of inactivity!</title><content type='html'>I'd like you all to appreciate what I'm doing here.&lt;br /&gt;&lt;br /&gt;Just take a minute and savour in it. Yes. Let's paint us up a picture of the moment. It's 4:54, I'm tired, cranky, a little crazy. I'm looking at the television and NOT at the keyboard (what a madman I am!) and I'm typing on my blog. I said I'd probably be going to bed some .. oh, 4 hours ago, and here I sit, tip tap typing away. The reason? The reason that, on December 22nd, at nearly 5 AM, outside of my normal comfort zone of roomness, I am typing - temporary pause, show more respect to Peter Sellers. - anyway I am typing out onto my blog for a simple reason. To alleviate this recent lack of content.&lt;br /&gt;&lt;br /&gt;"You can't fight in here, this is the war room!" - god he was hilarious.&lt;br /&gt;&lt;br /&gt;Anyway, I've been busy is the answer to the question now plaguing your deep-thinking mind. I've been busy and doing things, things like assignments and exams and studying and passport getting and then later on sleeping and relaxing and watching large amounts of television, and then sleeping more and then travelling and g-daying, and all sorts of fun activities. But the key phrase to take away from my endless stream of jabber is that I have indeed been "busy". Doing Things. Now I am &lt;span style="font-style: italic;"&gt;less so&lt;/span&gt;, and I am going to report.&lt;br /&gt;&lt;br /&gt;Which, having typed this all out, I need to say: when I get diarrhea of the typing, maybe it's best just to pretend you know what's going on and should I ask you your opinion about a blog post I've made, tell me "Oh, I'm not interested in Pokemon." - and then we'll laugh and I'll hate you forever. It'll be a great experience.&lt;br /&gt;&lt;br /&gt;So I'm at mom's at the moment, and I've been reading about Turing machines and the hacking subculture and riots and a host of other things. I just finished watching (and only really 3/4 paying attention to) Pulp Fiction - so I've been doing a lot tonight. I've decided that there's too much that I want to learn to just keep in my head. So I'll have to do something about it.&lt;br /&gt;&lt;br /&gt;I head back home on the 26th-28th, and will write more here then at the latest. Maybe sooner? Time will tell. I'll elabourate on other topics in their proper places.&lt;br /&gt;&lt;br /&gt;Post Script: I totally almost wrote "I'd like to take a minute; just sit right there" near the beginning of this post. &lt;span style="font-style: italic;"&gt;Awesome&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-755273459960030276?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/755273459960030276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=755273459960030276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/755273459960030276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/755273459960030276'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/12/ahhh-no-back-ye-vile-out-of-inactivity.html' title='Ahhh, no! Back ye vile bout of inactivity!'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8149302325212306583</id><published>2008-11-28T02:50:00.000-05:00</published><updated>2008-11-28T02:51:01.443-05:00</updated><title type='text'>Singing to the ones you love; and those you'd rather be rid of.</title><content type='html'>Grooveshark, so long as you aren't spitting Chris Brown at me, I love you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8149302325212306583?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8149302325212306583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8149302325212306583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8149302325212306583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8149302325212306583'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/singing-to-ones-you-love-and-those-youd.html' title='Singing to the ones you love; and those you&apos;d rather be rid of.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-4307877391807056075</id><published>2008-11-20T03:45:00.002-05:00</published><updated>2008-11-20T04:13:32.343-05:00</updated><title type='text'>Ghost in the Shell: Stand Alone Complex: Complete</title><content type='html'>Ah, c'est finis! Je .. thought .. .. okay, written French isn't a strongpoint. I don't know why I started off with that.&lt;br /&gt;&lt;br /&gt;Done watching the first season of Ghost in the Shell - I am for now taking the series to be complete. I need to digest this - there was a lot going on by the end. As the series came out 5-7 years ago, I don't feel a great need to start throwing up spoiler alerts, beyond clarifying that I won't. I may discuss spoiler material herein, and also may not. The magic of this is that I haven't written any 'material herein' yet.&lt;br /&gt;&lt;br /&gt;I'm not yet certain if the show I just watched had a lot of depth or just pretended to. That's a measure of my own lack of understanding regarding the subject matter, or of the skill of the people who made the show, given they crafted something far enough over my head that I can regard it as deep.&lt;br /&gt;&lt;br /&gt;The show gets very fast paced toward the end, in the Complex episodes, and while interesting sociological, psychological, philosophical, and practical issues of various aspects of futurism were brought into the limelight earlier in the show, they begin to rapidfire and build one on top of another, along with an overarching political scheme, increasing character depth (not an exceptional amount, but enough to be attached), and literary references that I for one am not at all well versed on. It created a cool experience.&lt;br /&gt;&lt;br /&gt;So I've come out of this thinking: First, I need to digest it and decide just what I think the show was saying, what can be derived from the concept of a copy with no original, of the concept of a ghost forming within an empty shell, of a mind's existence in the internet, of cybernetics in general - of a person's existence within a mechanical body, of the military-industrial complex's impact on all these ideas, and of course on the notion of strong AI. Once I've digested (hahahaha, oh my god look at that list I'm not qualified to think about that) all this, then I can spit out a few essays regarding my opinions, then read some of the literary works referenced (some Marshall McLuhan, some Salinger, some other things that just raced by) and reconsider while watching the majority of the series again, this time stopping to reflect as I go along.&lt;br /&gt;&lt;br /&gt;Somewhere, a number of months (years?) down the road, I'll come onto the other side of this, and I'll be able to look back and determine the answers to some pressing questions:&lt;br /&gt;&lt;br /&gt;1. Is there actually any material of depth being discussed?&lt;br /&gt;2. Is the discussion worthwhile (i.e. does it contribute to the discourse)?&lt;br /&gt;3. What is intended the overlying message of the show? (provided 1 and 2 are yes)&lt;br /&gt;4. Given solid answers to the above, what can be surmised about the topics introduced above (the futurisim topics I said I'd have to think on)&lt;br /&gt;5. ???&lt;br /&gt;6. Profit (oddly late in the game)&lt;br /&gt;&lt;br /&gt;Anyway, it's 4:15 AM and I have things to do tomorrow. Truly interesting - have to think now. ... And if it's not actually deep at all, I hope I realize it quick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-4307877391807056075?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/4307877391807056075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=4307877391807056075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4307877391807056075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/4307877391807056075'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/ghost-in-shell-stand-alone-complex.html' title='Ghost in the Shell: Stand Alone Complex: Complete'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-7100341659432930310</id><published>2008-11-13T20:30:00.004-05:00</published><updated>2008-11-13T20:38:24.740-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='communicator'/><title type='text'>So guess what guys</title><content type='html'>I am a verbal communicator.&lt;br /&gt;&lt;br /&gt;Not that I can't communicate in other ways, but I've just been struck over the head with the realization of it. I definitively am a verbal person. When I think, I think in vocalized words. When I speak to people, I tell long, winding stories. When I think through things, I speak aloud about them.&lt;br /&gt;&lt;br /&gt;.. but I can never remember song lyrics. Perhaps I'm simply particularly an auditory communicator...&lt;br /&gt;&lt;br /&gt;Edit: I promise, I'll write something once this project is done. hrm.. java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-7100341659432930310?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/7100341659432930310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=7100341659432930310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7100341659432930310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7100341659432930310'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/so-guess-what-guys.html' title='So guess what guys'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-2028952588463686859</id><published>2008-11-10T05:47:00.002-05:00</published><updated>2008-11-10T06:10:18.113-05:00</updated><title type='text'>Oh yeah</title><content type='html'>I hate you, &lt;a href="http://en.wikipedia.org/wiki/Chris_Brown_%28entertainer%29"&gt;Chris Brown&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And your stupid freaking supporters.&lt;br /&gt;&lt;br /&gt;You, and your music, are in no way related to &lt;a href="http://en.wikipedia.org/wiki/Hans_Zimmer"&gt;Hans Zimmer&lt;/a&gt;. You are in no way related to the &lt;a href="http://en.wikipedia.org/wiki/Gladiator_soundtrack"&gt;Gladiator Soundtrack&lt;/a&gt;. You are not related to &lt;a href="http://en.wikipedia.org/wiki/The_Insider_%28film%29"&gt;The Insider&lt;/a&gt;, to &lt;a href="http://en.wikipedia.org/wiki/ER"&gt;ER&lt;/a&gt;, to &lt;a href="http://en.wikipedia.org/wiki/The_Lion_King"&gt;The Lion King&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Star_Wars"&gt;Star Wars&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/John_Williams"&gt;John Williams&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Yo_Yo_Ma"&gt;Yo-Yo Ma&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/Flobots"&gt;anything&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Weakerthans"&gt;that&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Arcade_Fire"&gt;had&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Ghost_in_the_Shell_%28philosophy%29#Stand_Alone_Complex"&gt;been&lt;/a&gt; &lt;a href="http://www.cis.uoguelph.ca/department/employment/undergraduate.html"&gt;going&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Ratatat"&gt;on&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Mogwai_%28band%29"&gt;in&lt;/a&gt; &lt;a href="http://www.youtube.com/watch?v=oHg5SJYRHA0"&gt;the&lt;/a&gt; relatively stellar results of &lt;a href="http://grooveshark.com/"&gt;Grooveshark&lt;/a&gt;'s autoplay.&lt;br /&gt;&lt;br /&gt;You just came barging in there with your stupid crap, and you ruined everything. This is the second, and god do I hope the last time.&lt;br /&gt;&lt;br /&gt;So I stopped using autoplay for tonight and switched to &lt;a href="http://en.wikipedia.org/wiki/StarCraft"&gt;StarCraft&lt;/a&gt; music. Take that. That is what allowed me to find this:&lt;br /&gt;&lt;br /&gt;&lt;object width="250" height="300"&gt; &lt;param name="movie" value="http://listen.grooveshark.com/widget.swf"&gt; &lt;param name="wmode" value="window"&gt; &lt;param name="allowScriptAccess" value="always"&gt; &lt;param name="flashvars" value="hostname=cowbell.grooveshark.com&amp;amp;widgetID=95032&amp;amp;style=metal&amp;amp;bbg=21261b &amp;amp;bfg=482E24&amp;amp;bt=54442c&amp;amp;bth=60362A &amp;amp;pbg=e6d8c4&amp;amp;pbgh=482E24 &amp;amp;pfg=4a322b&amp;amp;pfgh=E8C28E &amp;amp;si=E8C28E&amp;amp;lbg=E8C28E &amp;amp;lbgh=482E24&amp;amp;lfg=60362A &amp;amp;lfgh=E8C28E&amp;amp;sb=E8C28E &amp;amp;sbh=482E24"&gt; &lt;embed src="http://listen.grooveshark.com/widget.swf" type="application/x-shockwave-flash" flashvars="hostname=cowbell.grooveshark.com&amp;amp;widgetID=95032&amp;amp;style=metal&amp;amp;bbg=21261b &amp;amp;bfg=482E24&amp;amp;bt=54442c&amp;amp;bth=60362A &amp;amp;pbg=e6d8c4&amp;amp;pbgh=482E24 &amp;amp;pfg=4a322b&amp;amp;pfgh=E8C28E &amp;amp;si=E8C28E&amp;amp;lbg=E8C28E &amp;amp;lbgh=482E24&amp;amp;lfg=60362A &amp;amp;lfgh=E8C28E&amp;amp;sb=E8C28E &amp;amp;sbh=482E24" allowscriptaccess="always" wmode="window" width="250" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And I think it's kinda nifty. I've got one on here and on &lt;a href="http://wammmr.ath.cx"&gt;wammmr&lt;/a&gt; now, so woo.&lt;br /&gt;&lt;br /&gt;I love wikipedia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-2028952588463686859?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/2028952588463686859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=2028952588463686859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2028952588463686859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/2028952588463686859'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/oh-yeah.html' title='Oh yeah'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-8184481891595199828</id><published>2008-11-10T04:31:00.003-05:00</published><updated>2008-11-10T05:47:44.711-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ghost in the shell'/><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='small'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='basic'/><category scheme='http://www.blogger.com/atom/ns#' term='fei song'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Java ing, Mini TED, Microsoft Small Basic</title><content type='html'>I don't think I should spend long on this, as I'm in the midst of writing some javas.&lt;br /&gt;&lt;br /&gt;Well, I'm more or less doing setup at the moment. I've taken the example code we were given for this assignment over my own, because Professor Song writes fairly nice java despite his absolutely horrific specification documents. I've essentially spent the past few hours redoing earlier work: moving the Staff, Student, and Faculty classes into a hierarchy with Employee and Person. Since then I've gone a bit beyond and started throwing in little Javadoc hooks and comments all over the place, because I want getting marks to come easily - not be some panicked struggle atop a mountain. Like last time.&lt;br /&gt;&lt;br /&gt;Big upside is that, at this point (well, once it compiles again, which will be very shortly - just fixing an error with the classpath) it's ahead of where it was when I handed in Assignment 2. Dates work perfectly because a class was &lt;span style="font-style: italic;"&gt;provided&lt;/span&gt; for them this time, and everything is nicely hunkey-dorey.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've been playing around with the idea of a Miniature TED conference. I think it's an idea that has wheels. That's a good thing for some reason. I hope to be developing it over the next few weeks... I'll probably contact the TED conference people and see if they have any suggestions, concerns, any response at all. I really think something amazing can happen if you gather smart people together with the express purpose of trying to be smart together. I'll report in with updates, I hope.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I downloaded &lt;a href="http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx"&gt;Microsoft Small Basic&lt;/a&gt; yesterday, and gave it a dilly of a whirl. It seems enjoyable but it has a lot of room to improve. It tasted like python.&lt;br /&gt;&lt;br /&gt;The interface is good looking and fairly slick, but the autocomplete seems to actively try to mess you up. If you begin writing a command and finish typing instead of hitting tab when the autocomplete box pops up, the box doesn't go away. At this point your command is complete, but the autocomplete box is still sitting there, waiting for some arcane ritual to grant it release. Tapping up or down just scrolls you through the list of autocompletable commands that wouldn't even make sense any more, because they are now just appended at the cursor. Hitting escape does nothing. You've got to click somewhere else or type more or engage in some bizarre dance to escape the clutches of this nefarious box. That was probably the largest of my issues, but I had others. &lt;span style="font-style: italic;"&gt;Oh yes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Programs take approximately a couple of millenia to execute. The application throws up a screensize Vista-themed lockdown-box that informs you: "HEY! YOUR PROGRAM IS RUNNING! CLICK END PROGRAM IF IT DOESN'T WORK RIGHT OR SOMETHING K" - in marginally more literate terms, and then you play the waiting game for the rest of your natural life. I must note that this is for a program which opens a console and prints "Greetings Earth".&lt;br /&gt;&lt;br /&gt;Once the program is running, it responds quite fluidly. I think this wait must be caused by throwing code through the gruesome sieve that is .NET 3.5 and uttering the most unholy command, "&lt;span style="font-style: italic;"&gt;Compile.&lt;/span&gt;" Regardless of .NET being a fortress or an island or something crazy like that, I am certain that there is optimization able and waiting to happen here. I don't understand how the dev team and the testers managed to wait 35-40 seconds every time they ran a program, and not recognize that as an issue on the order of "showstopper".&lt;br /&gt;&lt;br /&gt;Anyway.. That's about all for tonight. Ghost in the Shell kicks ass. It's going to make me finally read Catcher in the Rye.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-8184481891595199828?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/8184481891595199828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=8184481891595199828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8184481891595199828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/8184481891595199828'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/java-ing-mini-ted-microsoft-small-basic.html' title='Java ing, Mini TED, Microsoft Small Basic'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-7940070445728154799</id><published>2008-11-07T23:27:00.001-05:00</published><updated>2008-11-08T00:05:30.524-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='turing'/><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><category scheme='http://www.blogger.com/atom/ns#' term='beginning'/><title type='text'>4 Blogs and a Server</title><content type='html'>&lt;span style="font-size:78%;"&gt;I tried to make a "4 Weddings and a Funeral" reference there, but it's pretty weak. Probably because I've never actually seen the movie. Yeah.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;So this is the Kickass Home Base of my new life strategy (pretty exciting, hey?) - and I'm feeling good about it so far. It's essentially (as the title should indicate to you) about 4 blogs and a server. I'll give you the lowdown:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blog One: Todo List.&lt;/span&gt; I'll set up the blog-by-email thing so that I can just tag stuff up and check my todo list on the fly without having to log into something. Also a good way to leave quick notes for myself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blog Two: Ideas.&lt;/span&gt; When I have a neat idea in the middle of the night or when I'm sitting at my desk or wandering somewhere, I often jot it down. Rather than storing it on a slice of a dead tree or in a multigigabyte folder full of .2kb text files, I can just plop it with a tag into a blog. How's that for Content Management?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blog Three: Awesome.&lt;/span&gt; I always want to do things - like code stuff, write stuff, compose stuff, read stuff, but I rarely actually settle and &lt;span style="font-weight: bold;"&gt;do&lt;/span&gt; them. This is a measured effort to make that more possible, and it works in a few ways.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;By investing time into the ability to do things, I'll feel worse about it if I don't actually do anything.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;By documenting the process of actually getting started, and creating a vast support infrastructure (these four blogs) to allow me to get started much faster and be more organized about it.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;By allowing an incremental growth of projects by keeping them on an incremental style online medium (blogs) and making heavy use of SVN (revisions) so that I can invest a few hours into a project and have it mean something, rather than require large blocks of time before I even start things.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I find a lot of the other reasoning difficult to verbalise. Some of it is (at this point) just momentum. A big plus of the blog format is that I get to show people if they're interested; and they could (hopefully) take useful things away from my experience.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Blog Four: Kickass Home Base.&lt;/span&gt; This is the 'standard' blog, which is more or less just a place for my more personal updates to go. That doesn't mean that this will be all about the things I did today (though it could be) - it means that this will be about whatever really needs to be said or analysed. I'm going to try to keep it tech based, but occasionally I might just post a short story or explain a Seinfeldian situation or something. We'll see.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Server: Woz.&lt;/span&gt; SVN and compilers and space and Apache and PHP and Python and Ruby and every tool a young hacker could want (or at least, the tools to get them; which is in a turingish way, all of them) will allow me to actually try to / do things that I want to do. All this infrastructure and planning isn't worth a pile of beans without the actual machines.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So that's my 4 blogs and a server plan. This is all in an effort to just generally be more productive. To write more, code more, think more, and do more. Up next is Step 4 of &lt;span style="font-weight: bold;"&gt;Awesome&lt;/span&gt;; where I decide what my first project is. Something small to start, I think.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-7940070445728154799?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/7940070445728154799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=7940070445728154799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7940070445728154799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7940070445728154799'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/4-blogs-and-server.html' title='4 Blogs and a Server'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8409852605057424355.post-7150854437016349674</id><published>2008-11-06T22:06:00.002-05:00</published><updated>2008-11-08T01:22:56.541-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpes'/><category scheme='http://www.blogger.com/atom/ns#' term='toe'/><category scheme='http://www.blogger.com/atom/ns#' term='fancy'/><category scheme='http://www.blogger.com/atom/ns#' term='pamela'/><category scheme='http://www.blogger.com/atom/ns#' term='surgery'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='senate'/><category scheme='http://www.blogger.com/atom/ns#' term='talk'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Fancy.</title><content type='html'>&lt;span style="font-size:85%;"&gt;I'm breaking a personal rule and telling a story now of what I've done over the past few days. Just because I can. In the past 72 hours (or at least, the 72 hours before I began writing this post) I've done more than a small country does in its entire life.&lt;br /&gt;&lt;br /&gt;Alright that's an exaggeration, I've just done a lot for me. Let's see if I can't recount it quickly.&lt;br /&gt;&lt;br /&gt;Tuesday: Awoke at 6:30 AM, showered, shaved, mad dashed, and missed the #10 bus downtown. Hopped the #55 with Melissa and had a touch of conversation on the way toward the University in a ridiculously packed bus (seriously, it was the most I've ever seen). Upon arrival at campus I disembarked down the Gordon hill and toward the River Run center. Absolutely gorgeous morning. Showed up just in time for the 'Moving Business Forward' conference to start.&lt;br /&gt;&lt;br /&gt;5 speakers attended the conference: Mac Voisin, founder of M&amp;amp;M Meat Shops; Georgina Steinsky-Schwartz, a non-profit sector expert and President/CEO of Imagine Canada; Gerry Fedchun, President and a director of the Automotie Parts Manufacturers' Association; Pamela Wallin, O.C., Chancellor of the University of Guelph and former Consul General in New York; and Frank O'Dea, once a homeless alcoholic, now cofounder of Second Cup and founder of multiple philanthropic organizations.&lt;br /&gt;&lt;br /&gt;My apologies to Georgina and Gerry, but their talks were not illuminating to the same degree as the others - in fact I believe that they may have been prepared for entirely different audiences and not modified at all for this event. I will not dwell on them - suffice to say that they covered (in depth) the statistics surrounding the nonprofit industry and the automotive industry.&lt;br /&gt;&lt;br /&gt;Mac gave an awesome talk. It took the audience from the founding of M&amp;amp;M as a single store in Kitchener on a 28 year journey all the way up to 470+ stores and an ongoing expansion into the US market at present. Mac shared the core philosophies and strategies that made M&amp;amp;M a success; ideas like promoting service above pretty much all else, persisting absolutely, and optimism. He delivered with gusto and knew what he was on about. Absolutely fantastic.&lt;br /&gt;&lt;br /&gt;Pamela's talk was stirring and thoughtful. It kept everyone engaged and interested and was absolutely inspiring. Can I remember what she was saying? Not really! But that doesn't matter for some reason. I can remember a story she told about a woman in New York, about the way that you can't plan things, and her advice, "Do Your Homework", which became a theme of the day. She noted that she meant it in more than the most obvious way.&lt;br /&gt;&lt;br /&gt;Frank's talk was unbelievably long. I am a kindred soul with the man in that we both talk an incredible amount when given the opportunity.  His stories were long and winding but well told; and inspiring to boot. He took us from the streets of Toronto to political campaign offices, to the first Second Cup, to Law Offices, to a Jesuit Retreat, to the beaches of Florida, to Africa - all over the world and always learning things and bringing lessons back. He told a remarkable story and drove home the message that one person can absolutely change the world.&lt;br /&gt;&lt;br /&gt;The day was wonderful, and I enjoyed the talk immensely. Afterward, I went to catch the buses but just missed them, and so walked back to the University. I got to LoCIS and had just enough time to help an exec with an email sent to the Chair of the Department and clean up the horrific mess the roo was in, before I had to jog off with Robyn. He went to the CPES meeting that I missed, because I boarded a bus at 5:30 PM to go to Guelph Humber for Senate, that's in Toronto. We had a great Senate meeting (by which I mean relatively short) and got home for 10:00 PM. Then it was catch a bus home, hear that Obama won, and conk out due to exhaustion.&lt;br /&gt;&lt;br /&gt;Next morning was pack and organize and clean because ... surgery! I finally had my toe fixed (I hope it's really fixed, *knock on wood*)  and had to go under a general anesthetic for it because I'm allergic to topical ones. So prepared, went, waited a very long time there for it to actually happen but at last it did, and I've been recovering ever since.&lt;br /&gt;&lt;br /&gt;It is with that recovery time that I have done such things as open blogs and help re-organize my life.&lt;br /&gt;&lt;br /&gt;... A blessing in disguise? - I just hope I never have to have my toe fixed again!&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8409852605057424355-7150854437016349674?l=wcarss.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wcarss.blogspot.com/feeds/7150854437016349674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8409852605057424355&amp;postID=7150854437016349674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7150854437016349674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8409852605057424355/posts/default/7150854437016349674'/><link rel='alternate' type='text/html' href='http://wcarss.blogspot.com/2008/11/fancy.html' title='Fancy.'/><author><name>wcarss</name><uri>http://www.blogger.com/profile/02150656701252682232</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='17' height='32' src='http://2.bp.blogspot.com/_30mGAz-a_bY/SROYeeYHhqI/AAAAAAAAAAM/kNbn0hpRc78/S220/wcarss.avatar.jpg'/></author><thr:total>0</thr:total></entry></feed>
