<?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>Nick Carneiro</title>
	<atom:link href="http://trillworks.com/nick/feed/" rel="self" type="application/rss+xml" />
	<link>http://trillworks.com/nick</link>
	<description>Proficient in Microsoft Word</description>
	<lastBuildDate>Sun, 19 May 2013 16:46:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Stop watching TV (everything is TV)</title>
		<link>http://trillworks.com/nick/2013/05/19/stop-watching-tv-everything-is-tv/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=stop-watching-tv-everything-is-tv</link>
		<comments>http://trillworks.com/nick/2013/05/19/stop-watching-tv-everything-is-tv/#comments</comments>
		<pubDate>Sun, 19 May 2013 16:46:47 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=800</guid>
		<description><![CDATA[You think you&#8217;re a productive badass because you don&#8217;t watch TV. You didn&#8217;t have one in college and you never bought one after. Sure, you&#8217;ll curl up with your macbook for some netflix, but that takes up far less time than the widescreen does for the average Middle American. Stop lying to yourself. You consume [...]]]></description>
				<content:encoded><![CDATA[<p>You think you&#8217;re a productive badass because you don&#8217;t watch TV. You didn&#8217;t have one in college and you never bought one after. Sure, you&#8217;ll curl up with your macbook for some netflix, but that takes up far less time than the widescreen does for the average Middle American.</p>
<p>Stop lying to yourself. You consume even more TV than Joe Sixpack. The trick is that the internet has separated the concept of TV from the medium of the television. It&#8217;s not 49.99 a month for cable. TV is any consumptive activity that <strong>gives you what you want</strong> and <strong>tells you who you are</strong>. And that&#8217;s what 99% of urls point to. This is not a conspiracy. This is supply and demand. The economy wants your labor and your money. You&#8217;re going to give it far more than that.</p>
<p>What?</p>
<blockquote><p>&#8211;Employed adults living in households with no children under age 18 engaged in leisure activities for 4.5 hours per day, an hour more than employed adults living with a child under age 6. [0]</p></blockquote>
<p>Thanks, BLS. How much of that was TV?</p>
<blockquote><p>&#8211;Watching TV was the leisure activity that occupied the most time (2.8 hours per day), accounting for about half of leisure time, on average, for those age 15 and over.</p></blockquote>
<p>You&#8217;re not better than John Q. Public Access. Your 2.8 hours always begin with &#8220;http&#8221;.</p>
<p>I. This is TV for everyone:</p>
<p><a href="http://trillworks.com/nick/wp-content/uploads/2013/05/fbads.png"><img class="alignnone size-medium wp-image-802" alt="Facebook is TV" src="http://trillworks.com/nick/wp-content/uploads/2013/05/fbads-300x264.png" width="300" height="264" /></a></p>
<p>&nbsp;</p>
<p>Up top we have Exhibit A: outrage. This person has found something on the internet that she finds upsetting. Surprise. It&#8217;s from Gawker, a machine that chews up liberal arts degrees and spits out liberal outrage to the tune of $2m a day. Our friend&#8217;s outrage has not produced anything more than a remote control. She shared an article that was made just for her, cementing her own identity through consumption while encouraging others to do the same. Facebook/Gawker just told her who she is.</p>
<p>Don&#8217;t get cocky. She is you.</p>
<p>&#8220;But I don&#8217;t post mindless drivel from those blogs.&#8221;</p>
<p>Replace &#8220;Gawker&#8221; with &#8220;The Atlantic&#8221;. Uh oh.</p>
<p>Let&#8217;s move on to the second post, Exhibit B: Here&#8217;s an Imgur link to some gifs on a backdrop of banner ads. When you watch looped animations of furry animals, Facebook/Imgur has given your brain exactly what it wants; Kahneman&#8217;s System 2 remains dormant[1] not just for the 6.5 seconds it takes to watch the gifs, but the subsequent 30 minutes you&#8217;ll spend infinite-scrolling. Both companies&#8217; investors are betting hard on the fact that it feels kind of nice when your brain is melting. Try not to drool on your keyboard.</p>
<p>&#8220;I&#8217;m not a sheeple! I don&#8217;t even click the ads!&#8221;</p>
<p>I believe you. But Facebook ads were never for you. They&#8217;re for your parents and FB shareholders. The sidebar ads are a distraction from the real ads, the snippets of content tailored just for you by companies you&#8217;ve never heard of. They don&#8217;t show up as banners. They&#8217;re dumped directly into your news feed by people you know. Facebook TV is far more insidious than television ever was because you can no longer go to the bathroom to skip the commercial. The content is the commercial and they&#8217;ve hired your mom as a sales rep.</p>
<p>II.  This is TV for men who will consume/are consuming/ have consumed college.</p>
<p><a href="http://trillworks.com/nick/wp-content/uploads/2013/05/Screen-Shot-2013-05-11-at-12.35.30-PM.png"><img class="alignnone size-medium wp-image-803" alt="Reddit" src="http://trillworks.com/nick/wp-content/uploads/2013/05/Screen-Shot-2013-05-11-at-12.35.30-PM-300x184.png" width="300" height="184" /></a></p>
<p>When you see a screen like this on your computer, you should close your eyes and hit ⌘-W. You will have avoided a careful construction of content that tells 18-25 atheist Tupac fans who they are. Reddit is to college guys what honey is to Pooh Bear. Your brain cannot resist the cesspool of interesting factoids, in-jokes, and &#8220;unpopular&#8221; opinions. You&#8217;re getting what you want.</p>
<div id="attachment_815" class="wp-caption alignnone" style="width: 310px"><a href="http://trillworks.com/nick/wp-content/uploads/2013/05/pooh_honeycomb.jpg"><img class="size-medium wp-image-815" alt="He'll be here for a while" src="http://trillworks.com/nick/wp-content/uploads/2013/05/pooh_honeycomb-300x218.jpg" width="300" height="218" /></a><p class="wp-caption-text">He&#8217;ll be here for a while</p></div>
<p>The real cost of Reddit TV is not the cash you&#8217;ll spend on identity-affirming products, but the opportunity cost of doing anything else at all. You&#8217;ve seen this happen to some of your college buddies. Reddit is a time-wasting badge of honor for <del>underachieving</del> English majors.</p>
<p>&#8220;I&#8217;d be successful if I got off Reddit, buckled down, and finished my screenplay. I&#8217;ve really started to flesh out the ideas.&#8221;</p>
<p>A few years ago the site became a kind of nerd shibboleth. In 2009 every CS major could name drop Reddit and wink at their peers for a little self affirmation. Today, students of all disciplines can join the fun for the small price of 2 hours per day and their personalities. Somewhere between the Imgur links and Neil DeGrasse Tyson memes the programmer-types changed the channel to Hacker News and were never heard from again.</p>
<p>III. This is TV for women of all ages.</p>
<p><a href="http://trillworks.com/nick/wp-content/uploads/2013/05/pinterest.png"><img class="alignnone size-medium wp-image-804" alt="Pinterest is TV" src="http://trillworks.com/nick/wp-content/uploads/2013/05/pinterest-300x156.png" width="300" height="156" /></a></p>
<p>&nbsp;</p>
<p>Half of the boxes tell you who you are (fashion, beauty, fitness) and the rest show you what you want (food). But the icing on the cake is the motivational in the bottom right.</p>
<blockquote><p>Wear whatever you want.<br />
Be yourself.<br />
Think.</p></blockquote>
<p>The dissonance here isn&#8217;t any greater than it is for the boys of Reddit or the masses of Facebook, but try to savor the juxtaposition.</p>
<blockquote><p><span style="line-height: 13px;">Wear whatever you want (from this list of affiliate links)<br />
</span><span style="font-size: 13px;">Be yourself (because you&#8217;re worth it™)<br />
</span>Think (about working out later but just keep scrolling for now)</p></blockquote>
<p>IV. The red pill</p>
<p>90% of people will probably never do anything meaningful because they&#8217;re glued to TV. This is good news for you because you know the score. Once Morpheus et al realized they were in The Matrix they started doing some rad shit. Stick to the plan and you&#8217;ll get superpowers in the form of 2.5 free hours a day.</p>
<p>1) Consolidate and minimize your consumption. Ok, you&#8217;re not going to live in a cave. You still have to act like you live in this decade. So use digests. Pick 3 niche things you really care about and sign up for the weekly newsletters[2]. And if you have to read something elsewhere, make sure it has paragraphs. Worried about general informedness? The Economist has an audio edition for your commute. Perspective gained by a one-week lag far outweighs the value of timeliness. And if anything 9/11-serious happens someone will text you.</p>
<p>2) Stop consuming all forms of TV.</p>
<p>Just quit. Go cold turkey and write about it on your blog. But you have to actually quit. Thinking that you have the power to quit is the same as not quitting.</p>
<p>3) Fill the void.</p>
<p>With remarkable self-control you now find yourself with spare hours every day. But now that you&#8217;re actually face-to-face with your creative endeavor, you&#8217;ll erect artificial barriers to entry in the form of &#8221;I need X before I can do Y.&#8221;</p>
<p>&#8220;I need to get my website working but I still haven&#8217;t found the right font.&#8221;</p>
<p>&#8220;I need to buy a synth and learn to play before I can start producing my own beats.&#8221;</p>
<p>&#8220;I need to write a meandering blog post about not wasting time before I start writing code.&#8221; (whoops)</p>
<p>If you have to kill time to wait for X you&#8217;re taking the blue pill. You don&#8217;t get to claim an unmet dependency when you have a device that can create almost anything.</p>
<p><a href="http://trillworks.com/nick/wp-content/uploads/2013/05/macbooktv.jpg"><img class="alignnone size-medium wp-image-824" alt="Macbook TV" src="http://trillworks.com/nick/wp-content/uploads/2013/05/macbooktv-300x198.jpg" width="300" height="198" /></a><br />
The macbook you&#8217;re reading this on is a ticket out of mediocrity. You can use it to write a novel, an app, or a death threat. Go ahead. Start a company, compose a symphony, or hack a bank across state lines. Whichever option you choose, try to enjoy the irony that the computer marketed to &#8220;creatives&#8221; is sold to the aspirational masses for use as a consumption device. It&#8217;s a Stradivarius. Don&#8217;t use it like a Big Gulp.</p>
<p>Last year I saw this interaction that has stayed in the back of my mind. Zach Weiner of SMBC fame was doing a Q&amp;A session at UT. Here are two (roughly paraphrased) exchanges that I&#8217;ll never forget.</p>
<p>Q: &#8220;What webcomics do you read?&#8221;<br />
A: &#8220;I don&#8217;t really read any. I mean, I read a few of my friends&#8217; just to be polite, but when I started I didn&#8217;t read any. I felt like I would be derivative if I absorbed other people&#8217;s ideas.&#8221;</p>
<p>This is key. Consumption of similar media is unnecessary for creative production.</p>
<p>Q: &#8220;What do you do about writer&#8217;s block?&#8221;<br />
A: &#8220;Writing is work. I sit down and churn out ideas, even if I don&#8217;t love them. The archetype of the troubled artist with ennui is bullshit.&#8221;</p>
<p>I wish I had a video of the guy asking the question. He was so smug that couldn&#8217;t see Weiner&#8217;s distaste for his attitude. Don&#8217;t be the guy that thinks he&#8217;s better than everyone what he knows (rather than what he does). This psychological condition is why Reddit feels so good. The million little facts, stories, and trends feed your ego, making you think you&#8217;re clever. But it&#8217;s 1am and all you&#8217;ve done is scroll.</p>
<p>V. Adios</p>
<p>Starting today (5/19/2013) you won&#8217;t catch me watching a Facebook newsfeed, a Twitter stream, a Pinterest board, Tumblr, Instagram, Reddit, Hacker News, Slashdot, Imgur, Google News, etc etc. There are still plenty of ways to get in touch. Facebook Messenger, Google Talk, Skype, Gmail, and Groupme remain legit. But if you ever see me click a Buzzfeed link, just give me the Lenny treatment. Mice-and-men style.</p>
<p>[0] BLS leisure info</p>
<p>http://www.bls.gov/news.release/atus.nr0.htm</p>
<p>[1] http://en.wikipedia.org/wiki/Dual_process_theory</p>
<p>[2] <a href="http://www.hackernewsletter.com/">Hacker Newsletter</a> and <a href="http://javascriptweekly.com/">JavaScript Weekly</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2013/05/19/stop-watching-tv-everything-is-tv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We don&#8217;t need no stinking cases</title>
		<link>http://trillworks.com/nick/2013/04/30/we-dont-need-no-stinking-cases/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=we-dont-need-no-stinking-cases</link>
		<comments>http://trillworks.com/nick/2013/04/30/we-dont-need-no-stinking-cases/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 16:21:14 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=790</guid>
		<description><![CDATA[Manila envelopes padded with bubble wrap make great cases for laptops and kindles. They don&#8217;t look like they contain anything worth stealing and they come with your name and address already written on them. Cheapskates in denial would call this a life hack.]]></description>
				<content:encoded><![CDATA[<p>Manila envelopes padded with bubble wrap make great cases for laptops and kindles. They don&#8217;t look like they contain anything worth stealing and they come with your name and address already written on them.</p>
<p style="text-align: center;"><a href="http://trillworks.com/nick/wp-content/uploads/2013/04/casehack.jpg"><img class="size-medium wp-image-791 aligncenter" alt="Macbook in manila envelope" src="http://trillworks.com/nick/wp-content/uploads/2013/04/casehack-300x224.jpg" width="300" height="224" /></a></p>
<p>Cheapskates in denial would call this a life hack.</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2013/04/30/we-dont-need-no-stinking-cases/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Malicious JavaScript snippet</title>
		<link>http://trillworks.com/nick/2013/04/11/malicious-javascript-snippet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=malicious-javascript-snippet</link>
		<comments>http://trillworks.com/nick/2013/04/11/malicious-javascript-snippet/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 21:12:50 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=754</guid>
		<description><![CDATA[I got this snippet in an html file attached to a phishing email. d=document;a=[0x78,0x63,0x74,0x33,0x7f, etc...];for(i=0;i&#60;a.length;i++){a[i]-=2;} try{d.body++}catch(q){zz=0;}try{zz&#38;=2}catch(q){zz=1;} if(!zz)eval(String.fromCharCode.apply(String,a)); I&#8217;ve reformatted and annotated it for readability. // hide redirect as ascii bytes a = [0x78,0x63,0x74,0x33, etc...]; // "decrypt" our malicious code // maybe this is good enough to defeat filters looking for encoded redirects? for (i = [...]]]></description>
				<content:encoded><![CDATA[<p>I got this snippet in an html file attached to a phishing email.</p>
<pre class="brush:js">d=document;a=[0x78,0x63,0x74,0x33,0x7f, etc...];for(i=0;i&lt;a.length;i++){a[i]-=2;}
try{d.body++}catch(q){zz=0;}try{zz&amp;=2}catch(q){zz=1;}
if(!zz)eval(String.fromCharCode.apply(String,a));</pre>
<p>I&#8217;ve reformatted and annotated it for readability.</p>
<pre class="brush:js">// hide redirect as ascii bytes
a = [0x78,0x63,0x74,0x33, etc...];

// "decrypt" our malicious code
// maybe this is good enough to defeat filters looking for encoded redirects?
for (i = 0; i &lt; a.length; i++) {
    a[i] -= 2;
}

//detect if we're in a real browser
try {
	//throws exception because you can't increment a node
    document.body++
} catch(e) {
    // running in a real browser
    notInBrowser = 0;
}

try {
    //this throws an exception if we didn't throw an exception above
    //(notInBrowser will be undefined)
    notInBrowser &amp;= 2
}
catch(e) {
    notInBrowser = 1;
}
// if we are in a browser, do the redirect
// remember 0 == false and 1 == true 
if (!notInBrowser) {
    eval(String.fromCharCode.apply(String,a));
}</pre>
<p>The decrypted code fed to the eval:</p>
<pre class="brush:js">var1=49;
var2=var1;
if(var1==var2) {document.location="http://[redacted]:8080/forum/links/column.php";}</pre>
<p>I&#8217;m not sure what was at the url. It was probably a phishing page or a browser exploit. If anyone can explain why they used a second try-catch instead of an if-statement, let me know.</p>
<p>This guy has a similar post that explains the <code>document.body++</code>.<br />
<a href="http://jeffreysambells.com/2012/12/12/anatomy-of-a-hack">http://jeffreysambells.com/2012/12/12/anatomy-of-a-hack</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2013/04/11/malicious-javascript-snippet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exclude a file from a git commit</title>
		<link>http://trillworks.com/nick/2013/03/05/exclude-a-file-from-a-git-commit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exclude-a-file-from-a-git-commit</link>
		<comments>http://trillworks.com/nick/2013/03/05/exclude-a-file-from-a-git-commit/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 23:52:52 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=677</guid>
		<description><![CDATA[I need to do this about once a week. git update-index --assume-unchanged path/to/file.txt git commit -a -m "MOBILE-1234: changed a bunch of files but excluded that one I'm saving for later." git update-index --no-assume-unchanged path/to/file.txt If you change 10 files but you only want to commit 9 this will do the trick. TODO: Complete this [...]]]></description>
				<content:encoded><![CDATA[<p>I need to do this about once a week.</p>
<pre class="brush:shell">git update-index --assume-unchanged path/to/file.txt

git commit -a -m "MOBILE-1234: changed a bunch of files but excluded that one I'm saving for later."

git update-index --no-assume-unchanged path/to/file.txt</pre>
<p>If you change 10 files but you only want to commit 9 this will do the trick.</p>
<p>TODO: Complete this git tutorial that blew up on HN a while back. <a href="http://pcottle.github.com/learnGitBranching/">http://pcottle.github.com/learnGitBranching/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2013/03/05/exclude-a-file-from-a-git-commit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Run Django from IntelliJ IDEA on OSX with MySQL</title>
		<link>http://trillworks.com/nick/2013/02/23/run-django-from-intellij-idea-on-osx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=run-django-from-intellij-idea-on-osx</link>
		<comments>http://trillworks.com/nick/2013/02/23/run-django-from-intellij-idea-on-osx/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 22:28:02 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=692</guid>
		<description><![CDATA[If you try to run a Django app from within Intellij using MySQL as the storage backend, you might get the following error. django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/_mysql.so Reason: image not found You&#8217;re missing the DYLD_LIBRARY_PATH environment variable. In Intellij, go to &#8220;edit configurations&#8221;, and add this: [...]]]></description>
				<content:encoded><![CDATA[<p>If you try to run a Django app from within Intellij using MySQL as the storage backend, you might get the following error.</p>
<pre>django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.7-intel.egg/_mysql.so
 Reason: image not found
</pre>
<p>You&#8217;re missing the DYLD_LIBRARY_PATH environment variable.<br />
In Intellij, go to &#8220;edit configurations&#8221;, and add this:<br />
<code>DYLD_LIBRARY_PATH=/usr/local/mysql/lib/</code></p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2013/02/23/run-django-from-intellij-idea-on-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Major: Computer Engineering</title>
		<link>http://trillworks.com/nick/2012/07/05/major-computer-engineering/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=major-computer-engineering</link>
		<comments>http://trillworks.com/nick/2012/07/05/major-computer-engineering/#comments</comments>
		<pubDate>Fri, 06 Jul 2012 04:32:20 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Nontechnical]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=552</guid>
		<description><![CDATA[I recently received a degree in Computer Engineering from the University of Texas. It was a long time coming. Here&#8217;s a rundown of every course I took at UT. This may be helpful if you&#8217;re considering attending UT or trying to pick your major. E E 306 INTRODUCTION TO COMPUTING 302 and 306 are the [...]]]></description>
				<content:encoded><![CDATA[<p>I recently received a degree in Computer Engineering from the University of Texas. It was a long time coming.</p>

<a href='http://trillworks.com/nick/2012/07/05/major-computer-engineering/pc1/' title='Nick C on the computer'><img width="150" height="150" src="http://trillworks.com/nick/wp-content/uploads/2012/05/pc1-150x150.jpg" class="attachment-thumbnail" alt="Hacking in San Diego in 1993" /></a>
<a href='http://trillworks.com/nick/2012/07/05/major-computer-engineering/pc3/' title='Nick C on computer'><img width="150" height="150" src="http://trillworks.com/nick/wp-content/uploads/2012/05/pc3-150x150.jpg" class="attachment-thumbnail" alt="Continued somewhere in California, maybe 1994" /></a>
<a href='http://trillworks.com/nick/2012/07/05/major-computer-engineering/pc2/' title='Nick C on the computer with friends'><img width="150" height="150" src="http://trillworks.com/nick/wp-content/uploads/2012/05/pc2-150x150.jpg" class="attachment-thumbnail" alt="Finally landed in Round Rock around 1999" /></a>

<p>Here&#8217;s a rundown of every course I took at UT. This may be helpful if you&#8217;re considering attending UT or trying to pick your major.</p>
<p>E E 306 INTRODUCTION TO COMPUTING<br />
302 and 306 are the very first courses designed to get you interested in either electrical or computer engineering. This course confirmed what I already knew: I like computers. The curriculum employs a bottom-up approach designed to take away the magic of computing. If you&#8217;re lucky, you&#8217;ll get the venerable Yale Patt.</p>
<p>E E 302 INTRO ELECTRICAL ENGINEERING<br />
306&#8242;s dual course is a light introduction to circuits. You&#8217;ll learn KVL loops and Thevenin equivalences. In a perfect world this would be the only required EE course for CE majors.</p>
<p>M 408D SEQ, SERIES, AND MULTIVAR CALC<br />
Multivariable calculus is a solid math course. I&#8217;m generally pretty bad at mathematics, but I appreciated this one. It picks up where AP BC calculus left off.</p>
<p>C C 304C INTRO TO THE NEW TESTAMENT<br />
I&#8217;m thankful my family never forced me to go to church, but I did miss out on some culturally important narratives and biblical themes. You&#8217;d be surprised at how many little turns of phrase come from Jesus quotes. The course was worthwhile.</p>
<p>M 427K ADV CALCULUS FOR APPLICATNS I<br />
So differential equations are the foundation for several types of engineering. I appreciate the idea, but I had a hell of a time grokking them. The math department has some terrible teachers. Use MyEdu before taking a lower division math course.</p>
<p>PHY 103N LABORATORY FOR PHY 303L<br />
This lab course is attached to PHY 303L. It&#8217;s an exercise in tedium and divining meaning from unclear an unclear instruction manual. The lab TA was a dick until the last day when he handed out the course evaluations. Nobody was fooled.</p>
<p>E E 312 INTRODUCTION TO PROGRAMMING<br />
This course gets you started with C and a little tiny bit of C++ in the last week or so. There&#8217;s a good amount of pointer tricks and doing clever tricks with the stack. It&#8217;s stuff you wouldn&#8217;t normally do, but it&#8217;s good for demonstrating an understanding of the mechanics of activation records. Remember that scene from The Matrix Reloaded where Smith creates a bunch of clones of himself? The professor played that clip to explain recursion. &#8220;Neo is the base case,&#8221; he said.</p>
<p>PHY 303L ENGINEERING PHYSICS II<br />
The single biggest mistake I made in my academic career was not testing out of this course with the Electricity and Magnetism AP test. The physics professors are notoriously bad teachers. If you take it upon yourself to learn physics on your own in high school, you will likely be better off.</p>
<p>E E 411 CIRCUIT THEORY<br />
The professor for this course flew in from California every Monday and Wednesday to teach it. Most lectures were accompanied by a story about <a href="http://en.wikipedia.org/wiki/Bob_Widlar">Bob Widlar</a>&#8216;s drunken antics. This course is probably unnecessary for Software Engineers.</p>
<p>E E 316 DIGITAL LOGIC DESIGN<br />
Logic Design is an important course. It&#8217;s a light introduction to things like muxes, adders, and VHDL. I would recommend it for software engineers because it forces you to think about playing with bits in clever ways.</p>
<p>E E 322C DATA STRUCTURES<br />
This course is tied for first place with Algorithms. Students call it &#8220;Java&#8221;, but it&#8217;s much more. You&#8217;ll implement linked lists, hash tables, and all kinds of trees.</p>
<p>M 325K DISCRETE MATHEMATICS<br />
This is the one math course I actually enjoyed. The teacher was a lecturer, not a professor of any sort. But she was possibly the best teacher I had at UT. The course is full of proofs, but they&#8217;re totally manageable. For any question they throw at you, you&#8217;ll only have a few tools in your toolbox so you won&#8217;t get stuck for long.</p>
<p>E E 319K INTRO TO EMBEDDED SYSTEMS<br />
This course is definitely the most fun. You basically hack away on microcontrollers. The lab section is a series of miniprojects that you show off to a lab TA. When I took it they were using the Freescale 9s12DP512, but they&#8217;ve since switched to an ARM architecture of some sort.</p>
<p>E E 333T ENGINEERING COMMUNICATION-W<br />
This course involves several papers and a powerpoint presentation. You&#8217;ll learn that many people are terrible writers and even worse speakers. This course is for them. It should be an easy A, but the groups are paired randomly, so you&#8217;ll have to have some team cohesion. And that&#8217;s probably part of the lesson.</p>
<p>E E 313 LINEAR SYSTEMS AND SIGNALS<br />
You could call this course &#8220;Applied differential equations&#8221;. Not my cup of tea. But if you like analog stuff this may be for you. Dr. Hall owns an audio company and demos the tech at some point.</p>
<p>E E 438 ELECTRONIC CIRCUITS I<br />
This is the only course I didn&#8217;t finish. Halfway through the semester the ECE department released a new course catalog with a more specialized track for Computer Engineers. I used a Q-drop (penalty-free mechanism for quitting), but not before completing most of the circuit design labs.</p>
<p>E E 360C ALGORITHMS<br />
This is the big papa of software courses. Learn them, love them.</p>
<p>E E 351K PROBABILITY &amp; RANDOM PROCESSES<br />
This is known as one of the more a difficult courses in the curriculum, but it definitely should be in the curriculum. Part of the issue for my class was that the professor (Vikalo) was teaching it for the first time and he was a master of the subject. The best math professors can teach it to you like you&#8217;re five. That said, I&#8217;ll probably end up using some of the Bayesian stuff eventually.</p>
<p>M 340L MATRICES AND MATRIX CALCULATNS<br />
Dr. Arlo Schurle is likely the best math professor at UT and he makes Linear Algebra a cakewalk.</p>
<p>ARH 339M AMERICAN ART SINCE 1960<br />
This is a good course if you like art or think you might like art, but I wouldn&#8217;t want to make it my major. Be prepared to memorize the year, artist, and media for about 250-300 works of art.</p>
<p>UGS 302 CIV SOCTY IN POSTCOLONL STATES<br />
This one was a gem. The course examined the influence of Tocquevillian associations in the Middle East and North Africa. The best part: I took it the semester before the Arab Spring. Nobody saw it coming.</p>
<p>E E 445L MICROPROCESSOR APPLICS AND ORG<br />
This top-tier course picks up where 319k left off with more advanced mini-projects on the 9s12. For the final project, you design a PCB and get it fabricated. My project was a handheld <a href="http://trillworks.com/nick/2011/05/27/pong-on-the-mc9s12c32/">pong</a> console. I&#8217;ll never forget debugging the system with a multimeter and finding a dead wire in the middle of that fucking ribbon cable. These two microcontroller courses are almost completely architected by <a href="http://users.ece.utexas.edu/~valvano/">Valvano</a>.</p>
<p>E E 364D INTRO TO ENGINEERING DESIGN<br />
364D constitutes part one of &#8220;senior design&#8221;. You form your group and select your project from a list of projects provided by industry sponsors. This stage is all about process and planning. You write a series of very similar papers and design plans, but don&#8217;t really build anything. The single most important lesson from this class is that you should only take on group members that you trust 100%. If you&#8217;re on the fence about somebody, just say no. That temporary pain you feel from rejecting someone is well worth the year of agony brought on by an incompetent team member.</p>
<p>M 348 SCI COMPUTATION IN NUM ANLY<br />
This course was such a letdown. I had hoped to learn MATLAB or R, but instead we implemented numerical methods in C++. Even worse, the programming component was actually very small. The vast majority of the time was spent working traditional math problems. But, it is kind of cool to learn the algorithms used by your graphing calculator.</p>
<p>E E 372N TELECOMMUNICATION NETWORKS<br />
The professor, Scott Nettles, is a good teacher and a chill dude. He takes you through the basics of networking from bits on a wire up through BGP and IPv6. The course is a mixed undergraduate/graduate course, but undergrads are spared from the x-kernel labs.</p>
<p>E E 155 ELECTRICAL/COMPUTER ENGR SMNR<br />
I needed an extra hour to get the requisite number of hours required by the 2010-2012 catalogue. This seminar features a new guest speaker faculty member from the ECE department every week. Professors spoke about their research into metamaterials, automatic program transformations, medical devices, and autonomous vehicles to name a few.</p>
<p>GOV 312L AMERICAN GOVERNMENT (Credit by Exam)<br />
I avoided government entirely at UT by claiming AP test credit and taking US government from ACC online. I did this because I wanted to have more time to focus on my other technical courses. I regret it a little bit. My roommate fulfilled 312L with a course on Mexican government that sounded extremely interesting.</p>
<p>E E 360F INTRO TO SOFTWARE ENGINEERING<br />
Nearly everyone blows off this course which is a huge shame. They will pay for it later. The textbook is Mythical Man Month, and there are a variety of papers assigned as reading. The content itself is reasonably interesting, but Perry manages to suck the life out of it in lecture.</p>
<p>E E 464K SENIOR DESIGN PROJECT<br />
The second semester of senior design is more substantial in that you actually build the product. But for the most part, it&#8217;s more of the same: long hours spent editing papers with five authors. The key to success here is real time collaborative editing using Google Docs while talking over Skype.</p>
<p>R M 357E INTRO TO RISK MANAGEMENT<br />
I took a rare chance to get a formal background in finance. This course covers many different types of insurance, something that most people never get any exposure to. The professor I had, Patricia Arnold, takes attendance (?!), but is seriously passionate about insurance which helps drive lectures about a traditionally dry subject matter.</p>
<p>E S 377 INTERDISCIPLNRY ENTREPRENRSHP<br />
1 Semester Startup is positioned to be the killer app for UT. I was fortunate enough to get DebateTab into the very first class. Josh Baer and Bob Metcalfe are solid resources who really want to help. If you take this class. the limiting agent will be yourself and your team&#8217;s commitment to school. It&#8217;s hard to convince someone to hack when he&#8217;s struggling with a math course. You also can&#8217;t be upset when your cofounders who are in the country on student visas get hired by Microsoft and Salesforce.</p>
<p>E E 360T SOFTWARE TESTING<br />
This class is important, but it won&#8217;t make you a great test writer. The goal is to cover as many types of testing as possible from the Ammann &amp; Offutt text. It begins with JUnit basics and proceeds to survey graph coverage, logic coverage, input space partitioning, and syntax-based testing. The homework assignments with the JPF model checker were some of the strangest, but most interesting assignments I&#8217;ve had.</p>
<p>E E 461L SOFTWARE ENGR AND DESIGN<br />
This is the new software lab that&#8217;s supposed to prepare you for the real world with JUnit, bash, svn, ant, UML diagrams, and Hoare logic. The course falls short because it&#8217;s disorganized and no substitute for teaching yourself. But, it&#8217;s better than nothing if you&#8217;ve never used anything listed in the previous sentence.</p>
<p>E E 360P CONCURRENT AND DISTRIBUTED SYS<br />
This is where Vijay Garg really shines. His teaching style involves setting up a problem, asking students to solve it, and then pulling them forward through the history of solutions. The key here is that he doesn&#8217;t linger so long that you lose focus. After taking this course you will be a much better programmer. Concurrency is one of those topics that you just don&#8217;t pick up from &#8220;Learn PHP in 24 hours&#8221;.</p>
<p>A week before graduation I learned that I would be awarded a double major (in electrical engineering) which was surprising because I intended to only major in computer engineering. Apparently you can&#8217;t major solely in CE.</p>
<h2>Courses I should have taken</h2>
<p>If I had an extra year I would definitely take the following courses. I probably could have found space for them if I&#8217;d planned better or worked harder, but hindsight&#8217;s 20/20.</p>
<p>E E 460N COMPUTER ARCHITECTURE<br />
This is considered the most difficult and the most time consuming course in ECE. But it may be the most instructive of all. <a href="http://users.ece.utexas.edu/~derek/WhatClassestoTake.html">Chiou</a>, who teaches it, says:</p>
<blockquote><p>Prof. Patt, who is one of the world&#8217;s leading computer architects, designed the class.  It covers about 80% of what I studied in a graduate computer architecture classes at MIT (6.823.)</p></blockquote>
<p>The quote says a lot because all the descriptions of MIT coursework I&#8217;ve read make it sound twice as rigorous as anything I took at UT. The <a href="http://users.ece.utexas.edu/~patt/11s.460N/ps.html">problem sets</a> from 2011 are available on Patt&#8217;s site.</p>
<p>EE445M EMBEDDED AND REAL TIME SYSTEMS LAB<br />
445M is the most involved embedded systems course you can take as an undergraduate, mainly because you write your own operating system. From the course description:  <em>implementation of multitasking, synchronization, protection, and paging; operating systems</em></p>
<p>E E 125S INTERNSHIP IN ELEC &amp; COMP ENGR<br />
You can claim one hour of credit for having an internship related to your major. My two years at IBM would have qualified, but I was too lazy to get the paperwork signed. It would have been a hassle because my manager was in Raleigh.</p>
<p>A smarter or more motivated person could easily finish this program in less than 4 years. I don&#8217;t regret taking my time, though. College is worth savoring, especially at UT.</p>
<h2>Why not CS?</h2>
<p>I avoided Computer Science because most of the descriptions I read made the discipline sound heavy on math and theory, and lighter on actual hacking. Formal proofs are difficult and boring for me, so I chose engineering. In retrospect, I&#8217;m not sure that this was the right choice because there&#8217;s a good amount of freedom within a degree plan.</p>
<p>If you major in computer engineering, you&#8217;ll constantly be referred to as a CS or EE major. I found this to be irksome because I made a conscious choice to get an <em>engineering</em> degree, but I also don&#8217;t care for circuits. But you can&#8217;t really let this get to you because the degrees are functionally equivalent in the workplace. This is justified because neither department is stupid. <strong>The CS department is well aware that you need to learn some assembly and logic design and the ECE department ensures that you know how to analyze big-O complexity of an algorithm</strong>. You&#8217;ll be in good shape either way. And if you know that you just want to build webapps, you might consider CS because you&#8217;ll have a better chance of meeting web hackers. I can count the number I met in ECE on two hands.</p>
<h2>Aftermath</h2>
<p>During my senior year I interviewed at four software companies and received four job offers. I started work at <a href="http://indeed.com">Indeed</a> in June. If you want one of the more engaging programming jobs, you can&#8217;t just write code for class. You can either A) be really really smart, or B) be someone who spends a lot of time building cool stuff. Go to <a href="http://hackut.com">Hacker Lounge</a> to meet people who are both.</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2012/07/05/major-computer-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get your startup acquired by IBM</title>
		<link>http://trillworks.com/nick/2012/05/10/how-to-get-your-startup-acquired-by-ibm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-get-your-startup-acquired-by-ibm</link>
		<comments>http://trillworks.com/nick/2012/05/10/how-to-get-your-startup-acquired-by-ibm/#comments</comments>
		<pubDate>Fri, 11 May 2012 03:37:20 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Nontechnical]]></category>
		<category><![CDATA[acquisition]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=519</guid>
		<description><![CDATA[IBM as we know it now has been absorbing other companies since the early 1900s. The first IBM-related acquisition happened in 1899 when IBM precursor Bundy Manufacturing bought a company that made time clocks. As a reference point, that sale happened 34 years after the end of the Civil War. Since then, Big Blue has [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-533" title="acquisitions per year" alt="" src="http://trillworks.com/nick/wp-content/uploads/2012/05/Screen-Shot-2012-05-07-at-11.57.17-PM.png" width="765" height="433" /></p>
<p>IBM as we know it now has been absorbing other companies since the early 1900s. The first IBM-related acquisition happened in 1899 when IBM precursor Bundy Manufacturing bought a company that made time clocks. As a reference point, that sale happened 34 years after the end of the Civil War. Since then, Big Blue has acquired a staggering amount of firms, including <a href="http://en.wikipedia.org/wiki/List_of_mergers_and_acquisitions_by_IBM#Acquisitions_since_1999">47 since 2008</a>[1].</p>
<p>So if you&#8217;re looking for an exit, it wouldn&#8217;t hurt to see what kind of firms big enterprises are interested in. So how can we characterize those 47 acquisitions made from 2008 to today?</p>
<h2>Virtually all of them are software companies</h2>
<p>This isn&#8217;t surprising. By now, most people are familiar with IBM&#8217;s reinvention as a software and services company. Tom Friedman devotes a few paragraphs to the metamorphosis in The World is Flat. Making the World Work Better, the IBM book given to every employee, belabors the point.</p>
<h2>Literally all of them have B2B business models.</h2>
<p><img class="size-medium wp-image-530 aligncenter" title="Haha, business!" alt="Business!" src="http://trillworks.com/nick/wp-content/uploads/2012/05/haha_business-197x300.jpg" width="197" height="300" /></p>
<blockquote><p>“A million people walk into a bar in Silicon Valley. Nobody buys anything. The bar is declared a huge success.”</p></blockquote>
<p>Again, enterprise software and services are IBM&#8217;s bread and butter. While people joke about the valley celebrating SoLoMo companies that don&#8217;t make any money, enterprise software firms have been laughing all the way to the bank.</p>
<p>Anecdotally, I&#8217;ve noticed that some IBM products aren&#8217;t really the best available or the most user friendly. Anyone who&#8217;s used NetInsight or Lotus Notes can attest to that. Perhaps this is just a symptom of enterprise software in general: <strong>You don&#8217;t have to have the best product, you just need to convince a bunch of companies they need you</strong>. The enterprise market is ostensibly ridden with friction and inefficiency. After the sale is made, the product just has to do what it says on the box halfway decently. It doesn&#8217;t really matter if it&#8217;s slow and unintuitive. I&#8217;d really like to see UX lessons learned from bubblegum web startups osmose into the b2b domain [2].</p>
<h2>The average age at acquisition is 13.5 years</h2>
<p>IBM buys established, profitable companies that have a lot of traction. These companies don&#8217;t look like they were &#8220;built to flip&#8221;. There is a very real, proven demand for the products or services.</p>
<h2>60% are from the US. Of those 29, 8 are from Massachusetts and 8 are from Silicon Valley.</h2>
<p><img class="alignnone size-full wp-image-536" title="Countries of Origin" alt="" src="http://trillworks.com/nick/wp-content/uploads/2012/05/countriesoforigin.jpg" width="658" height="425" /></p>
<p>It&#8217;s not surprising that Silicon Valley is well represented, but the Bay Area hardly has a monopoly. Only 17% of all companies acquired since 2008 were from the Valley.</p>
<p>Massachusetts is home to MIT, Harvard and about 100 smaller schools. And local VC&#8217;s have a <a href="http://www.boston.com/business/technology/innoeco/2009/08/why_waltham_doesnt_matter.html">reputation</a> for funding companies selling to big business.</p>
<p>Of the &#8220;rest of the world&#8221; group, Israel is well represented. Haifa is known as a tech engine and IBM has a large research presence at the University of Haifa.</p>
<p>In the next 20 years expect to see acquisitions from BRIC nations. India and China are producing very high numbers of engineering students with graduate degrees. The oft repeated argument that &#8220;they aren&#8217;t as innovative as us&#8221; is going to look pretty silly by 2030. The biggest reason we haven&#8217;t seen any BRIC acquisitions so far is because of the long incubation time mentioned above. Many of the companies in emerging markets that IBM will acquire have likely already been founded.</p>
<p>This post wouldn&#8217;t be complete without mentioning Austin. Since 2008 IBM&#8217;s only Austin acquisition was the 2009 purchase of Lombardi Software. Former Lombardi CEO Rod Favaron is now at Spredfast, a company worth mentioning because a) they do social for enterprise and b) they gave me a T-shirt. Note that both companies came out of ATI, a UT partnership with the private sector.</p>
<p>And long before Lombardi there was the huge Tivoli merger in 1996. If you have the opportunity to see Frank Moss (former Tivoli CEO) speak, you should take it. He&#8217;s an interesting dude. And, strangely enough, he began his career working for IBM Research in Haifa.</p>
<h2>The Bottom Line</h2>
<p>IBM likes to acquire established enterprise software firms that have been in business for over a decade. Their cities of origin are geographically diverse, but many are characterized by high availability of venture capital and a strong history of academic interaction with the private sector.</p>
<p>You may be able to glean some insight of your own from the Google Doc <a href="https://docs.google.com/spreadsheet/ccc?key=0Ahc2geGxowh3dE1sY08ybWF2NWpHbEdPN3NyeUVhS3c">spreadsheet</a> with all the data:</p>
<p><iframe src="https://docs.google.com/spreadsheet/pub?key=0Ahc2geGxowh3dE1sY08ybWF2NWpHbEdPN3NyeUVhS3c&amp;output=html&amp;widget=true" height="300" width="500" frameborder="0"></iframe></p>
<p>P.S.:<br />
Cringely just wrapped up a <a href="http://www.cringely.com/tag/ibm/">series of posts</a> announcing the imminent downfall of IBM, due in part to its inability to deliver on service agreements. I expect software revenue will continue to grow and mitigate failures of global services. Cringely is pessimistic about all the software buys and doesn&#8217;t believe that IBM can turn new software products into billion dollar business. I disagree. The companies that IBM bought were profitable. There are enough smart people [3] at IBM to figure out how to assemble halfway decent software products into coherent packages that can be sold by a proven sales force.</p>
<p>Update 3/23/2013: @miquelcamps has done some <a href="http://betabeers.com/uploads/estudios/crunchbase-startup-data/#chart_div6">analysis</a> of Crunchbase acquisition data. IBM is listed as the 4th largest acquirer behind Cisco, Microsoft, and Google.</p>
<p>[1] Most of data in this post comes from Crunchbase and <a href="http://en.wikipedia.org/wiki/List_of_mergers_and_acquisitions_by_IBM">Wikipedia</a>.<br />
[2] Mixpanel appears to be doing this. And Palantir claims to bring Silicon Valley level software to government.<br />
[3] I just wrapped up a 2 year internship in IBM&#8217;s developerWorks.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2012/05/10/how-to-get-your-startup-acquired-by-ibm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Thoughts: March 2012</title>
		<link>http://trillworks.com/nick/2012/04/03/book-thoughts-march-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-thoughts-march-2012</link>
		<comments>http://trillworks.com/nick/2012/04/03/book-thoughts-march-2012/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 16:29:04 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Nontechnical]]></category>
		<category><![CDATA[hunger games]]></category>
		<category><![CDATA[siddhartha]]></category>
		<category><![CDATA[vonnegut]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=435</guid>
		<description><![CDATA[God Bless You, Dr. Kevorkian by Kurt Vonnegut Vonnegut scores points for brevity here. If you like Vonnegut, you have no excuse for not reading this half-hour paperback. If I say anything else, I&#8217;ll spoil it. Siddhartha by Herman Hesse Siddhartha will help you recover from this XKCD. I&#8217;m probably not the only person who [...]]]></description>
				<content:encoded><![CDATA[<h3>God Bless You, Dr. Kevorkian by Kurt Vonnegut</h3>
<p>Vonnegut scores points for brevity here. If you like Vonnegut, you have no excuse for not reading this half-hour paperback. If I say anything else, I&#8217;ll spoil it.</p>
<h3>Siddhartha by Herman Hesse</h3>
<p>Siddhartha will help you recover from this XKCD.</p>
<p><img class="alignnone" title="XKCD" src="http://imgs.xkcd.com/comics/pickup_artist.png" alt="xkcd critique" width="540" height="931" /></p>
<p>I&#8217;m probably not the only person who suffered collateral damage from the criticism in the second-to-last panel. Fortunately, Siddhartha offers a somewhat helpful interpretation. Hesse conveys the idea that you can&#8217;t have a second-hand epiphany, even if you&#8217;re talking to Buddha himself. Sitting around and thinking for a while won&#8217;t really help either. You&#8217;ve got to <em>live</em> the enlightenment.</p>
<h3>The Hunger Games trilogy by Suzzane Collins</h3>
<p>I could write a whole post about the Hunger Games zeitgeist, but I&#8217;ll make one point. The series is, on the whole, good. Kids get lured in with the promise of a twilight-esque teen love triangle, but also receive a political narrative about the human cost of war. It&#8217;s no Harry Potter, but the pop culture ubiquity is well deserved.</p>
<p>As for the movie: The film is just a few plot points away from being an English version of Battle Royale. The similarities are uncanny.</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2012/04/03/book-thoughts-march-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cap 10k Race Data</title>
		<link>http://trillworks.com/nick/2012/04/02/cap-10k-race-data/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cap-10k-race-data</link>
		<comments>http://trillworks.com/nick/2012/04/02/cap-10k-race-data/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 04:41:41 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[cap 10k]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[race]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[scraping]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=429</guid>
		<description><![CDATA[The Capitol 10,000 is a total friggin&#8217; blast. Anyone with a remote interest in running should participate. Rarely do you get to run up the middle of the Congress bridge straight to the capitol through an unstoppable sea of humanity. On your way to the finish line you&#8217;ll pass spectators offering beer, bacon, and donuts. [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_445" class="wp-caption alignnone" style="width: 266px"><img class="size-full wp-image-445" title="cap 10k" src="http://trillworks.com/nick/wp-content/uploads/2012/04/race.jpg" alt="" width="256" height="384" /><p class="wp-caption-text">What&#39;s the rush?</p></div>
<p>The Capitol 10,000 is a total friggin&#8217; blast. Anyone with a remote interest in running should participate. Rarely do you get to run up the middle of the Congress bridge straight to the capitol through an unstoppable sea of humanity. On your way to the finish line you&#8217;ll pass spectators offering beer, bacon, and donuts.</p>
<p>Before you can catch your breath, they make the results available online. I&#8217;ve been looking for an opportunity to jump back into Python, so naturally I scraped the HTML and ran it through a script so people can play with the data.</p>
<p>Here&#8217;s how it went down.</p>
<p>Results are posted to mychiptime.com. They have some client-side JavaScript query their backend with your specified parameters. With a little help from Chrome&#8217;s developer console, I found their URL scheme. Use wget to download the data. It&#8217;s HTML that gets inserted directly into the page with a $(&#8220;#blah&#8221;).html(response).</p>
<pre class="brush:shell">wget http://www.mychiptime.com/searchResultGen.php?eID=3526&amp;show=all"</pre>
<p>The HTML returned by their API is truly hideous. A mere 20k rows cost 16MB&#8230; because they&#8217;re chock full of &lt;b&gt;, &lt;font&gt;, and &#8220;OnMouseOver&#8221;. After pulling out the relevant data, the file size is about 800KB.</p>
<p>Here&#8217;s the python script used to generate tab delimited .csv files from the HTML input. BeautifulSoup can take a few minutes to parse the larger files.</p>
<pre class="brush:py">from bs4 import BeautifulSoup
#produce tab delimited CSV files from large html files
for year in range(2008, 2013):
	print 'processing ' + str(year)
	file = str(year) + '.html'
	f = open(file, 'r');

	html = f.read()
	soup = BeautifulSoup(html)
	table = soup.find("table")	

	#first row with column titles
	rows = table.findAll('tr')

	i = 0
	#write data to csv file
	outfile = str(year) + '.csv'
	out = open(outfile, 'w')
	this_row = ''
	for row in rows:
		cols = row.findAll('td')
		for col in cols:
			b = col.find('b')

			text = str(b.string)
			this_row += text
			this_row += '	'

		if i % 2 == 0:
			this_row += '\n'
			out.write(this_row)
			this_row = ''
		i += 1

	out.close();
	f.close()</pre>
<h3></h3>
<h3>Playing with the data</h3>
<p>Building a simple scatterplot was way harder than it should have been. Google docs&#8217; spreadsheet crashes when I try to build a chart. The Python library matplotlib chokes on the rows where Age is &#8220;None&#8221;. Wolfram Alpha rejects it, probably for the same reason. LibreOffice&#8217;s Spreadsheet just made my laptop really hot. Octave is inscrutable. But <a href="http://plot.micw.eu/Main/Download">Plot</a> for OSX did the job.</p>
<div id="attachment_458" class="wp-caption alignnone" style="width: 690px"><img class="size-full wp-image-458" title="cap10k age plot" src="http://trillworks.com/nick/wp-content/uploads/2012/04/ageplot.png" alt="" width="680" height="480" /><p class="wp-caption-text">2012 Cap 10k</p></div>
<p>I&#8217;d like to see someone with MATLAB skills come up with some more advanced plots or divine some insight from the data. The columns available for 2012 are:</p>
<ul>
<li>Name</li>
<li>Division Place</li>
<li>Gun Time</li>
<li>Chip Time</li>
<li>Overall Place</li>
<li>Age</li>
<li>Zip</li>
<li>Gen Place</li>
<li>Total Pace</li>
<li>Total Div</li>
<li>Total Gend</li>
<li>Tot AG</li>
</ul>
<p>Here&#8217;s a <a href="http://trillworks.com/nick/wp-content/uploads/2012/04/cap10k1.zip">zip archive</a> of all the tab delimited CSV files 2008-2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2012/04/02/cap-10k-race-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Thoughts: February 2012</title>
		<link>http://trillworks.com/nick/2012/03/02/book-thoughts-february-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-thoughts-february-2012</link>
		<comments>http://trillworks.com/nick/2012/03/02/book-thoughts-february-2012/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 18:26:44 +0000</pubDate>
		<dc:creator>Nick Carneiro</dc:creator>
				<category><![CDATA[Nontechnical]]></category>
		<category><![CDATA[biography]]></category>
		<category><![CDATA[getting things done]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[holocaust]]></category>
		<category><![CDATA[night]]></category>
		<category><![CDATA[steve jobs]]></category>

		<guid isPermaLink="false">http://trillworks.com/nick/?p=411</guid>
		<description><![CDATA[Steve Jobs by Walter Isaacson I loved this book. The narrative happened to be about a tech company and I&#8217;m sure that helped draw me in, but at its core this is just a great story. There are a handful of criticisms aired in this HN thread focused around the technical accuracy of products and [...]]]></description>
				<content:encoded><![CDATA[<h3></h3>
<h3><img class="alignnone size-medium wp-image-413" title="Steve-Jobs-Biography-Cover" src="http://trillworks.com/nick/wp-content/uploads/2012/03/Steve-Jobs-Biography-Cover-300x300.jpg" alt="" width="300" height="300" /></h3>
<h3>Steve Jobs by Walter Isaacson</h3>
<p>I loved this book. The narrative happened to be about a tech company and I&#8217;m sure that helped draw me in, but at its core this is just a great story. There are a handful of criticisms aired in this <a href="http://news.ycombinator.com/item?id=3239732">HN thread</a> focused around the technical accuracy of products and software lineage. Those things don&#8217;t really matter. Isaacson was telling a multi-faceted story and managed to weave in the stuff that really mattered. As far as I can tell, he imparts the exact impression that he intends to.</p>
<p>A useful metric of a book&#8217;s efficacy is whether or not it&#8217;s convincing. This book was. Whether or not the portrayal of Jobs was 100% accurate isn&#8217;t all that important. Isaacson sold it. It worked.</p>
<p>&nbsp;</p>
<p><img class="alignnone size-medium wp-image-414" title="nightcover" src="http://trillworks.com/nick/wp-content/uploads/2012/03/nightcover-177x300.jpg" alt="" width="177" height="300" /></p>
<h3>Night by Elie Wiesel</h3>
<p>English teachers like to throw this in to the curriculum to give kids a little holocaust exposure. It&#8217;s the trump card of bleakness. Great AP test essay material. Here&#8217;s my attempt:</p>
<p>The Times quote on the cover describes Wiesel&#8217;s story as &#8220;A slim volume of terrifying power.&#8221; But what gives the book its power is his vivid portrayal of powerlessness.</p>
<p>But seriously. By the end you&#8217;ll be a little pissed off. Looking for justice? Look no further than the Wikipedia article on <a href="http://en.wikipedia.org/wiki/Adolf_Eichmann">Adolf Eichmann</a>.</p>
<blockquote><p>Shortly after the execution, Eichmann&#8217;s body was cremated in a specially designed furnace, and a stretcher on tracks was used to place the body into it. The next morning, June 1, his ashes were scattered at sea over the Mediterranean, beyond the territorial waters of Israel by an Israeli Navy patrol boat. This was to ensure that there could be no future memorial and that no country would serve as his final resting place.[58]</p></blockquote>
<p>This is likely the best instance of &#8220;<a href="http://www.youtube.com/watch?feature=player_detailpage&amp;v=KNib30GghKw#t=88s">People don&#8217;t forget!</a>&#8221;</p>
<p>&nbsp;</p>
<p><a href="http://trillworks.com/nick/wp-content/uploads/2012/03/gtdcover1.jpg"><img class="alignnone size-medium wp-image-415" title="gtdcover" src="http://trillworks.com/nick/wp-content/uploads/2012/03/gtdcover1-202x300.jpg" alt="" width="202" height="300" /></a></p>
<p>&nbsp;</p>
<h3>Getting Things Done by David Allen</h3>
<p>Look at that cheesy-ass cover. Under normal circumstances I would not have read an ostensibly dopey self-help book. But, a few people I trust all confirm that the method delivers on its promises. Besides, an effective placebo is still effective so I didn&#8217;t have a ton to lose.</p>
<p>I&#8217;ve been using Omnifocus for about 3 weeks now. It&#8217;s a nice organization system, and it works to a point. Capturing tasks certainly <em>feels</em> good. I know exactly what my obligations are and what I need to do to advance my progress. But these lists don&#8217;t solve the problem of being the only person working on a substantial software project. Knowing exactly what you need to do next doesn&#8217;t offer much solace when the task list is 50 items long and there&#8217;s nobody to delegate to.</p>
<p>That said, I enjoy the method because it has helped me manage the smaller projects I&#8217;m involved in. That&#8217;s mostly because it&#8217;s a formalization of common sense: Be organized. Make lists. Figure out what you need to physically do next. Keep your calendar clean.</p>
<p>At some points it reads like an advertisement for Allen&#8217;s consulting business, but he&#8217;s gotta eat so I won&#8217;t hold that against him. It&#8217;s a little bit difficult to give a full evaluation of the method at this point, so expect another report in a few months. All I can say now is that it isn&#8217;t hurting anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://trillworks.com/nick/2012/03/02/book-thoughts-february-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
