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

<channel>
	<title>Neil Dickson's Blog &#187; General</title>
	<atom:link href="http://ndickson.wordpress.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://ndickson.wordpress.com</link>
	<description>Inventor IDE, PwnOS, and most everything else I'm up to</description>
	<lastBuildDate>Thu, 09 Jul 2009 08:28:16 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/39425d5e6fd805e583ea209d05d9fdf7?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Neil Dickson's Blog &#187; General</title>
		<link>http://ndickson.wordpress.com</link>
	</image>
			<item>
		<title>Computer *Science* &#8220;Research&#8221;</title>
		<link>http://ndickson.wordpress.com/2009/05/12/computer-science-research/</link>
		<comments>http://ndickson.wordpress.com/2009/05/12/computer-science-research/#comments</comments>
		<pubDate>Tue, 12 May 2009 10:22:25 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[Carleton]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=141</guid>
		<description><![CDATA[I don&#8217;t want people to think that I&#8217;m just some academic hating on companies from an ivory tower in my last post, because at the moment, I blame academia about as much as companies for the lack of innovation for a very different set of reasons.  My apologies for another ranty, depressing post, but I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=141&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I don&#8217;t want people to think that I&#8217;m just some academic hating on companies from an ivory tower in my last post, because at the moment, I blame academia about as much as companies for the lack of innovation for a very different set of reasons.  My apologies for another ranty, depressing post, but I need to let off some steam after the latest encounter with my honours project supervisor.  I&#8217;d like to share an anecdote about one of my roommates when I was at Microsoft.</p>
<p>Joey Jo-jo Junior Shabadoo (fake name at the request of the real guy) is a PhD student (or postdoc, I can&#8217;t recall) in Sweden, specializing in <a href="http://en.wikipedia.org/wiki/Wireless_Sensor_Networks">wireless sensor networks</a> (WSN), and he was in a team at Microsoft Research, developing what sounded like a software toolkit for WSN.  Everybody on his team had a PhD.   There&#8217;s just one problem: PhD computer science researchers in North America aren&#8217;t required to know anything about software, or even computers&#8230; or even science, whereas PhD computer science researchers in Sweden are still required to know how to develop software, since how else could you really determine whether a hypothesis makes sense?  Why is this a problem?</p>
<p>He was the <em><strong>only</strong></em> person on his team who had actually developed much software in recent history.  There was code by his team when he got to Redmond, but all of it was a mess, a much of it was untested, and as it turned out much later, what little of it was tested had faulty tests.  Worse yet, his team hadn&#8217;t decided what hardware they&#8217;d be using yet, and somehow they had code written for some unknown hardware.  When they eventually determined what hardware they&#8217;d use, much of the code no longer made any sense.</p>
<p>Joey was pretty angry about all this, and if you knew him, you&#8217;d know that&#8217;s saying a lot, since he&#8217;s such a light-hearted, fun character.  Moreover, he was determined to get this stuff working.  This guy worked his ass off to pick up the slack for his team.  I&#8217;m talking 10 hours Monday through Friday and 8 hours Saturday and Sunday.  He once worked 12 hours on one Saturday or Sunday to try to fix a bug that turned out to be because a message passing function that was supposedly tested had never been tested with an odd number of bytes, and it failed much of the time when a message had an odd number of bytes.  And no, he was not getting paid for overtime.  By the end of it, he was on the verge of giving up on computer science entirely, and he sounded pretty depressed.  I don&#8217;t blame him; I would&#8217;ve quit or killed myself, since it sounded as bad or worse than <a href="http://ndickson.wordpress.com/2008/08/01/research-in-motion-maintenance-in-stagnation/">my experience at RIM the term before</a>.  I hope he&#8217;s doing well, wherever he is now, and I&#8217;ll send him a link to this to check that I&#8217;ve told the story correctly.</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/Scientific_method">Scientific method</a> refers to bodies of techniques for investigating phenomena, acquiring new knowledge, or correcting and integrating previous knowledge. To be termed scientific, a method of inquiry must be based on gathering observable, empirical and measurable evidence subject to specific principles of reasoning. A scientific method consists of the collection of data through observation and experimentation, and the formulation and testing of hypotheses.</p></blockquote>
<p>The above is from Wikipedia.  What does it have to do with the story or my distaste for the state of computer science research (in North America)?  We&#8217;ve completely lost the science in computer science.  There is not a single computer science course I&#8217;ve taken or heard of that actually shows anything that would come close to meeting the above definition of scientific.  We don&#8217;t make hypotheses and test them in any courses, we&#8217;re just told to come up with something that does X, often just on paper.  In terms of computer science &#8220;researchers&#8221;, they appear to often just make hypotheses and publish them.  The &#8220;test&#8221; is whether other researchers accept them, but there&#8217;s no real testing of them, no measurements, no experiments, often no principles of reasoning or evidence.  Often when there is testing, it&#8217;s completely irrational, and is either very skewed in favour of those researchers or the tests indicate absolutely nothing.  Why?  Because we&#8217;re all implicitly taught that there&#8217;s no value in testing hypotheses, so they have no idea how to select tests or do systematic testing; they never see it in undergrad, and it evidently doesn&#8217;t get through in grad studies either.</p>
<p>I could give examples of this until I become ill, but I&#8217;ll just give three very different ones:</p>
<ul>
<li><a href="http://portal.acm.org/citation.cfm?id=1105760.1105800&amp;coll=portal&amp;dl=ACM&amp;type=series&amp;idx=SERIES371&amp;part=series&amp;WantType=Proceedings&amp;title=SC&amp;CFID=33541981&amp;CFTOKEN=50518735">Here&#8217;s a paper that claims that OpenMP makes for faster code and is easier to use than MPI for parallelizing.</a> Their testing: get students to use OpenMP on a single computer (which is what it&#8217;s designed for) and get students to use MPI across multiple computers (which is what it&#8217;s designed for) with the same total number of CPU cores; time the students and their code.  If you&#8217;ve done anything with parallel computing, it&#8217;s pretty easy to come up with a correct hypothesis about this experiment.  They neglect to mention that the numbers are completely uncomparable.  One is using several threads on a single computer using shared memory (fast) to communicate implicity (easy), but doesn&#8217;t scale up past one machine (since it isn&#8217;t designed to); the other is using several processes spread across computers using a network (slow) to communicate explicitly (harder), but scales to hundreds of thousands of machines.  Of course OpenMP will be faster and easier to use in their small-scale test case!  If it wasn&#8217;t, it&#8217;d be a complete failure on the part of OpenMP!</li>
<li><a href="http://arxiv.org/PS_cache/cs/pdf/0701/0701023v1.pdf">Here&#8217;s a paper that &#8220;proves&#8221; that P=NP.</a> It took about 5 minutes for me to find a counter-example.  <a href="http://arxiv.org/PS_cache/cs/pdf/0701/0701033v1.pdf">Other people found counterexamples too</a>.  So, the author made <a href="http://arxiv.org/PS_cache/cs/pdf/0701/0701023v4.pdf">a completely new algorithm</a> and claimed that it &#8220;proves&#8221; that P=NP.  I implemented it, picked an arbitrary 10-variable example I found, and it got the wrong answer; <a href="http://arxiv.org/PS_cache/arxiv/pdf/0804/0804.2699v1.pdf">others have too</a>.  He&#8217;s made <a href="http://arxiv.org/PS_cache/cs/pdf/0610/0610042v3.pdf">other algorithms for P=NP</a> that <a href="http://arxiv.org/ftp/cs/papers/0610/0610125.pdf">have been disproven as well</a>.  I was sad to learn that as of recently, <a href="http://rjlipton.wordpress.com/2009/02/13/algorithms-tiny-yet-powerful/#comments">the author <strong><em>still</em></strong> thinks that his algorithms prove that P=NP</a>.  This is a simple matter of that he doesn&#8217;t test his work at all, and leaves it to others to prove him wrong.  It&#8217;s taking &#8220;innocent [of academic fraud] until proven guilty [of academic fraud in every paper]&#8221; to the extreme.</li>
<li><a href="http://arxiv.org/PS_cache/arxiv/pdf/0812/0812.4973v1.pdf">Here&#8217;s one that I wrote myself on jump encoding.</a> <em><strong>Yes, I&#8217;m even willing to bash my own work.</strong></em> It turns out that the statement of assumptions in the abstract is wrong.  It&#8217;s true that it the algorithm isn&#8217;t always space-optimal if an array is declared with a size dependent on the negative of the number of bytes in a section of code, but it&#8217;s also not always space-optimal if people put in preprocessor statements that exclude things based on the size of code.  Of course, it turns out that then it&#8217;s NP-complete just to determine whether there&#8217;s a way to include/exclude code such that no paradoxes occur (e.g. if this code is included, exclude it, and if this code is excluded, include it).  That&#8217;s why assemblers restrict what you can and can&#8217;t do with symbol references, but it is possible to construct some case where the algorithm isn&#8217;t space optimal without running into those restrictions on some assemblers.  I just happen not to care about those cases, since they&#8217;re ridiculous, and not supported by Inventor IDE (they&#8217;re hard enough to support at all, let alone being space-optimal).<br />
What&#8217;s really missing from this paper, other than a formal proof of correctness, is any sort of empirical check of correctness or performance analysis, since I hadn&#8217;t even implemented it yet.  <a title="resolveJumps" href="http://code.google.com/p/pwnide/source/browse/trunk/Base/lang/Encoder.java?r=180#503">The eventual implementation is fairly similar to what&#8217;s described</a>, and it does check out empirically with the testing I&#8217;ve done, but I still haven&#8217;t done any performance testing to see whether it actually runs any faster in practice than the worst-case O(n^2) algorithms that are a bit simpler.  A few people pointed out quite rightly that a very simple O(n^2) algorithm could likely beat the crap out of this O(n) algorithm, which I neglected to state in the paper.  Hopefully I&#8217;ll get a chance to check that once a friend of mine has finished making the next big feature of Inventor IDE, since it&#8217;ll help a ton.  Maybe I&#8217;ll post a new version then.</li>
</ul>
<p>In order to move forward as a field, we absolutely need a course that teaches <em><strong>some</strong></em> form of experiment design and systematic testing, even performance testing.  I don&#8217;t mean garbage like the QA courses I&#8217;ve heard of, I mean real testing for things that are really worth testing.  There was only one assignment I&#8217;ve ever had (assignment #1 of COMP 2402) where we measured the actual time of a piece of code, and it was a toy example with only 5 data points.  I find that outrageous and unacceptable.</p>
<p>In relation to innovation, the academic world is so full of useless papers that finding anything useful in some fields can be a life&#8217;s work.  How can people possibly innovate when they can&#8217;t find out what&#8217;s actually useful and what&#8217;s just empty hypothesis?</p>
<p>I haven&#8217;t even touched on the problem that so much research is doen for the sake of &#8220;wouldn&#8217;t it be cool if ____&#8221; (the answer is no, by the way) or &#8220;this is popular, so it must be important&#8221;.  Researchers are often so separated from the real world that they honestly don&#8217;t even realize that most papers will probably never help anyone.  It reminds me of how a few weeks ago, some lawyers tried to convince me that most users actually read and understand the legal agreements on software.  *sigh*  <img src='http://s.wordpress.com/wp-includes/images/smilies/face-sad.png' alt=':(' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=141&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2009/05/12/computer-science-research/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Companies Don&#8217;t Innovate</title>
		<link>http://ndickson.wordpress.com/2009/05/08/why-companies-dont-innovate/</link>
		<comments>http://ndickson.wordpress.com/2009/05/08/why-companies-dont-innovate/#comments</comments>
		<pubDate>Fri, 08 May 2009 07:43:48 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=138</guid>
		<description><![CDATA[The short answer is that &#8220;the market&#8221; is so focused on very-short-term results and completely oblivious to long-term results that executives are pressured into ignoring research &#38; development, instead focusing on sales, marketing, and worst of all, support, of their existing, inadequate technology.
The most absurd version of this extremely dangerous short-term vision that I&#8217;ve seen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=138&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The short answer is that &#8220;the market&#8221; is so focused on very-short-term results and completely oblivious to long-term results that executives are pressured into ignoring research &amp; development, instead focusing on sales, marketing, and worst of all, support, of their existing, inadequate technology.</p>
<p>The most absurd version of this extremely dangerous short-term vision that I&#8217;ve seen is <a href="http://en.wikipedia.org/wiki/Kevin_O%27Leary_(entrepreneur)">Kevin O&#8217;Leary</a>, prominent venture capitalist, who&#8217;s frequently said sentences like &#8220;Every day, I want to go to bed richer than when I woke up&#8221; (forgive me if that&#8217;s not a perfect quotation), and on Squeeze Play (a show on BNN) tried to argue that <em><strong>all</strong></em> U.S. bailout money should have gone directly to tax cuts for the biggest corporate executives.  Why?  Because in the short term, he&#8217;d make more money.  Never mind that in the long term, the consumers would be broke, businesses would then be dropping like flies, and he&#8217;d be sunk, blaming it on everyone but himself.  It&#8217;s this kind of short-sighted attitude that makes me want to never give him any control in Code Cortex or any other business I might start.</p>
<p>Anyway, that&#8217;s of course not the entire story.  The key realization that many executives seem to have had (if only subconciously) is that it&#8217;s cheaper to just market what already exists than to make something new and market it.  There are three main reasons that this is technically true: 1) developing something new costs money, whereas not developing anything new doesn&#8217;t; 2) it&#8217;s generally easier to market something that already exists than something new, because the customers already partly understand it, even if the something new is a significant improvement over what&#8217;s already there; and 3) trying something new might not work, whereas doing the same thing that worked before will probably continue to work for long enough to make more money from it.</p>
<p>This is clearly the approach that Visual Studio, or more specifically, Visual C++ is taking, i.e. put out the same product for 12 years, only updating the version number and a few icons.  Quite frankly, they have no excuse, because a 3rd-party company, <a href="http://www.wholetomato.com/">Whole Tomato</a>, has made a <em><strong>plugin</strong></em> called Visual Assist X that fixes many of the design flaws of Visual C++, and includes a few critical features that Visual C++ just neglected to bother including.  It&#8217;s this kind of negligence that has led to a big chunk of Microsoft not using Visual Studio, their own product, for development, instead using 3rd-party programs like <a href="http://www.sourceinsight.com/">Source Insight</a>.  For the record, I find that Source Insight is only marginally better than Visual C++, partly because their default UI is analogous to puking text of all sizes and styles all over the screen&#8230; if you replace &#8220;is analogous to&#8221; with &#8220;looks exactly like&#8221;.  Their UI was actually a big wakeup call for me as far as what NOT to include in <a href="http://www.codecortex.com/ide/">Inventor IDE</a>.  Some people also swear by Eclipse CDT, but I&#8217;ve never been able to get it to find either GCC or the Microsoft C compiler in order to compile.  Anyway, enough ranting about my discontent with existing IDEs and back to the topic at hand.</p>
<p>The case of Visual C++ at least shows that if you choose not to innovate for long enough, your customers will eventually leave you.  However, there&#8217;s another side to pushing marketing &amp; sales instead of innovation, and its perhaps best exemplified by the housing and auto industries as of late.  The focus is so much on that of short-term sales that they&#8217;ve completely saturated the market.  Everyone who wanted a car had a car, and everyone who wanted a house had a house, so sales plummet to much less than the steady-state sales (e.g. sales from new home buyers plus sales from people whose houses are being destroyed).  Why would they try to push sales beyond the maximum steady-state sales?  It&#8217;s fairly obvious that doing this will cause sales to plummet as soon as the market comes anywhere close to saturation, but their concern is that steady-state sales don&#8217;t increase (or at least not much faster than the rate of population increase).  The market has brainwashed them to think that it&#8217;s a failure if sales stay constant, so they push sales as much as possible until they explode.</p>
<p>Notice that there&#8217;s no mention of innovation in this scheme.  Many have said that the reason that the car companies have failed is that they haven&#8217;t researched or developed any environmentally friendly vehicles, and I partly agree, but think that the problem is more fundamental then that.  The vehicles available from major manufacturers are effectively <em><strong>identical</strong></em> to those from 30 years ago.  Maybe a few minor changes have occurred, such as different &#8220;decoration&#8221; on the outside and inclusion of computer systems in some vehicles, but there&#8217;s nothing innovative about them whatsoever.  The manufacturers are so blinded by pushing sales of things we don&#8217;t want down are throats, that they just never realized that we didn&#8217;t want what they&#8217;re making.  To put it bluntly, the last time I wanted a &#8220;tough truck&#8221; was when I was a 4-year-old, because I didn&#8217;t realize that I didn&#8217;t have a practical use for one; somehow I don&#8217;t think that they&#8217;re trying to target the 4-year-old child market.  For Ford&#8217;s sake!  Stop trying to sell us &#8220;tough trucks&#8221;!</p>
<p>This brings me to a related lack of innovation, and its one that really hits home for me.  In the fall, I took the Distributed Operating Systems course at Carleton, and <a href="http://homeostasis.scs.carleton.ca/~soma/distos/fall2008/alto.pdf">one of the first papers we read was on the Xerox Alto</a> computer built between 1973 and 1979.  The most shocking thing about this paper is that if you changed just the numbers in the paper, the computer it describes could, for the most part, describe a modern-day computer.  They had full graphical displays, keyboard &amp; mouse, 3Mbps Ethernet, tablet devices, printers &amp; scanners.  Heck, I can&#8217;t even get a <em><strong>real</strong></em> 3Mbps from my ISP on a modern computer.  In terms of software, they describe anti-aliasing, font rasterization, even using the computers to make an &#8220;internetwork&#8221; system, joining networks of computers using some of the same protocols we use today.  It&#8217;s amazing that they were able to do so much back in the 1970&#8217;s, but it&#8217;s equally amazing that we haven&#8217;t got anything better 30 years later (apart from pumping up the numbers and technology becoming more mobile).  It&#8217;s not for that there haven&#8217;t been good ideas, it&#8217;s that they&#8217;ve all been shot down as not marketable enough in the short term, and for that, we&#8217;re all stuck with what we&#8217;ve got.  All along the way, there&#8217;ve been big companies promising big innovations, and then quietly never delivering.  Remember back in the year 2000, when several big companies were announcing that they had paper-thin, flexible displays already in development?  They keep hoping that you don&#8217;t remember, because its cheaper for them if the consumers want less, and they&#8217;ll do anything to keep it that way.</p>
<p>I&#8217;ll finish by saying that even though I&#8217;m incorporating Code Cortex shortly, I honestly don&#8217;t give a crap about making a company.  I care about changing the world for the better, and if I can&#8217;t do that as a company, I&#8217;ll do it some other way.  So, to all those out there who say that I&#8217;m an idiot because I don&#8217;t have a solid enough business model to get rich quick, I say that you don&#8217;t have a solid enough vision of the future of computation, let alone the future of humanity.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=138&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2009/05/08/why-companies-dont-innovate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Bullying is Legally Torture</title>
		<link>http://ndickson.wordpress.com/2009/02/07/bullying-is-legally-torture/</link>
		<comments>http://ndickson.wordpress.com/2009/02/07/bullying-is-legally-torture/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 18:53:56 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bullying]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=107</guid>
		<description><![CDATA[Having been bullied until about grade 9, I&#8217;ve been beaten up a few hundred times before, and verbally denigrated many more times.  You might wonder why I (among others) just let them do this to me so many times, since I certainly could have fought back.  It was in fact for two main reasons:

The school [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=107&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Having been bullied until about grade 9, I&#8217;ve been beaten up a few hundred times before, and verbally denigrated <em>many</em> more times.  You might wonder why I (among others) just let them do this to me so many times, since I certainly could have fought back.  It was in fact for two main reasons:</p>
<ol>
<li>The school chose not to believe that it was happening so that they kept the illusion of safety in their schoolyard.</li>
<li>Whenever a victim of bullying fights back, any mainstream media <em>always</em> (at least all of the many cases I&#8217;ve seen) depict the bullies as innocent victims, and the true victim has criminal charges pressed against him.</li>
</ol>
<p>The second was actually also reflected in my school&#8217;s handling of bullying, because as soon as anyone being bullied fights back, the bullies make sure that the fight gets noticed, and because it is one-versus-many, the one is believed to be the sole cause as suggested by the preconceived notion of a relatively safe schoolyard.  I was once punished for merely pushing away the people punching and kicking me; they were not punished.  As such, the school administration becomes yet another series of bullies beating upon the will of the victims.</p>
<p>For me, I&#8217;ve gotten over being bullied for the most part, so I really don&#8217;t want any sympathy; what I would like is for the school system to change such that bullying is seen as what it actually is: torture against millions of the world&#8217;s students, disproportionately many of which are top students.</p>
<p>I started thinking about this again due to a series of things reminding me of it.  One was <a href="http://network.nationalpost.com/np/blogs/toronto/archive/2009/02/06/237614.aspx">a recent new story</a>, among <em>many</em> similar earlier incidents, in which a grade 7 student brought an unloaded gun to class and pointed it at the students who had bullied him, before dropping it and crying.  This could have been me in grade 7 or 8 if I had easy access to a gun.  This boy now has criminal charges against him.  The worst part of the entire story is the principal&#8217;s comment on the situation:</p>
<blockquote><p>‘‘I would like to thank our students and staff for the way they handled the situation. It was a difficult morning and everyone remained calm and poised throughout.’’</p>
<p>- Amelia Dennis, Principal</p></blockquote>
<p>Personally, I would like to heavily reprimand the students and staff for the way they handled the situation.  Moreover, according to the <a href="http://www.unhchr.ch/html/menu3/b/h_cat39.htm">UN Convention against Torture and Other Cruel, Inhuman or Degrading Treatment or Punishment</a>, the teacher, principal, and bullies should have criminal charges laid against them, as I&#8217;ll explain.  This convention defines torture as:</p>
<blockquote><p>any act by          which severe pain or suffering, whether physical or mental, is          intentionally inflicted on a person for such purposes as &#8230; intimidating or coercing him or a third person, or for any          reason based on discrimination of any kind, when such pain or suffering          is inflicted by or at the instigation of or with the consent or          acquiescence of a public official or other person acting in an official          capacity [e.g. teacher or principal].</p>
<p>- Article 1.1 of the UN Convention Against Torture<span style="font-family:Verdana,Arial,Helvetica,sans-serif;font-size:x-small;"><br />
</span></p></blockquote>
<p>I saw this earlier today in an old <a href="http://www.ted.com/">TEDTalk</a>, and although they were talking about torture of civilians by soldiers in Uganda, I immediately saw how it also  applies to the roughly <a title="Bullying Statistics" href="http://www.bullyhelp.org/statistics.html">&#8220;1 out of 4 kids [who are] bullied&#8221;</a> in developed countries.  So what should be done about this torture?</p>
<blockquote><p>Each State Party shall take effective legislative, administrative, judicial or other measures to prevent acts of torture in any territory under its jurisdiction.</p>
<p>- Article 2.1 of the UN Convention Against Torture</p></blockquote>
<blockquote><p>Each State Party shall ensure that all acts of torture are offences under its criminal law. The same shall apply to an attempt to commit torture and to an act by any person which constitutes complicity or participation in torture.</p>
<p>- Article 4.1 of the UN Convention Against Torture</p></blockquote>
<blockquote><p>Each State Party shall make these offences punishable by appropriate penalties which take into account their grave nature.</p>
<p>- Article 4.2 of the UN Convention Against Torture</p></blockquote>
<p>That seems to make it awfully clear that torture such as bullying is not to be brushed under the rug as it has been in Canada and the United States, and it even explicitly states that it must be a criminal offence not just to bully, but to be complicit in bullying, as applies to many by-stander students, teachers, and principals.   The question then is <em>why</em>?  Why is bullying ignored until previously-good kids bring guns to school?  I thought of a few reasons, none of which actually justify the complacency:</p>
<ul>
<li>It involves so many criminal students that the current justice system couldn&#8217;t deal with it.</li>
<li>It involves so many victims that the current system of counsellors couldn&#8217;t deal with it.</li>
<li>School counsellors are not trained to deal with the issues of either bullies or victims, partly because the bullying is allowed to continue and partly because only the victims are considered to have problems needing counselling.  (Think of trying to fix a plumbing problem without turning off the water and assuming that the problem is with the faucet.)</li>
<li>Teachers, principals, and students who are not bullied are generally ignorant of the scale of the problem, because it would take extra effort to deal with the situation at hand.</li>
<li>Teachers and principals don&#8217;t want to admit that they&#8217;ve ignored so many cases of bullying, because it would make them look bad.</li>
<li>Bullies are considered a fact of growing up that we should just live with.</li>
<li>Teachers tell students throughout elementary school not to come forward with information on bullying.  This one I don&#8217;t understand at all, yet teachers tell students all the time not to &#8220;tattle&#8221; on students doing malicious things.  Maybe they secretly enjoy the suffering of children?</li>
<li>The media tell us that the bullies are innocent and the victims are criminals.</li>
</ul>
<p>We, as a society, can&#8217;t let this continue, or things will simply get worse until nearly all high-achieving students give up on excelling in school.  This may already be the case, as many students intentionally do worse in school to be socially accepted.  Those who don&#8217;t are then bullied until they&#8217;re so traumatized that they can&#8217;t excel.  The school system already fails to teach good students, and this just adds to the rejection of education as an important part of society.</p>
<p>I could go on and on about how I think the school system fails good students, but bullying is clearly and definitively criminal, and it <em>must</em> be treated that way.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=107&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2009/02/07/bullying-is-legally-torture/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m Disappointed in Ubuntu</title>
		<link>http://ndickson.wordpress.com/2009/01/28/im-disappointed-in-ubuntu/</link>
		<comments>http://ndickson.wordpress.com/2009/01/28/im-disappointed-in-ubuntu/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 01:05:19 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=99</guid>
		<description><![CDATA[I finally had a reason to install a linux distribution, and most people I know who use linux tell me that of all linux distributions, Ubuntu has the least painful installation and is the easiest to get the system working.  If that&#8217;s so, I dread ever having to use any other linux distribution, because even [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=99&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I finally had a reason to install a linux distribution, and most people I know who use linux tell me that of all linux distributions, Ubuntu has the least painful installation and is the easiest to get the system working.  If that&#8217;s so, I dread ever having to use any other linux distribution, because even Ubuntu&#8217;s setup is terrible.  Here&#8217;s a run-down of my encounter with setting up Ubuntu 8.10.</p>
<p>I boot my desktop into the install CD.  The first thing that screams &#8220;danger&#8221; at me is that the top third of the loading screen progress bar in the middle of the screen is duplicated in the lower right.  The duplicate occaisionally stops moving, then after a while, continues duplicating the &#8220;real&#8221; progress bar.  Then another piece of progress bar appears in the upper left, not moving.  I can forgive small rendering artefacts, but this is not small.  This is &#8220;I better turn off the computer before it installs software so broken onto my computer.&#8221;  Also, why does an installer need a loading screen in the first place?  It shouldn&#8217;t take the 2 minutes it did to read the core installer data from the CD, because the core installer data shouldn&#8217;t be more than a few KB.  It doesn&#8217;t need to read the entire CD into memory just to start the installer.</p>
<p>So I went through the basic install options and the installation, choosing to install it on my 2nd harddrive so that I don&#8217;t blow away Windows.  It tells me that it needs to reboot to finish, so I press OK.  The CD drive opens and the screen goes black.  I wait about 30 seconds before I start hitting random keys to see if it&#8217;s secretly waiting for me to hit something.  I give up about another 30 seconds later, wondering if they could really be so thick not to know that you just need to triple-fault the CPU to restart the computer.  Finally, a few seconds later, it closes the CD drive and restarts.  Is this some kind of sick joke?  Are you just trying to screw with your users, making them question your sanity or intelligence?  Just why?</p>
<p>It gets worse.  Then, I select to boot from the harddrive I installed it on, and I get a black screen with just the error message &#8220;Error Loading OS&#8221;.  I was just thinking &#8220;No, they couldn&#8217;t be so stupid that they wrote over the wrong Master Boot Record.&#8221;  I was wrong.  They were that stupid.  I boot from the harddrive that has Windows on it, and I get a menu letting me select which OS to boot from.  Well that&#8217;s all fine and dandy, <em><strong>unless I want to remove that harddrive</strong></em>&#8230; which I did, but I&#8217;ll leave it there for now.  The least they could&#8217;ve done is put the MBR on both drives.  If it makes them feel any better, which it shouldn&#8217;t, the version of Mandrake linux I installed 4 years ago did the same completely illogical thing.</p>
<p>Anyway, I select to boot from Ubuntu, and I get another loading screen with a rendering artefact to do with the progress bar, then a few seconds later, it crashes, stating that it can&#8217;t find a file in &#8220;/dev/disk/by-uuid&#8221;.  It sends me to a command prompt with no disk filesystem loaded, but I run &#8220;ls /dev/disk/by-uuid&#8221;, and sure enough, the file is right there.  I even made sure there was something in it by using &#8220;cat&#8221;, which spat out the content of the harddrive to the screen; kind of humourous, but it showed that it was definitely accessible, so Ubuntu was just messing with me again.</p>
<p>I restart again, select Ubuntu from the wrong harddrive again, and this time it boots successfully.  I log in.  It can&#8217;t find any networks.  After searching for a while, I find a Hardware Testing program that successfully identifies my wireless network card as a network device and the manufacturer and model number, but evidently the system has no idea how to use it.  I check online on my laptop, and sure enough Ubuntu has no support for my wireless card, even though somebody pointed it out to them over 3 years ago.  The forum thread recommends doing a few obscure, manual configuration changes that the victims don&#8217;t find successful, so someone suggests using Ndiswrapper.  Ndiswrapper apparently doesn&#8217;t work either until you do a bunch of extra configuration.</p>
<p>At this rate, it could take days to get it roughly working.  So much for their slogan &#8220;I do it with ubuntu.&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=99&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2009/01/28/im-disappointed-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Fourth Assembly Language Video Up</title>
		<link>http://ndickson.wordpress.com/2009/01/10/fourth-assembly-language-video-up/</link>
		<comments>http://ndickson.wordpress.com/2009/01/10/fourth-assembly-language-video-up/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 04:44:35 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[PwnIDE]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=95</guid>
		<description><![CDATA[The fourth video in the assembly language  tutorial, (episode 3, since real programmers number things from 0  ), is finally up.  I had some problems with the upload and conversion, mostly because 30-minute, 800&#215;600, losslessly-compressed videos are huge, but now it&#8217;s fine.  I&#8217;ll make shorter videos from now on, since it can be a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=95&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <a title="The Stack and Looking Back" href="http://showmedo.com/videos/video?name=3200030&amp;fromSeriesID=320">fourth video</a> in the <a title="Assembly Language Tutorial" href="http://showmedo.com/videos/series?id=320">assembly language  tutorial</a>, (episode 3, since real programmers number things from 0 <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' /> ), is finally up.  I had some problems with the upload and conversion, mostly because 30-minute, 800&#215;600, losslessly-compressed videos are huge, but now it&#8217;s fine.  I&#8217;ll make shorter videos from now on, since it can be a bit much to absorb in one sitting anyway.</p>
<p>On a completely different note, my friend, Ben, has produced a C++ version of the hypercube application that uses OpenGL, cutting the CPU use to around 2%.  I&#8217;ll post it eventually, but I&#8217;ve got a lot on my plate right now.  I should have some form of assembling and linking (probably not working correctly, but close) working in <a title="Inventor IDE" href="http://www.codecortex.com/ide/">Inventor IDE</a> by Monday.  I won&#8217;t release it until it&#8217;s stable, though, since that&#8217;s not the sort of thing you want to use until it&#8217;s rock solid.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=95&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2009/01/10/fourth-assembly-language-video-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Assembling Progress and a Paper</title>
		<link>http://ndickson.wordpress.com/2008/12/30/assembling-progress-and-a-paper/</link>
		<comments>http://ndickson.wordpress.com/2008/12/30/assembling-progress-and-a-paper/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 01:28:31 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[PwnIDE]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=85</guid>
		<description><![CDATA[I&#8217;ve been making lots of progress on assembling support for Inventor IDE in the past couple of weeks.  In particular, I&#8217;ve looked at what I&#8217;m calling the x86 jump encoding problem.  The only piece of literature I&#8217;ve found referring to this problem calls it branch displacement optimization, but it allows convoluted declarations that are never useful, making [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=85&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been making lots of progress on assembling support for <a title="Inventor IDE" href="http://www.codecortex.com/ide/">Inventor IDE</a> in the past couple of weeks.  In particular, I&#8217;ve looked at what I&#8217;m calling the x86 jump encoding problem.  <a title="Branch Displacement Optimization" href="http://coding.derkeiler.com/pdf/Archive/Assembler/alt.lang.asm/2006-11/msg00216.pdf">The only piece of literature</a> I&#8217;ve found referring to this problem calls it branch displacement optimization, but it allows convoluted declarations that are never useful, making the problem NP-complete.  There is a simple quadratic-time algorithm to solve the problem optimally (assuming there are no declarations of arrays whose size depends on the negative of the size of any code; if you do, you&#8217;ve got bigger problems than a few extra bytes of data), and I went in search of a simple linear-time algorithm to solve it optimally.</p>
<p>In the past week <a title="Optimal x86 Jump Encoding" href="http://arxiv.org/abs/0812.4973/">I managed to create such an algorithm</a>. :)  It is simple, using no obscure data structures, no recursion, and no randomization, plus it should be as fast or faster than the quadratic-time algorithms on average.  I&#8217;ve also since come up with a simple way to eliminate most jumps from consideration in the single pass through to determine the initial jump distances.  Simplicity is nice.</p>
<p>On a semi-related note, I won&#8217;t have the next video in <a title="Assembly Language Video Tutorial" href="http://showmedo.com/videos/series?name=qdrYRTz8Z">my video tutorial on assembly language</a> out by year&#8217;s end because of my current lack of internet access at home and all of the time I&#8217;ve been spending on Inventor IDE, but it should be out no later than January 5th or 6th.  Sorry for the delay.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=85&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2008/12/30/assembling-progress-and-a-paper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Visualizing Higher-Dimensional Data</title>
		<link>http://ndickson.wordpress.com/2008/12/29/visualizing-higher-dimensional-data/</link>
		<comments>http://ndickson.wordpress.com/2008/12/29/visualizing-higher-dimensional-data/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 06:08:45 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[Carleton]]></category>
		<category><![CDATA[D-Wave]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=66</guid>
		<description><![CDATA[I&#8217;ve wondered for quite a while about how one could view data in more than 3 dimensions.  Even 3 dimensions is difficult to view sometimes, since we really only see 2 dimensional images that have a depth component, not an entire 3D volume.  With that in mind, it&#8217;s not reasonable to try to view and understand all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=66&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve wondered for quite a while about how one could view data in more than 3 dimensions.  Even 3 dimensions is difficult to view sometimes, since we really only see 2 dimensional images that have a depth component, not an entire 3D volume.  With that in mind, it&#8217;s not reasonable to try to view and understand all of the structure of a higher-dimensional object all together.</p>
<p>I found on Wikipedia <a title="10-cube" href="http://en.wikipedia.org/wiki/File:10-cube_column_graph.svg">this representation of a 10-cube</a>, which got me thinking of how to view all vertices of such a hypercube.  I also noticed that the logarithm of n choose n/2 increases only linearly with n (in fact it appears that n choose n/2 can be approximated with <img src='http://s1.wordpress.com/latex.php?latex=2%5Ena%2F%5Csqrt%7Bn%2Bb%7D+&#038;bg=161410&#038;fg=999999&#038;s=0' alt='2^na/\sqrt{n+b} ' title='2^na/\sqrt{n+b} ' class='latex' /> for some a and b such that the relative error approaches zero as n increases), but it&#8217;s a bit harder to see the relevance of this.  I then decided to make a similar visualization of the coloured vertices of an n-dimensional hypercube for my Computational Geometry (COMP 5008) project.</p>
<p><a title="Hypercube Visualization Project" href="http://www.neildickson.com/hypercube/">Here&#8217;s that project.</a>  I wrote up <a href="http://www.neildickson.com/hypercube/VisualizingHigherDimensionalData.pdf">a document on it</a> too, so I won&#8217;t dwell on it more.  Ben, a good friend of mine, is making a version that shouldn&#8217;t eat up nearly so much CPU time by rendering the visualization with OpenGL.</p>
<div class="mceTemp mceIEcenter" style="text-align:left;"><strong><span style="text-decoration:underline;">Update:</span></strong> Last night, I determined that, oddly enough, n choose n/2 can be approximated with:</div>
<div class="mceTemp mceIEcenter" style="text-align:center;"><img src='http://s2.wordpress.com/latex.php?latex=2%5En%2F%5Csqrt%7B%5Cfrac%7B%5Cpi%7D%7B2%7Dn%2B%5Cfrac%7B%5Cpi%7D%7B4%7D%2B%5Cfrac%7B%5Cpi%7D%7B16%7Dn%5E%7B-1%7D-%5Cfrac%7B%5Cpi%7D%7B32%7Dn%5E%7B-2%7D-o%28n%5E%7B-2%7D%29%7D&#038;bg=161410&#038;fg=999999&#038;s=0' alt='2^n/\sqrt{\frac{\pi}{2}n+\frac{\pi}{4}+\frac{\pi}{16}n^{-1}-\frac{\pi}{32}n^{-2}-o(n^{-2})}' title='2^n/\sqrt{\frac{\pi}{2}n+\frac{\pi}{4}+\frac{\pi}{16}n^{-1}-\frac{\pi}{32}n^{-2}-o(n^{-2})}' class='latex' /></div>
<div class="wp-caption aligncenter" style="width: 432px"><a href="http://www.neildickson.com/hypercube/hypercube_screenshot.png"><img class="  " title="12-D Hypercube Screenshot" src="http://www.neildickson.com/hypercube/hypercube_screenshot.png" alt="12-D Hypercube Screenshot Showing 128 Simulated Annealing Runs" width="422" height="293" /></a><p class="wp-caption-text">12-D Hypercube Screenshot Showing 128 Simulated Annealing Runs</p></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=66&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2008/12/29/visualizing-higher-dimensional-data/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>

		<media:content url="http://www.neildickson.com/hypercube/hypercube_screenshot.png" medium="image">
			<media:title type="html">12-D Hypercube Screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Limit of Neil as workload approaches infinity equals crazy</title>
		<link>http://ndickson.wordpress.com/2008/12/18/limit-of-neil-as-workload-approaches-infinity-equals-crazy/</link>
		<comments>http://ndickson.wordpress.com/2008/12/18/limit-of-neil-as-workload-approaches-infinity-equals-crazy/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 16:51:49 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[Carleton]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=63</guid>
		<description><![CDATA[This term has been insanely busy, but it&#8217;s finally over.  I made it through mostly due to the kindness of some professors.  The following is a list of major commitments I had this term:

Distributed Operating Systems, with 3-4 papers to read and review each week
Parallel Computing, 4 assignments and a midterm; fairly easy
Computational Geometry, a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=63&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This term has been insanely busy, but it&#8217;s finally over.  I made it through mostly due to the kindness of some professors.  The following is a list of major commitments I had this term:</p>
<ul>
<li>Distributed Operating Systems, with 3-4 papers to read and review <strong>each week</strong></li>
<li>Parallel Computing, 4 assignments and a midterm; fairly easy</li>
<li>Computational Geometry, a <strong>grad course</strong> with 3 very tough assignments, a paper, presentation, and project</li>
<li>Numerical Analysis, 6 tough assignments and a midterm (for which I should have brought a calculator <img src='http://s.wordpress.com/wp-includes/images/smilies/face-sad.png' alt=':(' class='wp-smiley' />  )</li>
<li>Astronomy, 2 assignments and a midterm; not too difficult, but a ton of memorization</li>
<li>TA&#8217;ing Computer Organization, 5 sets of assignments and a set of midterms to mark, plus weekly office hours, plus helping people with assignments when they were close to due</li>
<li>Chamber Music Ensemble, 2 pieces on French horn and 2 pieces on cello, 2 of which had rehearsals twice a week for about an hour</li>
</ul>
<p>All 5 courses had an exam, all 5 of which were within 10 days, the last 4 being within 5 days.  The Computational Geometry paper, project, and last assignment were due within those 10 days, plus the last set of assignments for Computer Organization was given to me to mark within those 10 days.  To top it off, the Numerical Analysis exam was exactly as brutal as we had feared, with so many formulae and processes to memorize that I literally wrote one of my answers as &#8220;It&#8217;s in my notes.&#8221;</p>
<p>Luckily, the Computational Geometry prof was kind enough to extend the things due for that course just enough for me to get them done.  Mind you, out of the 3 nights before last night, two were full all-nighters (i.e. one I was up for 37 hours straight, and the other I was up for 32 hours straight), so it still was no cakewalk.</p>
<p>The kicker of it all: next term might be just as crazy. *sigh*</p>
<p>P.S. I&#8217;ll post about my Computational Geometry project as soon as I fix my website, which has been mostly broken for most of the term.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=63&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2008/12/18/limit-of-neil-as-workload-approaches-infinity-equals-crazy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Working Alone Sucks</title>
		<link>http://ndickson.wordpress.com/2008/10/26/working-alone-sucks/</link>
		<comments>http://ndickson.wordpress.com/2008/10/26/working-alone-sucks/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 21:44:49 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[PwnIDE]]></category>
		<category><![CDATA[PwnOS]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=59</guid>
		<description><![CDATA[That&#8217;s an exaggeration, of course, but what I&#8217;m really trying to say is that working alone on a project for an extended period of time really sucks the life out of me.  With my busy schedule this term, I&#8217;m finding it really hard to find time to work on Inventor IDE.  Next term I&#8217;ll be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=59&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>That&#8217;s an exaggeration, of course, but what I&#8217;m really trying to say is that working alone on a project for an extended period of time really sucks the life out of me.  With my busy schedule this term, I&#8217;m finding it really hard to find time to work on Inventor IDE.  Next term I&#8217;ll be working on it as part of a directed study, and I do have a hard deadline of the end of 2008 for getting built-in assembling fully functional, but progress has been slow.</p>
<p>I got asked about teamwork in an interview with Microsoft&#8217;s Photosynth group, so that got me really thinking about team dynamics.  At the very least, on any sizable project, having someone else to bounce ideas off of is a must.  Since for assignments 1 and 2, the professor of the course I&#8217;m helping with hasn&#8217;t posted my alternate assignments, until I get built-in assembling working and start posting about it widely, I won&#8217;t even have many users off of which  to bounce ideas about Inventor IDE.</p>
<p>Beyond that, assuming there&#8217;s an actual team, there must be some sort of division of labour such that what needs to get done gets done without losing the members.  I&#8217;ve started organizing the team for the next big Code Cortex project, codenamed PwnOS, and it&#8217;s interesting trying to figure out how to split up the work and to keep people interested.  Conveniently, the team came up with a great idea: each person investigates a device protocol and goes through developing support for that device.  It works perfectly, since getting a device to work is one of the really satisfying parts of OS development, and it only depends on having as much of a bootloader as I&#8217;ve already got.  I can then focus on getting some of the other parts of the OS up and running without everyone waiting for me.</p>
<p>Other good news includes that I&#8217;ve found someone quite eager to get a third (unnamed) project off the ground, and I may have found another person to help with Inventor IDE next term.  It&#8217;ll take lots of work to get things going, but I&#8217;m optimistic that we can find a way to make things work, together.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=59&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2008/10/26/working-alone-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
		<item>
		<title>Progress Report</title>
		<link>http://ndickson.wordpress.com/2008/09/09/progress-report/</link>
		<comments>http://ndickson.wordpress.com/2008/09/09/progress-report/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 15:04:56 +0000</pubDate>
		<dc:creator>Neil Dickson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[PwnIDE]]></category>

		<guid isPermaLink="false">http://ndickson.wordpress.com/?p=57</guid>
		<description><![CDATA[So how did I do on that agenda I listed for August?  This is what got done for Inventor IDE Alpha 4:

Layout problems fixed
Enough support for external includes for COMP 2003, but it still needs some work for the future
The first two videos of the video tutorial are out, with the rest coming over the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=57&subd=ndickson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So how did I do on that agenda I listed for August?  This is what got done for <a href="http://www.codecortex.com/ide/">Inventor IDE</a> Alpha 4:</p>
<ul>
<li>Layout problems fixed</li>
<li>Enough support for external includes for COMP 2003, but it still needs some work for the future</li>
<li>The first two videos of the video tutorial are out, with the rest coming over the next few weeks (It turned out that they weren&#8217;t needed immediately.)</li>
<li>Most auto-complete cases handled</li>
<li>Slightly more go-to-definition support</li>
<li>Tons of bugs fixed</li>
</ul>
<p>That means that the next thing on the agenda (other than more tutorial videos) is built-in assembling.  I can&#8217;t wait until I can just hit a &#8220;run&#8221; button and have the thing compile and run.  Check out the <a href="http://showmedo.com/videos/series?id=320">assembly language video tutorial</a> at ShowMeDo, and be sure to post any questions or comments about it or Inventor IDE on <a title="Code Cortex Forum" href="http://www.codecortex.com/forum/">the forum</a> I&#8217;ve just set up.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ndickson.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ndickson.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ndickson.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ndickson.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ndickson.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ndickson.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ndickson.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ndickson.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ndickson.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ndickson.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ndickson.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ndickson.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ndickson.wordpress.com&blog=1158540&post=57&subd=ndickson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ndickson.wordpress.com/2008/09/09/progress-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/accf49d59449b71b817ca3c4f2c739f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Dickson</media:title>
		</media:content>
	</item>
	</channel>
</rss>