<?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-21734860</id><updated>2012-02-18T22:55:44.558-08:00</updated><title type='text'>Byron's Blog</title><subtitle type='html'>Byron Knoll's Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default?start-index=101&amp;max-results=100'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>238</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21734860.post-2369700403274105481</id><published>2011-11-21T22:40:00.001-08:00</published><updated>2011-11-21T22:57:30.028-08:00</updated><title type='text'>InnoCentive</title><content type='html'>I found a cool website called &lt;a href="http://www.innocentive.com/"&gt;InnoCentive&lt;/a&gt;. They currently host 116 active competitions - some of them with million dollar prizes. Most of the contests seem to be about solving open-ended problems in science/engineering. I have made a submission to the "Strategy to Assimilate Unstructured Information" contest (which ends in four days). There is a similar website that hosts competitions for machine learning problems called &lt;a href="http://www.kaggle.com/"&gt;Kaggle&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2369700403274105481?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2369700403274105481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2369700403274105481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2369700403274105481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2369700403274105481'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/11/innocentive.html' title='InnoCentive'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7479087634372572866</id><published>2011-11-21T00:31:00.001-08:00</published><updated>2011-11-21T00:57:25.670-08:00</updated><title type='text'>Facebook Removes RSS Importing</title><content type='html'>When I logged into Facebook today I was greeted with this message:&lt;br&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cPbpfGAZNV4/TsoMSfXQ4fI/AAAAAAAAD_g/3rwYi2YvPto/s1600/facebook.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="77" width="400" src="http://2.bp.blogspot.com/-cPbpfGAZNV4/TsoMSfXQ4fI/AAAAAAAAD_g/3rwYi2YvPto/s400/facebook.png" /&gt;&lt;/a&gt;&lt;/div&gt;That's right, Facebook is removing the ability to import RSS feeds. I am not very active on Facebook, so people commenting on my automatically imported blog posts is one of the few ways I still use the service. Now that this functionality is removed, my usage of Facebook will drop significantly. I have the suspicion they are removing it for a bad reason. I have noticed that the amount of time it takes for RSS feed items to be imported to Facebook can sometimes take several days. Why would it be so slow? Google Reader updates my feeds in a matter of minutes. I think the only reason Facebook would be so slow at importing feeds is if it is an expensive process and they don't want to spend the resources to update more often. The feature is obviously good for users, so the only reason Facebook would have to remove it is to reduce costs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7479087634372572866?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7479087634372572866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7479087634372572866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7479087634372572866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7479087634372572866'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/11/facebook-removes-rss-importing.html' title='Facebook Removes RSS Importing'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-cPbpfGAZNV4/TsoMSfXQ4fI/AAAAAAAAD_g/3rwYi2YvPto/s72-c/facebook.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8127823430965743525</id><published>2011-11-20T18:09:00.001-08:00</published><updated>2011-11-20T20:40:29.483-08:00</updated><title type='text'>e-sports</title><content type='html'>I spent the day watching the &lt;a href="http://pro.majorleaguegaming.com/live/starcraft_2"&gt;MLG Starcraft 2&lt;/a&gt; championship. This is by far the most entertaining sport I have watched. I bet it would be fun to watch even for people who have never heard of Starcraft. It is definitely attracting a growing audience in the US and should start showing up on TV networks soon. I started cheering for the South Korean player &lt;a href="http://wiki.teamliquid.net/starcraft2/Leenock"&gt;Leenock&lt;/a&gt; while he was in the losers bracket, several rounds before the finals. I was thrilled when he continued winning round after round, making his way out of the losers bracket to eventually win the competition and a $50,000 prize. Incredibly he is only 16 years old! Before this contest almost nobody had heard of Leenock, so it was exciting to watch him defeat world-famous sc2 players one after another.&lt;br&gt;&lt;br&gt;Leenock's rise to fame reminds me of another young e-sport competitor: &lt;a href="http://www.codeforces.com/profile/tourist"&gt;tourist&lt;/a&gt;. tourist is only 17 years old but has proven himself to be one of the world's best competitive programmers. I find it shocking that tourist/Leenock can become the best at their respective fields at such a young age. It shows how genetics and innate intelligence/talent plays a crucial role in these sports, since their age obviously limits the number of years they have spent practising. I think since competitive programming is a pretty good measurement of human intelligence, tourist may also be one of the smartest people in the world. It will be interesting to keep track of what he eventually accomplishes in his career.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8127823430965743525?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8127823430965743525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8127823430965743525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8127823430965743525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8127823430965743525'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/11/e-sports.html' title='e-sports'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6667302806231755445</id><published>2011-11-07T20:33:00.000-08:00</published><updated>2011-11-07T20:43:28.945-08:00</updated><title type='text'>rpscontest.com is down!</title><content type='html'>A while ago I created the site &lt;a href="http://www.rpscontest.com/"&gt;rpscontest.com&lt;/a&gt; - a rock-paper-scissors programming competition hosted by Google App Engine. The site is currently down due to exceeding its quota. This is because today App Engine introduced a &lt;a href="http://googleappengine.blogspot.com/2011/09/few-adjustments-to-app-engines-upcoming.html"&gt;new pricing model&lt;/a&gt;. With the old pricing model my quota usage was $0 per day. With the new model it is about $13 per day, or about &lt;b&gt;$4,750 per year&lt;/b&gt;. Seriously? That is a ridiculous increase in price. Of course this basically forces me to shut down the site or redesign how it works. For now I have disabled all automatic ranked matches which should bring it back into the free quota (at the same time making the site completely useless because the rankings will no longer update). I can only assume that the price increase has a larger impact on me than typical users (possibly due to the type of resources I use to run matches). The only reason I make this assumption is because if everyone is hit by the price increase as badly as me, &lt;i&gt;nobody would continue using App Engine&lt;/i&gt;. I am not happy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6667302806231755445?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6667302806231755445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6667302806231755445' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6667302806231755445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6667302806231755445'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/11/rpscontestcom-is-down.html' title='rpscontest.com is down!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1779878541478131938</id><published>2011-10-31T22:50:00.000-07:00</published><updated>2011-11-03T21:58:25.357-07:00</updated><title type='text'>Google Reader</title><content type='html'>Today &lt;a href="http://www.google.com/reader"&gt;Google Reader&lt;/a&gt; was updated with a new UI and Google+ integration. Although the &lt;a href="http://www.reddit.com/r/google/comments/lvmp1/new_google_reader_design_with_google_integration/"&gt;reaction on Reddit&lt;/a&gt; seems to be quite negative, I like the new UI. One complaint people have is that there is much more whitespace and less space for content than the older version. While this is true, it doesn't bother me because of the way I use Google Reader. I focus on one feed item at a time, using a hotkey to cycle through items. Feed items usually are a short snippet of text so don't need much space anyway.&lt;br&gt;&lt;br&gt;In case anyone doesn't know what RSS feeds are or what Google Reader does, I will give a short explanation here. Many websites update a .RSS file whenever they post new content. A feed reader simply listens to a set of RSS feeds and tells you when new content is posted. Instead of manually visiting a long list of your favorite websites to find content, you can find it all organized in one place with a feed reader. RSS feeds can have other uses as well: my blog posts automatically get imported into Facebook via RSS.&lt;br&gt;&lt;br&gt;I get the majority of my news/entertainment through RSS feeds, so I encourage everyone to try it out. My favorite feeds come from &lt;a href="http://www.reddit.com/top/.rss"&gt;Reddit&lt;/a&gt; (and various subreddits). Webcomics are perfect for RSS feeds - some of my favorites include: &lt;a href="http://www.xkcd.com/rss.xml"&gt;xkcd&lt;/a&gt;, &lt;a href="http://pbfcomics.com/feed/feed.xml"&gt;The Perry Bible Fellowship&lt;/a&gt;, &lt;a href="http://nedroid.com/feed/"&gt;Nedroid&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/Hyperbole-and-a-half"&gt;Hyperbole and a Half&lt;/a&gt;, &lt;a href="http://theoatmeal.com/feed/rss"&gt;The Oatmeal&lt;/a&gt;, &lt;a href="http://www.penny-arcade.com/rss.xml"&gt;Penny Arcade&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/buttersafe"&gt;Buttersafe&lt;/a&gt;, and &lt;a href="http://abstrusegoose.com/feed"&gt;Abstruse Goose&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ebyydQNmrvA/Tq-Au0cH95I/AAAAAAAAD_M/70Me3Ed8lv0/s1600/reader.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="181" width="400" src="http://4.bp.blogspot.com/-ebyydQNmrvA/Tq-Au0cH95I/AAAAAAAAD_M/70Me3Ed8lv0/s400/reader.png" /&gt;&lt;/a&gt;&lt;/div&gt;Google Reader has some interesting statistics in the "Trends" view. The graph above shows the time of day that I usually read items. Since October 7, 2005 I have read a total of 102,284 items. I can also view the number of people in Google Reader subscribed to various feeds - my blog currently has 14. &lt;a href="http://byronknoll.blogspot.com/feeds/posts/default"&gt;Here is my blog's feed&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1779878541478131938?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1779878541478131938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1779878541478131938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1779878541478131938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1779878541478131938'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/10/google-reader.html' title='Google Reader'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ebyydQNmrvA/Tq-Au0cH95I/AAAAAAAAD_M/70Me3Ed8lv0/s72-c/reader.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8086317230838259955</id><published>2011-10-30T20:50:00.001-07:00</published><updated>2011-10-30T20:52:18.040-07:00</updated><title type='text'>DARPA Shredder Challenge</title><content type='html'>This weekend I started working on the &lt;a href="http://www.shredderchallenge.com/"&gt;DARPA Shredder Challenge&lt;/a&gt;. This is a contest to reconstruct shredded documents. There are a total of five puzzles and a $50,000 prize. So far I have solved one puzzle using a combination of algorithms and manual assembly. The first puzzle was pretty tough, so I am worried that I won't be able to solve any of the remaining four.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8086317230838259955?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8086317230838259955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8086317230838259955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8086317230838259955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8086317230838259955'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/10/darpa-shredder-challenge.html' title='DARPA Shredder Challenge'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2572881816605806415</id><published>2011-10-29T16:33:00.000-07:00</published><updated>2011-10-29T16:33:27.825-07:00</updated><title type='text'>Dark Souls Defeated</title><content type='html'>I managed to beat dark souls in a total of 57 hours of play time. I made heavy use of the multiplayer components of the game - summoning other players to help me defeat powerful enemies. I suspect that without taking advantage of the online functionality this game would be significantly more difficult. Overall I enjoyed Dark Souls more than Demon's Souls. Throughout the game I was stunned by the creativity and beauty of the level design. The design team must be incredibly talented since the world they created is far more immersive than any other game I have played.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2572881816605806415?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2572881816605806415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2572881816605806415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2572881816605806415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2572881816605806415'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/10/dark-souls-defeated.html' title='Dark Souls Defeated'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-186833188770074174</id><published>2011-10-07T00:08:00.000-07:00</published><updated>2011-10-07T00:09:46.203-07:00</updated><title type='text'>Dark Souls</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zoIF38lkC2Y/To6fUUEQehI/AAAAAAAAD-s/mzRO_Hdr9Ms/s1600/dark-souls-cover-eu.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="400" width="348" src="http://2.bp.blogspot.com/-zoIF38lkC2Y/To6fUUEQehI/AAAAAAAAD-s/mzRO_Hdr9Ms/s400/dark-souls-cover-eu.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://byronknoll.blogspot.com/2010/07/demons-souls.html"&gt;Demon's Souls&lt;/a&gt; was one of the greatest games I have played. The game was so difficult that I considered giving up several times - but I eventually beat it. On Tuesday a sequel to Demon's Souls was released called Dark Souls. I am only about 5 hours into the game but so far it is incredible - maybe even better than the original. I have been warned by online reviews that Dark Souls is even harder than Demon's Souls, so I am hoping that I won't get stuck and miss out on experiencing the full game. It is interesting that such a frustrating/agonizing game is enjoyable at the same time - the joy of beating a monster makes up for the pain of spending hours trying and failing to beat the monster in previous attempts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-186833188770074174?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/186833188770074174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=186833188770074174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/186833188770074174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/186833188770074174'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/10/dark-souls.html' title='Dark Souls'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-zoIF38lkC2Y/To6fUUEQehI/AAAAAAAAD-s/mzRO_Hdr9Ms/s72-c/dark-souls-cover-eu.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3181631089594029358</id><published>2011-09-06T00:15:00.000-07:00</published><updated>2011-09-06T00:17:28.008-07:00</updated><title type='text'>Fast String Matching</title><content type='html'>String matching is an important problem in several fields of computer science such as bioinformatics, data compression, and search engines. I find it amazing that search engines can find exact string matches in massive datasets in essentially constant time. Having the ability to do this would be very useful for when I create data compression algorithms!&lt;br&gt;&lt;br&gt;Last night I downloaded the entire English Wikipedia, which turned out to be a 31.6GiB XML file. I spent the day trying to solve the following problem: how to quickly find strings in this massive file. The hardest constraint in solving this problem is the fact that my computer only has about 3GiB of memory. Somehow I needed to preprocess the 32GiB file into 3GiB of memory and then *only* use the 3GiB of memory to find the location of arbitrary strings in constant time. Solving this problem exactly is impossible, so the goal of the project is to maximize the likelihood that the match I find is correct.&lt;br&gt;&lt;br&gt;I tried doing some research online and was surprised that I couldn't find many helpful resources. This is surprising since this seems like such an important problem. I will describe the algorithm I ended up implementing:&lt;br&gt;&lt;br&gt;I stored all of the data in two arrays. The first array stored positions in the XML file, type = long, dimension = 20000000x4. The second array stored counts, type = int, dimension = 20000000. The first step was to go through the 32GiB XML file and extract every substring of length 25. These substrings are keys that I used to store in the arrays. I computed a hash for each key to use as an array index. The second array was used to keep track of the number of keys put in each array position, so it is simply incremented for each key. The first array is used to store the position of up to four substrings. I stored the position of a particular key with a probability that depends on the number of colliding keys (the count stored in the second array). More collisions = less likely to store the position.&lt;br&gt;&lt;br&gt;OK, so the algorithm so far preprocessed the 32GiB file into about 700MiB of memory. Now comes the fun part of using the data to do string matching. Given a string to search for, I first extract every substring of length 25. I hash each substring and collect the locations that are stored at those positions in the first array. Only a small fraction of these matches are likely to actually correspond to the string we are searching for. The essential piece of information that helps find the true match is the fact that the offset of the substrings in our search query should match the corresponding offset of matches returned from the data. It is possible to find the best match in O(n) time (where n is the length of the search query).&lt;br&gt;&lt;br&gt;To sum it up: I preprocess the data in O(m) time (where m is the length of the data). I can then do string matching in O(n) time (where n is the length of the search query).&lt;br&gt;&lt;br&gt;So how well did this work on the dataset? It took something like 1 hour to preprocess the XML file (basically the amount of time required to read the entire file from disk). The search queries run remarkably fast - no noticeable delay even for queries that are hundreds of thousands of characters long. The longer the search query, the more likely the algorithm is to return the correct match location. For queries of length 50, it seems to match correctly about half of the time. For queries over length 100, it is almost always correct. Success!&lt;br&gt;&lt;br&gt;Interesting fact: my algorithm is somewhat similar to &lt;a href="http://laplacian.wordpress.com/2009/01/10/how-shazam-works/"&gt;how Shazam works&lt;/a&gt;. Shazam is a program that can look up the name of a song given a short recorded sample of it. The longer the recording, the more likely the correct match is returned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3181631089594029358?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3181631089594029358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3181631089594029358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3181631089594029358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3181631089594029358'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/09/fast-string-matching.html' title='Fast String Matching'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2420884722012941387</id><published>2011-09-03T20:01:00.000-07:00</published><updated>2011-09-03T20:01:10.173-07:00</updated><title type='text'>Gold Promotion</title><content type='html'>I recently got promoted to gold league:&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-uTeWPIDoCBI/TmLpTyfm09I/AAAAAAAAD-U/v33RtnVoGvY/s1600/sc3.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="193" width="400" src="http://2.bp.blogspot.com/-uTeWPIDoCBI/TmLpTyfm09I/AAAAAAAAD-U/v33RtnVoGvY/s400/sc3.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;Here is the army graph for a match I am proud of:&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Zy6XMIBBARw/TmLpXVmk8UI/AAAAAAAAD-c/keZOLKvJm2c/s1600/sc4.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="196" width="400" src="http://2.bp.blogspot.com/-Zy6XMIBBARw/TmLpXVmk8UI/AAAAAAAAD-c/keZOLKvJm2c/s400/sc4.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;The enemy completely destroyed my army and my main base. I think they started taking it easy after my main base went down - I made a huge comeback and eventually won the game :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2420884722012941387?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2420884722012941387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2420884722012941387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2420884722012941387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2420884722012941387'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/09/gold-promotion.html' title='Gold Promotion'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-uTeWPIDoCBI/TmLpTyfm09I/AAAAAAAAD-U/v33RtnVoGvY/s72-c/sc3.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8747430364969186019</id><published>2011-07-09T01:22:00.003-07:00</published><updated>2011-07-09T02:11:43.967-07:00</updated><title type='text'>RoboCup</title><content type='html'>I have been in &lt;a href="http://en.wikipedia.org/wiki/Istanbul"&gt;Istanbul&lt;/a&gt;, Turkey for the last week at the &lt;a href="http://www.robocup.org/"&gt;RoboCup&lt;/a&gt; robotics competition. We are competing in the &lt;a href="http://small-size.informatik.uni-bremen.de/"&gt;small size league&lt;/a&gt;. Today we finished our last official match. Although the final rankings have not been released yet, we think our team placed 9th (out of 20). We ranked well in the technical challenges: 3rd place in the navigation challenge and 3rd place in the mixed team challenge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8747430364969186019?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8747430364969186019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8747430364969186019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8747430364969186019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8747430364969186019'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/07/robocup.html' title='RoboCup'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3252997911060322214</id><published>2011-07-09T01:14:00.002-07:00</published><updated>2011-07-09T01:20:13.421-07:00</updated><title type='text'>Master's Thesis</title><content type='html'>I finished my master's thesis! The final copy is posted &lt;a href="http://people.cs.ubc.ca/~knoll/thesis.pdf"&gt;here&lt;/a&gt;. Now that my thesis is done I can start work at Google. My start date is July 18.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3252997911060322214?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3252997911060322214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3252997911060322214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3252997911060322214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3252997911060322214'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/07/masters-thesis.html' title='Master&apos;s Thesis'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6430591124198240521</id><published>2011-07-08T22:37:00.001-07:00</published><updated>2011-07-09T01:00:19.101-07:00</updated><title type='text'>Crater Detection</title><content type='html'>&lt;a href="http://byronknoll.blogspot.com/2011/06/crater-detection.html"&gt;The contest&lt;/a&gt; has finished and my final ranking was 6th place. One rank away from a prize! The approach I used was using template matching and the &lt;a href="http://en.wikipedia.org/wiki/Cross-correlation"&gt;normalized cross-correlation&lt;/a&gt; distance metric.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6430591124198240521?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6430591124198240521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6430591124198240521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6430591124198240521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6430591124198240521'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/07/crater-detection.html' title='Crater Detection'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8129947302810151219</id><published>2011-06-28T02:28:00.004-07:00</published><updated>2011-06-28T02:48:22.044-07:00</updated><title type='text'>Crater Detection</title><content type='html'>NASA is hosting a &lt;a href="http://www.topcoder.com/tc"&gt;TopCoder&lt;/a&gt; marathon match to detect craters in satellite images. The contest lasts about two weeks and there are $10,000 in prizes (for the top five competitors). The task is to return a list of crater positions and sizes for a set of satellite images. There is a little over a day remaining in the contest and I am currently &lt;a href="http://www.topcoder.com/longcontest/?module=ViewStandings&amp;rd=14570"&gt;ranked third&lt;/a&gt;. If I end up doing well in the final rankings I will make a blog post about the technique I used. Here are a few example images in the training set:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-4XbOcfDdTKQ/TgmiF3FNciI/AAAAAAAADvU/kVFl3BaHtkg/s1600/AS15-M-0080.lev1_sub4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/-4XbOcfDdTKQ/TgmiF3FNciI/AAAAAAAADvU/kVFl3BaHtkg/s400/AS15-M-0080.lev1_sub4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5623203831317623330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-XkbQHTGbrkw/Tgmh83dtZ2I/AAAAAAAADvM/wD8O6btv5uI/s1600/M21859.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/-XkbQHTGbrkw/Tgmh83dtZ2I/AAAAAAAADvM/wD8O6btv5uI/s400/M21859.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5623203676801558370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-_v_O5SKGVYQ/TgmiRZu3XbI/AAAAAAAADvc/eobU0BFUOuA/s1600/AS15-M-2491.lev1_sub4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://4.bp.blogspot.com/-_v_O5SKGVYQ/TgmiRZu3XbI/AAAAAAAADvc/eobU0BFUOuA/s400/AS15-M-2491.lev1_sub4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5623204029597703602" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8129947302810151219?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8129947302810151219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8129947302810151219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8129947302810151219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8129947302810151219'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/06/crater-detection.html' title='Crater Detection'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-4XbOcfDdTKQ/TgmiF3FNciI/AAAAAAAADvU/kVFl3BaHtkg/s72-c/AS15-M-0080.lev1_sub4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3237768699742708334</id><published>2011-06-21T01:18:00.006-07:00</published><updated>2011-06-21T01:35:38.179-07:00</updated><title type='text'>Bitcoin</title><content type='html'>I recently started &lt;a href="http://en.wikipedia.org/wiki/Bitcoin"&gt;bitcoin mining&lt;/a&gt; using my &lt;a href="http://www.nvidia.com/object/product_geforce_gtx_260_us.html"&gt;GeForce GTX 260&lt;/a&gt;. Some of my friends have invested thousands of dollars into bitcoin mining hardware and have already earned back more than they invested. Bitcoin mining seems to be the latest fad among CS students. Unfortunately my mining rate is pitifully slow, so I gave up after a few days. I earned 0.5 bitcoins in &lt;a href="http://mining.bitcoin.cz/"&gt;slush's pool&lt;/a&gt;. I held an auction for my 0.5 BTC on &lt;a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat"&gt;IRC&lt;/a&gt; and got payed $5 CAD for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3237768699742708334?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3237768699742708334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3237768699742708334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3237768699742708334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3237768699742708334'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/06/bitcoin.html' title='Bitcoin'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4587633726673666677</id><published>2011-05-28T03:19:00.004-07:00</published><updated>2011-05-28T03:22:14.534-07:00</updated><title type='text'>Promotion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ya3gCXZweXA/TeDMLalNN2I/AAAAAAAADvA/bRak9GSfs84/s1600/promotion2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 201px;" src="http://1.bp.blogspot.com/-ya3gCXZweXA/TeDMLalNN2I/AAAAAAAADvA/bRak9GSfs84/s400/promotion2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5611709632189642594" /&gt;&lt;/a&gt;&lt;br /&gt;I &lt;a href="http://byronknoll.blogspot.com/2011/05/promote-me.html"&gt;finally&lt;/a&gt; got promoted! I went directly from rank one in the bronze league to rank one in silver.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4587633726673666677?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4587633726673666677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4587633726673666677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4587633726673666677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4587633726673666677'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/05/promotion.html' title='Promotion'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ya3gCXZweXA/TeDMLalNN2I/AAAAAAAADvA/bRak9GSfs84/s72-c/promotion2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4632865012154953867</id><published>2011-05-21T12:21:00.004-07:00</published><updated>2011-05-21T19:57:23.210-07:00</updated><title type='text'>Website Exploit</title><content type='html'>Within a few hours of launching my &lt;a href="http://www.rpscontest.com/"&gt;Rock Paper Scissors website&lt;/a&gt; somebody found an exploit. The exploit caused all users to be forwarded to another site. I have now fixed and prevented this particular exploit. An exciting website debut!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4632865012154953867?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4632865012154953867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4632865012154953867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4632865012154953867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4632865012154953867'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/05/website-exploit.html' title='Website Exploit'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6453786455215175228</id><published>2011-05-21T02:33:00.006-07:00</published><updated>2011-05-21T19:57:09.239-07:00</updated><title type='text'>Rock Paper Scissors</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-bxb4n_rOVsE/TdeIztPIEnI/AAAAAAAADus/088Khz_SrLc/s1600/rps.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 250px; height: 172px;" src="http://4.bp.blogspot.com/-bxb4n_rOVsE/TdeIztPIEnI/AAAAAAAADus/088Khz_SrLc/s400/rps.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5609102282810987122" /&gt;&lt;/a&gt;&lt;br /&gt;Over the last two days I implemented a new website: &lt;a href="http://www.rpscontest.com/"&gt;Rock Paper Scissors Programming Contest&lt;/a&gt;. It is amazing how fast a relatively complex website can be created using &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;. It has probably been one of the funnest programming projects I have worked on!&lt;br /&gt;&lt;br /&gt;I think the website could potentially lead to some innovative research. All of the submissions are open-source, so if the website becomes popular I will be very interested to see how the best AIs work. It should be possible to directly convert any RPS algorithm into a compression algorithm - there should even be a correlation between RPS performance and compression performance.&lt;br /&gt;&lt;br /&gt;I encourage anyone who is reading this to try &lt;a href="http://www.rpscontest.com/submit"&gt;submitting an entry&lt;/a&gt;. Programming a RPS AI should be pretty fun. Python is also very easy to learn, so even people who have no programming experience should give it a try!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6453786455215175228?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6453786455215175228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6453786455215175228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6453786455215175228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6453786455215175228'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/05/rock-paper-scissors.html' title='Rock Paper Scissors'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-bxb4n_rOVsE/TdeIztPIEnI/AAAAAAAADus/088Khz_SrLc/s72-c/rps.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8869187438516878157</id><published>2011-05-16T01:29:00.004-07:00</published><updated>2011-05-16T01:47:35.340-07:00</updated><title type='text'>Promote Me!</title><content type='html'>In Starcraft 2 I am currently rank 2 of bronze league. However, from what I understand the rank within a league is not very meaningful - the important number is called &lt;a href="http://wiki.teamliquid.net/starcraft2/Battle.net_Leagues#Hidden_.22Matchmaking_Rating.22_.28MMR.29"&gt;MMR&lt;/a&gt;. MMR determines league promotions and demotions. Blizzard keeps the MMR statistic hidden from players. I actually think this is a poor design decision since the benefits of releasing MMR seem to far outweigh the benefits of hiding it.&lt;br /&gt;&lt;br /&gt;I have been practicing and optimizing a single strategy which seems to be doing pretty well. I won 17 of my last 18 matches - against bronze, silver, and gold players. The fact that I am winning against gold players should indicate that I need to be promoted from the bronze league. However, Blizzard's algorithm seems to think otherwise and wants me to stay in bronze :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8869187438516878157?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8869187438516878157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8869187438516878157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8869187438516878157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8869187438516878157'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/05/promote-me.html' title='Promote Me!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3852764349300707995</id><published>2011-05-10T02:55:00.002-07:00</published><updated>2011-05-10T03:45:58.139-07:00</updated><title type='text'>Starcraft II</title><content type='html'>Last week I bought Starcraft II. The game has already been out for a year, so I am late to the party. I also never played the original Starcraft (which has been out for 13 years), so you can imagine that I am terrible at the game.&lt;br /&gt;&lt;br /&gt;I have spent a lot of time over the last week studying and practicing. I found the beginner guide at &lt;a href="http://www.reddit.com/r/starcraft"&gt;/r/starcraft&lt;/a&gt; to be quite helpful. I have also been watching &lt;a href="http://www.youtube.com/user/HuskyStarcraft?blend=1&amp;ob=5"&gt;Husky&lt;/a&gt; and &lt;a href="http://day9tv.blip.tv/"&gt;day[9]&lt;/a&gt; videos. &lt;a href="http://www.youtube.com/watch?v=Q1VXb_DoHfc&amp;feature=player_profilepage"&gt;This&lt;/a&gt; is my favorite match so far. I find watching Starcraft matches quite entertaining, so I anticipate that I will continue watching matches even if I stop playing the game.&lt;br /&gt;&lt;br /&gt;I play as Terran (username: &lt;a href="http://us.battle.net/sc2/en/profile/2799307/1/omninox/"&gt;omninox&lt;/a&gt;). I have started focusing on a single build order that seems to be doing quite well. I have been slowly rising in the bronze league - hopefully I will be promoted to silver soon. Most of my friends are way better than me, so I have been doing 1v1s with strangers. One &lt;a href="http://us.battle.net/sc2/en/profile/1118949/1/Dliu/"&gt;player&lt;/a&gt; I know (a friend of a friend) is ranked at the top of the master league!&lt;br /&gt;&lt;br /&gt;I made it to the last level of the campaign on hard difficulty. After a number of retries on the last level, I gave up and beat it on normal. I have also started playing two custom Starcraft games: starjeweled and desert strike. I have been using starjeweled as a way to relax between 1v1 rounds - I find 1v1 to be quite mentally exhausting. Desert strike is a great way to practice unit counter strategies. If you play Starcraft, send me a friend request and maybe we can play sometime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3852764349300707995?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3852764349300707995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3852764349300707995' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3852764349300707995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3852764349300707995'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/05/starcraft-ii.html' title='Starcraft II'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3760375186056490393</id><published>2011-04-28T02:43:00.015-07:00</published><updated>2011-04-28T03:07:00.102-07:00</updated><title type='text'>Image Compression Results</title><content type='html'>Here are some more results comparing JPEG at the maximum compression level to &lt;a href="http://byronknoll.blogspot.com/2011/04/lossy-image-compression.html"&gt;my image compression algorithm&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Xy4BmnjJzuQ/Tbk3IbA8nYI/AAAAAAAADsA/TkNCjq5RFgI/s1600/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-Xy4BmnjJzuQ/Tbk3IbA8nYI/AAAAAAAADsA/TkNCjq5RFgI/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5600568229442133378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (15.7KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/--jyi_LwGhPU/Tbk3UcATAPI/AAAAAAAADsI/BqAoVRcYX6M/s1600/jpg2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/--jyi_LwGhPU/Tbk3UcATAPI/AAAAAAAADsI/BqAoVRcYX6M/s400/jpg2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5600568435866271986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (3.2KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0G553nhDUu8/Tbk3fWS1TnI/AAAAAAAADsQ/wmulmM0pFyg/s1600/output2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-0G553nhDUu8/Tbk3fWS1TnI/AAAAAAAADsQ/wmulmM0pFyg/s400/output2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600568623311965810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tUXMLIGQ-AQ/Tbk32_S0BzI/AAAAAAAADsY/u4avu2LucKs/s1600/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-tUXMLIGQ-AQ/Tbk32_S0BzI/AAAAAAAADsY/u4avu2LucKs/s400/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600569029454726962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (6.3KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-3Pc7t8_H8Ac/Tbk4BqdHtPI/AAAAAAAADsg/P66g0hnmNgg/s1600/jpg3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-3Pc7t8_H8Ac/Tbk4BqdHtPI/AAAAAAAADsg/P66g0hnmNgg/s400/jpg3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600569212839376114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (2.0KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Mo74-Fs04Sg/Tbk4O8uNoII/AAAAAAAADso/WBuqV8DA4qA/s1600/output3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-Mo74-Fs04Sg/Tbk4O8uNoII/AAAAAAAADso/WBuqV8DA4qA/s400/output3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600569441081204866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-6eQMX79SqFo/Tbk4nHsPXGI/AAAAAAAADsw/dxpiQ3MORuk/s1600/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-6eQMX79SqFo/Tbk4nHsPXGI/AAAAAAAADsw/dxpiQ3MORuk/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5600569856342580322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (6.2KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-vweE2BPg4yw/Tbk4xRqJsmI/AAAAAAAADs4/PKamkRSoNKI/s1600/jpg5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-vweE2BPg4yw/Tbk4xRqJsmI/AAAAAAAADs4/PKamkRSoNKI/s400/jpg5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5600570030816866914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (3.9KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-cIF_OPJ1wMM/Tbk4_FsyxyI/AAAAAAAADtA/oJ1UToRnKjU/s1600/output5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-cIF_OPJ1wMM/Tbk4_FsyxyI/AAAAAAAADtA/oJ1UToRnKjU/s400/output5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600570268124890914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-axJPcU68O3M/Tbk5HiFX6RI/AAAAAAAADtI/mHXbww4cSG8/s1600/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 400px;" src="http://1.bp.blogspot.com/-axJPcU68O3M/Tbk5HiFX6RI/AAAAAAAADtI/mHXbww4cSG8/s400/6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600570413183133970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (11.2KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-XJivzSeZCyQ/Tbk5VCUFWpI/AAAAAAAADtQ/DG2WLKs9Hzo/s1600/jpg6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 400px;" src="http://1.bp.blogspot.com/-XJivzSeZCyQ/Tbk5VCUFWpI/AAAAAAAADtQ/DG2WLKs9Hzo/s400/jpg6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600570645173066386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (2.8KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-5LyxtRkp_FU/Tbk5geNSVcI/AAAAAAAADtY/bz35qIzNOJ0/s1600/output6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 400px;" src="http://3.bp.blogspot.com/-5LyxtRkp_FU/Tbk5geNSVcI/AAAAAAAADtY/bz35qIzNOJ0/s400/output6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600570841639310786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Z37ClbCQGlM/Tbk5qnPGMYI/AAAAAAAADtg/uZ7XAPfyCgo/s1600/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://4.bp.blogspot.com/-Z37ClbCQGlM/Tbk5qnPGMYI/AAAAAAAADtg/uZ7XAPfyCgo/s400/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571015861514626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (7.1KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-4rOI5D6sbOU/Tbk5zquBnYI/AAAAAAAADto/uan4pds87fM/s1600/jpg7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://3.bp.blogspot.com/-4rOI5D6sbOU/Tbk5zquBnYI/AAAAAAAADto/uan4pds87fM/s400/jpg7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571171415367042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (3.0KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-S49Dl8X4h_Q/Tbk58YAPQ2I/AAAAAAAADtw/fbzCd92vp5U/s1600/output7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://4.bp.blogspot.com/-S49Dl8X4h_Q/Tbk58YAPQ2I/AAAAAAAADtw/fbzCd92vp5U/s400/output7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571321010307938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-NismmCbfxmM/Tbk6CzLbybI/AAAAAAAADt4/UQwpC2UPprc/s1600/8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/-NismmCbfxmM/Tbk6CzLbybI/AAAAAAAADt4/UQwpC2UPprc/s400/8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571431384238514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (5.9KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-bULPofjlWfA/Tbk6LFGE0EI/AAAAAAAADuA/LK-YA3aplv4/s1600/jpg8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/-bULPofjlWfA/Tbk6LFGE0EI/AAAAAAAADuA/LK-YA3aplv4/s400/jpg8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571573632553026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (1.5KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-fMdPI6pS4HU/Tbk6Z7N23II/AAAAAAAADuI/AEMlEx0lQkg/s1600/output8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/-fMdPI6pS4HU/Tbk6Z7N23II/AAAAAAAADuI/AEMlEx0lQkg/s400/output8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571828678876290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-SoBqATcdRxA/Tbk6hrBN3oI/AAAAAAAADuQ/o0c4GhRa_gk/s1600/9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-SoBqATcdRxA/Tbk6hrBN3oI/AAAAAAAADuQ/o0c4GhRa_gk/s400/9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600571961769844354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JPEG (16.4KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/--MD4b1OM1Pk/Tbk6rXktQTI/AAAAAAAADuY/HKLi4AuHfZU/s1600/jpg9.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/--MD4b1OM1Pk/Tbk6rXktQTI/AAAAAAAADuY/HKLi4AuHfZU/s400/jpg9.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5600572128348684594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My algorithm (4.0KiB):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-UZMDziHOj34/Tbk62ZExSOI/AAAAAAAADug/M5VGfuVWIPo/s1600/output9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-UZMDziHOj34/Tbk62ZExSOI/AAAAAAAADug/M5VGfuVWIPo/s400/output9.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600572317730162914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All of the above images are around 1MiB when uncompressed. In every case my algorithm resulted in a smaller file size and a (arguably) better looking image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3760375186056490393?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3760375186056490393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3760375186056490393' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3760375186056490393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3760375186056490393'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/04/image-compression-results.html' title='Image Compression Results'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Xy4BmnjJzuQ/Tbk3IbA8nYI/AAAAAAAADsA/TkNCjq5RFgI/s72-c/2.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5668374008269495057</id><published>2011-04-27T14:48:00.006-07:00</published><updated>2011-04-27T17:46:08.051-07:00</updated><title type='text'>Lossy Image Compression</title><content type='html'>Last night I wrote a lossy image compression algorithm. It is based on an idea from &lt;a href="http://www.stanford.edu/~acoates/papers/coatesleeng_aistats_2011.pdf"&gt;this paper&lt;/a&gt;. First I trained a set of 256 6x6 color filters on the CIFAR-10 image dataset. To train the filters, I used the k-means algorithm on 400,000 randomly selected image patches. Here are the resulting filters:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-mvExJT77cPc/Tbi1REYPw6I/AAAAAAAADrU/D0JQsM-lne8/s1600/saved2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://2.bp.blogspot.com/-mvExJT77cPc/Tbi1REYPw6I/AAAAAAAADrU/D0JQsM-lne8/s400/saved2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600425441473053602" /&gt;&lt;/a&gt;I then used the filters to compress the following image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-2bQVl_UIIZY/Tbi1drmToJI/AAAAAAAADrc/-nQuPMXscZ0/s1600/zoo.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/-2bQVl_UIIZY/Tbi1drmToJI/AAAAAAAADrc/-nQuPMXscZ0/s400/zoo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600425658159440018" /&gt;&lt;/a&gt;Using the maximum compression level, JPEG compresses the image to 7.1KiB:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-5DH9Y1QixaQ/Tbi12vQrtgI/AAAAAAAADrk/QeVNQwW4y_k/s1600/zoo2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/-5DH9Y1QixaQ/Tbi12vQrtgI/AAAAAAAADrk/QeVNQwW4y_k/s400/zoo2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600426088639215106" /&gt;&lt;/a&gt;My compression algorithm compresses the image to 5.6KiB:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-JcWo3lzIirQ/Tbi2G8hUH_I/AAAAAAAADrs/UMPORJYZ56c/s1600/output2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/-JcWo3lzIirQ/Tbi2G8hUH_I/AAAAAAAADrs/UMPORJYZ56c/s400/output2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5600426367076540402" /&gt;&lt;/a&gt;Try clicking on the above images to see the high resolution versions. My compressed version of the image is smaller and looks better than JPEG.&lt;br /&gt;&lt;br /&gt;I did the compression by doing a raster scan of the image and for each image patch I select the best filter. I then losslessly compress the filter selections using &lt;a href="http://en.wikipedia.org/wiki/PAQ"&gt;paq8l&lt;/a&gt;. The obvious improvement to this algorithm would be to use a combination of several filters for each image patch instead of selecting the best filter. Using several filters would take more space to encode but would result in a much better image approximation. Another idea I plan to try is to use this same algorithm for lossy video compression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5668374008269495057?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5668374008269495057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5668374008269495057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5668374008269495057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5668374008269495057'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/04/lossy-image-compression.html' title='Lossy Image Compression'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-mvExJT77cPc/Tbi1REYPw6I/AAAAAAAADrU/D0JQsM-lne8/s72-c/saved2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4671464950163122921</id><published>2011-04-26T00:27:00.006-07:00</published><updated>2011-04-26T01:27:25.127-07:00</updated><title type='text'>The Sleeping Mind</title><content type='html'>I occasionally wake up from a dream and immediately realize how flawed my logic was. Although I rarely remember any of my dreams, I have definitely woken up and thought to myself "haha, my sleeping mind must be really stupid to have come up with that conclusion." However, I have encountered a few counterexamples which indicate that my sleeping mind can be productive.&lt;br /&gt;&lt;br /&gt;When I am falling asleep I usually spend my time thinking about some challenging problem. My theory is that if I fall asleep while thinking about a problem, my sleeping mind might churn away during the night and make progress on the problem. Although this usually isn't the case, there have been a few instances when I wake up and I have &lt;span style="font-style:italic;"&gt;the answer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A few years ago I was stuck on a programming problem on a cpsc313 assignment. It was late at night, I wasn't making any progress, so I went to sleep. I woke up in the middle of the night and immediately knew how to solve the question. I was so excited that I spent a few minutes implementing the solution, verified that it worked, and then went back to sleep.&lt;br /&gt;&lt;br /&gt;Last night I went to sleep trying to think of an idea for a project to implement on Google App Engine. This morning I was surprised to find that I had a complete project idea in mind (including the algorithms needed to implement it!). I don't particularly like the idea and I don't think I will implement it, but I was shocked to find that I could come up with an original idea with non-trivial algorithmic details while I was asleep.&lt;br /&gt;&lt;br /&gt;The idea was to develop a website for people looking for recommended places to travel. The website would first ask a series of 5-10 binary questions. The questions would provide a brief description of two travel destinations. The user would then click on the destination they would prefer travelling to. After they complete the questions a ranked list of travel recommendations would be given to the user (the list would contain many more destinations than were asked in the questions). Using some basic machine learning, the travel recommendations would become more accurate as more people use the website. The answers to the questions serve two purposes: 1) to assign the user to a cluster of like-minded individuals in order to generate a ranked destination list and 2) to rank travel destinations for all users in that cluster. Although I don't particularly like this project idea, I do like the algorithm it uses. I can imagine that this same algorithm could be used for other project ideas (although I haven't thought of any good ones yet).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4671464950163122921?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4671464950163122921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4671464950163122921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4671464950163122921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4671464950163122921'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/04/sleeping-mind.html' title='The Sleeping Mind'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1768941807073061129</id><published>2011-04-10T15:34:00.002-07:00</published><updated>2011-04-10T15:35:34.824-07:00</updated><title type='text'>Rex</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Um3gVpcLGgs/TaIwkEsJJSI/AAAAAAAADqc/shEAtfDV5yc/s1600/P2xET.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 252px;" src="http://2.bp.blogspot.com/-Um3gVpcLGgs/TaIwkEsJJSI/AAAAAAAADqc/shEAtfDV5yc/s400/P2xET.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5594087083439891746" /&gt;&lt;/a&gt;&lt;br /&gt;[&lt;a href="http://www.threadless.com/submission/148008/superhero/showmore,designs"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1768941807073061129?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1768941807073061129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1768941807073061129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1768941807073061129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1768941807073061129'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/04/rex.html' title='Rex'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Um3gVpcLGgs/TaIwkEsJJSI/AAAAAAAADqc/shEAtfDV5yc/s72-c/P2xET.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2422825808390127032</id><published>2011-03-27T18:49:00.003-07:00</published><updated>2011-03-27T19:11:45.642-07:00</updated><title type='text'>RoboCup Iran Open</title><content type='html'>Next week I was planning to travel to Iran with the &lt;a href="http://www.ubcrobocup.com/"&gt;UBC RoboCup team&lt;/a&gt; to compete in the &lt;a href="http://2011.iranopen.ir/"&gt;Iran Open&lt;/a&gt;. After the competition I was planning on doing some travelling in Thailand. Unfortunately, the trip got cancelled. Since UBC is one of the team sponsors, they have a policy which requires that we get permission to travel to DFAIT level 3 regions. The official response was that the faculty would not give approval for the trip (due to the current threat level and the fact that the trip is not academically essential). Since we had already purchased plane tickets, the cancellation cost the team quite a bit of money. In July our team will be travelling to Turkey to compete in &lt;a href="http://www.robocup2011.org/en/"&gt;RoboCup 2011&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2422825808390127032?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2422825808390127032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2422825808390127032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2422825808390127032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2422825808390127032'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/robocup-iran-open.html' title='RoboCup Iran Open'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5760866898392220394</id><published>2011-03-21T21:26:00.002-07:00</published><updated>2011-03-21T21:29:20.602-07:00</updated><title type='text'>html5cards.org</title><content type='html'>Today I purchased a domain name for the HTML5 card game website Simon and I have been working on: &lt;a href="http://www.html5cards.org"&gt;html5cards.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5760866898392220394?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5760866898392220394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5760866898392220394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5760866898392220394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5760866898392220394'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/html5cardsorg.html' title='html5cards.org'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5750460660652709736</id><published>2011-03-15T02:49:00.002-07:00</published><updated>2011-03-15T02:53:46.847-07:00</updated><title type='text'>HTML5 Card Games</title><content type='html'>Simon and I have been making steady progress on our multiplayer card game website. The project is currently hosted at &lt;a href="http://html5cards.appspot.com"&gt;http://html5cards.appspot.com&lt;/a&gt;. We have implemented one game so far (&lt;a href="http://en.wikipedia.org/wiki/Oh,_hell"&gt;German Bridge&lt;/a&gt;) which should be mostly functional. Let us know if you see any bugs or have feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5750460660652709736?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5750460660652709736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5750460660652709736' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5750460660652709736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5750460660652709736'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/html5-card-games.html' title='HTML5 Card Games'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-307033736892014861</id><published>2011-03-08T12:42:00.005-08:00</published><updated>2011-03-08T12:55:25.892-08:00</updated><title type='text'>Face Cards</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-NiCSulDx4f4/TXaU8UVanHI/AAAAAAAADpw/weFLWoNBr38/s1600/king_of_spades2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 400px;" src="http://4.bp.blogspot.com/-NiCSulDx4f4/TXaU8UVanHI/AAAAAAAADpw/weFLWoNBr38/s400/king_of_spades2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5581812552143903858" /&gt;&lt;/a&gt;I have released a &lt;a href="http://code.google.com/p/vector-playing-cards/"&gt;new version&lt;/a&gt; of my &lt;a href="http://byronknoll.blogspot.com/2011/03/vector-playing-cards.html"&gt;vector playing cards&lt;/a&gt;. It turns out the designs for the face cards are in the public domain. I compared several brands of cards and they use the exact same designs. I scanned the cards and vectorized them using &lt;a href="http://potrace.sourceforge.net/"&gt;potrace&lt;/a&gt;. After vectorizing them I did a lot of touch-up work using &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-40byR7HcJBA/TXaVGg2JQuI/AAAAAAAADp4/C5r7x_WNiYs/s1600/royalty.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/-40byR7HcJBA/TXaVGg2JQuI/AAAAAAAADp4/C5r7x_WNiYs/s400/royalty.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5581812727301096162" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-307033736892014861?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/307033736892014861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=307033736892014861' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/307033736892014861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/307033736892014861'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/face-cards.html' title='Face Cards'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-NiCSulDx4f4/TXaU8UVanHI/AAAAAAAADpw/weFLWoNBr38/s72-c/king_of_spades2.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8425745408782827843</id><published>2011-03-06T02:08:00.005-08:00</published><updated>2011-03-06T02:41:37.251-08:00</updated><title type='text'>Today I learned...</title><content type='html'>...that I am currently travelling at the speed of light. In fact, all objects in the universe are travelling at exactly the same speed. Although I am travelling slowly in the three spatial dimensions, I am travelling quickly in the time dimension. The combined speed of any object through the four spacetime dimensions is exactly the same. Light travels completely in the three spatial dimensions and doesn't travel at all through time. Photons never age. This also explains why we can't travel faster than the speed of light.&lt;br /&gt;&lt;br /&gt;I am quite surprised I didn't learn this fact earlier in life. I somehow managed to make it through physics and astronomy classes learning about Einstein's relativity without ever making this simple connection!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8425745408782827843?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8425745408782827843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8425745408782827843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8425745408782827843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8425745408782827843'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/today-i-learned.html' title='Today I learned...'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8114287258966023230</id><published>2011-03-04T01:46:00.005-08:00</published><updated>2011-03-04T02:04:19.779-08:00</updated><title type='text'>Vector Playing Cards</title><content type='html'>I have started working with &lt;a href="http://www.cs.ubc.ca/~simonsyd/"&gt;Simon&lt;/a&gt; on a project to create a multiplayer card game website hosted by &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;. For the website we need high quality images of each poker card. Ideally the images would be in a vector format so that we can scale them to any resolution. We found that there are not many options that don't have restrictive licenses (&lt;a href="http://svg-cards.sourceforge.net/"&gt;here&lt;/a&gt; is one exception).&lt;br /&gt;&lt;br /&gt;Instead I decided to create a deck of vector graphics cards from scratch using &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt;. I created most of the artwork myself except for the ace of spades:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Dozqrh0Fkkk/TXC2qqQy39I/AAAAAAAADnU/nESieUfOU9Y/s1600/ace_of_spades.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 275px; height: 400px;" src="http://3.bp.blogspot.com/-Dozqrh0Fkkk/TXC2qqQy39I/AAAAAAAADnU/nESieUfOU9Y/s400/ace_of_spades.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5580160782327537618" /&gt;&lt;/a&gt;I based this design on artwork by &lt;a href="http://www.daydreamerstudio.com/still_life_1.htm"&gt;Suzanne Tyson&lt;/a&gt;. Since the source image was rasterized, I used the &lt;a href="http://potrace.sourceforge.net/"&gt;potrace&lt;/a&gt; algorithm to vectorize it.&lt;br /&gt;&lt;br /&gt;I am releasing the images into the public domain. This means that they can be used for any purpose without any attribution (although attribution would be appreciated). I have created a &lt;a href="http://code.google.com/p/vector-playing-cards/"&gt;Google Code project&lt;/a&gt; to host the SVG source code and also posted pictures of the cards to my &lt;a href="https://picasaweb.google.com/byronknoll/PlayingCards#"&gt;Picasa account&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-5YPCElwOtc8/TXC35YzKSKI/AAAAAAAADnc/zswufnN6LKk/s1600/cards.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://2.bp.blogspot.com/-5YPCElwOtc8/TXC35YzKSKI/AAAAAAAADnc/zswufnN6LKk/s400/cards.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5580162134849505442" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8114287258966023230?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8114287258966023230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8114287258966023230' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8114287258966023230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8114287258966023230'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/03/vector-playing-cards.html' title='Vector Playing Cards'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Dozqrh0Fkkk/TXC2qqQy39I/AAAAAAAADnU/nESieUfOU9Y/s72-c/ace_of_spades.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3638571083922978900</id><published>2011-02-28T21:15:00.005-08:00</published><updated>2011-02-28T21:24:43.906-08:00</updated><title type='text'>Climate Change</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-xdPwhj7i1jQ/TWyByFkaqcI/AAAAAAAADi4/-v8_uEV2-ak/s1600/crQND.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://1.bp.blogspot.com/-xdPwhj7i1jQ/TWyByFkaqcI/AAAAAAAADi4/-v8_uEV2-ak/s400/crQND.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5578976735893563842" /&gt;&lt;/a&gt;[&lt;a href="http://www.reddit.com/r/pics/comments/fucmz/what_if_its_a_hoax/"&gt;found here&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3638571083922978900?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3638571083922978900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3638571083922978900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3638571083922978900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3638571083922978900'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/02/climate-change.html' title='Climate Change'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-xdPwhj7i1jQ/TWyByFkaqcI/AAAAAAAADi4/-v8_uEV2-ak/s72-c/crQND.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6898830485124822913</id><published>2011-02-25T14:21:00.026-08:00</published><updated>2011-02-26T01:02:14.666-08:00</updated><title type='text'>The Greatest Unsolved Problems</title><content type='html'>In 2000, the &lt;a href="http://en.wikipedia.org/wiki/Clay_Mathematics_Institute"&gt;Clay Mathematics Institute&lt;/a&gt; published a list of seven unsolved problems in mathematics called the &lt;a href="http://en.wikipedia.org/wiki/Millenium_Prize_Problems"&gt;Millennium Prize Problems&lt;/a&gt;. There is a prize of US$1,000,000 for solving each problem. &lt;a href="http://en.wikipedia.org/wiki/Poincar%C3%A9_conjecture"&gt;One of these problems&lt;/a&gt; has already &lt;a href="http://en.wikipedia.org/wiki/Solution_of_the_Poincar%C3%A9_conjecture"&gt;been solved&lt;/a&gt;. In 1900, &lt;a href="http://en.wikipedia.org/wiki/David_Hilbert"&gt;David Hilbert&lt;/a&gt; published a list of &lt;a href="http://en.wikipedia.org/wiki/Hilbert%27s_problems"&gt;23 unsolved problems&lt;/a&gt; in mathematics. Looking at the status of these problems on Wikipedia, only five of them remain unresolved.&lt;br /&gt;&lt;br /&gt;Although there are &lt;a href="http://en.wikipedia.org/wiki/List_of_unsolved_problems"&gt;many unsolved problems&lt;/a&gt; in science and mathematics, we have been making steady progress in solving open problems. &lt;a href="http://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem"&gt;Fermat's Last Theorem&lt;/a&gt; was conjectured in 1637 and was solved in 1995. &lt;a href="http://en.wikipedia.org/wiki/Four_color_map_theorem"&gt;The four color theorem&lt;/a&gt; was stated in 1852 and proven in 1976. Throughout human history we seem to be systematically progressing and accumulating scientific knowledge.&lt;br /&gt;&lt;br /&gt;I have compiled a list of what I consider to be the five most important unsolved problems. Ranking the importance of problems is of course subjective. Biologists would probably be biased towards biology problems and physicists towards physics problems. I have tried to avoid being too biased towards computer science problems. Here is the list, ranked from most important to least:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1) Theory of Everything:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-yIVzZ7ByRug/TWiIK2K4y4I/AAAAAAAADiQ/Mi_1dZjpiAg/s1600/Calabi-Yau-alternate.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://2.bp.blogspot.com/-yIVzZ7ByRug/TWiIK2K4y4I/AAAAAAAADiQ/Mi_1dZjpiAg/s200/Calabi-Yau-alternate.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5577857858419608450" /&gt;&lt;/a&gt;The &lt;a href="http://en.wikipedia.org/wiki/Theory_of_everything"&gt;Theory of Everything&lt;/a&gt; (TOE) is the most important unsolved problem in physics. As the name suggests, this theory would fully explain all known physical phenomena in the universe. The complexity of the universe does not necessarily mean that TOE needs to be complex. As observed in &lt;a href="http://en.wikipedia.org/wiki/Chaos_theory"&gt;chaos theory&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Cellular_automaton"&gt;cellular automaton&lt;/a&gt;, a set of extremely simple rules can lead to incredible complexity. &lt;a href="http://en.wikipedia.org/wiki/Albert_Einstein"&gt;Albert Einstein&lt;/a&gt; spent the last few decades of his life searching for TOE (which he referred to as &lt;a href="http://en.wikipedia.org/wiki/Unified_field_theory"&gt;unified field theory&lt;/a&gt;). He failed.&lt;br /&gt;&lt;br /&gt;Einstein's &lt;a href="http://en.wikipedia.org/wiki/General_relativity"&gt;general theory of relativity&lt;/a&gt; explains the universe at large scales. So far, all experimental evidence confirms general relativity. Quantum mechanics explains the universe at the scale of subatomic particles. Once again, all experimental evidence confirms quantum mechanics. Unfortunately, these two theories can not &lt;span style="font-style:italic;"&gt;both&lt;/span&gt; be right. In extreme conditions like black holes and the &lt;a href="http://en.wikipedia.org/wiki/Big_bang"&gt;Big Bang&lt;/a&gt;, these theories seem to contradict each other. &lt;a href="http://en.wikipedia.org/wiki/String_theory"&gt;String theory&lt;/a&gt; seems to be a promising candidate for a TOE. It resolves the tension between general relativity and quantum mechanics. However, string theory has yet been unable to produce testable experimental predictions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2) Intelligence:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-CUy95_GuSWM/TWiK0C1yKZI/AAAAAAAADiY/50g52xJ6yO0/s1600/homer-simpson-wallpaper-brain-1024.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/-CUy95_GuSWM/TWiK0C1yKZI/AAAAAAAADiY/50g52xJ6yO0/s200/homer-simpson-wallpaper-brain-1024.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5577860765218646418" /&gt;&lt;/a&gt;There are several definitions of &lt;a href="http://en.wikipedia.org/wiki/Intelligence"&gt;intelligence&lt;/a&gt;. When comparing the intelligence of animals, most people agree that humans are more intelligent than dogs and dogs are more intelligent than goldfish. How can we quantify intelligence? Several tests have been created that attempt to measure and compare human intelligence (such as the &lt;a href="http://en.wikipedia.org/wiki/Intelligence_quotient"&gt;IQ test&lt;/a&gt;). Some of these tests are based directly on pattern matching and prediction skills.&lt;br /&gt;&lt;br /&gt;Based on my research in the field of data compression, I have my own definition of intelligence which is easily quantifiable. Intelligence can be measured by the &lt;a href="http://en.wikipedia.org/wiki/Cross_entropy"&gt;cross entropy rate&lt;/a&gt; of a predictive compression algorithm on multidimensional sequence data. This basically means that an algorithm which is better at predicting &lt;a href="http://byronknoll.blogspot.com/2008/02/patterns.html"&gt;temporal patterns&lt;/a&gt; in data is more intelligent. The human brain is extremely good at recognising and predicting patterns in the massively parallel sensory data it processes.&lt;br /&gt;&lt;br /&gt;Most data compression algorithms work on one-dimensional sequence data. For example, text is a one-dimensional sequence of characters. Studies have been performed to try to measure the cross entropy rate of humans trying to predict the next character in a natural language text sequence: 0.6 to 1.3 bits per character. The best text compression algorithms (such as &lt;a href="http://en.wikipedia.org/wiki/PAQ"&gt;PAQ8&lt;/a&gt;) are starting to approach the upper end of this range. Unfortunately, compressing one-dimensional data is easy compared to high-dimensional data. In my opinion, any compression algorithm which could approach the predictive capability of the human brain on billions of parallel inputs would be truly intelligent. The most promising framework I have seen for explaining the algorithm behind human intelligence is &lt;a href="http://en.wikipedia.org/wiki/Hierarchical_temporal_memory"&gt;hierarchical temporal memory&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If humans are so intelligent, what is the point of making intelligent machines? Well, if we could design an algorithm which becomes more intelligent just by giving it more computational resources, we could make it arbitrarily intelligent. If it could surpass human intelligence, there could be a &lt;a href="http://en.wikipedia.org/wiki/Technological_singularity"&gt;singularity&lt;/a&gt; in which the AI can design a new AI which is even more intelligent than itself (ad infinitum). Achieving this would allow AI to solve the other four open problems on this list (assuming they &lt;span style="font-style:italic;"&gt;are&lt;/span&gt; solvable!).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3) Dark Energy and Dark Matter:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-DTEP9Sp-dA4/TWiPdxGmSJI/AAAAAAAADiw/GWt-Tv_FB0g/s1600/galaxy_2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://4.bp.blogspot.com/-DTEP9Sp-dA4/TWiPdxGmSJI/AAAAAAAADiw/GWt-Tv_FB0g/s200/galaxy_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5577865880058349714" /&gt;&lt;/a&gt;Experiments indicate that the universe is expanding at an accelerated rate. This is surprising because mass in the universe should cause gravity to slow its expansion. &lt;a href="http://en.wikipedia.org/wiki/Dark_energy"&gt;Dark energy&lt;/a&gt; is currently the most accepted theory to explain the expansion. Not much is known about dark energy besides the fact that based on its effect on expansion, about 74% of the universe is dark energy.&lt;br /&gt;&lt;br /&gt;So if 74% of the universe is made up of dark energy, you might assume the rest of it is the visible universe. &lt;span style="font-style:italic;"&gt;Wrong&lt;/span&gt;. The visible universe only accounts for about 4%. The other 22% is known as &lt;a href="http://en.wikipedia.org/wiki/Dark_matter"&gt;dark matter&lt;/a&gt;. Once again, not very much is known about dark matter. Advances in our understanding of dark energy and dark matter would provide insight into the nature of our universe and its eventual fate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4) One-way Functions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-PQ5k86n847w/TWiNn0rWENI/AAAAAAAADio/IHAdodYsN34/s1600/istockphoto_4029135-one-way-sign.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 135px;" src="http://4.bp.blogspot.com/-PQ5k86n847w/TWiNn0rWENI/AAAAAAAADio/IHAdodYsN34/s200/istockphoto_4029135-one-way-sign.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5577863853793218770" /&gt;&lt;/a&gt;Any computer scientists reading this post might be surprised by the fact that the &lt;a href="http://en.wikipedia.org/wiki/P_versus_NP_problem"&gt;P = NP problem&lt;/a&gt; is not on my list. As &lt;a href="http://www.scottaaronson.com/blog/"&gt;Scott Aaronson&lt;/a&gt; points out, solving the P = NP problem could have a huge impact:&lt;blockquote&gt;If P = NP, then the world would be a profoundly different place than we usually assume it to be. There would be no special value in "creative leaps," no fundamental gap between solving a problem and recognizing the solution once it's found. Everyone who could appreciate a symphony would be Mozart; everyone who could follow a step-by-step argument would be Gauss...&lt;br /&gt;&lt;/blockquote&gt;The problem is that most people assume that P ≠ NP. Although a proof of this would have some theoretical value, it would not have a large impact. This is why the problem got bumped off my list.&lt;br /&gt;&lt;br /&gt;The existence of one-way functions is another famous problem in computer science. The existence (or non-existence) of one-way functions would have a bigger impact than proving that P ≠ NP. In fact, the existence of one-way functions would in &lt;span style="font-style:italic;"&gt;itself&lt;/span&gt; prove that P ≠ NP. If one-way functions do not exist then secure &lt;a href="http://en.wikipedia.org/wiki/Public_key_cryptography"&gt;public key cryptography&lt;/a&gt; is impossible. Either outcome results in a useful result.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5) Abiogenesis:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-31lAKeRxwhQ/TWiMc8hXp4I/AAAAAAAADig/pnocqkvXVpg/s1600/B250553-False-col_SEM_of_unicellular_yeast-SPL.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 184px;" src="http://1.bp.blogspot.com/-31lAKeRxwhQ/TWiMc8hXp4I/AAAAAAAADig/pnocqkvXVpg/s200/B250553-False-col_SEM_of_unicellular_yeast-SPL.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5577862567408674690" /&gt;&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Abiogenesis"&gt;Abiogenesis&lt;/a&gt; is the study of the origin of life on Earth. Having little chemistry/biology background, I can't give a very good comparison between different abiogenesis theories. However, I can appreciate the importance of understanding how life arose. Not only would it enhance our knowledge of life on Earth, it would assist in the search for extra terrestrial life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6898830485124822913?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6898830485124822913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6898830485124822913' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6898830485124822913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6898830485124822913'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/02/greatest-unsolved-problems.html' title='The Greatest Unsolved Problems'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yIVzZ7ByRug/TWiIK2K4y4I/AAAAAAAADiQ/Mi_1dZjpiAg/s72-c/Calabi-Yau-alternate.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6544095632760234330</id><published>2011-01-12T23:15:00.004-08:00</published><updated>2011-01-12T23:52:50.048-08:00</updated><title type='text'>Machine Learning Contests</title><content type='html'>I just found another machine learning contest site called &lt;a href="http://tunedit.org/"&gt;TunedIT&lt;/a&gt;. TunedIT seems to be very similar to &lt;a href="http://byronknoll.blogspot.com/2010/12/kaggle.html"&gt;Kaggle&lt;/a&gt;. On first inspection one of the TunedIT &lt;a href="http://tunedit.org/challenge/music-retrieval"&gt;contests&lt;/a&gt; seemed to be very interesting - categorizing the genre and instruments in music. My current area of research involves one dimensional time-series data, so I thought audio would be an interesting domain to work with. Unfortunately, instead of providing the raw audio data, the contest organizers decided to process the audio and provide feature vectors instead. No longer being a one-dimensional temporal problem, the contest has lost much of its appeal.&lt;br /&gt;&lt;br /&gt;I have been treating the &lt;a href="http://www.kaggle.com/RTA"&gt;traffic prediction contest&lt;/a&gt; on Kaggle as a one-dimensional temporal prediction problem (considering every road segment as a completely independent problem). I am currently &lt;a href="http://www.kaggle.com/RTA?limit=100&amp;viewtype=leaderboard"&gt;ranked&lt;/a&gt; 8th out of 214 teams. I am guessing that my ranking won't improve before the contest end because I don't have any new ideas on how to increase my score. Most of my submissions so far have been used for parameter tuning. However, my parameter tuning efforts seem to have reached a local optimum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6544095632760234330?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6544095632760234330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6544095632760234330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6544095632760234330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6544095632760234330'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/01/machine-learning-contests.html' title='Machine Learning Contests'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7811236837861388827</id><published>2011-01-11T19:46:00.003-08:00</published><updated>2011-01-11T22:06:21.662-08:00</updated><title type='text'>Ambigram Failure</title><content type='html'>Two people who don't know my name tried to decrypt &lt;a href="http://byronknoll.blogspot.com/2011/01/ambigram.html"&gt;my ambigram&lt;/a&gt;. Their responses were "liynh knoll" and "liymr uwnq". :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7811236837861388827?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7811236837861388827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7811236837861388827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7811236837861388827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7811236837861388827'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/01/ambigram-failure.html' title='Ambigram Failure'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2823680767001963857</id><published>2011-01-11T04:49:00.004-08:00</published><updated>2011-01-11T05:04:10.423-08:00</updated><title type='text'>Ambigram</title><content type='html'>Today I tried to make my first &lt;a href="http://en.wikipedia.org/wiki/Ambigram"&gt;ambigram&lt;/a&gt;:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/TSxSUDRcnLI/AAAAAAAADhM/2QVy3fLICc8/s1600/ambigram.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/TSxSUDRcnLI/AAAAAAAADhM/2QVy3fLICc8/s400/ambigram.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5560910144325065906" /&gt;&lt;/a&gt;After staring at it for several hours and making minor adjustments, I still have no idea how legible it is. I guess a good test would be to show it to someone who doesn't know my name and see if they can decipher it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2823680767001963857?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2823680767001963857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2823680767001963857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2823680767001963857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2823680767001963857'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/01/ambigram.html' title='Ambigram'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/TSxSUDRcnLI/AAAAAAAADhM/2QVy3fLICc8/s72-c/ambigram.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-397725920866218482</id><published>2011-01-05T20:06:00.002-08:00</published><updated>2011-01-05T20:09:13.812-08:00</updated><title type='text'>Captcha</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/TSVAJBMT7eI/AAAAAAAADbQ/8r47qcQoobM/s1600/021_Robot_Tattoo.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 210px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/TSVAJBMT7eI/AAAAAAAADbQ/8r47qcQoobM/s400/021_Robot_Tattoo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5558919838741818850" /&gt;&lt;/a&gt;[&lt;a href="http://myapokalips.com/show/23%23comic"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-397725920866218482?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/397725920866218482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=397725920866218482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/397725920866218482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/397725920866218482'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2011/01/captcha.html' title='Captcha'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/TSVAJBMT7eI/AAAAAAAADbQ/8r47qcQoobM/s72-c/021_Robot_Tattoo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2309831900705176863</id><published>2010-12-24T22:26:00.004-08:00</published><updated>2010-12-24T22:36:44.902-08:00</updated><title type='text'>Kaggle</title><content type='html'>I recently found a &lt;a href="http://www.kaggle.com/"&gt;great website&lt;/a&gt; which hosts competitions related to machine learning. I am currently competing in the &lt;a href="http://www.kaggle.com/RTA?viewtype=leaderboard"&gt;freeway travel time contest&lt;/a&gt; and the &lt;a href="http://www.kaggle.com/unimelb?viewtype=leaderboard"&gt;grant proposal contest&lt;/a&gt;. I think Kaggle has potential to be very successful. The contest sponsors benefit by getting good solutions to tough problems at a relatively low cost. The contest participants benefit by getting access to interesting problems and the potential of winning cash prizes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2309831900705176863?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2309831900705176863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2309831900705176863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2309831900705176863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2309831900705176863'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/12/kaggle.html' title='Kaggle'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3216526258664585821</id><published>2010-12-24T22:09:00.003-08:00</published><updated>2010-12-24T22:24:37.768-08:00</updated><title type='text'>Christmas in Sri Lanka</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/TRWNa-f2z8I/AAAAAAAADaU/j_ocKPZS-rU/s1600/christmas.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/TRWNa-f2z8I/AAAAAAAADaU/j_ocKPZS-rU/s400/christmas.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5554501210024103874" /&gt;&lt;/a&gt;From left to right: Nathan (dad), Archie (dog), Martha (mom), George (tortoise), Skylor (brother), Aaron (brother), Byron (me).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3216526258664585821?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3216526258664585821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3216526258664585821' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3216526258664585821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3216526258664585821'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/12/christmas-in-sri-lanka.html' title='Christmas in Sri Lanka'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/TRWNa-f2z8I/AAAAAAAADaU/j_ocKPZS-rU/s72-c/christmas.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-536163449850096761</id><published>2010-12-03T23:17:00.002-08:00</published><updated>2010-12-03T23:24:50.591-08:00</updated><title type='text'>Al Zimmermann's Programming Contests</title><content type='html'>Over the last couple of days I have been working on a programming contest called &lt;a href="http://www.azspcs.net/Contest/Cards"&gt;Topswops&lt;/a&gt;. I am currently &lt;a href="http://www.azspcs.net/Contest/Cards/Standings"&gt;ranked&lt;/a&gt; 31 out of 312. This is the third &lt;a href="http://www.azspcs.net/"&gt;Al Zimmermann programming contest&lt;/a&gt; I have competed in. The site has some very interesting optimization problems. In my first two contests I ranked &lt;a href="http://www.azspcs.net/Contest/SonOfDarts/Standings"&gt;65&lt;/a&gt; out of 414 and &lt;a href="http://www.azspcs.net/Contest/MagicWater/Standings"&gt;49&lt;/a&gt; out of 143.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-536163449850096761?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/536163449850096761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=536163449850096761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/536163449850096761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/536163449850096761'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/12/al-zimmermanns-programming-contests.html' title='Al Zimmermann&apos;s Programming Contests'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3375707568605096252</id><published>2010-12-03T23:09:00.002-08:00</published><updated>2010-12-03T23:17:37.052-08:00</updated><title type='text'>Game Review</title><content type='html'>I noticed that somebody wrote a &lt;a href="http://hubpages.com/hub/Lasers-A-Web-Game-About-Lasers"&gt;review&lt;/a&gt; about the &lt;a href="http://people.cs.ubc.ca/~knoll/lasers.html"&gt;laser game&lt;/a&gt; I made. The game got quite a bit of traffic when I &lt;a href="http://www.reddit.com/r/WebGames/comments/eabsq/lasers_java_game/"&gt;posted a link&lt;/a&gt; to it on Reddit. I am pleased.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3375707568605096252?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3375707568605096252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3375707568605096252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3375707568605096252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3375707568605096252'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/12/game-review.html' title='Game Review'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3318095968702809626</id><published>2010-11-22T03:01:00.002-08:00</published><updated>2010-11-22T03:14:46.265-08:00</updated><title type='text'>Lasers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/TOpN5drP1vI/AAAAAAAADZI/LREkpITV--4/s1600/laser.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/TOpN5drP1vI/AAAAAAAADZI/LREkpITV--4/s400/laser.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5542327941046720242" /&gt;&lt;/a&gt;Thanks to everyone for the useful feedback on my &lt;a href="http://people.cs.ubc.ca/~knoll/lasers.html"&gt;Laser game&lt;/a&gt; so far. I have added another three levels, making a total of ten. I am trying to order the levels in increasing difficulty. However, I am having trouble comparing the difficulty of levels (since I already know the solution to levels when I design them, it is hard to judge how hard it would be for someone else to solve them). It would be great if I could get some more feedback on if you encounter an earlier level which appears to be more difficult than a later level.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3318095968702809626?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3318095968702809626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3318095968702809626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3318095968702809626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3318095968702809626'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/11/lasers_22.html' title='Lasers'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/TOpN5drP1vI/AAAAAAAADZI/LREkpITV--4/s72-c/laser.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4485154251115398218</id><published>2010-11-18T22:58:00.001-08:00</published><updated>2010-11-18T22:59:22.326-08:00</updated><title type='text'>Batman</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/TOYgLK4AV1I/AAAAAAAADZA/DdcbHn1r50o/s1600/batman.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 330px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/TOYgLK4AV1I/AAAAAAAADZA/DdcbHn1r50o/s400/batman.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5541151767795881810" /&gt;&lt;/a&gt;[&lt;a href="http://www.reddit.com/r/pics/comments/dwyy4/i_am_batman/"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4485154251115398218?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4485154251115398218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4485154251115398218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4485154251115398218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4485154251115398218'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/11/batman.html' title='Batman'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/TOYgLK4AV1I/AAAAAAAADZA/DdcbHn1r50o/s72-c/batman.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6256037024940677499</id><published>2010-11-18T22:28:00.003-08:00</published><updated>2010-11-18T23:06:54.235-08:00</updated><title type='text'>Lasers</title><content type='html'>My &lt;a href="http://people.cs.ubc.ca/~knoll/lasers.html"&gt;laser reflection game&lt;/a&gt; now has seven levels. I have found that it is much easier to create levels for this game than it was for the &lt;a href="http://people.cs.ubc.ca/~knoll/gallery.html"&gt;art gallery problem&lt;/a&gt; game. I think the last two levels are quite challenging, so let me know if you manage to beat them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6256037024940677499?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6256037024940677499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6256037024940677499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6256037024940677499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6256037024940677499'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/11/lasers_18.html' title='Lasers'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-9133822375974860491</id><published>2010-11-14T21:02:00.004-08:00</published><updated>2010-11-14T21:07:34.904-08:00</updated><title type='text'>Lasers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a-PgUel6wY0/TOC_nyJWPdI/AAAAAAAADYg/KFF-mRh6EvQ/s1600/lasers.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://4.bp.blogspot.com/_a-PgUel6wY0/TOC_nyJWPdI/AAAAAAAADYg/KFF-mRh6EvQ/s400/lasers.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5539638231862492626" /&gt;&lt;/a&gt;Today I started working on a new Java game. It will be a geometry-based puzzle game. The idea is to position mirrors so that they reflect lasers to a set of targets. I have posted a prototype version &lt;a href="http://people.cs.ubc.ca/~knoll/lasers.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-9133822375974860491?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/9133822375974860491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=9133822375974860491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9133822375974860491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9133822375974860491'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/11/lasers.html' title='Lasers'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a-PgUel6wY0/TOC_nyJWPdI/AAAAAAAADYg/KFF-mRh6EvQ/s72-c/lasers.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5368149163502070655</id><published>2010-11-14T13:47:00.002-08:00</published><updated>2010-11-14T14:08:49.460-08:00</updated><title type='text'>State of the Art</title><content type='html'>For my master's thesis I have been looking into compression-based techniques for classification, clustering, and &lt;a href="http://en.wikipedia.org/wiki/Anomaly_detection"&gt;anomaly detection&lt;/a&gt;. I have implemented a classification algorithm using &lt;a href="http://en.wikipedia.org/wiki/PAQ"&gt;PAQ&lt;/a&gt; and evaluated it on three datasets. So far the results look very promising and it seems to get state of the art results on all three datasets. The first dataset (called 20news) involves categorizing newsgroup articles into one of twenty categories. The other two datasets are spam-filtering (ling-spam and PU1). For the spam-filtering datasets a tradeoff can be made between spam/ham misclassification rates. I therefore evaluated my algorithm using &lt;a href="http://en.wikipedia.org/wiki/Roc_curve"&gt;ROC curves&lt;/a&gt;. Although my algorithm wasn't the best spam-classifier on all portions of the ROC curves, on both datasets there was still a significant portion in which it got state of the art results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5368149163502070655?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5368149163502070655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5368149163502070655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5368149163502070655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5368149163502070655'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/11/state-of-art.html' title='State of the Art'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1382858209255544821</id><published>2010-10-29T19:20:00.002-07:00</published><updated>2010-10-29T19:39:52.732-07:00</updated><title type='text'>It's Alive!</title><content type='html'>After the &lt;a href="http://byronknoll.blogspot.com/2010/05/suitcase-computer.html"&gt;suitcase incident&lt;/a&gt;, my desktop has been broken for the last six months. Earlier this week I replaced its motherboard. When I tried booting, I was disappointed to hear that it was still just beeping error codes. However, the error codes this time indicated a memory problem (which is different from the beep codes I was hearing before). I identified the damaged stick of RAM and removed it. Finally my computer seemed to boot normally, except that it unexpectedly turned off about 30 seconds later. I identified this problem to be due to the heatsink not attaching properly to the CPU. I ordered a new heatsink from Ebay and it arrived today. I just put in the new heatsink and the computer seems to be functioning normally. yay. In total, transporting my desktop in a suitcase destroyed the motherboard, one stick of RAM, and the CPU heatsink.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1382858209255544821?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1382858209255544821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1382858209255544821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1382858209255544821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1382858209255544821'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/10/its-alive.html' title='It&apos;s Alive!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1014910858288604261</id><published>2010-10-17T02:39:00.002-07:00</published><updated>2010-10-17T02:49:28.019-07:00</updated><title type='text'>Art Gallery Problem</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a-PgUel6wY0/TLrErdxir0I/AAAAAAAADX0/BvgMF20k98Y/s1600/gallery.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_a-PgUel6wY0/TLrErdxir0I/AAAAAAAADX0/BvgMF20k98Y/s400/gallery.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5528947743556546370" /&gt;&lt;/a&gt;My &lt;a href="http://people.cs.ubc.ca/~knoll/gallery.html"&gt;art gallery game&lt;/a&gt; now has seven levels. Designing challenging levels is surprisingly difficult. Today I implemented mirrors which reflect the guard visibility polygons (seen in the screenshot above). Hopefully mirrors will allow me to create harder levels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1014910858288604261?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1014910858288604261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1014910858288604261' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1014910858288604261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1014910858288604261'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/10/art-gallery-problem_17.html' title='Art Gallery Problem'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a-PgUel6wY0/TLrErdxir0I/AAAAAAAADX0/BvgMF20k98Y/s72-c/gallery.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6258509414185513120</id><published>2010-10-04T00:48:00.003-07:00</published><updated>2010-10-04T00:49:26.479-07:00</updated><title type='text'>Logarithmic Scales</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a-PgUel6wY0/TKmG1edT1bI/AAAAAAAADXY/4HsJhRqNey8/s1600/iDhyv.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 157px;" src="http://4.bp.blogspot.com/_a-PgUel6wY0/TKmG1edT1bI/AAAAAAAADXY/4HsJhRqNey8/s400/iDhyv.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524094671213811122" /&gt;&lt;/a&gt;[&lt;a href="http://www.reddit.com/r/pics/comments/djzdl/battery_power/"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6258509414185513120?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6258509414185513120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6258509414185513120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6258509414185513120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6258509414185513120'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/10/logarithmic-scales.html' title='Logarithmic Scales'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a-PgUel6wY0/TKmG1edT1bI/AAAAAAAADXY/4HsJhRqNey8/s72-c/iDhyv.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2669268308385503522</id><published>2010-10-04T00:42:00.003-07:00</published><updated>2010-10-04T00:49:40.661-07:00</updated><title type='text'>Genius</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/TKmFgphTsoI/AAAAAAAADXQ/uoAeRwaqS2c/s1600/LkE4U.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/TKmFgphTsoI/AAAAAAAADXQ/uoAeRwaqS2c/s400/LkE4U.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524093213894488706" /&gt;&lt;/a&gt;[&lt;a href="http://www.reddit.com/r/pics/comments/bhyjd/why_the_hell_didnt_i_ever_think_of_this/"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2669268308385503522?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2669268308385503522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2669268308385503522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2669268308385503522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2669268308385503522'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/10/genius.html' title='Genius'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/TKmFgphTsoI/AAAAAAAADXQ/uoAeRwaqS2c/s72-c/LkE4U.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2597790621635095458</id><published>2010-10-03T23:57:00.004-07:00</published><updated>2010-10-04T00:13:03.849-07:00</updated><title type='text'>Art Gallery Problem</title><content type='html'>I was looking through Wikipedia's list of &lt;a href="http://en.wikipedia.org/wiki/List_of_NP-complete_problems"&gt;NP-complete problems&lt;/a&gt; to try to come up with an idea for a game. A few of the problems on the list have already been &lt;a href="http://www.planarity.net/"&gt;made&lt;/a&gt; &lt;a href="http://www.gamesforwork.com/games/swf/Icosien_june_25th_2010.swf"&gt;into&lt;/a&gt; &lt;a href="http://www.fupa.com/play/Education-free-games/hycle.html"&gt;games&lt;/a&gt;. I thought the &lt;a href="http://en.wikipedia.org/wiki/Art_gallery_problem"&gt;art gallery problem&lt;/a&gt; might make an interesting game. My research on Google suggests that it has never been adapted into a game before. I spent the day implementing the game and have posted it &lt;a href="http://people.cs.ubc.ca/~knoll/gallery.html"&gt;online here&lt;/a&gt;. So far I have only made four levels but I plan on adding more soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2597790621635095458?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2597790621635095458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2597790621635095458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2597790621635095458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2597790621635095458'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/10/art-gallery-problem.html' title='Art Gallery Problem'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5176041918823879225</id><published>2010-09-30T12:29:00.003-07:00</published><updated>2010-09-30T12:35:39.218-07:00</updated><title type='text'>Google Offer</title><content type='html'>I just accepted a job offer from Google! The position is Software Engineer. After I finish my master's degree, I will be moving to Mountain View, California.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5176041918823879225?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5176041918823879225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5176041918823879225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5176041918823879225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5176041918823879225'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/09/google-offer.html' title='Google Offer'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-830514143560955751</id><published>2010-09-27T21:10:00.002-07:00</published><updated>2010-09-27T21:22:31.543-07:00</updated><title type='text'>ACM Eligibility</title><content type='html'>During the last two weekends I competed in tryouts to be part of the UBC programming team. I did well enough to qualify for the first team. However, yesterday I noticed on the &lt;a href="http://www.icpc-anarc.org/pages/eligibility.xht"&gt;2010 ACM eligibility chart&lt;/a&gt; that I am ineligible because I am slightly too old (by four months). We tried emailing the ICPC manager but she verified that I can not compete :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-830514143560955751?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/830514143560955751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=830514143560955751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/830514143560955751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/830514143560955751'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/09/acm-eligibility.html' title='ACM Eligibility'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-9091619602509723423</id><published>2010-09-26T21:08:00.001-07:00</published><updated>2010-09-26T21:10:14.950-07:00</updated><title type='text'>Happy Petrov Day!</title><content type='html'>Thank you &lt;a href="http://en.wikipedia.org/wiki/Stanislav_Petrov"&gt;Stanislav Petrov&lt;/a&gt; for saving the world on September 26, 1983.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-9091619602509723423?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/9091619602509723423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=9091619602509723423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9091619602509723423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9091619602509723423'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/09/happy-petrov-day.html' title='Happy Petrov Day!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5981282425647898526</id><published>2010-08-18T01:50:00.002-07:00</published><updated>2010-08-18T01:56:21.832-07:00</updated><title type='text'>Sri Lanka</title><content type='html'>Last week I finished my internship at Google. I have been in Sri Lanka for about a day now. Cathay Pacific managed to lose both of my suitcases on the way here. So far I like Sri Lanka. It seems to be similar to India except better in a number of ways.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5981282425647898526?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5981282425647898526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5981282425647898526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5981282425647898526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5981282425647898526'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/08/sri-lanka.html' title='Sri Lanka'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-826157990678919237</id><published>2010-08-12T23:08:00.003-07:00</published><updated>2010-08-12T23:15:23.625-07:00</updated><title type='text'>Homework</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_a-PgUel6wY0/TGThYEsfgrI/AAAAAAAAC6E/Z_hSvIS-uWo/s1600/homework.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 311px; height: 400px;" src="http://2.bp.blogspot.com/_a-PgUel6wY0/TGThYEsfgrI/AAAAAAAAC6E/Z_hSvIS-uWo/s400/homework.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5504772448247055026" /&gt;&lt;/a&gt;Translation courtesy of &lt;a href="http://www.reddit.com/r/pics/comments/9ycx7/you_are_to_assume_the_role_of_a_chinese_immigrant/"&gt;reddit&lt;/a&gt; user thelifan:&lt;br /&gt;&lt;br /&gt;My life here is terrible. Work environment is not great and benefits are little. But don't worry, everyday only about 10 people are seriously injured and I'm very careful. We opened a small shop, business isn't bad. Although I don't understand very much English, but I can still understand what white men say. Hopefully we can become successful, I will work hard and take care of myself.&lt;br /&gt;&lt;br /&gt;Are you guys well? Miss you very much, hope to see you again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-826157990678919237?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/826157990678919237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=826157990678919237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/826157990678919237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/826157990678919237'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/08/homework.html' title='Homework'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a-PgUel6wY0/TGThYEsfgrI/AAAAAAAAC6E/Z_hSvIS-uWo/s72-c/homework.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7229746049840580023</id><published>2010-08-07T22:32:00.003-07:00</published><updated>2010-08-07T23:05:55.476-07:00</updated><title type='text'>Skydiving!</title><content type='html'>This morning I went skydiving from 15,000 feet. It was an incredible experience. The free-fall lasted for about one minute and parachuting lasted five minutes. The "falling" sensation only lasted for a few seconds after leaving the plane. Once reaching terminal velocity, the free-fall was quite comfortable (and surreal). My instructor let me control the parachute for part of the descent. We also performed a fun maneuver spinning the parachute around in a tight spiral. A few years ago &lt;a href="http://www.youtube.com/byronknoll#p/u/23/I2GTFE2Cf3E"&gt;I went bungee jumping&lt;/a&gt;. I think making the jump was probably scarier for bungee jumping than skydiving. However, I enjoyed everything about skydiving a lot more than bungee jumping.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7229746049840580023?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7229746049840580023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7229746049840580023' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7229746049840580023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7229746049840580023'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/08/skydiving.html' title='Skydiving!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2374384854592219657</id><published>2010-07-28T15:22:00.002-07:00</published><updated>2010-07-28T15:22:48.898-07:00</updated><title type='text'>Skydiving!</title><content type='html'>Next week I am planning to go skydiving with some Google interns. Should be fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2374384854592219657?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2374384854592219657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2374384854592219657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2374384854592219657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2374384854592219657'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/skydiving.html' title='Skydiving!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2979689718748571938</id><published>2010-07-25T00:46:00.003-07:00</published><updated>2010-07-25T01:24:46.319-07:00</updated><title type='text'>YouTube Easter Egg</title><content type='html'>For YouTube videos with the new layout style, performing the following steps will start up a game of &lt;a href="http://en.wikipedia.org/wiki/Snake_%28video_game%29"&gt;Snake&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;1) Click on the video to give it keyboard focus&lt;br /&gt;2) Hold the left arrow key&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=tu0qtEwb9gE"&gt;Here&lt;/a&gt; is a YouTube video that it will work on. Discovered via &lt;a href="http://www.reddit.com/r/reddit.com/comments/ct8mh/to_play_snake_on_youtube_pause_hold_the_left/"&gt;Reddit&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2979689718748571938?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2979689718748571938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2979689718748571938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2979689718748571938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2979689718748571938'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/youtube-easter-egg.html' title='YouTube Easter Egg'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1510605179437964557</id><published>2010-07-18T14:12:00.011-07:00</published><updated>2010-07-18T19:49:59.753-07:00</updated><title type='text'>Body Invaders</title><content type='html'>&lt;object width="425" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vMG-LWyNcAs&amp;amp;hl=en_US&amp;amp;fs=1?rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vMG-LWyNcAs&amp;amp;hl=en_US&amp;amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;[&lt;a href="http://www.youtube.com/watch?v=vMG-LWyNcAs&amp;feature=player_embedded"&gt;YouTube link&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="343"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EWB_COSUXMw&amp;amp;hl=en_US&amp;amp;fs=1?rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/EWB_COSUXMw&amp;amp;hl=en_US&amp;amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="343"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;[&lt;a href="http://www.youtube.com/watch?v=EWB_COSUXMw&amp;feature=player_embedded"&gt;YouTube link&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="260"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RuopJYLBvrI&amp;amp;hl=en_US&amp;amp;fs=1?rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RuopJYLBvrI&amp;amp;hl=en_US&amp;amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;[&lt;a href="http://www.youtube.com/watch?v=RuopJYLBvrI&amp;feature=player_embedded"&gt;YouTube link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1510605179437964557?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1510605179437964557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1510605179437964557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1510605179437964557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1510605179437964557'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/body-invaders.html' title='Body Invaders'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4346575584564988062</id><published>2010-07-18T14:08:00.002-07:00</published><updated>2010-07-18T14:10:32.040-07:00</updated><title type='text'>National Geographic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/TENtdO3hehI/AAAAAAAAC38/QNrSZPyXGa4/s1600/darwin.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 295px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/TENtdO3hehI/AAAAAAAAC38/QNrSZPyXGa4/s400/darwin.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5495356319296748050" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4346575584564988062?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4346575584564988062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4346575584564988062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4346575584564988062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4346575584564988062'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/national-geographic.html' title='National Geographic'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/TENtdO3hehI/AAAAAAAAC38/QNrSZPyXGa4/s72-c/darwin.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1187225561464747107</id><published>2010-07-18T01:16:00.003-07:00</published><updated>2010-07-18T01:27:07.142-07:00</updated><title type='text'>New Camera!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_a-PgUel6wY0/TEK4muB_yaI/AAAAAAAAC30/TkOiXsv3rz4/s1600/panasonic-dmc-zs7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://2.bp.blogspot.com/_a-PgUel6wY0/TEK4muB_yaI/AAAAAAAAC30/TkOiXsv3rz4/s400/panasonic-dmc-zs7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5495157470676371874" /&gt;&lt;/a&gt;I am now the proud owner of a &lt;a href="http://panasonic.net/avc/lumix/compact/zs7_tz10/index.html"&gt;Panasonic Lumix DMC-ZS7&lt;/a&gt;. Today I took some photos with it &lt;a href="http://picasaweb.google.com/byronknoll/23Google#"&gt;around the Google campus&lt;/a&gt;. One of my favorite features of the camera is that it tags pictures with GPS coordinates. &lt;a href="http://picasaweb.google.com/"&gt;Picasa Web Albums&lt;/a&gt; automatically creates a &lt;a href="http://picasaweb.google.com/lh/albumMap?uname=byronknoll&amp;aid=5495135634717310625#map"&gt;Google Map&lt;/a&gt; with the photo locations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1187225561464747107?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1187225561464747107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1187225561464747107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1187225561464747107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1187225561464747107'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/new-camera.html' title='New Camera!'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a-PgUel6wY0/TEK4muB_yaI/AAAAAAAAC30/TkOiXsv3rz4/s72-c/panasonic-dmc-zs7.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7557753846064077681</id><published>2010-07-11T22:31:00.003-07:00</published><updated>2010-07-11T22:37:37.971-07:00</updated><title type='text'>Demon's Souls</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/TDqpKCywTdI/AAAAAAAACxU/Q14DOiPSWd4/s1600/Demon%27s_Souls_Cover.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 256px; height: 295px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/TDqpKCywTdI/AAAAAAAACxU/Q14DOiPSWd4/s400/Demon%27s_Souls_Cover.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5492888685545278930" /&gt;&lt;/a&gt;Today I finally beat &lt;a href="http://en.wikipedia.org/wiki/Demon%27s_Souls"&gt;Demon's Souls&lt;/a&gt;. I am pretty proud of this accomplishment given how ridiculously hard the game is. It is the best PS3 game I have played.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7557753846064077681?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7557753846064077681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7557753846064077681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7557753846064077681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7557753846064077681'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/07/demons-souls.html' title='Demon&apos;s Souls'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/TDqpKCywTdI/AAAAAAAACxU/Q14DOiPSWd4/s72-c/Demon%27s_Souls_Cover.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7435506477075674446</id><published>2010-06-22T18:10:00.002-07:00</published><updated>2010-06-22T18:14:20.974-07:00</updated><title type='text'>RoboCup 2010</title><content type='html'>I am currently in Singapore attending &lt;a href="http://www.robocup2010.org/"&gt;RoboCup 2010&lt;/a&gt;. &lt;a href="http://www.ubcrobocup.com/"&gt;UBC Thunderbots&lt;/a&gt; is competing in the small size league. We played four games and did not advance to the semi-finals. We lost three games and won one game. The Thunderbots website has lots of &lt;a href="http://robocup.isgreat.org/media"&gt;pictures, videos&lt;/a&gt;, and a &lt;a href="http://robocup.isgreat.org/blog"&gt;blog&lt;/a&gt;. I will be in Singapore for one week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7435506477075674446?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7435506477075674446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7435506477075674446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7435506477075674446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7435506477075674446'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/06/robocup-2010.html' title='RoboCup 2010'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3966374448806370306</id><published>2010-05-20T00:38:00.002-07:00</published><updated>2010-05-20T00:51:15.912-07:00</updated><title type='text'>TopCoder Open</title><content type='html'>Today I discovered that TopCoder is hosting an &lt;a href="http://www.topcoder.com/longcontest/?module=ViewProblemStatement&amp;compid=12151&amp;rd=14272"&gt;interesting marathon match&lt;/a&gt; over the next month. The problem is pretty simple:&lt;br /&gt;&lt;br /&gt;Input: list of edges&lt;br /&gt;Output: vertex locations&lt;br /&gt;Goal: minimize number of edge intersections&lt;br /&gt;&lt;br /&gt;There is an &lt;a href="http://www.topcoder.com/longcontest/?module=ViewStandings&amp;rd=14272"&gt;online scoreboard&lt;/a&gt; which shows your ranking after each submission. I was in last place after my first submission. My second submission was quite an improvement and put me in second place =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3966374448806370306?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3966374448806370306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3966374448806370306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3966374448806370306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3966374448806370306'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/topcoder-open.html' title='TopCoder Open'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-795699685972223627</id><published>2010-05-17T23:35:00.003-07:00</published><updated>2010-05-17T23:37:28.552-07:00</updated><title type='text'>siarco</title><content type='html'>I just released an open source version of the arithmetic coder I discussed in my &lt;a href="http://byronknoll.blogspot.com/2010/05/arithmetic-coding.html"&gt;previous post&lt;/a&gt;. The project is hosted at &lt;a href="http://code.google.com/p/siarco/"&gt;http://code.google.com/p/siarco/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-795699685972223627?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/795699685972223627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=795699685972223627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/795699685972223627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/795699685972223627'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/siarco.html' title='siarco'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4697026516168317810</id><published>2010-05-16T13:51:00.005-07:00</published><updated>2010-05-16T13:58:25.538-07:00</updated><title type='text'>Nice Weather</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/S_BbtSrvriI/AAAAAAAACso/P06_juEAx1g/s1600/275_bestdayeverHD.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 392px; height: 400px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/S_BbtSrvriI/AAAAAAAACso/P06_juEAx1g/s400/275_bestdayeverHD.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5471974380922711586" /&gt;&lt;/a&gt;[&lt;a href="http://www.prguitarman.com/index.php?id=58"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4697026516168317810?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4697026516168317810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4697026516168317810' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4697026516168317810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4697026516168317810'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/nice-weather.html' title='Nice Weather'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/S_BbtSrvriI/AAAAAAAACso/P06_juEAx1g/s72-c/275_bestdayeverHD.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-418852681645868216</id><published>2010-05-16T12:47:00.002-07:00</published><updated>2010-05-16T13:47:00.970-07:00</updated><title type='text'>Arithmetic Coding</title><content type='html'>This week I wrote a program to perform &lt;a href="http://en.wikipedia.org/wiki/Arithmetic_coding"&gt;arithmetic coding&lt;/a&gt;. Arithmetic coding is useful for data compression. This summer I plan to release an open source lossless data compression algorithm which uses the coder.&lt;br /&gt;&lt;br /&gt;The program to do the arithmetic coding is only around 150 lines of Java code. For a while I had a really annoying bug related to precision errors with floating point numbers. The vast majority of the time I spent developing the program was trying to fix this bug. Today I finally figured out a great solution to the precision problem which has almost no computational overhead and is theoretically guaranteed to always be correct.&lt;br /&gt;&lt;br /&gt;Wikipedia claims "every programmatic implementation of arithmetic encoding has a different compression ratio and performance." I find this statement surprising because I think I can construct a proof showing that my program encodes the input with &lt;span style="font-style:italic;"&gt;exactly&lt;/span&gt; the minimal number of bits. If the number of bits is not divisible by 8, my program uses a few extra bits in order to store the resulting bytes to disk. As far as I know it is impossible for another arithmetic coder to achieve a better compression ratio. I tried testing the program on several files and it achieved a compression ratio extremely close to the theoretical cross entropy limit.&lt;br /&gt;&lt;br /&gt;In terms of performance my algorithm also has nice properties. The time and space complexity are both linear in terms of the number of input characters (which is optimal). The code only performs basic arithmetic operations on primitive data types, so it should also be very efficient. The code works with any input alphabet size. I plan to convert the program to optimized C code and compare its performance to other arithmetic coders. Since I am already confident that its compression ratio can not be beaten, if it turns out to be faster than other arithmetic coders as well, then my algorithm could be an important contribution =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-418852681645868216?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/418852681645868216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=418852681645868216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/418852681645868216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/418852681645868216'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/arithmetic-coding.html' title='Arithmetic Coding'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8064127416965111503</id><published>2010-05-09T21:05:00.004-07:00</published><updated>2010-05-09T21:27:38.916-07:00</updated><title type='text'>Googleplex</title><content type='html'>I really enjoyed my first week at Google. So far I have mostly been doing training. The food at the Googleplex is amazing. I will be eating breakfast, lunch, and dinner there, so I will only have to cook for myself on weekends. I have been trying to go to a different café for every meal. My apartment is about a 30 minute bike ride from the campus, so that exercise might help counteract the abundance of free food. Google gave me a nice bike to use over the summer.&lt;br /&gt;&lt;br /&gt;Yesterday I bought a new monitor so that I can play my PS3. I also bought a game called Demon's Souls. I tried getting Demon's Souls at three different places in Vancouver but they were all sold out. In Mountain View I tried checking Best Buy and Toys Я Us but they were also sold out. Finally, I found a copy at Game Stop (which turned out to be their last copy). The ridiculous thing is that this game was released over half a year ago. The gameplay is incredibly addicting (and incredibly difficult). It is the best PS3 game I have played.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8064127416965111503?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8064127416965111503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8064127416965111503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8064127416965111503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8064127416965111503'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/googleplex.html' title='Googleplex'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3094398639546873597</id><published>2010-05-09T20:40:00.003-07:00</published><updated>2010-05-09T21:04:06.211-07:00</updated><title type='text'>Suitcase Computer</title><content type='html'>I recently discovered that traveling with a desktop computer in a suitcase is a bad idea. When I was packing for my trip to Mountain View I spontaneously decided to bring my desktop computer since I had lots of extra room in my suitcases. I have traveled with a desktop computer before without any problems.&lt;br /&gt;&lt;br /&gt;The first annoyance was that both my suitcases were way over the weight limit, so I was charged expensive overweight fees. I would have been under the weight limit without the computer. When I arrived in Mountain View and started unpacking the computer, I noticed a horrible rattling sound when I moved it. A rattling sound indicating loose components in the case.&lt;br /&gt;&lt;br /&gt;The CPU heatsink had somehow become detached and was bouncing around inside the case the entire trip. Today I bought some thermal grease and reattached the heatsink. When I tried to boot the computer it started making beeping sounds and immediately shutdown. It is most likely the motherboard which was damaged. I wish I had just left the computer in Vancouver.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3094398639546873597?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3094398639546873597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3094398639546873597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3094398639546873597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3094398639546873597'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/05/suitcase-computer.html' title='Suitcase Computer'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6899264176759871022</id><published>2010-04-10T05:17:00.004-07:00</published><updated>2010-04-10T05:24:31.401-07:00</updated><title type='text'>Imagine Cup</title><content type='html'>Surprisingly, we advanced to round 2 of Imagine Cup. &lt;a href="http://www.cs.ubc.ca/~knoll/SolarHamster/SolarHamsterTestPage.html"&gt;Here&lt;/a&gt; is the demo we submitted. 150 teams out of 700 advanced. Only 6 teams advance to the finals. We are debating whether finishing the game is worth the time investment given we have such a low probability of making it to the finals :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6899264176759871022?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6899264176759871022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6899264176759871022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6899264176759871022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6899264176759871022'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/04/imagine-cup.html' title='Imagine Cup'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8102735705487435931</id><published>2010-04-02T20:11:00.002-07:00</published><updated>2010-04-02T20:12:13.281-07:00</updated><title type='text'>lol</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/S7ayBFmKreI/AAAAAAAACrc/In-OA1ScHI0/s1600/lol.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/S7ayBFmKreI/AAAAAAAACrc/In-OA1ScHI0/s400/lol.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5455743730357808610" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8102735705487435931?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8102735705487435931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8102735705487435931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8102735705487435931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8102735705487435931'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/04/lol.html' title='lol'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/S7ayBFmKreI/AAAAAAAACrc/In-OA1ScHI0/s72-c/lol.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3192145272837633158</id><published>2010-03-30T09:42:00.002-07:00</published><updated>2010-03-30T09:52:45.635-07:00</updated><title type='text'>Googleplex</title><content type='html'>I just accepted the internship offer from Google. I will be headed to the &lt;a href="http://en.wikipedia.org/wiki/Googleplex"&gt;Googleplex&lt;/a&gt; this summer. Numenta replied saying that they will not be giving me an offer. I will be doing a 14 week internship at Google. When I finish the internship in August I plan on visiting my parents in Sri Lanka for a few weeks before returning to UBC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3192145272837633158?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3192145272837633158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3192145272837633158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3192145272837633158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3192145272837633158'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/03/googleplex.html' title='Googleplex'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5597735537029204344</id><published>2010-03-22T15:32:00.002-07:00</published><updated>2010-03-22T15:39:52.978-07:00</updated><title type='text'>Summer Internship</title><content type='html'>Today I got internship offers from both Google and Facebook. I am just waiting to hear back from &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; before I make a decision of which to accept. On Friday I visited Numenta for a full day of interviews. &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; and I were on the same flight to San Francisco. We shared a taxi from UBC to the airport and he even gave me a ride to my hotel after the flight! It was a great opportunity to talk with him about &lt;a href="http://en.wikipedia.org/wiki/Hierarchical_Temporal_Memory"&gt;HTM&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5597735537029204344?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5597735537029204344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5597735537029204344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5597735537029204344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5597735537029204344'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/03/summer-internship.html' title='Summer Internship'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4688189857576247676</id><published>2010-03-15T14:51:00.002-07:00</published><updated>2010-03-15T14:52:33.168-07:00</updated><title type='text'>o_o</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_a-PgUel6wY0/S56sCYs0o5I/AAAAAAAACrU/wLIJ3KrZZpc/s1600-h/1NjDV.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://2.bp.blogspot.com/_a-PgUel6wY0/S56sCYs0o5I/AAAAAAAACrU/wLIJ3KrZZpc/s400/1NjDV.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448981756155044754" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4688189857576247676?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4688189857576247676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4688189857576247676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4688189857576247676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4688189857576247676'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/03/oo.html' title='o_o'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a-PgUel6wY0/S56sCYs0o5I/AAAAAAAACrU/wLIJ3KrZZpc/s72-c/1NjDV.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2196559977606072449</id><published>2010-03-14T23:29:00.003-07:00</published><updated>2010-03-15T00:07:35.530-07:00</updated><title type='text'>Contests and Interviews</title><content type='html'>There is a new programming contest on Al Zimmermann's webpage: &lt;a href="http://www.azspcs.net/Contest/MagicWater"&gt;http://www.azspcs.net/Contest/MagicWater&lt;/a&gt;. I am currently ranked 8th out of 56. The contest lasts months, so there is no way I will maintain this high rank :D. On the son of darts contest I currently have a score of 90.00 and a rank of 59 out of 384.&lt;br /&gt;&lt;br /&gt;Three friends and I are entering the Game Design category of &lt;a href="http://imaginecup.com/"&gt;Imagine Cup&lt;/a&gt;. Today we submitted a &lt;a href="http://www.cs.ubc.ca/~knoll/SolarHamster/SolarHamsterTestPage.html"&gt;game demo&lt;/a&gt;. It is a simple text adventure game using Silverlight. The game also works in Linux using Moonlight. I wrote the text parser for the game. Our team was speculating that we probably put the fewest man-hours into making the game out of all the competitors (so I will be surprised if we advance to future rounds). If we make it to the finals we get a free trip to Poland.&lt;br /&gt;&lt;br /&gt;I am currently in the interview process with Google, Facebook, &lt;a href="https://imo.im/"&gt;IMO&lt;/a&gt;, and &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; for a summer internship. Later this week I will be flying down to California for a full day interview at Numenta. Coincidentally, Numenta's founder &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; is giving a talk at UBC this week. I have scheduled a meeting with him when he gets here!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2196559977606072449?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2196559977606072449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2196559977606072449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2196559977606072449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2196559977606072449'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/03/contests-and-interviews.html' title='Contests and Interviews'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6882180656730895400</id><published>2010-03-06T03:32:00.002-08:00</published><updated>2010-03-06T03:37:04.500-08:00</updated><title type='text'>Son of Darts</title><content type='html'>I spent the entire day working on &lt;a href="http://www.azspcs.net/Contest/SonOfDarts"&gt;Son of Darts&lt;/a&gt;. I am now in 71st place out of 379. My current submissions use a variety of searches including stochastic local search, backtracking, greedy, and various heuristics. Out of the 19 Canadian competitors I have the highest score :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6882180656730895400?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6882180656730895400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6882180656730895400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6882180656730895400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6882180656730895400'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/03/son-of-darts.html' title='Son of Darts'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-894950314236787609</id><published>2010-02-17T21:05:00.004-08:00</published><updated>2010-02-17T21:32:17.584-08:00</updated><title type='text'>Contests</title><content type='html'>UBC has a two week break due to the Vancouver Olympics. I have been using the time to work on various programming projects. I have become involved in a number of contests:&lt;br /&gt;&lt;br /&gt;-&lt;a href="http://small-size.informatik.uni-bremen.de/start"&gt;RoboCup&lt;/a&gt;: A robot soccer contest. I am working on the AI for the robots. We recently sent in qualification materials. If we qualify, we get to compete at RoboCup 2010 in Singapore this summer. Last year we went to &lt;a href="http://byronknoll.blogspot.com/2009/07/trip-summary.html"&gt;Austria&lt;/a&gt; for the contest.&lt;br /&gt;&lt;br /&gt;-&lt;a href="http://imaginecup.com/Competition/mycompetitionportal.aspx?competitionId=38"&gt;ImagineCup&lt;/a&gt;: Our team is planning to compete in the game design category. We haven't done much implementation yet, but we plan on creating a text adventure game (plus some simple graphics). If we make it to the finals we get to go to Poland this summer.&lt;br /&gt;&lt;br /&gt;-&lt;a href="http://www.azspcs.net/Contest/SonOfDarts"&gt;Son of Darts&lt;/a&gt;: I just started this contest a couple of days ago. I am currently ranked 145th out of 368 competitors. I am using stochastic local search to optimize the solutions.&lt;br /&gt;&lt;br /&gt;-&lt;a href="http://battlecode.mit.edu/2010/"&gt;BattleCode&lt;/a&gt;: A fun AI programming contest. Last year our team did &lt;a href="http://byronknoll.blogspot.com/2009/04/battlecode-tournament-results.html"&gt;pretty well&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This break I am also planning on submitting a paper about &lt;a href="http://byronknoll.blogspot.com/2009/12/prediction-by-partial-matching.html"&gt;PPM&lt;/a&gt; to &lt;a href="http://depts.washington.edu/uwcl/nw-nlp-2010/"&gt;a NLP workshop&lt;/a&gt;. I also need to study for a big midterm happening in two weeks. It is going to be a busy break!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-894950314236787609?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/894950314236787609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=894950314236787609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/894950314236787609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/894950314236787609'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/02/contests.html' title='Contests'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-2680011337000093214</id><published>2010-02-06T22:45:00.002-08:00</published><updated>2010-02-06T23:12:28.080-08:00</updated><title type='text'>Harbin Trip</title><content type='html'>Over the last week I have been in China attending the ACM ICPC World Finals. The trip was really fun. I got invited to come even though I am not a competitor since I might be part of the UBC team next year. Six people from UBC came (one coach, three competitors and another guest). Harbin is in the northern part of China so was extremely cold. The temperature was usually between -10 to -30 Celsius. I have posted pictures of my trip &lt;a href="http://picasaweb.google.com/byronknoll/20China#"&gt;here&lt;/a&gt;. There were a lot of activities organized by ACM so there wasn't much time to explore Harbin ourselves. Harbin is famous for ice and snow sculptures. There were sculptures lining the streets all over the city.&lt;br /&gt;&lt;br /&gt;UBC did well at the finals. They got 18th place. I think UBC's record is 13th place. Here is the &lt;a href="http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=Results%20World%20Finals%202010"&gt;final scoreboard&lt;/a&gt;. There were three North American teams which did better: Stanford, Cornell, and Carnegie Mellon. These teams only did better on time and did not solve more problems than UBC. All three members of this year's team are not eligible to compete again next year. Based on the performance of the second and third UBC teams, it is extremely unlikely we will be nearly as good next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-2680011337000093214?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/2680011337000093214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=2680011337000093214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2680011337000093214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/2680011337000093214'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2010/02/harbin-trip.html' title='Harbin Trip'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1953149824830623335</id><published>2009-12-22T19:53:00.002-08:00</published><updated>2009-12-22T19:53:45.474-08:00</updated><title type='text'>:)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_a-PgUel6wY0/SzGUO8lPNxI/AAAAAAAAClc/fX8XrYcggSc/s1600-h/work.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://2.bp.blogspot.com/_a-PgUel6wY0/SzGUO8lPNxI/AAAAAAAAClc/fX8XrYcggSc/s400/work.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418274811204810514" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1953149824830623335?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1953149824830623335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1953149824830623335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1953149824830623335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1953149824830623335'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/blog-post_22.html' title=':)'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a-PgUel6wY0/SzGUO8lPNxI/AAAAAAAAClc/fX8XrYcggSc/s72-c/work.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6964448394845424976</id><published>2009-12-21T03:00:00.004-08:00</published><updated>2009-12-21T03:13:22.581-08:00</updated><title type='text'>Cutlery</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a-PgUel6wY0/Sy9WrlVIU5I/AAAAAAAAClU/VrHF79_MXTA/s1600-h/stabby.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 354px; height: 400px;" src="http://4.bp.blogspot.com/_a-PgUel6wY0/Sy9WrlVIU5I/AAAAAAAAClU/VrHF79_MXTA/s400/stabby.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5417644183505097618" /&gt;&lt;/a&gt;I &lt;span style="font-style:italic;"&gt;must&lt;/span&gt; get a complete set. Three to go!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6964448394845424976?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6964448394845424976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6964448394845424976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6964448394845424976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6964448394845424976'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/cutlery.html' title='Cutlery'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a-PgUel6wY0/Sy9WrlVIU5I/AAAAAAAAClU/VrHF79_MXTA/s72-c/stabby.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1308865135039429521</id><published>2009-12-16T00:09:00.006-08:00</published><updated>2009-12-16T00:21:19.166-08:00</updated><title type='text'>Class Project</title><content type='html'>&lt;a href="http://people.cs.ubc.ca/~knoll/cpsc503.pdf"&gt;Here&lt;/a&gt; is the PPM project I have been working on. The paper may not be high quality since I had to rush to get it submitted on time. However, I am pretty excited about some of the topics it covers and the algorithm it introduces. I learned a surprising amount about information theory when researching the topic. I plan on continuing developing the algorithm and applying it to new domains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1308865135039429521?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1308865135039429521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1308865135039429521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1308865135039429521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1308865135039429521'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/class-project.html' title='Class Project'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-9046522733710956462</id><published>2009-12-14T22:49:00.002-08:00</published><updated>2009-12-14T22:49:31.886-08:00</updated><title type='text'>:(</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_a-PgUel6wY0/Sycxb55h9dI/AAAAAAAAClM/DAMKykdtkqU/s1600-h/work.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://2.bp.blogspot.com/_a-PgUel6wY0/Sycxb55h9dI/AAAAAAAAClM/DAMKykdtkqU/s400/work.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5415351432404661714" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-9046522733710956462?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/9046522733710956462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=9046522733710956462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9046522733710956462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/9046522733710956462'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/blog-post.html' title=':('/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_a-PgUel6wY0/Sycxb55h9dI/AAAAAAAAClM/DAMKykdtkqU/s72-c/work.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8072917588714414263</id><published>2009-12-13T22:40:00.003-08:00</published><updated>2009-12-13T23:41:55.801-08:00</updated><title type='text'>NIPS</title><content type='html'>Earlier this week I had a great time at the &lt;a href="http://nips.cc/"&gt;NIPS&lt;/a&gt; conference. I got to meet several famous AI researchers. The best part of the conference was the poster/demo sessions. My favourite posters were related to &lt;a href="http://www.cs.toronto.edu/~hinton/"&gt;Hinton&lt;/a&gt;'s Restricted &lt;a href="http://en.wikipedia.org/wiki/Boltzmann_machine"&gt;Boltzmann Machines&lt;/a&gt;. I also got a chance to talk with some people from &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; about &lt;a href="http://en.wikipedia.org/wiki/Hierarchical_temporal_memory"&gt;HTM&lt;/a&gt;. Google and Microsoft Research both actively participated at the conference. Google had an interesting booth unveiling research they had done in using &lt;a href="http://www.newscientist.com/article/dn18272-google-demonstrates-quantum-computer-image-search.html"&gt;quantum computing for image search&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Disclaimer for the following paragraph: I know nothing about quantum computing and have a bad memory, so this information is not reliable.&lt;/span&gt; When I walked up to the booth I was very sceptical since as far as I know quantum computers are still theoretical. From what I understood they used adiabatic quantum computers to solve an optimization task. I think introducing the image search problem is misleading because any improvement in the image search is not necessarily due to the quantum computer. They should have introduced their image search algorithm and quantum optimization algorithm completely independently of each other. I would only be impressed if the quantum computer was solving an optimization problem faster than what can currently be done on a classical computer. I asked the Google guy the following question: "I remember seeing a proof that a certain type of adiabatic quantum computer could be simulated on a classical computer just as efficiently using simulated annealing. Any comments?" His response seemed to indicate that he thought that the quantum algorithm they were using could solve problems in polynomial time which could not be done on a classical computer. In addition, he gave a cool explanation of how the quantum computer did the optimization by simulating a particle in the search space and allowing the particle to travel through walls so that it doesn't get stuck in local minima. Also, the search space is slowly changed from an easy-to-solve "bowl" to the actual objective function so that the particle converges on the global minima. The algorithm supposedly needs to be run several times since it is stochastic and doesn't necessarily find the global minima every time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8072917588714414263?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8072917588714414263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8072917588714414263' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8072917588714414263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8072917588714414263'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/nips.html' title='NIPS'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-7398746731395765670</id><published>2009-12-13T20:54:00.004-08:00</published><updated>2009-12-13T23:38:02.796-08:00</updated><title type='text'>Prediction by Partial Matching</title><content type='html'>I am currently working on a project for a natural language processing course. Given my interest in temporal pattern recognition, I decided to make the project about text prediction. For the last few weeks I have been really excited because I thought I discovered an innovative algorithm which was doing extremely well compared to existing methods. In particular, it completely outperforms my previous approaches using neural networks/HTM when it comes to almost any pattern recognition task. However, today I was disappointed to learn that almost exactly the same algorithm was discovered back in the 80s. It is a data compression algorithm called &lt;a href="http://en.wikipedia.org/wiki/Prediction_by_Partial_Matching"&gt;prediction by partial matching&lt;/a&gt; (PPM). PPM happens to be one of the best text compression algorithms, so at least its nice to know that I independently discovered it. However, I would have been much happier if I had been the first to do so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-7398746731395765670?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/7398746731395765670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=7398746731395765670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7398746731395765670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/7398746731395765670'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/prediction-by-partial-matching.html' title='Prediction by Partial Matching'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1816279802090322911</id><published>2009-12-01T00:17:00.003-08:00</published><updated>2009-12-01T00:21:57.797-08:00</updated><title type='text'>Hockey Bears</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nah3nMStXV4&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/nah3nMStXV4&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;I've done some online research on these bears, and as far as I can tell they appear to be genuine. [&lt;a href="http://www.youtube.com/watch?v=nah3nMStXV4"&gt;YouTube link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1816279802090322911?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1816279802090322911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1816279802090322911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1816279802090322911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1816279802090322911'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/12/hockey-bears.html' title='Hockey Bears'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6043879797452361736</id><published>2009-11-19T09:09:00.003-08:00</published><updated>2009-11-19T09:18:47.639-08:00</updated><title type='text'>Temporal Pattern Recognition</title><content type='html'>As an alternative to neural networks, I have found that a technique called &lt;a href="http://en.wikipedia.org/wiki/Linear_predictive_coding"&gt;linear predictive coding&lt;/a&gt; does a good job at temporal pattern recognition. I wrote a couple short scripts in MATLAB which do &lt;a href="http://byronknoll.com/binaryPrediction.m"&gt;binary prediction&lt;/a&gt; and play &lt;a href="http://byronknoll.com/RPS.m"&gt;rock paper scissors&lt;/a&gt;. The binary prediction seems to work better than the version I made using &lt;a href="http://byronknoll.com/pattern.html"&gt;neural networks&lt;/a&gt;. I think that the RPS AI also works better than the version I made using &lt;a href="http://byronknoll.com/rps.html"&gt;hierarchical temporal memory&lt;/a&gt;, although I haven't interfaced the two programs together yet to test them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6043879797452361736?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6043879797452361736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6043879797452361736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6043879797452361736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6043879797452361736'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/temporal-pattern-recognition.html' title='Temporal Pattern Recognition'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8853600003360478562</id><published>2009-11-10T01:45:00.004-08:00</published><updated>2009-11-10T01:50:16.792-08:00</updated><title type='text'>CTV</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/Svk2vb22J0I/AAAAAAAACk8/ocEmdSwiUkY/s1600-h/ctv.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 293px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/Svk2vb22J0I/AAAAAAAACk8/ocEmdSwiUkY/s400/ctv.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5402409416567170882" /&gt;&lt;/a&gt;A friend let me know that there was a clip of me on CTV. It was on a story about upgrading Vancouver's networking system for the Olympics. I was completely unaware that I had been filmed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8853600003360478562?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8853600003360478562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8853600003360478562' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8853600003360478562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8853600003360478562'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/ctv.html' title='CTV'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/Svk2vb22J0I/AAAAAAAACk8/ocEmdSwiUkY/s72-c/ctv.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3083095610632655419</id><published>2009-11-08T22:15:00.001-08:00</published><updated>2009-11-08T22:18:07.523-08:00</updated><title type='text'>Genetics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/SvezjBGrrII/AAAAAAAACk0/NPprrxxN7rk/s1600-h/genetics.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/SvezjBGrrII/AAAAAAAACk0/NPprrxxN7rk/s400/genetics.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5401983692227456130" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3083095610632655419?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3083095610632655419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3083095610632655419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3083095610632655419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3083095610632655419'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/genetics.html' title='Genetics'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/SvezjBGrrII/AAAAAAAACk0/NPprrxxN7rk/s72-c/genetics.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-901219354831488430</id><published>2009-11-08T21:35:00.004-08:00</published><updated>2009-11-08T21:57:18.914-08:00</updated><title type='text'>Rock Paper Scissors</title><content type='html'>I have released a &lt;a href="http://people.cs.ubc.ca/~knoll/rps.html"&gt;rock paper scissors&lt;/a&gt; (RPS) AI on my homepage. It was made using &lt;a href="http://en.wikipedia.org/wiki/Hierarchical_temporal_memory"&gt;hierarchical temporal memory&lt;/a&gt;. RPS is a great domain to test temporal pattern recognition, so I am somewhat disappointed how poorly my AI does. Some people may be surprised that there is any strategy involved in RPS. After all, an AI which just outputs random moves will win 50% of the time. Humans are terrible at being random, so its not hard for an AI to win against people. When competing AI against AI, superior strategies can be determined based on their performance against a large number of opponents. This allows some AIs to get much better results than ones which just output random moves.&lt;br /&gt;&lt;br /&gt;I have become really interested in hierarchical temporal memory since starting grad school. My supervisor &lt;a href="http://people.cs.ubc.ca/~nando/"&gt;Nando&lt;/a&gt; said that this might be a topic I can pursue for my thesis. I think there are some pretty major flaws with the implementation by &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt;. I implemented my own version using backpropagation neural networks. So far I have tested it in three applications (binary input prediction, handwritten digit recognition, and RPS). The results haven't been great. Next I plan on comparing it directly to NuPIC on their standard datasets. Hopefully my implementation does better! If so, this would be a great thesis topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-901219354831488430?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/901219354831488430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=901219354831488430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/901219354831488430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/901219354831488430'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/rock-paper-scissors.html' title='Rock Paper Scissors'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4001808317727889079</id><published>2009-11-07T22:03:00.006-08:00</published><updated>2009-11-07T22:26:28.522-08:00</updated><title type='text'>2009 Pacific Northwest Contest</title><content type='html'>Today was the ACM ICPC regional programming contest. &lt;a href="http://130.86.76.240/pacnw09s/index.html"&gt;Here&lt;/a&gt; is the final scoreboard:&lt;br /&gt;&lt;br /&gt;UBC^ got first place.&lt;br /&gt;Stanford got second and third place.&lt;br /&gt;UVic got fourth place.&lt;br /&gt;UBC+ got 10th place.&lt;br /&gt;UBC* got 15th place.&lt;br /&gt;&lt;br /&gt;There were 77 teams competing. I was on UBC*. In theory UBC* was supposed to do better than UBC+. They lucked out because one of their members knew a &lt;a href="http://en.wikipedia.org/wiki/Kirchhoff%27s_theorem"&gt;specific algorithm&lt;/a&gt; from a graph theory course which allowed them to solve a very difficult problem (which only two teams solved). Our team did really well on time, but we got completely stuck once we reached five problems. In fact, we were in first place when we got to five problems. There were two or three additional problems which were definitely solvable, but unfortunately we didn't finish them in time :(.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4001808317727889079?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4001808317727889079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4001808317727889079' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4001808317727889079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4001808317727889079'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/2009-pacific-northwest-contest.html' title='2009 Pacific Northwest Contest'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-6814762129196108785</id><published>2009-11-06T23:21:00.003-08:00</published><updated>2009-11-06T23:22:48.249-08:00</updated><title type='text'>Nort</title><content type='html'>I have released another Java game called &lt;a href="http://people.cs.ubc.ca/~knoll/nort.html"&gt;Nort&lt;/a&gt;. This is a two player game based on &lt;a href="http://en.wikipedia.org/wiki/Tron_%28video_game%29"&gt;Tron&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-6814762129196108785?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/6814762129196108785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=6814762129196108785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6814762129196108785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/6814762129196108785'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/nort.html' title='Nort'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5865046987344656012</id><published>2009-11-01T01:28:00.004-07:00</published><updated>2009-11-01T01:40:37.685-08:00</updated><title type='text'>Soku</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/Su1Vw2qYcyI/AAAAAAAACks/nxT32amobtg/s1600-h/soku.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/Su1Vw2qYcyI/AAAAAAAACks/nxT32amobtg/s400/soku.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5399065826082452258" /&gt;&lt;/a&gt;Today I made a game called Soku using Java (you can play it &lt;a href="http://byronknoll.com/soku.html"&gt;here&lt;/a&gt;). It is a remake of a &lt;a href="http://byronknoll.com/Soku.exe"&gt;game I made in high school&lt;/a&gt;. I think it is the best of the three Java games I have made so far (the other two being &lt;a href="http://byronknoll.com/ping.html"&gt;Ping&lt;/a&gt; and &lt;a href="http://byronknoll.com/swarm.html"&gt;Swarm&lt;/a&gt;). Ping is also a remake of a &lt;a href="http://byronknoll.com/Ping.exe"&gt;game I made in high school&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5865046987344656012?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5865046987344656012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5865046987344656012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5865046987344656012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5865046987344656012'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/11/soku.html' title='Soku'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/Su1Vw2qYcyI/AAAAAAAACks/nxT32amobtg/s72-c/soku.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-4866419214814367020</id><published>2009-08-22T21:13:00.002-07:00</published><updated>2009-08-22T21:14:18.347-07:00</updated><title type='text'>Photo Crasher</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_a-PgUel6wY0/SpDCCtuDMQI/AAAAAAAACjE/i7luXeDaTKM/s1600-h/photo-crasher.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://4.bp.blogspot.com/_a-PgUel6wY0/SpDCCtuDMQI/AAAAAAAACjE/i7luXeDaTKM/s400/photo-crasher.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5373007707341271298" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-4866419214814367020?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/4866419214814367020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=4866419214814367020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4866419214814367020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/4866419214814367020'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/08/photo-crasher.html' title='Photo Crasher'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_a-PgUel6wY0/SpDCCtuDMQI/AAAAAAAACjE/i7luXeDaTKM/s72-c/photo-crasher.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3580122306042667587</id><published>2009-08-10T18:46:00.004-07:00</published><updated>2009-08-10T18:53:12.106-07:00</updated><title type='text'>Circles</title><content type='html'>Two perfectly round circles:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/SoDNiNvMPEI/AAAAAAAACik/sJwZ4x86U1s/s1600-h/two.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/SoDNiNvMPEI/AAAAAAAACik/sJwZ4x86U1s/s400/two.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5368516743512472642" /&gt;&lt;/a&gt;&lt;br /&gt;Four perfectly round circles:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_a-PgUel6wY0/SoDNdoMqHnI/AAAAAAAACic/ToCPgMyUynI/s1600-h/four.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 398px;" src="http://3.bp.blogspot.com/_a-PgUel6wY0/SoDNdoMqHnI/AAAAAAAACic/ToCPgMyUynI/s400/four.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5368516664716041842" /&gt;&lt;/a&gt;&lt;p style="font-size:xx-small;"&gt;my brain hurts.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3580122306042667587?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3580122306042667587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3580122306042667587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3580122306042667587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3580122306042667587'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/08/circles.html' title='Circles'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_a-PgUel6wY0/SoDNiNvMPEI/AAAAAAAACik/sJwZ4x86U1s/s72-c/two.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-3566935317016422692</id><published>2009-08-10T18:26:00.001-07:00</published><updated>2009-08-10T18:28:05.797-07:00</updated><title type='text'>Time Stop Version 1.0</title><content type='html'>I just released version 1.0 of &lt;a href="https://sourceforge.net/projects/time-stop/"&gt;Time Stop&lt;/a&gt;. This version has eight levels. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-3566935317016422692?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/3566935317016422692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=3566935317016422692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3566935317016422692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/3566935317016422692'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/08/time-stop-version-10.html' title='Time Stop Version 1.0'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8053292953168700683</id><published>2009-08-05T19:44:00.004-07:00</published><updated>2009-08-05T19:53:11.301-07:00</updated><title type='text'>w00t</title><content type='html'>My computer is finally working. After letting it &lt;a href="http://byronknoll.blogspot.com/2009/07/blargh.html"&gt;dry&lt;/a&gt; for a couple days, I finished replacing the motherboard. Unfortunately this didn't fix any problems. I bought a nice new 1TB drive from &lt;a href="http://ncix.com/"&gt;NCIX&lt;/a&gt; which finally got my computer working. I guess the other symptoms I saw might have been due to a corrupt Ubuntu live CD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8053292953168700683?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8053292953168700683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8053292953168700683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8053292953168700683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8053292953168700683'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/08/w00t.html' title='w00t'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1667783250666609973</id><published>2009-07-29T20:00:00.003-07:00</published><updated>2009-07-29T23:28:15.423-07:00</updated><title type='text'>Blargh</title><content type='html'>My computer has been broken for the last month. Today my new motherboard &lt;span style="font-style:italic;"&gt;finally&lt;/span&gt; arrived. I decided to replace the motherboard on a picnic table outside because a) I wanted to clean my case without filling the room with dust and b) my room is too hot (it is currently 33°C outside and much warmer inside). I had a friend help me replace the components. Everything was going well until about half way through the process. Right when the computer was completely disassembled and parts were lying all over the picnic table, water starts flying at me from all directions simultaneously. Apparently the picnic table is positioned perfectly between at least three high-flow sprinklers. This was a terrifying experience since I know that water and computers do not mix well. It took several trips to get all the components out of range, so a few pieces got thoroughly soaked. I am going to leave the desktop disassembled and let it dry overnight. Hopefully the sprinklers did not destroy my computer :'(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1667783250666609973?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1667783250666609973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1667783250666609973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1667783250666609973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1667783250666609973'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/07/blargh.html' title='Blargh'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-5544838611466426332</id><published>2009-07-26T21:53:00.003-07:00</published><updated>2009-07-26T22:28:47.476-07:00</updated><title type='text'>Netflix Prize</title><content type='html'>The &lt;a href="http://www.netflixprize.com/"&gt;Netflix Prize&lt;/a&gt; contest is officially over. One month ago &lt;a href="http://www.research.att.com/~volinsky/netflix/bpc.html"&gt;BellKor's Pragmatic Chaos&lt;/a&gt; made a submission with a 10.05% improvement over Cinematch. The contest ends 30 days after any submission over 10%. Yesterday a new team called &lt;a href="http://www.the-ensemble.com/"&gt;The Ensemble&lt;/a&gt; made a submission at 10.09% accuracy (a 0.01% improvement over BellKor's Pragmatic Chaos). Today, 24 minutes before the contest finished BellKor's Pragmatic Chaos made a submission of 10.09%. Four minutes before the end The Ensemble made their final submission with a 10.10% improvement. Both of these teams were actually a combination of many smaller teams. In the end the key to victory was combining the results of a myriad of different algorithms/approaches.&lt;br /&gt;&lt;br /&gt;Now that the Netflix Prize has finished I will start focusing on a new contest ☺. &lt;a href="http://en.wikipedia.org/wiki/Eternity_II_puzzle"&gt;Eternity II&lt;/a&gt; is a puzzle with a two million dollar prize. I have written a solver using stochastic local search. My solution currently has a score of 437 out of 480. Last year the highest score was 467 (with a $10,000 prize).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-5544838611466426332?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/5544838611466426332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=5544838611466426332' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5544838611466426332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/5544838611466426332'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/07/netflix-prize.html' title='Netflix Prize'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-8345534569070170005</id><published>2009-07-19T19:46:00.002-07:00</published><updated>2009-07-19T20:06:28.299-07:00</updated><title type='text'>Rhythm Recognition</title><content type='html'>I just posted a &lt;a href="http://www.cs.ubc.ca/~knoll/rhythm.html"&gt;new applet&lt;/a&gt; on my website which can learn simple rhythms. The rhythms are input by clicking on a button. I plan on creating a few more applets which demonstrate some of the things temporal pattern recognition can be used for. &lt;br /&gt;&lt;br /&gt;I actually think that temporal pattern recognition can be used for &lt;span style="font-style:italic;"&gt;any&lt;/span&gt; task which requires intelligence. Intelligence is equivalent to the ability to recognize and predict patterns. The only reason that we haven't created intelligent AI is because pattern recognition is a difficult problem. Since the code I am using to recognize patterns is terrible compared to what most animals can accomplish, my demos will have to be constrained to relatively simple problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-8345534569070170005?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/8345534569070170005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=8345534569070170005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8345534569070170005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/8345534569070170005'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/07/rhythm-recognition.html' title='Rhythm Recognition'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21734860.post-1544864197654909317</id><published>2009-07-16T10:24:00.000-07:00</published><updated>2009-07-16T10:25:34.923-07:00</updated><title type='text'>Low Ink</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_a-PgUel6wY0/Sl9icuk5IAI/AAAAAAAACh8/2IxUfuhUWDE/s1600-h/Low_Ink_t_shirt_by_Nocturnal_Devil.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 317px; height: 400px;" src="http://1.bp.blogspot.com/_a-PgUel6wY0/Sl9icuk5IAI/AAAAAAAACh8/2IxUfuhUWDE/s400/Low_Ink_t_shirt_by_Nocturnal_Devil.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5359110327272808450" /&gt;&lt;/a&gt;&lt;br /&gt;[&lt;a href="http://nocturnal-devil.deviantart.com/art/Low-Ink-t-shirt-125038122"&gt;link&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21734860-1544864197654909317?l=byronknoll.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://byronknoll.blogspot.com/feeds/1544864197654909317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21734860&amp;postID=1544864197654909317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1544864197654909317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21734860/posts/default/1544864197654909317'/><link rel='alternate' type='text/html' href='http://byronknoll.blogspot.com/2009/07/low-ink.html' title='Low Ink'/><author><name>Byron Knoll</name><uri>https://profiles.google.com/115222167450521446250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-33cGXEcKkf4/AAAAAAAAAAI/AAAAAAAADyA/qOjeD1ucOvo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_a-PgUel6wY0/Sl9icuk5IAI/AAAAAAAACh8/2IxUfuhUWDE/s72-c/Low_Ink_t_shirt_by_Nocturnal_Devil.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
