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

<channel>
	<title>pixelmonkey.org - alter or abolish? &#187; Computer Science</title>
	<atom:link href="http://www.pixelmonkey.org/category/technology/computer-science/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pixelmonkey.org</link>
	<description>Andrew J. Montalenti's Blog</description>
	<lastBuildDate>Sun, 05 Feb 2012 19:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>8 years ago today, I wrote this in a bug report</title>
		<link>http://www.pixelmonkey.org/2012/02/05/8-years-ago-today-i-wrote-this-in-a-bug-report?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=8-years-ago-today-i-wrote-this-in-a-bug-report</link>
		<comments>http://www.pixelmonkey.org/2012/02/05/8-years-ago-today-i-wrote-this-in-a-bug-report#comments</comments>
		<pubDate>Sun, 05 Feb 2012 19:07:22 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=909</guid>
		<description><![CDATA[Me: Thanks so much for your fix to my issue. My friend, who majors in business, once told me that I should no longer major in Computer Science because &#8220;programming is like banging your head against the wall repeatedly, but with less reward.&#8221; I find that to be a rather rash dramatization, but I know [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
<strong>Me</strong>: Thanks so much for your fix to my issue. My friend, who majors in business, once told me that I should no longer major in Computer Science because &#8220;programming is like banging your head against the wall repeatedly, but with less reward.&#8221; I find that to be a rather rash dramatization, but I know in dealing with bugs as subtle as these it may feel that way. I hope at least the end-result is rewarding for you.</p>
<p><strong>Programmer</strong>: Are you a Computer Science major? If so, don&#8217;t let your friend discourage you. Just ask him about &#8220;head banging&#8221; when those business majors find that their product development and marketing efforts fail to work after spending millions of dollars.</p>
<p><strong>Me</strong>: Yes, I&#8217;m a CS major. And you&#8217;re right &#8212; the reward is great in software, and the cost of building an useful product is relatively minimal. That is one of the reasons I chose this path. It&#8217;s why I love helping out honest, intelligent developers such as yourself in any way I can. I have found that hardworking CS majors who are not only better programmers, but more often than not better thinkers and better managers &#8212; if you&#8217;d give them the chance. I am happy in my decision, and still have that naivete that perhaps I can change the industry a bit, shake things up, come up with an idea that changes everything, innovate in whatever way I can. Big aspirations; we&#8217;ll see what happens. For now, I&#8217;ll just keep respecting the good software I find in the world, such as yours.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2012/02/05/8-years-ago-today-i-wrote-this-in-a-bug-report/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>import this: learning the Zen of Python with code and slides</title>
		<link>http://www.pixelmonkey.org/2011/10/29/import-this?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=import-this</link>
		<comments>http://www.pixelmonkey.org/2011/10/29/import-this#comments</comments>
		<pubDate>Sun, 30 Oct 2011 02:27:25 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=817</guid>
		<description><![CDATA[It&#8217;s hard to find me gushing more unapologetically than when I talk about the virtues of my favorite programming language, Python. Indeed, my life for the last 3 years has been dominated by the language. In many ways, pursuing a startup and enduring the associated financial hardship was partially because I had become frustrated with [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to find me gushing more unapologetically than when I talk about the virtues of my favorite programming language, Python.</p>
<p><a href="http://xkcd.com/353/" target="_blank"><img src="http://imgs.xkcd.com/comics/python.png" alt="" title="import antigravity" width="518" height="588" class="aligncenter size-full wp-image-823" /></a></p>
<p>Indeed, my life for the last 3 years has been dominated by the language. In many ways, <a href="http://www.pixelmonkey.org/2010/10/16/what-one-does" title="What One Does">pursuing a startup</a> and enduring the <a href="http://www.pixelmonkey.org/2011/04/02/not-for-the-faint-of-heart" title="Startups: Not for the faint of heart">associated financial hardship</a> was partially because I had become <a href="http://www.pixelmonkey.org/2007/01/27/solving-accidents-and-essences-of-programming-with-better-languages" title="Solving “accidents” and “essences” of programming with better languages">frustrated with using Java</a> in my full-time work and wanted to convert hobby projects I was building outside of work hours into full-fledged projects.</p>
<p><span id="more-817"></span></p>
<p>Something else I noticed in the last three years is that my programming life has become very zen-like. I now rarely discuss or debate things like programming language features, strange constructs like generics, or which framework to use or ignore. Instead, I spend most of my time building a product that people love. My colleagues and I communicate with code. And what better language to communicate in than arguably the world&#8217;s most readable? What better language to deliver value in than  one that simply gets out of your way?</p>
<p>I therefore get a great amount of joy of showing other people what the Zen of Python can mean in their lives. Last year, I gave a training course to a 20-person team of government employees who were using dated languages like Fortran and COBOL to build important government systems. A bright manager in the organization realized how much more productive their team could be if they stopped worrying about compiler versions and IDEs and started thinking in code. But the key was to understand the value of Python, not necessarily as a language with a certain set of features, but as a way of doing things, as a cultural influence. This is a culture that says, &#8220;the language should fade away&#8221;, similarly to how Edward Tufte argues that the <a href="http://www.youtube.com/watch?v=YslQ2625TR4">chrome and administrative debris should fade away</a> when displaying content.</p>
<p>Since then, I have used these slides countless times to espouse the virtues of my favorite interpreter. This has included giving short seminars in NYC, training <a href="http://parse.ly">Parse.ly</a> interns and new hires (here&#8217;s <a href="http://www.flickr.com/photos/hackny/6212454931/in/photostream">a shot of me and two Parse.ly engineers, Michael and Zach</a>), holding Python office hours at HackNY&#8217;s hackathon (indeed, <a href="http://www.flickr.com/photos/hackny/6202768849/in/set-72157627798810758">here&#8217;s an action shot on Flickr</a> to prove it!), and introducing my friends to the joy of building software.</p>
<p><strong>Code and Slides: The Zen of Python in 3 days</strong></p>
<p>It&#8217;s therefore with elation that today I am able to provide the slides and materials for this talk free to the world on my Github account. Simply click here:</p>
<p><a href="https://github.com/Parsely/python-adv-slides">https://github.com/Parsely/python-adv-slides</a></p>
<p>Or, if you&#8217;re not interested in the code behind the slides (because the slides are actually created with the help of Python itself), you can go here to simply view them.</p>
<p><a href="http://pixelmonkey.org/pub/python-training/">http://pixelmonkey.org/pub/python-training/</a></p>
<p>(note, modern web browser like Chrome or Firefox recommended for speed and smoothness)</p>
<p>This may be my first &#8220;open source presentation&#8221;, in that the slide presentation itself is provided as code that is freely available, and reproducing the slide presentation is a matter of running a code generator.</p>
<p><strong>A touch of NLP with Python</strong></p>
<p>I mentioned that one of the reasons I love Python is because it gets out of your way. Nowhere is this more evident than Python&#8217;s ability to prototype algorithms to natural language processing and corpus linguistics problems, something I do everyday. The Natural Language Toolkit (NLTK) provides an excellent starting point from learning about this aspect of computer science.</p>
<p>Recently, <a href="http://parse.ly">Parse.ly</a> has gotten some new engineers on the team who are great Python programmers but without any background in NLP. To give them a taste of how well-suited Python is for this task, I gave a seminar entitled, &#8220;Just Enough NLP with Python&#8221;. Just as with the prior slides, you can view these online on Github:</p>
<p><a href="https://github.com/Parsely/python-nlp-slides ">https://github.com/Parsely/python-nlp-slides</a></p>
<p>And you can view the compiled slides here:</p>
<p><a href="http://pixelmonkey.org/pub/nlp-training/ ">http://pixelmonkey.org/pub/nlp-training/</a></p>
<p>Between these two pieces, you can learn the <a href="http://www.python.org/dev/peps/pep-0020/">Zen of Python (PEP 20)</a> very rapidly, and incorporate it into your everyday software life.</p>
<p>If you have any comments or feedback, feel free to reach out to me <a href="http://twitter.com/amontalenti">on Twitter</a>. I&#8217;d love to hear what you think. And if you, too, are bitten by the Python bug (as one of our Parse.ly interns <a href="http://twitter.com/#!/emmett9001/status/114769015972429825">recently was</a> in a <a href="https://twitter.com/#!/amontalenti/status/115275221329641472">big, almost romantic way</a>) then you should reach out to us, since <a href="http://parse.ly/jobs.html">we&#8217;re hiring</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2011/10/29/import-this/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Engineers don&#8217;t become engineers</title>
		<link>http://www.pixelmonkey.org/2011/09/05/engineer-shortage?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=engineer-shortage</link>
		<comments>http://www.pixelmonkey.org/2011/09/05/engineer-shortage#comments</comments>
		<pubDate>Mon, 05 Sep 2011 21:19:47 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/?p=809</guid>
		<description><![CDATA[And, sadly, our top engineering graduates don’t always become engineers. They move into finance or management consulting — both of which pay far higher salaries than engineering. I have seen the dilemma that my engineering students at at Duke University have faced. Do they take a job in civil engineering that pays $70,000, or join [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
And, sadly, our top engineering graduates don’t always become engineers. They move into finance or management consulting — both of which pay far higher salaries than engineering. I have seen the dilemma that my engineering students at at Duke University have faced. Do they take a job in civil engineering that pays $70,000, or join big Wall Street financial firm and make $120,000? With the hefty student loans that hang over their heads, most have made the financially sensible decision. In some years, half of our graduates have ended up taking jobs outside of engineering. Instead of developing new types of medical devices, renewable energy sources and ways to sustain the environment, my most brilliant students are designing new ways to help our investment banks engineer the financial system.</p>
<p>[...] We also need to make the engineering profession &#8220;cool&#8221; again, with the same sense of excitement and urgency in engineering and science that we saw during the Sputnik days. Back then, engineering was considered essential to the nation’s survival. Engineers and scientists were national heroes. It’s not that we don’t have problems to solve. The economy is in dire straits. Natural resources such as food, water, and crude oil are becoming scarce. Drug-resistant bacteria threaten us with doomsday plagues. But we’re not offering our best minds incentive to solve them.
</p></blockquote>
<p>From <a href="http://www.washingtonpost.com/national/on-innovations/president-obama-there-is-no-engineer-shortage/2011/09/01/gIQADpmpuJ_story.html">Mr. President, there is no engineer shortage</a>.</p>
<p>Luckily this is happening already in high tech in NYC, thanks to awesome programs like <a href="http://hackny.org">HackNY</a> and <a href="http://www.collabracode.com/">collabraCode</a> (both of which my startup <a href="http://parsely.com">Parse.ly</a> formally supported). As much as it pains me to say it, I also think <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a> may be seen as a cultural catalyst for software engineers becoming &#8220;cool&#8221;.</p>
<p>But high tech is only a small piece of the puzzle &#8212; we need the same active marketing for students&#8217; minds in biotech, education, medical research, civil engineering, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2011/09/05/engineer-shortage/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solving &#8220;accidents&#8221; and &#8220;essences&#8221; of programming with better languages</title>
		<link>http://www.pixelmonkey.org/2007/01/27/solving-accidents-and-essences-of-programming-with-better-languages?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=solving-accidents-and-essences-of-programming-with-better-languages</link>
		<comments>http://www.pixelmonkey.org/2007/01/27/solving-accidents-and-essences-of-programming-with-better-languages#comments</comments>
		<pubDate>Sat, 27 Jan 2007 17:27:16 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2007/01/27/solving-accidents-and-essences-of-programming-with-better-languages/</guid>
		<description><![CDATA[The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet&#8217;s words, [...]]]></description>
			<content:encoded><![CDATA[<p><em>The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet&#8217;s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. &#8230; The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn&#8217;t work. Human beings are not accustomed to being perfect, an few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.</em></p>
<p>Frederick Brooks, author of the <em>The Mythical Man-Month</em>, disinguished between two problems in software development: the accidental problems and the essential ones. (Read Brooks&#8217; watershed article, &#8220;<a href="http://www-inst.eecs.berkeley.edu/~maratb/readings/NoSilverBullet.html">The Silver Bullet</a>&#8220;.) The industry likes to argue that we <em>have</em> made huge leaps in terms of the accidental in recent years. Programmer productivity is better with the help of better software revision systems, but more importantly there are RAD tools like GUI designers, powerful IDEs like Eclipse/VS.NET. Do I think we&#8217;re headed in the right direction?</p>
<p>In a sense. I think those tools are useful, but only because I think all we can do is shrink the accidental problem as small as possible, and then do our best to tackle the essential. The major win in terms of the accidental <em>and even the essential</em> is high-level programming, and I mean <em>really</em> high level, like Python. Why is this important? Well, Brooks once talked about how PL/I was a great software engineering language because the statements written to the compiler are &#8220;pretty close&#8221; to the &#8220;thought stuff&#8221; the programmer is working with in his head. But PL/I is nowhere near there (neither is C++, or even Java or C#). However, Python heads in that direction.</p>
<p>In my head, unless I really am immersed in C code <em>all the time</em>, I don&#8217;t think of things like <strong>types</strong>, <strong>memory management</strong>, or, God, <strong>pointer arithmetic</strong>. When we solve problems, we solve it in something computer scientists have used for years: pseudocode. Pseudocode is nothing more than code that expresses an algorithm or approach without worrying about the gory details of the underlying hardware.</p>
<p>Python isn&#8217;t quite pseudocode, but it&#8217;s closer than anything else I&#8217;ve seen. And that&#8217;s a huge help to productivity not just from the point of view of the single developer, but, I&#8217;d argue, also from the point of view of a <em>team</em> of developers. Code readability is hugely important in team environments. C and Perl can be very unreadable, which makes them ill-suited to team development. Java and C++ are better, but even they suffer from some readability problems (where the actual solutions can be masked by &#8220;best practices&#8221; and strange ways of exploiting constructs of the language). Python can be hacked too, but it tends not to be, and it tends to have very high readability.</p>
<p>But what about the tools mentioned above (Eclipse/VS.NET)? I often wondered about all the *nix programmers (including many of my Computer Science professors) who still load up X11 and dump into vim or emacs for their programming needs. Wouldn&#8217;t they benefit from the latest and greatest in IntelliSense, Refactoring, CallTips, SaneOnlineDocumentation, and any other <a href="http://en.wikipedia.org/wiki/CamelCase">CamelCase</a> ideas I can think of for a development environment? Most *nix users would say that stuff is unnecessary&#8211;and in many senses, they are right. The essential problem remains, no matter how fancy your IDE is.</p>
<p>A lot of *nix developers shrink their accidental problem on a &#8220;as-needed&#8221; basis, by coding plugins or complex configurations for their highly-extensible text editors. But nowadays, productivity is starting to be a concern even in the OSS world, where things have traditionally stuck with the old &#8220;mortar and pestle,&#8221; or, should I say, &#8220;gcc and gdb&#8221;. That&#8217;s why we see projects like Mono gaining a lot of popularity.</p>
<p>But Python offers a nice, alternative path, I think. The accidental problem is worth shrinking, and I think it can be done simply by one major refocus:</p>
<p>(1) make the language usable, not the tool. (IMO, already done with Python)</p>
<p>and</p>
<p>(2) create source code analyzing tools that integrate with development environments to make the language-bearer more productive.</p>
<p>You can see enormous success in (2) with the Eclipse IDE project. My main problem: Eclipse&#8217;s focus is on a language that isn&#8217;t very usable. Java is certainly better than C, but still, it has significant problems that stop it from connecting me (the programmer) with my problem-solving ideas (the thought-stuff of programming).</p>
<p>At my new job, I work with Java eight hours a day, but my code just doesn&#8217;t read and work like my Python code, which is much closer to the underlying algorithms and approaches. Java certainly pushed forward OO on the masses of computer programmers, but it did so without learning non-OO but very handy scripting language concepts, like having Lists and Hashes be built-in types, with tons of syntactic sugar, for crying out loud. Most problems break down to List and Hash problems, after all. What&#8217;s more, OO on its own isn&#8217;t a panacea: I&#8217;ve seen many convoluted OO designs that I wish were written procedurally, and which might have been more performant if they had been. The software engineering community thinks that there will be a silver bullet (<a href="http://en.wikipedia.org/wiki/Object-oriented_programming">OOP</a>! <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">AOP</a>! <a href="http://en.wikipedia.org/wiki/Extreme_Programming">XP</a>! <a href="http://en.wikipedia.org/wiki/Model-driven_engineering">MDE</a>!), but I think just getting programmers closer to the &#8220;thought-stuff&#8221; will be an effort with better rewards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2007/01/27/solving-accidents-and-essences-of-programming-with-better-languages/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mark Zuckerberg: Luckiest Man Alive</title>
		<link>http://www.pixelmonkey.org/2006/04/30/mark-zuckerberg-luckiest-man-alive?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mark-zuckerberg-luckiest-man-alive</link>
		<comments>http://www.pixelmonkey.org/2006/04/30/mark-zuckerberg-luckiest-man-alive#comments</comments>
		<pubDate>Mon, 01 May 2006 02:18:23 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/04/30/mark-zuckerberg-luckiest-man-alive/</guid>
		<description><![CDATA[Sak and I were recently discussing how upset (read: envious, depressed about our own lives) we were about The Facebook seeking]]></description>
			<content:encoded><![CDATA[<p>Sak and I were recently discussing how upset (read: envious, depressed about our own lives) we were about The Facebook seeking <a href=http://www.businessweek.com/technology/content/mar2006/tc20060327_215976.htm">$2 billion</a>.</p>
<p>The main reason we&#8217;re depressed is because, though both Sak and I like the Facebook and are users, we can&#8217;t help noticing one thing:</p>
<p><i>It&#8217;s not that complicated to build a website like that.</i></p>
<p>In fact, it&#8217;s downright easy.  If I weren&#8217;t so busy with <a href="http://www.scs.stanford.edu/nyu/04fa/">computer</a> <a href="http://www.cs.nyu.edu/courses/spring06/V22.0421-001/">science</a> classes, I probably could have threw something like it together myself.</p>
<p>Now, we know that business opportunities don&#8217;t have to be complicated to make money.  They just have to be Right, that is in the Right place, with the Right look, taking advantage of the Right fad, etc.</p>
<p>But doesn&#8217;t it seem to you that a straightforward PHP/MySQL application just isn&#8217;t worth $2 billion?  I mean, that&#8217;s $2,000 million.  <b>That&#8217;s $2,000,000,000.</b></p>
<p>Yet, I can&#8217;t say I&#8217;m entirely unhappy about it.  Mark Zuckerberg, here&#8217;s to you, man.  You&#8217;re my age, and you did exactly what I wish I had done.  Built some crappy website, and made out like a bandit with sacks of cash.  Kudos.  You&#8217;re honestly my fucking hero.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/04/30/mark-zuckerberg-luckiest-man-alive/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Flight of Computer Science majors</title>
		<link>http://www.pixelmonkey.org/2006/04/30/the-flight-of-computer-science-majors?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-flight-of-computer-science-majors</link>
		<comments>http://www.pixelmonkey.org/2006/04/30/the-flight-of-computer-science-majors#comments</comments>
		<pubDate>Mon, 01 May 2006 02:06:21 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/04/30/the-flight-of-computer-science-majors/</guid>
		<description><![CDATA[I read this response to an article at eWeek on Bill Gates&#8217; views about Computer Science research, graduates, spending, and company strategies. I think it&#8217;s pretty clear that despite the disagreements I have with Mr. Gates over a subject known as &#8220;business ethics&#8221; (if such a subject truly exists!), he does seem to be a [...]]]></description>
			<content:encoded><![CDATA[<p>I read this response to an <a href="http://www.eweek.com/article2/0,1895,1838435,00.asp">article at eWeek</a> on Bill Gates&#8217; views about Computer Science research, graduates, spending, and company strategies.</p>
<p>I think it&#8217;s pretty clear that despite the disagreements I have with Mr. Gates over a subject known as &#8220;business ethics&#8221; (if such a subject truly exists!), he does seem to be a genuinely patriotic guy who loves technology.  I mean, what good is it for more Americans to get into CS, if other countries are diving in and filling whatever knowledge gap may exist?  Can&#8217;t Bill just hire those workers, and what&#8217;s more, for less money per hour?</p>
<p>Well, I think Mr. Gates really wants innovation in computer software to remain &#8220;America&#8217;s Great Industry.&#8221;</p>
<p>I was very intrigued by this response to the article:</p>
<blockquote><p>
Everyone knows that Open Source is taking over the software development industry. And according to the Open Source philosophy; developers should be enslaved, source code should be free. No, no, that&#8217;s not politically correct, let me try again. Developers should give their work away because code needs to be free (as in speech) and the needs of the code is more important than the needs of the people who create it. Well, that doesn&#8217;t sound quite right either but in any case, it doesn&#8217;t really matter to me because my kids won&#8217;t be studying computer science.
</p></blockquote>
<p>This is a very interesting post.  True, it will  be seen as a troll by some, since open source philosophy definitely doesn&#8217;t say anything about programmer enslavement.  But his point is real and felt in the industry.  That is, if you aren&#8217;t selling software, how are software developers to make money from it?</p>
<p>I think the response to this was best-articulated by Eric Raymond, when he pointed out that of programmers, only about 1-2% make their cash from off-the-shelf software sales.  Instead, most make their money from &#8220;in-house&#8221; or &#8220;custom&#8221; software solutions.  In other words, the majority of developers aren&#8217;t working on the Adobe Photoshop team, they&#8217;re working on Acme Inc.&#8217;s payroll or issue tracking system.</p>
<p>I kind of love this sort of propaganda, though.  Because it is all good news for me.</p>
<p>When I first decided to do CS, I considered the possible effect of outsourcing and other factors on my employment possibilities.  I thought, what if there are no jobs when I get out of college?  But I stuck with it.</p>
<p>Well, it turns out, everyone had a hunch similar to mine, but they were more wooed by it than I was.  So everyone fled CS.  And now I&#8217;m the only one left.  (An exaggeration, but you get what I mean &#8212; my computer science classes are nearly empty, whereas they were packed during registration only a few years ago).</p>
<p>It turns out, firms are hiring more than ever before.  Why?  Because the dotcom bubble is over, and green-eyed imposters are getting flushed out of the industry.  But the demand is still there.  Software is pervasive.  Everyone needs software development done.  There simply isn&#8217;t anything under the sun that can&#8217;t benefit from a little software developer finesse.</p>
<p>You can&#8217;t have all this work done in India and China because, it turns out, people want software developers to work with customers (big surprise).  They want applications which meet their sensibilities, and they want them changes when the environment changes.</p>
<p>I liked that Mr. Gates said the #1 thing he&#8217;s looking for is project management IT types.  Funny, it&#8217;s the #1 thing <i>I&#8217;m</i> looking for, too.  Software developers are a dime a dozen.  Find me a software developer who doesn&#8217;t get nervous when you ask him a tough question, or ask him to write, in plain English, a high-level overview of the system you&#8217;re asking him to create, and you&#8217;ve got yourself someone who&#8217;s valuable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/04/30/the-flight-of-computer-science-majors/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the tools you use</title>
		<link>http://www.pixelmonkey.org/2006/04/26/306?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=306</link>
		<comments>http://www.pixelmonkey.org/2006/04/26/306#comments</comments>
		<pubDate>Wed, 26 Apr 2006 22:59:04 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/04/26/306/</guid>
		<description><![CDATA[Mark Shuttleworth has written a nice little blog post about the tools we learn through life and how we discard old tools and learn new ones. I personally find this to be very true in my life. When I was in high school, I prided myself (from the point of view of &#8220;tools&#8221;) as knowing [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Shuttleworth has written a <a href="http://www.markshuttleworth.com/archives/28/">nice little blog post</a> about the tools we learn through life and how we discard old tools and learn new ones.</p>
<p>I personally find this to be very true in my life.</p>
<p>When I was in high school, I prided myself (from the point of view of &#8220;tools&#8221;) as knowing graphic design (Photoshop/Illustrator), web development, and print/page layout.  Handy tools to know for (1) making money and (2) working on a high school newspaper.  The only real programming languages I knew back then were Actionscript (for Flash), JavaScript, and (eegads) Perl.  Then I got to college and armed myself with algorithms, data structures, and systems, and started picking up Java and C on my own.  Now I consider myself well-versed in those, and this past summer learned Python and used that on a lot of different projects.  Then this semester I got interested in C++ and used that a lot.  Nowadays, when I look at problems, I look at them in terms of my tools.  Text parsing problem?  Wow, Python&#8217;s re (regular expressions) module could handle that pretty easily.  Big engineering project?  Wow, using templates and OO features in C++ may lead to a nice design.  Database-driven web application?  Well, Java/JSP may fit you nicely.  (I know, I know, what am I doing not knowing Ruby on Rails!)</p>
<p>I think Mark&#8217;s onto something.  Changing toolsets often is definitely useful.  Even though I couldn&#8217;t write full programs for you in Perl nowadays, what I do know about it (its limitations, capabilities) is definitely good enough to see when it may be the best choice for the job.</p>
<p>As for academic tools &#8212; very true.  A lot of techniques I learned in e.g. Discrete Math, Linear Algebra were in one ear and out the other.  Alas, I think the main point is to learn them once and then be able to Wikipedia them later, when needed <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>That said, stuff I learned in my algorithms and data structures and operating systems courses have stayed with me.  I think some of that stuff is just essential.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/04/26/306/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculus Made Easy</title>
		<link>http://www.pixelmonkey.org/2006/04/04/calculus-made-easy?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=calculus-made-easy</link>
		<comments>http://www.pixelmonkey.org/2006/04/04/calculus-made-easy#comments</comments>
		<pubDate>Wed, 05 Apr 2006 03:59:06 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/04/04/calculus-made-easy/</guid>
		<description><![CDATA[I am taking &#8220;remedial&#8221; Calculus II alongside Numerical Computing this semester. My Calc course is &#8220;remedial&#8221; in that I haven&#8217;t seen any Math over the reals for about 4 years (took Discrete Math and Linear Algebra, which both focus on integers) and this semester I am overloading on real numbers (and even complex numbers) just [...]]]></description>
			<content:encoded><![CDATA[<p>I am taking &#8220;remedial&#8221; Calculus II alongside Numerical Computing this semester.  My Calc course is &#8220;remedial&#8221; in that I haven&#8217;t seen any Math over the reals for about 4 years (took Discrete Math and Linear Algebra, which both focus on integers) and this semester I am overloading on real numbers (and even complex numbers) just when I had forgotten they even existed <img src='http://www.pixelmonkey.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>That said, after spending some time in the humanities (where writing quality is high) and much time in  Computer Science (where literacy is defined as being able to read code), coming back to traditional math textbooks has been quite a culture shock.  They are <i>so horribly written</i>, it really blows my mind.</p>
<p>So, in response to my horrible Calculus II textbook (published at NYU only for NYU classes, this book features minimal explanation and the maximum amount of notation), I have been using it only for the homework problems and using instead James Stewart&#8217;s excellent book, <i>Calculus: Early Transcendentals</i> for rigorous proofs of concepts (because Stewart really does present them nicely), and the lighter but infinitely more illuminating <i>Calculus Made Easy</i>, by Silvanus Thompson.</p>
<p>A somewhat controversial book, <i>Calculus Made Easy</i> chooses to skip the notation-laden explanations of Calculus concepts provided by typical textbooks, and opts instead of a clear, textual elucidation of core concepts in the context of their applications.  The philosophy of the book is well-described by this excerpt from the Epilogue.</p>
<p>I think this is wonderful writing, however damning it may be:</p>
<blockquote><p>
It may be confidently assumed that when this tractate <i>Calculus Made Easy</i> falls into the hands of the professional mathematicians, they will (if not too lazy) rise up as one man, and damn it as being a thoroughly bad book.  Of that there can be, from their point of view, no possible manner of doubt whatever.  It commits several most grievous and deplorable errors.</p>
<p>First, it shows how ridiculously easy most of the operations of the calculus really are.</p>
<p>Secondly, it gives away so many trade secrets.  By showing you that <i>what one fool can do, other fools can do also</i>, it lets you see that these mathematical swells, who pride themselves on having mastered such an awfully difficult subject as the calculus, have no such great reason to be puffed up.  They like you to think how terribly difficult it is, and don&#8217;t want that superstition to be rudely dissipated.</p>
<p>Thirdly, among the dreadful things they will say about &#8220;So Easy&#8221; is this: that there is an utter failure  on the part of the author to demonstrate with rigid and satisfactory completeness the validity of sundry methods which he has presented in simple fashion, and has <i>even dared to use</i> in solving problems!  But why should he not?  You don&#8217;t forbid the use of a watch to every person who does not know how to make one?  You don&#8217;t object to the musician playing on a violin that he has not himself constructed.  You don&#8217;t teach the rules of syntax to children until they have already become fluent in the <i>use</i> of speech.  It would be equally absurd to require general rigid demonstrations to be expounded to beginners of the calculus.</p>
<p>One thing will the professed mathematicians say about this thoroughly bad and vicious book: that the reason why it is <i>so easy</i> is because the author has left out all the things that are really difficult.  And the ghastly fact about this accusation is that &#8212; <i>it is true!</i>  That is, indeed, why the book has been written &#8212; written for the legion of innocents who have hitherto been deterred from acquiring elements of the calculus by the stupid way in which its teaching is almost always presented.
</p></blockquote>
<p>I should note that my Calculus professor is actually quite good, and provides very nice explanations of complex topics, usually beginning with an elucidation of the general idea, and then going on to the formalities.  But our assigned textbook is not nearly as clear, and many professors I&#8217;ve had in the past have lived entirely inside their constructed notational apparatus.</p>
<p>This reminds me of an old joke I heard awhile back:</p>
<blockquote><p>
A math professor begins his lecture by writing on the blackboard.  He only pauses for brief moments of notational explanation, but continues writing and writing, one symbol after the other, for thirty minutes on end.  He fills up six blackboards full of derivation, algebraic manipulation, and what have you.  At the end, he smiles and draws the open box, indicating the completion of the proof.  &#8220;Is that clear?&#8221; the professor asks.  Blank stares all around.</p>
<p>At that point, the professor stops himself.  &#8220;Oh, no, I believe I&#8217;ve made a mistake.&#8221;  He then looks at the six boards of writing, and begins pointing at certain sections while nodding his head, clearly doing calculations internally.  He then paces back and forth across the front of the classroom, with his head bent down and his fist to his chin.  For five full minutes, he paces and nods, thinking about the proof just presented.</p>
<p>Then he stops pacing, looks at the students, and says, &#8220;Ah, yes, yes.  It&#8217;s clear.&#8221;
</p></blockquote>
<p>Here&#8217;s an <a href="http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html">interesting read</a>, by the way.  Came as especially relevant to me, as I &#8220;rediscover&#8221; math for math&#8217;s sake.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/04/04/calculus-made-easy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting the troops mobilized</title>
		<link>http://www.pixelmonkey.org/2006/02/25/getting-the-troops-mobilized?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=getting-the-troops-mobilized</link>
		<comments>http://www.pixelmonkey.org/2006/02/25/getting-the-troops-mobilized#comments</comments>
		<pubDate>Sat, 25 Feb 2006 21:29:33 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/02/25/getting-the-troops-mobilized/</guid>
		<description><![CDATA[I gave a talk last Tuesday called &#8220;Open Source Development: A Rapid Introduction.&#8221; Here&#8217;s the blurb I sent out when I advertised the talk: Have you wanted to work on open source projects, but just don&#8217;t know how to get started? This talk will provide the basics you need to start working on open source [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a talk last Tuesday called &#8220;Open Source Development: A Rapid Introduction.&#8221;</p>
<p>Here&#8217;s the blurb I sent out when I advertised the talk:</p>
<blockquote><p>
Have you wanted to work on open source projects, but just don&#8217;t know how to get started?  This talk will provide the basics you need to start working on open source software the next time you sit down at your computer.</p>
<p>In particular, this talk will cover:</p>
<p>(1) A brief overview of open source development in the industry and press. </p>
<p>(2) The UNIX development platform.  A brief and whimsical overview of the UNIX shell, its surrounding tools, and the power of shell scripting. (Useful to anyone wanting to learn more about UNIX tools.)  Learn how to do in a few lines of shell script what you only thought was possible with a big, extravagant hundred- or thousand- line program, and learn why so many of the world&#8217;s best hackers hack on a *nix system.</p>
<p>(3) The basics you need in order to hack on open source project: how mailing lists, wikis, bugzillas, source code revision systems all come together to form an organic code management process, and how to get started using those tools and others to learn about a project and what parts need development work done.  This will include a brief introduction to CVS.</p>
<p>(4) The last part of the talk will involve actually watching open source development in action.  In particular, the speaker will checkout some code from a source repository, make a change to it, create a patchfile from that change, then track down the mailing list or bugzilla related to the project and submit the patch to the maintainer.  You will actually get to see open source &#8220;in action,&#8221; and will want to do it right when you get home!</p>
<p>If you&#8217;re a Windows or Mac OS developer who has always wanted to learn more about *nix systems, or if you&#8217;re a developer who wants to either take his own project open source or work on existing open source projects, this talk is for you.</p>
<p>Of course, if you&#8217;re someone who is just interested in the concept of open source, this talk will give you an inside look at &#8220;how things get done&#8221; in this community.</p>
<p>This talk was at least partially inspired by Nat Friedman&#8217;s blog post, check it out here:</p>
<p><a href="http://nat.org/2005/september/#How-to-become-a-hacker">&#8220;How to be a Hacker&#8221;</a></p></blockquote>
<p>The talk was a general success, I think.  About 12 people attended.  You can see the talk in <a href="http://www.pixelmonkey.org/talks/2006-02-21/open_src_dev.pdf">PDF</a> or <a href="http://www.pixelmonkey.org/talks/2006-02-21/open_src_dev.odp">ODP</a> formats, and you can also <a href="http://www.pixelmonkey.org/talks/2006-02-21/">download the patches</a> I wrote specifically for the talk to illustrate &#8220;open source development in action.&#8221;  The patches are pretty stupid, but do illustrate the point, at least.  Plus, each of the three patches served one of my own goals (hacking my CPU frequency scaler, fixing a gnome-terminal bug, and hacking galeon &#8220;for fun&#8221;), so that&#8217;s that.  I think it&#8217;d be cool to give this talk again (maybe a little refined to include less basic UNIX tools and more hacking stuff) at a later date.  We&#8217;ll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/02/25/getting-the-troops-mobilized/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s better, small or big?</title>
		<link>http://www.pixelmonkey.org/2006/02/12/whats-better-small-or-big?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=whats-better-small-or-big</link>
		<comments>http://www.pixelmonkey.org/2006/02/12/whats-better-small-or-big#comments</comments>
		<pubDate>Sun, 12 Feb 2006 09:28:11 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/02/12/whats-better-small-or-big/</guid>
		<description><![CDATA[To start out at a small software firm, or to go with one of the big guys? I&#8217;m wondering myself what the right decision is, what advice I&#8217;d give someone. On the one hand, big guys mean bigger projects, more formally managed projects, and at least from that point of view, harder &#8220;software engineering&#8221; problems. [...]]]></description>
			<content:encoded><![CDATA[<p>To start out at a small software firm, or to go with one of the big guys?  I&#8217;m wondering myself what the right decision is, what advice I&#8217;d give someone.</p>
<p>On the one hand, big guys mean bigger projects, more formally managed projects, and at least from that point of view, harder &#8220;software engineering&#8221; problems.</p>
<p>Small firms are less formally managed, but you may be pushing some technology to the limit, rather than just providing some service (however essential it might be) to the company.  It&#8217;s the software that matters, not &#8220;the System.&#8221;  And you&#8217;ll probably be working with better coders.  (The best coders fill up the small shops, whereas they are just diamonds in the rough at the bigger shops).</p>
<p>In either case, this is turning into one of those things your parents always warned you about.  You know, when they say it isn&#8217;t about the company, but it&#8217;s about <i>you</i> and what <i>you</i> put into it.  Just like college was.  I honestly could have gotten just as much out of college with a library card and Internet connection, and lots of free time.</p>
<p>Now that I&#8217;m moving up to the &#8220;real world,&#8221; I keep thinking: no matter what I do, it&#8217;s gonna be my responsibility to grow my skills and knowledge, and no one else&#8217;s.</p>
<p>It&#8217;s definitely going to be an interesting year&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/02/12/whats-better-small-or-big/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outsourcing Homework</title>
		<link>http://www.pixelmonkey.org/2006/01/19/outsourcing-homework?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=outsourcing-homework</link>
		<comments>http://www.pixelmonkey.org/2006/01/19/outsourcing-homework#comments</comments>
		<pubDate>Thu, 19 Jan 2006 16:15:44 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2006/01/19/outsourcing-homework/</guid>
		<description><![CDATA[I only skim the headlines of /. lately instead of getting caught up in the commentary. But one caught my eye: the increase of &#8220;rent a coder&#8221; programs for CS students who want to fake their way to a degree. (Essentially, students are &#8220;outsourcing&#8221; their homework.) My favorite comment was the following: If that&#8217;s your [...]]]></description>
			<content:encoded><![CDATA[<p>I only skim the headlines of /. lately instead of getting caught up in the commentary.  But one caught my eye: the increase of &#8220;rent a coder&#8221; programs for CS students who want to fake their way to a degree.  (Essentially, students are &#8220;outsourcing&#8221; their homework.)  My favorite comment was the following:</p>
<blockquote><p>If that&#8217;s your approach, why not be a buisness major instead? I mean, if you&#8217;re not really passionate about the work, why not pick an occupation that a) pays more and b) is easier to fake your way through?</p></blockquote>
<p>Heh.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2006/01/19/outsourcing-homework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site cross-pollination &#8211; check out h2h</title>
		<link>http://www.pixelmonkey.org/2005/12/13/site-cross-pollination?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=site-cross-pollination</link>
		<comments>http://www.pixelmonkey.org/2005/12/13/site-cross-pollination#comments</comments>
		<pubDate>Tue, 13 Dec 2005 09:14:47 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2005/12/13/site-cross-pollination/</guid>
		<description><![CDATA[I just wanted to mention that earlier today I finally got hand tracking working on my final project for my Motion Capture / Computer Vision class. You can now connect a webcam to your computer, load up my GTK+ program, and watch boxes with crosshairs follow your hands accurately as you move them across the [...]]]></description>
			<content:encoded><![CDATA[<p>I just wanted to mention that earlier today I finally got hand tracking working on my final project for my Motion Capture / Computer Vision class.  You can now connect a webcam to your computer, load up my GTK+ program, and watch boxes with crosshairs follow your hands accurately as you move them across the screen.</p>
<p>Pretty awesome, no?  Check out the project if you haven&#8217;t yet, its MoinMoin wiki is <a href="http://h2h.pixelmonkey.org">here</a>.  I might post up a video of it in action soon.</p>
<p>It uses a clever skintone detection algorithm across the RGB colorspace, along with clever segmentation of the regions of interest to determine the cardinal direction a hand is moving in and retargeting the box to the new area and running the algorithm again.  I am quite happy with the results.  It can only get better, but it&#8217;s already pretty fun to play with.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2005/12/13/site-cross-pollination/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User interfaces with GTK+ and Glade</title>
		<link>http://www.pixelmonkey.org/2005/11/11/user-interfaces-with-gtk-and-glade?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=user-interfaces-with-gtk-and-glade</link>
		<comments>http://www.pixelmonkey.org/2005/11/11/user-interfaces-with-gtk-and-glade#comments</comments>
		<pubDate>Fri, 11 Nov 2005 17:28:05 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2005/11/11/user-interfaces-with-gtk-and-glade/</guid>
		<description><![CDATA[I&#8217;ve been hacking up a user interface for my motion capture/computer vision project called &#8220;Hand2Hand,&#8221; found here. At first I was gonna do the user interface in Python and have the image processing done in C, but then I decided that the user interface was simple enough that I should just give GTK+ in &#8220;pure [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been hacking up a user interface for my motion capture/computer vision project called &#8220;Hand2Hand,&#8221; found <a href="http://h2h.pixelmonkey.org">here</a>.</p>
<p>At first I was gonna do the user interface in Python and have the image processing done in C, but then I decided that the user interface was simple enough that I should just give GTK+ in &#8220;pure C&#8221; form a try.  Of course, I used Glade, which drastically reduces the amount of annoying code for things like Vboxes and Hboxes and Containers you have to write.  In fact, using Glade, interface design becomes somewhat straightforward in C.  Which is weird, because C seems like it was never built for user interface design, but the g_signal system makes it easy to catch events that occur in your program, and GTK+ is high enough abstracted that you can do pretty well.  I don&#8217;t know how well GTK+ scales for large programs (i.e. many dialogs, many lists, etc.)&#8211;in that case, I think I&#8217;d definitely pick a higher level language.</p>
<p>Looking forward to how this application may turn out.  OpenCV looks like a pretty awesome library.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2005/11/11/user-interfaces-with-gtk-and-glade/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just For Fun: The Story of Linus Torvalds</title>
		<link>http://www.pixelmonkey.org/2005/09/22/just-for-fun-the-story-of-linus-torvalds?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=just-for-fun-the-story-of-linus-torvalds</link>
		<comments>http://www.pixelmonkey.org/2005/09/22/just-for-fun-the-story-of-linus-torvalds#comments</comments>
		<pubDate>Thu, 22 Sep 2005 15:36:39 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2005/09/22/just-for-fun-the-story-of-linus-torvalds/</guid>
		<description><![CDATA[For the last couple of weeks, my bedside reading has been this half-biography, half-autobiography on Linus Torvalds. I have to say, however, that the book is like two books mixed into one. Chapters alternate between Linus talking about his life and about big moments in Linux&#8217;s history to David Diamond describing modern-day Linus with a [...]]]></description>
			<content:encoded><![CDATA[<p>For the last couple of weeks, my bedside reading has been this <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0066620724/qid=1127402340/sr=8-2/ref=pd_bbs_2/002-7193520-3049644?v=glance&#038;s=books&#038;n=507846">half-biography, half-autobiography</a> on Linus Torvalds.  I have to say, however, that the book is like two books mixed into one.  Chapters alternate between Linus talking about his life and about big moments in Linux&#8217;s history to David Diamond describing modern-day Linus with a kind of forced wonder.  Truthfully, Diamond comes off as a sycophant who could care less about Linus&#8217;s flaws and positive characteristics, and cares more about molding some kind of &#8220;image&#8221; of Linus as containing a humility and genius simultaneously.  Near the end, I started only skimming the chapters not written by Linus.  Diamond&#8217;s really not a good writer, either.  (Sorry Dave.)</p>
<p>Truthfully, the book kind of pops the lid off Linux and makes you understand it as much less glamorous than say Wired Magazine described it to the public.  Linus really just talks about not having a social life, sitting in his room with curtains covering his window, coding all day.  Not exactly the ideal role model, I think.  Don&#8217;t get me wrong, I love the Linux kernel (as much as one can love imperfect software), and Linus made a great contribution toward keeping the UNIX world and UNIX principles alive, but it&#8217;s just that I like to think of open source developers as something other than the stereotypical, introverted geek.  In fact, much of Linus&#8217;s chapters is devoted to his apprehension about giving a public talk about Linux.  When I think about the fact that I&#8217;ve given three or four of them to date, and enjoy it more every time, I see how different I am from this kind of stereotypical geek.</p>
<p>It also kind of made me dislike Linus.  When I saw Revolution OS (a DVD on the rise of open source), the movie kind of endeared me to Linus&#8217;s practical nature as opposed to Richard Stallman&#8217;s religious idealism.  I like idealism, but Stallman is <em>really religious</em> about it.  And he&#8217;s bitter.  Linus, on the other hand, has that great Northern European, &#8220;I&#8217;m just gonna go with the flow&#8221; attitude.</p>
<p>But this book made me realize that Linus is religious is his own sort of way.  Included in the book is Linus&#8217;s flame war with Andy Tanenbaum on monolithic versus microkernel designs.  Truthfully, I&#8217;ve studied operating systems and I&#8217;m not even sure which design is best, and Linus makes a decent argument of why microkernels end up being just as complex, or more complex than monolithic ones.  But what I didn&#8217;t like is that in  the flamefest, Tanenbaum said that deficiencies in MINIX were due to it being a hobby, and that he had duties as a professor.  Linus responded, &#8220;Re 2: your job is being a professor and researcher: That&#8217;s one hell of a good excuse for some of the brain-damages of minix. I can only hope (and assume) that Amoeba [Tanenbaum's future OS project] doesn&#8217;t suck like minix does.&#8221;</p>
<p>This just shows me that Linus really is an asshole sometimes.  He states this outright in his book.  So now, truthfully, I may like the open source movement, but I think I &#8220;at least dislike&#8221; two of its most major players (Torvalds and Stallman).</p>
<p>Finally, I think a clip from Tanenbaum&#8217;s website points out a nice principal in OS design:</p>
<blockquote><p>Also, Linus and I are not &#8220;enemies&#8221; or anything like that. I met him once and he seemed like a nice friendly, smart guy. My only regret is that he didn&#8217;t develop Linux based on the microkernel technology of MINIX. With all the security problems Windows has now, it is increasingly obvious to everyone that tiny microkernels, like that of MINIX, are a better base for operating systems than huge monolithic systems. Linux has been the victim of fewer attacks than Windows because (1) it actually is more secure, but also (2) most attackers think hitting Windows offers a bigger bang for the buck so Windows simply gets attacked more. As I did 20 years ago, I still fervently believe that the only way to make software secure, reliable, and fast is to make it small. Fight Features.</p></blockquote>
<p>I agree.  But does a microkernel design actually reduce the overall size of the operating system, or does it just reduce the size of whatever you consider to be the &#8220;microkernel&#8221;?  That is, just because a file system is implemented as a file system daemon talking to a driver subsystem through message passing doesn&#8217;t necessarily mean the file system, or driver subsystem, are secure.  Insecurity could exist even at the boundaries, no?  Not to mention instability.</p>
<p>I think Linus and Tanenbaum have to agree that this debate isn&#8217;t an open and shut case.  The best kernel is probably one that mixes modularity, a strong kernel/userspace boundary, and some of the fancier features of a microkernel approach, while not sacrificing elegance of design or performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2005/09/22/just-for-fun-the-story-of-linus-torvalds/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Free Coders at NYU</title>
		<link>http://www.pixelmonkey.org/2005/09/21/free-coders-at-nyu?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=free-coders-at-nyu</link>
		<comments>http://www.pixelmonkey.org/2005/09/21/free-coders-at-nyu#comments</comments>
		<pubDate>Thu, 22 Sep 2005 00:03:17 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2005/09/21/free-coders-at-nyu/</guid>
		<description><![CDATA[I&#8217;m organizing a group of people interested in hacking open source software in a team environment. Right now I&#8217;m calling it Free Coders at NYU, and have already set up a wiki and mailing list. This could end up being very cool. Next meeting is hopefully this coming Tuesday. I set up a mailing list [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m organizing a group of people interested in hacking open source software in a team environment.  Right now I&#8217;m calling it Free Coders at NYU, and have already set up a <a href="http://freecoders.pixelmonkey.org">wiki</a> and <a href="http://pixelmonkey.org/cgi-bin/mailman/listinfo/freecoders">mailing list</a>.  This could end up being very cool.  Next meeting is hopefully this coming Tuesday.</p>
<p>I set up a mailing list with GNU Mailman (link above), which was decently painless under Debian Sarge.  The only annoying thing was utilizing my virtual e-mail address mappings which are stored in MySQL, but I figured out a trick for that.</p>
<p>I&#8217;ve already spoken, via e-mail, with an open source developer who works on gstreamer among other projects, Ronald S. Bultje.  He has already tentatively agreed to do a talk for us sometime this year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2005/09/21/free-coders-at-nyu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amdahl&#8217;s Law</title>
		<link>http://www.pixelmonkey.org/2005/07/28/amdahls-law?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=amdahls-law</link>
		<comments>http://www.pixelmonkey.org/2005/07/28/amdahls-law#comments</comments>
		<pubDate>Thu, 28 Jul 2005 15:28:15 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.pixelmonkey.org/2005/07/28/amdahls-law/</guid>
		<description><![CDATA[Gene Amdahl once applied the law of diminishing returns to computation. He pointed out that when optimizing part of a computer program or computer system, one must take into account what percent of the overall task at hand that optimization affects. I recently read some articles comparing the speed of Python to Java, most of [...]]]></description>
			<content:encoded><![CDATA[<p>Gene Amdahl once applied the law of diminishing returns to computation.  He <a href="http://en.wikipedia.org/wiki/Amdahl's_law">pointed out</a> that when optimizing part of a computer program or computer system, one must take into account what percent of the overall task at hand that optimization affects.</p>
<p>I recently read some articles comparing the speed of Python to Java, most of which concluded that about the only place that Java beats Python is in actual interpreter speed (i.e. how fast statements and parsed and executed), and that since Python opts to provide thin wrappers for standard C libraries, Python performance ends up being really good.</p>
<p>A good comparison of the language features between Java and Python can be <a href="http://www.arielpartners.com/arielpartners/content/public/topics/technology/technologyReviews/javaVsPython">found online</a>, along with a <a href="http://twistedmatrix.com/users/glyph/rant/python-vs-java.html">nice comparison of code simplicity and efficiency</a>.</p>
<p>I think I agree with the first author: Python is a better high-level language, and should thus be used for higher-level tasks, and especially for one-offs.  What&#8217;s interesting is that a lot of people look at Python, say &#8220;Man, Python is slow, I could do this better in C,&#8221; but then forget about Amdahl&#8217;s Law.  If your program is accessing the network, the disk, or any other non-CPU/non-memory resource, no amount of optimization through lower-level languages will save you an order of magnitude on performance.  So why waste the programmer time, when it can be done in a few lines of Python?</p>
<p>(I think one forgotten benefit of Python in both these articles is <a href="http://www.swig.org">SWIG</a>: if you&#8217;re truly a performance-oriented engineer, you can always profile your code, find the bottleneck algortihm/code fragment, rewrite it in C, and wrap it with SWIG so that you can access it as an object in Python.  Not hard to do, and potentially huge performance gains.  OTOH, you can even write Python-accessible code directly in C, using the same abstractions the Python interpreter uses.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2005/07/28/amdahls-law/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finals: Phase I over</title>
		<link>http://www.pixelmonkey.org/2004/12/14/finals-phase-i-over?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=finals-phase-i-over</link>
		<comments>http://www.pixelmonkey.org/2004/12/14/finals-phase-i-over#comments</comments>
		<pubDate>Tue, 14 Dec 2004 23:48:46 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Only two more to go. In other news, my Averatec laptop almost broke again today when I had it on my lap and it almost fell off. I caught it last-second, but this damn laptop is so small that sometimes I don&#8217;t even realize how close it is to being off the edge of my [...]]]></description>
			<content:encoded><![CDATA[<p>Only two more to go.</p>
<p>In other news, my Averatec laptop almost broke again today when I had it on my lap and it almost fell off.  I caught it last-second, but this damn laptop is so small that sometimes I don&#8217;t even realize how close it is to being off the edge of my lap!</p>
<p>The thing has been working better and better.  I got a program called fvcool which can send the Averatec into &#8220;low-power mode&#8221;, which means that the CPU gets sent HLT instructions and &#8220;powersave signals&#8221; on idle.  The result is that it runs a lot cooler and saves more battery power, but at the expense of &#8220;real-time&#8221; apps like movie playing and even some MP3 playing, so you can&#8217;t have it on all the time.</p>
<p>The only bad thing about this laptop is sadly a trivial thing: the paint job.  We all know laptops (except the TiBook/AlBook) are made of plastic under the shiny silver finish, but we wish that that silver finish would never come off.  However, Averatec apparently used cheap paint, and so there are &#8220;palm prints&#8221; under where my palms have rested near the keyboard, as well as already a couple of spots (on the corners of my laptop) where the paint has rubbed off just from getting in contact with things.  Kinda sad, because high-quality paint isn&#8217;t exactly expensive.  Regardless, I&#8217;ll just have to paint it myself (or have M help me)&#8230; it might be a bit of an ordeal, but I think it&#8217;s possible to do.  I&#8217;d just have to figure out a smart way to cover the LCD, keyboard and touch pad&#8230; maybe I can get M&#8217;s help when I come to that juncture.</p>
<p>Maybe I&#8217;ll switch this laptop&#8217;s color to something a little less &#8220;blah&#8221; than silver&#8211;a really shiny black would be awesome, I think.<br />In addition, I fixed some of my nasty X issues, so now my machine doesn&#8217;t hard lock ever.  So that&#8217;s good too.</p>
<p>Now I gotta get studying for Basic Algorithms&#8230; fun fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/12/14/finals-phase-i-over/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algorithms and vim</title>
		<link>http://www.pixelmonkey.org/2004/12/04/algorithms-and-vim?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=algorithms-and-vim</link>
		<comments>http://www.pixelmonkey.org/2004/12/04/algorithms-and-vim#comments</comments>
		<pubDate>Sat, 04 Dec 2004 04:57:39 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I spent about 5 hours today doing algorithm homework/studying. I like that class a little more now, even though some of it is a pain. Divide and conquer and dynamic programming actually are powerful concepts, once you get a feel for them. Then I came back to my dorm, ate some food, and played with [...]]]></description>
			<content:encoded><![CDATA[<p>I spent about 5 hours today doing algorithm homework/studying.  I like that class a little more now, even though some of it is a pain.  Divide and conquer and dynamic programming actually are powerful concepts, once you get a feel for them.</p>
<p>Then I came back to my dorm, ate some food, and played with vim for literally 2 hours.  I guess that was a waste of time, but I learned so much about this editor.  Now I feel I can be twice as productive when I code.  Especially with all the stuff I implemented for prototype previewing in my vimrc, and with all the support for ctags vim always had but I never used.  Wow, this is one powerful programmer&#8217;s editor.</p>
<p>Matt has been telling me that I should use emacs with vi emulation (viper), and then I&#8217;ll get access to all that great emacs stuff.  Maybe.  I have nothing against it, except that emacs seems like an operating system unto itself.  Eh, it doesn&#8217;t matter I guess, I just need to know one of the two well.  They are both portable, and run on all major platforms.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/12/04/algorithms-and-vim/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Human Computer</title>
		<link>http://www.pixelmonkey.org/2004/12/03/the-human-computer?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-human-computer</link>
		<comments>http://www.pixelmonkey.org/2004/12/03/the-human-computer#comments</comments>
		<pubDate>Fri, 03 Dec 2004 05:54:03 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Computer scientists have a lot to learn and realize. For one thing, computers aren&#8217;t the center of the universe. What may be an ideal for computer scientists may not be an ideal for normal people. And very often, computer scientists affect normal people because everyone uses computers (or at least, everyone will). All these computers [...]]]></description>
			<content:encoded><![CDATA[<p>Computer scientists have a lot to learn and realize.</p>
<p>For one thing, computers aren&#8217;t the center of the universe.  What may be an ideal for computer scientists may not be an ideal for normal people.  And very often, computer scientists affect normal people because everyone uses computers (or at least, everyone will).</p>
<p>All these computers sit around on our desks, we only use a fraction of their power at any time.  Right now, I am typing this blog entry, using less than 1% of my CPU&#8217;s power.  Theoretically, it could be doing things&#8211;helpful things, things that will make my life easier.  It could be doing smart analyses of what I&#8217;m writing and try to predict what I&#8217;m going to do next.  It could be some sort of extension of my mind, helping me produce better work.  Instead, it sits there idle, useless.  Glorified typewriter.</p>
<p>There have been many innovations, but the &#8220;humanity&#8221; of computers has been lost.  We shouldn&#8217;t be designing our lives around them&#8230; they should be designed around US.  The way the human mind works needs to be complimented.  I should not change my ways for the computer, except if in changing them it makes my life easier, less complicated, and makes me more powerful as a human being.</p>
<p>These should be enabling devices.  They surely have the potential to be enabling devices.  But right now, in many ways, they disable us.  We are restricted by the rules programmers place on us.  We live under a sort of &#8220;law of code&#8221; which Lawrence Lessig describes in his books.  In addition, the gov&#8217;t and other groups seek ways to use computers to control people.</p>
<p>Computers need to become more like us, so that they can seem familiar, useful, but at the same time, a whole lot more powerful.  What computers have that we don&#8217;t have is speed, time (CPU time), and infinite storage.  What we have that computers don&#8217;t have is the ability to reason about our experiences in very flexible ways.  Wrapping a computer&#8217;s speed and storage capabilities around our own flexible abilities as conscious beings would mean a very powerful harmony.</p>
<p>Why are we still talking about how to isolate faults, or make device driver subsystems better, when this human element is so sorely needed, and would be so well appreciated?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/12/03/the-human-computer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computational consciousness</title>
		<link>http://www.pixelmonkey.org/2004/11/13/computational-consciousness?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=computational-consciousness</link>
		<comments>http://www.pixelmonkey.org/2004/11/13/computational-consciousness#comments</comments>
		<pubDate>Sat, 13 Nov 2004 22:36:31 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;m working on this philosophy paper, and am having a bit of a brain struggle. The paper I read makes a very strong point for a model of consciousness that is computational (functional), so that, for example, it is conceivable that a sufficiently advanced computer (or group of computers) could replace the brain and serve [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on this philosophy paper, and am having a bit of a brain struggle.  The paper I read makes a very strong point for a model of consciousness that is computational (functional), so that, for example, it is conceivable that a sufficiently advanced computer (or group of computers) could replace the brain and serve the same role (i.e. I&#8217;d still have conscious experiences, etc.)&#8230; but this is very hard for me to accept at a &#8220;gut-reaction&#8221; level.  Although it would be very easy for me to write a paper defending Dennett&#8217;s claim, I am going to have work through this to figure out what is wrong with it (I am convinced something is wrong with it).</p>
<p>A quote Dennett cited (attributed to Fodor) made me laugh out loud and receive stares in this quiet lounge: &#8220;If, in short, there is a community of computers living in my head, there had also better be somebody who is in charge; and, by God, it had better be me.&#8221;</p>
<p>I have to re-read, and re-read, and outline, and re-read, and maybe, eventually, write.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/11/13/computational-consciousness/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trusted computing</title>
		<link>http://www.pixelmonkey.org/2004/09/17/trusted-computing?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=trusted-computing</link>
		<comments>http://www.pixelmonkey.org/2004/09/17/trusted-computing#comments</comments>
		<pubDate>Fri, 17 Sep 2004 21:43:40 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Some scary stuff going on in the discussions at Slashdot today over Microsoft&#8217;s &#8220;Trusted Computing&#8221; initiative. quote (Two Slashdot posters): They [Microsoft] have already made the deals w/ Phoenix to make a MSFT certified BIOS that will enable them to not boot �insecure� OSs [read: Linux]. They are in talks to get the RIAA to [...]]]></description>
			<content:encoded><![CDATA[<p>Some scary stuff going on in the discussions at Slashdot today over Microsoft&#8217;s &#8220;Trusted Computing&#8221; initiative.</p>
<blockquote><div style="font-size: 13px;">quote (<a href='http://linux.slashdot.org/article.pl?sid=04/09/17/166235&#038;tid=109&#038;tid=106'>Two</a> Slashdot posters):</div>
<hr style="border: 1px solid #ACA899;" />
<div>They [Microsoft] have already made the deals w/ Phoenix to make a MSFT certified BIOS that will enable them to not boot �insecure� OSs [read: Linux]. They are in talks to get the RIAA to support a format to make CDs unreadable in machines other than those running Windows (I presume this would include insecure versions of Windows as well). They are working to get the MPAA to agree to allow them to distribute movie materials via WMP which will likely lead to DVDs �protected� with MSFT products&#8230;</p>
<p>Sure, you can run all the free software in the world on your OpenBIOS computer. You will not be able to watch media, listen to media, surf the net, etc, because everything will require a &#8220;trusted&#8221; computer.</p>
<p>Yeah, it&#8217;s paranoid, yeah it&#8217;s probably [it seems] unlikely, but this is where we are headed whether we like it or not.</p></div>
<hr style="border: 1px solid #ACA899;" /></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/09/17/trusted-computing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good article on programmer productivity</title>
		<link>http://www.pixelmonkey.org/2004/07/23/good-article-on-programmer-productivity?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=good-article-on-programmer-productivity</link>
		<comments>http://www.pixelmonkey.org/2004/07/23/good-article-on-programmer-productivity#comments</comments>
		<pubDate>Fri, 23 Jul 2004 04:51:40 +0000</pubDate>
		<dc:creator>pixelmonkey</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Read it here. It encourages programmers taking breaks to think about the bigger issues and reduce code bloat. I understand now why programmers end up so conflicted. They have to work to meet deadlines, but often problems could be solved much more elegantly if there were extra time. If I ever did run a software [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.developer.com/java/other/article.php/988641">Read it here</a>.  It encourages programmers taking breaks to think about the bigger issues and reduce code bloat.</p>
<p>I understand now why programmers end up so conflicted.  They have to work to meet deadlines, but often problems could be solved much more elegantly if there were extra time.</p>
<p>If I ever did run a software development company, one of the rules would be that everyone runs <a href="http://www.workrave.org/">Workrave</a>, a great free tool that forces you to take breaks from your computer every once in awhile.  Not only does this reduce your chance of RSI/Carpal Tunnel, but it also provides a way for you to sit back and think about a problem in the abstract, rather than code your way through it.</p>
<p>I know deadlines are a reality.  But in a perfect world, programming projects would be done &#8220;when they&#8217;re done.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pixelmonkey.org/2004/07/23/good-article-on-programmer-productivity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 1/82 queries in 0.050 seconds using memcached
Object Caching 1169/1340 objects using memcached

Served from: _ @ 2012-02-07 20:17:17 -->
