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

<channel>
	<title>Life in the Shell</title>
	<atom:link href="http://pennyhacks.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pennyhacks.com</link>
	<description>A few words from Ben Rudolph, your friendly programmer</description>
	<lastBuildDate>Fri, 03 May 2013 00:54:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='pennyhacks.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Life in the Shell</title>
		<link>http://pennyhacks.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pennyhacks.com/osd.xml" title="Life in the Shell" />
	<atom:link rel='hub' href='http://pennyhacks.com/?pushpress=hub'/>
		<item>
		<title>Tokyo</title>
		<link>http://pennyhacks.com/2013/03/30/tokyo/</link>
		<comments>http://pennyhacks.com/2013/03/30/tokyo/#comments</comments>
		<pubDate>Sat, 30 Mar 2013 20:01:23 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=2489</guid>
		<description><![CDATA[I spent this spring break in Tokyo. The purpose? To meet with Rakuten for an hour to discuss my CS 210 group project. Along the way though, we got to experience Tokyo. A truly amazing city filled with deeply polite people. Preparation I have never prepared less for a trip in my life. We all had finals [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2489&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I spent this spring break in Tokyo. The purpose? To meet with Rakuten for an hour to discuss my <a href="http://www.stanforddaily.com/2013/03/01/five-students-to-meet-with-bmw-executives-at-companys-munich-headquarters/">CS 210</a> group project. Along the way though, we got to experience Tokyo. A truly amazing city filled with deeply polite people.</p>
<p><strong>Preparation</strong></p>
<p>I have never prepared less for a trip in my life. We all had finals before we left for Tokyo, and thus were focused on gulping down caffeine to study instead of planning our awesome trip. Literally the <em>only</em> thing we did in preparation was book a place to stay the night before we left. It was a running joke up until we took off to Japan when we realized none of us had any clue what we were doing and none of us spoke Japanese.</p>
<p><strong>Initial arrival</strong></p>
<p>As mentioned before, we knew nothing about Tokyo and then were forced to face the consequences upon arrival. Immediately after landing (in Narita airport) we had to figure out how to get to Tokyo. Unsurprisingly, we were stumped at the ticket machine. Luckily for us, a Japanese businessman decided to help three bumbling americans. He showed us which tickets to buy, and then, since he was going the same direction, rode with us back to our train stop.</p>
<p>At the train stop, he suggested we grab dinner together. Who were we to refuse such an offer? So our now good friend Abe (pronounced Ah-bay), took us to our hostel, waited for us to change, and then took us all to a nice japanese restaurant with his girlfriend. Abe began to tell us about all sorts of japanese culture. One of which is drinking. Abe ordered everyone many rounds of beer, of which his girlfriend immediately pounded. I&#8217;ve never seen 90 pound japanese woman drink so much so fast. Props.</p>
<p>Abe told us about his company and how many japanese have to trade off between being a family man and a career man. He was of the career type. There is unusual amounts of stress in Japan. So much so that his company averages 3-5 suicides a year! Also in Japan, there isn&#8217;t a way to fire a person (at least at his company), so the company will stop giving him work until he quits. This came as a surprise to us considering that if the same were done to us in America, we believe that we&#8217;d be ecstatic to receive no work yet still get paid. I think this probably has to do with the deeply rooted sense of honor in Japan, something that doesn&#8217;t quite exist in America. At midnight we finished dinner and Abe amazingly picked up the tab for three american strangers.</p>
<p>We were all incredibly thankful for his help and thanked our lucky stars that we had run into Abe. It seemed like something that would likely never happen again. Yet, the japanese surprised us again. Charlie, the 4th member of our group, came late to Tokyo due to exams. We had no cell communication with Charlie, no email, no nothing. The only thing Charlie knew was some outdated plan that would no longer work and the name of the hostel we were staying at.</p>
<p>I was honestly not expecting to see Charlie until our flight home. In my mind, there was no way Charlie would be able to figure out the train system, realize the plan he knew was no longer the plan and find his way through the winding streets to our hostel. Amazingly, Charlie ran into another friendly japanese businessman. The man travelled with Charlie to Tokyo and then rode with him in a cab to our hostel. What&#8217;s more, he paid for the cab.</p>
<p>If it weren&#8217;t for these encounters, I&#8217;m quite sure we would&#8217;ve been living on the streets of Tokyo for nine days. And it would have been lonely too; there were very few homeless people as far as we could tell.</p>
<p><strong>Living situation</strong></p>
<p>One of the most interesting parts of Japan is the concept of capsules. Capsules are pod-like structures that you scoot into and sleep. They&#8217;re especially common among the cheap places to live (which is why we lived in them). They&#8217;re actually surprisingly cozy and private. We all slept extremely well.</p>
<p>Except for one night. Charlie and I were on a floor together sleeping in our capsules peacefully. When at 3am we were awoken by blood curdling screams. The stuff that gives you goosebumps. I&#8217;ve never heard a scream like that in my life and I hope to never hear one again; it is truly terrifying. Then we began to hear things being thrown around in addition to the screaming. There were about ten capsules on the floor. I was trying with all my might to try and figure out if he was right outside my capsule. No one dared to make a move, yet I&#8217;m positive everyone heard him. Amped up adrenaline I moved my myself into the most strategic defense position I could think of. I was basically ready to donkey kick anyone that opened my curtain. All of sudden, I heard a second voice, telling him to calm down. Then the screaming and throwing stopped, and he started stammering in a broken voice &#8220;I&#8217;m so sorry. I&#8217;m so sorry.&#8221; I was too scared to go outside and look what happened so I have no idea what went on that night, but I would guess it had to with nightmares or stress. Made for quite a night!</p>
<p>Beyond the sleeping situation, the bathing consisted of sitting on a small stool and using a handheld shower head to wash yourself. There was definitely some sort of specific routine you were supposed to go through, but none of us could figure it out. The stool idea was a great one though, sitting in a shower makes so much more sense.</p>
<p><strong>Trip highlights</strong></p>
<p>We visited a ton of places in Tokyo. Here are a few of my favorite.</p>
<p><em>Akihabara</em></p>
<p>Akihabara is called the &#8220;Electric City&#8221; and for good reason. This district is filled with lots of random electronics, most of which seem like they have no use. The streets are packed and there are tons of brightly lit buildings &#8211; almost enough to cause a small seizure. Within the alleys of electronics and lights, you can find yourself plenty of anime porn. This seems to be really big in Tokyo. Giant posters of half-naked cartoons are everywhere. Girls even dress like anime characters. The posters of women are photoshopped to make them look like children with big eyes which is supposed to make them look like anime.</p>
<div id="attachment_2501" class="wp-caption aligncenter" style="width: 535px"><a href="http://pennyhacks.files.wordpress.com/2013/03/img_1138.jpg"><img class=" wp-image-2501" alt="IMG_1138" src="http://pennyhacks.files.wordpress.com/2013/03/img_1138.jpg?w=525&#038;h=393" width="525" height="393" /></a><p class="wp-caption-text">Akihabara</p></div>
<p><em>Ueno Park</em></p>
<p>Ueno park is absolutely beautiful. The park is filled with Sakura trees otherwise known as cherry blossom trees. We were very lucky to see the trees in bloom (they only bloom for two weeks out of the year). During this time of year people come to the park to drink and soak in the beauty. There&#8217;s also a zoo right next to the park which features a giant panda that eats bamboo all day long. Literally all day long.</p>
<div id="attachment_2502" class="wp-caption aligncenter" style="width: 535px"><a href="http://pennyhacks.files.wordpress.com/2013/03/img_1331.jpg"><img class="size-full wp-image-2502" alt="Ueno park. The lady tried to cut Calvin's grumpy face out but to no avail. Sakura trees are in the background." src="http://pennyhacks.files.wordpress.com/2013/03/img_1331.jpg?w=525&#038;h=393" width="525" height="393" /></a><p class="wp-caption-text">Ueno park. The lady tried to cut Calvin&#8217;s grumpy face out but to no avail. Sakura trees are in the background.</p></div>
<p><em>Asakusa</em></p>
<p>If you want your dose of old Japan, this is the place. It has multiple shrines and temples. The place is usually packed. The streets are filled with stores where you can buy &#8220;traditional&#8221; japanese gifts (made in China). There are also tons of street vendors selling delicious foods &#8212; many of which are bean based.</p>
<div id="attachment_2503" class="wp-caption aligncenter" style="width: 535px"><a href="http://pennyhacks.files.wordpress.com/2013/03/img_1242.jpg"><img class="size-full wp-image-2503" alt="The streets of Asakusa" src="http://pennyhacks.files.wordpress.com/2013/03/img_1242.jpg?w=525&#038;h=393" width="525" height="393" /></a><p class="wp-caption-text">The streets of Asakusa</p></div>
<p><em>Shibuya Crossing</em></p>
<p>Great place to chill out and watch hundreds of people cross the street. After walking around for hours during the day, we found Shibuya crossing to be an excellent spot for recuperation and caffeine drinking. It&#8217;s actually pretty incredible how many people cross the street at this intersection.</p>
<div id="attachment_2504" class="wp-caption aligncenter" style="width: 535px"><a href="http://pennyhacks.files.wordpress.com/2013/03/img_1258.jpg"><img class="size-full wp-image-2504" alt="Shibuya crossing" src="http://pennyhacks.files.wordpress.com/2013/03/img_1258.jpg?w=525&#038;h=393" width="525" height="393" /></a><p class="wp-caption-text">Shibuya crossing</p></div>
<p><strong>Random cultural observations</strong></p>
<p>I&#8217;m by no means a japanese culture expert, and these are just based on my impressions.</p>
<p><i>Generosity</i><em>/Politeness</em></p>
<p>This was shown when we first arrived by the businessmen. Beyond that though, it was the norm for us to ask for directions and then have the person actually stop what they were doing and walk us to our destination. They were also extremely understanding when it came to trains. If we bought the wrong ticket (happened often), the staff were more than happy to refund our ticket.</p>
<p><i>Non-confrontational</i></p>
<p>This probably stems from politeness, but, as foreigners, we could get away with anything. There were a few times we walked right through the gates to get to the train without a ticket, having the beeper sound, and no one would say anything.</p>
<p><em>Work hard play hard</em></p>
<p>Tokyo seemed to take this to an extreme. These guys really know how to drink. Any day of the week you can see businessmen packed into bars. Then they&#8217;ll go to work the next day for 18 hours.</p>
<p><em>Small portion sizes</em></p>
<p>With the exception of a few places, most restaurants served us extremely small portions (in comparison to the US). As four college-aged men, we spent most of our time hungry and looking for more food.</p>
<p><em>Fashion</em></p>
<p>I thought Tokyo was extremely fashionable. No one wore sweat pants and the women always dressed up in extraordinarily high heels. Lots of the women were really into pocket mirrors. The men would either wear suits or something very chic. We were definitely underdressed.</p>
<p><i>Cleanliness</i></p>
<p>Tokyo is very very clean. Especially inside many of the stores. In fact, the floors were so clean, that I felt like my reflection was making them dirtier. In the same vein, Tokyo has the nicest toilets ever. On multiple occasions I used heated toilet seats with multiple pressure bidet settings. One even had a blow drier for your butt after the bidet. The bidet had sniper like accuracy. Not sure how they always found my butt, but it never ever missed.</p>
<p>&#8212;</p>
<p>Go to Tokyo! It&#8217;s awesome.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/2489/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/2489/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2489&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2013/03/30/tokyo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2013/03/img_1138.jpg" medium="image">
			<media:title type="html">IMG_1138</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2013/03/img_1331.jpg" medium="image">
			<media:title type="html">Ueno park. The lady tried to cut Calvin&#039;s grumpy face out but to no avail. Sakura trees are in the background.</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2013/03/img_1242.jpg" medium="image">
			<media:title type="html">The streets of Asakusa</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2013/03/img_1258.jpg" medium="image">
			<media:title type="html">Shibuya crossing</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up PouchDB with CouchDB</title>
		<link>http://pennyhacks.com/2013/01/28/setting-up-pouchdb-with-couchdb/</link>
		<comments>http://pennyhacks.com/2013/01/28/setting-up-pouchdb-with-couchdb/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 01:14:54 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[pouchdb]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=2270</guid>
		<description><![CDATA[PouchDB is an awesome little library that lets you replicate your local database to other remote databases like CouchDB. Because of Access-control-allow-origin, setting up a locally hosted project isn&#8217;t immediately obvious. I&#8217;ll give a walkthrough on how to setup PouchDB with CouchDB in the simplest terms possible. First you need to install CouchDB, which is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2270&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>PouchDB is an awesome little library that lets you replicate your local database to other remote databases like CouchDB. Because of Access-control-allow-origin, setting up a locally hosted project isn&#8217;t immediately obvious. I&#8217;ll give a walkthrough on how to setup PouchDB with CouchDB in the simplest terms possible.</p>
<p>First you need to install CouchDB, which is pretty straightforward. Just download the binary for windows <a href="http://couchdb.apache.org/">here</a>, or if you&#8217;re on a mac use this <a href="http://wiki.apache.org/couchdb/Installing_on_OSX">guide</a>. Now run:</p>
<p><code>sudo -i -u root couchdb -b</code></p>
<p>Or for windows go to the CouchDB/bin folder and run couchdb.bat</p>
<p>And you should see a welcoming message telling you that it&#8217;s time to relax (it&#8217;s not time to relax yet). Once you get CouchDB setup, you&#8217;ll need a CORS proxy to allow access to your CouchDB database from a different domain. The easiest and simplest one I found is a node package called <a href="https://github.com/gr2m/CORS-Proxy">corsproxy</a>. Simply run:</p>
<p><code>npm install -g corsproxy</code></p>
<p>And now you have your corsproxy. Run it by typing <code>corsproxy</code>. Alright, you have all the necessary requirements for setting up  PouchDB and CouchDB replication. Normally in your javascript file you&#8217;d replicate like this:</p>
<p><code>Pouch.replicate('idb://myapp', 'http://localhost:5984/myapp', myCallback)</code></p>
<p>Where <code>'idb://myapp'</code> is your local database and <code>'http://localhost:5984'</code> is your CouchDB database. However since your app is being hosted on a different port you will get a Access-control-allow-origin error. Change that remote database to now point to the corsproxy you setup which has a default port of 9292:</p>
<p><code>Pouch.replicate('idb://myapp', 'http://localhost:9292/localhost:5984/myapp', myCallback)</code></p>
<p>Kazam! There you go, replicating PouchDB to/from a remote CouchDB! Now it&#8217;s time to relax.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/2270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/2270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2270&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2013/01/28/setting-up-pouchdb-with-couchdb/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>How to finish</title>
		<link>http://pennyhacks.com/2013/01/05/how-to-finish/</link>
		<comments>http://pennyhacks.com/2013/01/05/how-to-finish/#comments</comments>
		<pubDate>Sat, 05 Jan 2013 01:58:15 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=2107</guid>
		<description><![CDATA[Starting a software project is not so bad. Building out the meat of your application is fun. However, mustering up the courage, fortitude and finger-typing-muscles to finish it is a whole other beast. I can attest to this as I have over 40 repositories in my projects folder alone. Only a handful are finished, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2107&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Starting a software project is not so bad. Building out the meat of your application is fun. However, mustering up the courage, fortitude and finger-typing-muscles to finish it is a whole other beast. I can attest to this as I have over 40 repositories in my projects folder alone. Only a handful are finished, but through my time wallowing in half-baked software projects, I&#8217;ve gotten much better at typing that final semicolon. Here are some of the strategies that&#8217;ve helped me.</p>
<p><strong>Know what you&#8217;re doing</strong></p>
<p>This sounds simple, yet this seems to be the most common cause of death for my software creations. My old thought process would be to think of some cool idea, say gesture recognizing glasses. Then, immediately start coding and realize later that there is no way I&#8217;d be able to finish such a project. I don&#8217;t have a small video camera to sit atop my glasses, nor do I have a super powerful microcontroller to process real-time video. Granted, these things can be bought, but it sure takes the wind out of those sails.</p>
<p>In order to actually figure out what I&#8217;m doing, I like to take an idea I have and flesh out some of its parts. Usually this involves pencil and paper and drawing what the application will do or how it will function. Sometimes I&#8217;ll go so far as to write a small design document briefly describing the technologies I&#8217;ll use and what I think the toughest parts will be. Any system will do, just find something that works for you so that you have a big picture of how your project will turn out.</p>
<p><strong>Rewards</strong></p>
<p>Building out a complete project often has loads of fun and interesting aspects, but there are always, always the dreaded parts that are necessary to finish the application (usually those darn tests). To knock out these more painful steps, I setup a reward system for myself. If I finish something mundane like error handling (my software doesn&#8217;t have bugs, right?), then I&#8217;ll reward myself with something cool like animating a graph. Or if there just isn&#8217;t anything fun left to do, I&#8217;ll eat my feelings and pull out a bag of sugar coated almonds. Probably not the healthiest way to code.</p>
<p><strong>Version control</strong></p>
<p>Version control didn&#8217;t initially strike me as a tool to boost me to finish the line. Sure, it&#8217;ll save you in an event of crisis, and it definitely keeps the morale up when you go charging down the wrong path only to realize you have to undo your work. But there is something much more subtle about version control that enables me to finish projects, and that is the power of incremental steps. Breaking your project down into small commit-sized bites makes it easier to swallow a large task.</p>
<p>It&#8217;s also important to actually breakdown your commits into logical chunks of progress. For me at least, it never feels quite right when I write a commit message outlining 4-5 half finished features. I yearn for that good wholesome <code>git commit</code> where I&#8217;ve completed a solid feature like &#8220;Added search functionality to message model.&#8221; I mean, who doesn&#8217;t?</p>
<p><strong>The List</strong></p>
<p>This one is simple but effective. Every time I start a project now I always start a TODO list to keep track of things I need to finish in the near future. It&#8217;s enough to just put down four or five items that I&#8217;m working on currently; it doesn&#8217;t have to be an exhaustive list. The evolution of the TODO list is pretty interesting as well, as I watch the list of features that need to be completed be turned into a list of bugs I need to fix.</p>
<p>&#8212;</p>
<p>Alas, there is no end-all-be-all method to completing every project. Sometimes it just takes a little bit of focus and determination to get &#8216;er done. No doubt there will be a few stranded, empty repositories in that projects folder, but I&#8217;ve found that it&#8217;s much better to have a few completed projects than loads of broken applications.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/2107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/2107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=2107&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2013/01/05/how-to-finish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>A 10 week exploration into D3</title>
		<link>http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/</link>
		<comments>http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/#comments</comments>
		<pubDate>Sun, 16 Dec 2012 20:40:35 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=444</guid>
		<description><![CDATA[Ten weeks ago I was introduced to D3.js in my data visualization class. I was blown away in the very first minute when the professor presented these examples. I had no idea the web was capable of such rich visualizations. The best part too is that D3 is not extremely hard to pick up. Granted [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=444&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ten weeks ago I was introduced to D3.js in my data visualization class. I was blown away in the very first minute when the professor presented these <a href="https://github.com/mbostock/d3/wiki/Gallery">examples</a>. I had no idea the web was capable of such rich visualizations. The best part too is that D3 is not extremely hard to pick up. Granted some experience with javascript is necessary, but the visualizations shown in the examples aren&#8217;t nearly as difficult as they look.</p>
<p><b>What I made</b></p>
<p><span style="text-decoration:underline;"><em>London 2012</em></span></p>
<p>My very first visualization was a static one:</p>
<p><a href="http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/london2012/#main" rel="attachment wp-att-445"><img class="aligncenter size-full wp-image-445" alt="London2012" src="http://pennyhacks.files.wordpress.com/2012/12/london2012.png?w=525"   /></a></p>
<p>This visualization is a scatter plot of 2012 Olympic countries&#8217; medal count vs their per capita income. The radius of the data points is proportionate to the number of people that country sent, and the pie chart is the break down of gold, silver and bronze medals.</p>
<p>This project was a hack. I had no idea how to use D3 and was just aiming to get something to work. Those pie charts are all carefully crafted path elements. This sort of thing is made easy by the D3 library and you should never ever see &#8220;M&#8221; &#8220;L&#8221; or &#8220;Z&#8221; in your D3 code when creating paths. I didn&#8217;t take advantage of D3&#8242;s capabilities and ended up creating long, hard-to-read path declarations. Here&#8217;s a snippet taken directly from my javascript file that should <span style="text-decoration:underline;">never be used</span>:</p>
<pre> path = "M" + startPoint.x + " " + startPoint.y +
        " L" + (startPoint.x + radius) + " " + (startPoint.y) +
        " A" + radius + " " + radius + " 0 " + longArc + " 0 " + 
             endX + " " + endY +
        " Z"</pre>
<p>In addition, you can even see on the yaxis that the label is vertical text facing the wrong direction. I was a sad man and couldn&#8217;t rotate the text the other way without it ending up somewhere way off the page. This poor fellow ran into my same <a href="http://stackoverflow.com/questions/11252753/rotate-x-axis-text-in-d3">problem</a>, but had the sense to ask on stackoverflow.</p>
<p><span style="text-decoration:underline;"><em>Refugee Flows</em></span></p>
<p>For my next project, I decided to try making an interactive map. I found a bunch of data on this <a href="http://data.un.org/">UN site</a> about where refugees originate from and where they are seeking asylum. This seemed to be screaming for some sort of map visualization. So I made this:</p>
<p><a href="http://refugeeflows.herokuapp.com/" rel="nofollow">http://refugeeflows.herokuapp.com/</a></p>
<p><a href="http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/screen-shot-2012-12-14-at-3-49-30-pm/#main" rel="attachment wp-att-454"><img class="aligncenter size-full wp-image-454" alt="Refugee flows" src="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-14-at-3-49-30-pm.png?w=525"   /></a></p>
<p>This was a great exercise for my first interactive visualization. D3 makes it extremely easy to do mapping. All in all, the project took around 10 hours to complete and I learned loads more about SVG.</p>
<p><span style="text-decoration:underline;"><em>Student Surveys</em></span></p>
<p>I made this one with a partner. We chose to visualize a huge chunk of student survey data. The students were in 8th grade when the survey started and there was a second round conducted when the students were in 10th grade. Our main purpose for this visualization was to tell a story. We ended up deciding that parallel coordinates was the best way to communicate the information we found most intriguing.</p>
<p><a href="http://studentsurveys.herokuapp.com/" rel="nofollow">http://studentsurveys.herokuapp.com/</a></p>
<p><a href="http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/screen-shot-2012-12-14-at-4-25-13-pm/#main" rel="attachment wp-att-457"><img class="aligncenter size-full wp-image-457" alt="studentsurveys" src="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-14-at-4-25-13-pm.png?w=525&#038;h=314" width="525" height="314" /></a></p>
<p>Our visualization was built on top of one of parellel coordinate examples in the D3 gallery. This was great because we got to really understand a well made D3 example and then extend it to fit our needs. It also introduced me to <a href="http://en.wikipedia.org/wiki/Brushing_and_linking">brushing and linking</a>, which is a great tool for visualizing huge datasets.</p>
<p><span style="text-decoration:underline;"><em>African refugee populations</em></span></p>
<p>After digging deeper into the UNHCR (United Nations High Commissioner for Refugees) database, I found even more interesting data albeit in a worse format. I found <a href="http://vis.stanford.edu/wrangler/app/">Data Wrangler</a> an invaluable tool when formatting the data.</p>
<p><a href="http://africanrefugees.herokuapp.com/" rel="nofollow">http://africanrefugees.herokuapp.com/</a></p>
<p><a href="http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/screen-shot-2012-12-16-at-11-55-18-am/#main" rel="attachment wp-att-462"><img class="aligncenter size-full wp-image-462" alt="African refugee populations" src="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-16-at-11-55-18-am.png?w=525&#038;h=406" width="525" height="406" /></a></p>
<p>This particular visualization required loads of brushing and linking which was a lot of fun to do in D3. I used a very &#8220;object oriented&#8221; javascript approach with a world object that linked all of my separate visualizations with each other. I also got to play with the GoogleMaps API for the first time. This vis taught me just how hard it is to keep all the graphics within a page and make it still look clean.</p>
<p><span style="text-decoration:underline;"><em>Diabetes Visualization</em></span></p>
<p>For my final visualization, I worked with a partner again to visualize 4 years worth blood glucose levels, sampled every 5 minutes, from an actual diabetic patient. We worked closely with a clinician and a father of a diabetic patient to construct a useful representation of the data.</p>
<p><a href="http://diabetesvis.herokuapp.com/" rel="nofollow">http://diabetesvis.herokuapp.com/</a></p>
<p><a href="http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/screen-shot-2012-12-16-at-12-04-50-pm/#main" rel="attachment wp-att-464"><img class="aligncenter size-full wp-image-464" alt="Diabetes visualization" src="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-16-at-12-04-50-pm.png?w=525&#038;h=293" width="525" height="293" /></a></p>
<p>Once again, brushing and linking was essential for this visualization. By now, Reno, my partner, and I had become fluent enough in D3 to code most of what we envisioned; the hardest part of this project was making it responsive. We had almost 300,000 data points yet we needed our application to be snappy. Since our dataset wasn&#8217;t changing, we took advantage using lots of indexes on the database. Also during this endeavor, we learned how painful it is to work with dates. To mitigate some of the nastiness, we found a nice date library for rails called <a href="https://github.com/radar/by_star">by_star</a>. Also essential was this <a href="http://www.dotnetguy.co.uk/post/2011/10/31/convert-dates-between-ruby-and-javascript/">blog post</a> about converting javascript dates to ruby dates. By the end of this project we were ready to start a petition to remove time zones from the world.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/444/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=444&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/12/16/a-10-week-exploration-into-d3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/12/london2012.png" medium="image">
			<media:title type="html">London2012</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-14-at-3-49-30-pm.png" medium="image">
			<media:title type="html">Refugee flows</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-14-at-4-25-13-pm.png" medium="image">
			<media:title type="html">studentsurveys</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-16-at-11-55-18-am.png" medium="image">
			<media:title type="html">African refugee populations</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/12/screen-shot-2012-12-16-at-12-04-50-pm.png" medium="image">
			<media:title type="html">Diabetes visualization</media:title>
		</media:content>
	</item>
		<item>
		<title>Hiring for more than talent</title>
		<link>http://pennyhacks.com/2012/12/12/hiring-for-more-than-talent/</link>
		<comments>http://pennyhacks.com/2012/12/12/hiring-for-more-than-talent/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 08:24:51 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=414</guid>
		<description><![CDATA[These days software engineering interviews have seemed to morph into an all out technical question barrage. My typical phone interview usually consists of an awkward phone greeting where we both ask &#8220;how are you?&#8221; at the same time only to then answer &#8220;good&#8221; at the same time. After chatting about my past internships for a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=414&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>These days software engineering interviews have seemed to morph into an all out technical question barrage. My typical phone interview usually consists of an awkward phone greeting where we both ask &#8220;how are you?&#8221; at the same time only to then answer &#8220;good&#8221; at the same time. After chatting about my past internships for a few brief minutes, we begin the coding challenge. My heart races a bit, but then I usually realize that this is not a hard problem and one that is purely used to see if I can write code at all (obviously if I fail to complete this task then I must not be able to write any code and have squandered my four years in college). Then the conversation comes to an end; I ask a few questions and try and mix it up to see if I can get an interesting answer. My favorite was when I asked my interviewer if he liked working there and he replied &#8220;Eh, it&#8217;s a job.&#8221; Fair enough, fair enough.</p>
<p>Then, if I succeed in wooing my interviewer, I&#8217;ll get invited to an onsite interview, usually for a grueling 4-5 hours in San Francisco. Plus the Caltrain trip, which costs something like $14 round trip now, and that&#8217;s two chipotle burritos with chips! Once I&#8217;m there, I&#8217;ll get drilled again and again on all sorts of trick problems. Sometimes a product guy will come in and we&#8217;ll talk about where the company is headed and all that stuff. At the end of the day, I&#8217;ll go home and either get a job offer or never hear back. And that&#8217;s that. I&#8217;ve only been in one or two interviews where it varied significantly from this format.</p>
<p>I can&#8217;t help but think that this is a really <em>backwards</em> approach to recruiting ideal employees and is only useful at recruiting pure coding talent. I&#8217;m onboard with the phone interview process. Sure, you have to check to make sure this person can write code (maybe just look at his or her github/previous work?). However, these onsite interviews baffle me. Coding on a whiteboard while someone is breathing down your neck? This is the far from real coding. Maybe you&#8217;ll find a candidate who is good under pressure and can breeze through the implementation of a new kind of hash map that no one has heard of. Different people code in different ways. Most people use Google, references and other resources to figure out coding problems. Most people also test their code by actually running it on the computer. So what does coding on a whiteboard do? One could argue it &#8220;shows&#8221; the interviewer how the interviewee thinks. Honestly, I never feel the same when coding on a whiteboard and I&#8217;ve only gotten better at it because I&#8217;ve done so many interviews.</p>
<p>All that being said, interviewing and finding the right candidate is extraordinarily hard to do in four hours. The current process is definitely an imperfect solution, but it does have its merits. If a candidate zips through the whiteboard challenges, then yeah, he might be a good coder.</p>
<p>Ultimately though, I wholeheartedly believe companies are focusing on the wrong  aspects. Things to be sought after are <em>character</em> and <em>communication skills</em>. I&#8217;d argue they&#8217;re far more important than some coding chops or a pretty looking degree. Coding, data structures and algorithms can, for the most part, be taught. Character on the other hand, well, I don&#8217;t believe Coursera offers a 10 week course on that.</p>
<p>So why character? This has always seemed like a no-brainer question to me. Throughout my career as a gymnast, I&#8217;ve watched the most talented gymnasts fall from grace because they no longer put in the effort at the gym. Without hesitation, I would take a hardworking gymnast on my team over the slacker but extremely talented gymnast; I would hope most people would. Perhaps gymnastics is a bit different from software engineering, but I don&#8217;t think it&#8217;s too much of a stretch. Talented coders are a dime a dozen; it’s the intangibles like work ethic, even-temperedness and perseverance that transform a talented (or not so talented) coder into an ideal software engineer. Yet, companies that offer me jobs or reject me know very little about my character &#8212; who I am and what I value. At  my previous internship at Ooyala, the CEO would talk about keeping the ego to smartness ratio in check, and he&#8217;s damn right. A few big egos can literally ruin a team, no matter if they can code Kruskal&#8217;s algorithm iteratively blindfolded on the whiteboard. But no one checks for big egos in an interview.</p>
<p>Lastly, communication &#8212; the jelly in the peanut butter sandwich that makes it possible to swallow. As much as us software engineers have tried to hide ourselves from the world of communication by waddling around knee deep in python code, there is no escaping it. Working at a company means working with a team. Even if Google snags the mutant who can devote all 100% of his brain to coding, if he cannot explain what he has done, how to use it or how it works, then I&#8217;d argue he&#8217;s of no value. Imagine having that brilliant engineer write some brilliant piece of code. Then he leaves to start a start-up. If no one knows what he has done and there happens to be a bug, well, I guess you’re up a creek without a paddle! Communication is indirectly tested for in interviews by having the interviewee explain his or her solution, but often times the code speaks for itself and interviewers are just making sure that his or her communication skills aren&#8217;t <em>really</em>  bad.</p>
<p>Finding character and communication skills are not easy tasks and nothing can be assured of in a four hour interview, but I propose talking to the candidate, you know, like an actual conversation &#8212; figure out who he or she is, what lights his or her fire. Talk about things besides what he or she has coded in the past or will code in the future. I&#8217;m not saying drop all technical questions (I enjoy the challenge), but spending maybe one of those hours just getting to know the person you&#8217;re interviewing might be beneficial.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/414/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=414&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/12/12/hiring-for-more-than-talent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>The case for not  doing what you love</title>
		<link>http://pennyhacks.com/2012/11/07/dont-do-what-you-love/</link>
		<comments>http://pennyhacks.com/2012/11/07/dont-do-what-you-love/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 20:55:45 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=384</guid>
		<description><![CDATA[As a senior in college, there has been a lot of riff raff about doing what you love. I&#8217;m sure in a few short months there will be a slew of graduation speeches proclaiming this exact message. Find what you love and do it &#8212; urging us budding work force-ees to find a job that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=384&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As a senior in college, there has been a lot of riff raff about doing what you love. I&#8217;m sure in a few short months there will be a slew of graduation speeches proclaiming this exact message. Find what you love and do it &#8212; urging us budding work force-ees to find a job that does exactly what you love to do.</p>
<p>This piece of overused advice is misleading for a large portion of society. Granted I don&#8217;t have the wisdom or experience of the older folk who have been part of the game for a much longer time, so perhaps my views will change as I mature into a respectable member of the work force.</p>
<p><strong>Constantly doing what you love, kills what you love</strong></p>
<p>As a simple example, take a song that you love (You make my dreams come true &#8211; Hall &amp; Oates), now listen to it 100 times today, and the next day, and the next day, and so on. How long will you love this song for? What if you listened to that song only once or twice a day?</p>
<p>While listening to music is not exactly analogous to work, the concept is the same. Turning your most enjoyable hobby into work is a sure-fire way to banish all the love you ever had for that hobby. This has happened countless times in my life: go full bore into some new technology, do it non-stop, and 6 months later I find myself burnt out.</p>
<p>Save what you really love for extracurriculars. You know, those projects you can&#8217;t stop thinking about during the day; the ones that stop you from sleeping at night. A little moderation will keep the fire burning inside and make those moments when working on that which you love even more special.</p>
<p><strong>Reality</strong></p>
<p>While I&#8217;m a strong believer in the fact that if anyone practices something long enough they can become skilled enough to make a living off of it, that kind of practice takes a long time. I&#8217;m just now starting to realize that I probably can&#8217;t go travel after school or go slacklining in crazy corners of the world. Why? Simply because I don&#8217;t have the money. I&#8217;m going to have to work first in order to make that money, and it might be work that I don&#8217;t absolutely love.</p>
<p><strong>If not pursue love, then pursue what?</strong></p>
<p>This is a question that has haunted me again and again. After much pondering, I believe there are 3 requirements that can give me a rewarding and happy career.</p>
<ul>
<li>Do something that&#8217;s meaningful to you</li>
<li>Don&#8217;t do something you hate</li>
<li>Make enough money to pay the bills</li>
</ul>
<p><em>Meaning</em> &#8211; Doing something meaningful is sustainable. If I believe I&#8217;m making a real change or truly believe in the cause of my work, I hope that that will lead to a rewarding career. In ten years, I want to proud of what I&#8217;ve done for society. I want to be able to talk about my work with passion and explain to people how I helped make a difference.</p>
<p><em>Hate </em>- It&#8217;s all for naught if you hate your job. I could be saving the world&#8217;s poor or teaching the world&#8217;s young, but if I despise waking up every morning, then I surely will not have a rewarding career.</p>
<p><em>Money -</em> Unfortunately, money does play a part. Plenty of studies have shown that happiness is increased when you can at least pay your bills. The amount of money you need varies from person to person, but as much as graduation speakers hate to admit it, your job needs to satisfy your basic needs.</p>
<p>&#8212;</p>
<p>While finding a job that you don&#8217;t hate, that has meaning, and that pays you is not an easy task, it&#8217;s a much more sane and grounded one than aimlessly pursuing a job you absolutely love regardless of the consequences. However, if you&#8217;re lucky, you might get it all, someone must&#8217;ve done it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/384/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=384&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/11/07/dont-do-what-you-love/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>More people should photograph</title>
		<link>http://pennyhacks.com/2012/10/14/more-people-should-photograph/</link>
		<comments>http://pennyhacks.com/2012/10/14/more-people-should-photograph/#comments</comments>
		<pubDate>Sun, 14 Oct 2012 20:58:58 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=376</guid>
		<description><![CDATA[After reading James Somers&#8217; post on why everyone should write, I couldn&#8217;t agree more with his points. I started writing a year back and it changed the way I thought. It forced me to structure my thoughts and define exactly how I was feeling. If something interesting was happening, I wouldn&#8217;t simply throw those thoughts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=376&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After reading James Somers&#8217; <a href="http://jsomers.net/blog/more-people-should-write">post</a> on why everyone should write, I couldn&#8217;t agree more with his points. I started writing a year back and it changed the way I thought. It forced me to structure my thoughts and define exactly how I was feeling. If something interesting was happening, I wouldn&#8217;t simply throw those thoughts away. I collected them and attempted to write about it in a cohesive manner. Writing made me dig deeper into a topic so that I actually did have enough information to write.</p>
<p>Just as writing allowed me to engage the world at a new level, so has taking photographs. I fell in love with <a href="http://www.facebook.com/humansofnewyork">Humans of New York</a>, where Brandon, a solo photographer, goes around New York, interacts with interesting people he sees, and then photographs them. While he is a professional grade photographer, I thought I could do the same. So I made a Humans of Stanford facebook page, gathered my courage and went out to talk to strangers. The results were remarkable. By no means were any of my pictures amazing, but the interactions I had were. I met a man who told me about how he was going to change the world and about his philosophy of &#8220;Human&#8217;s Best&#8221; (can&#8217;t say understand it fully though). I found two engineers exploring a playstation controller by destroying it. I learned about and practiced the art of Falun Dafa.</p>
<p>Photographing people makes you seek out other people. It makes you search for an interesting person to talk to. It makes you walk with your eyes open. There are so many times when I would walk from point A to point B barely keeping note of my surroundings. However, with a camera always at hand, I&#8217;m always scanning around looking for people wearing weird hats or building the next electric car. So yes, writing made me think about and question the world, but taking photos let me interact with it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/376/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=376&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/10/14/more-people-should-photograph/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>3 Productivity Applications that changed the way I code</title>
		<link>http://pennyhacks.com/2012/09/28/3-productivity-applications-that-changed-the-way-i-code/</link>
		<comments>http://pennyhacks.com/2012/09/28/3-productivity-applications-that-changed-the-way-i-code/#comments</comments>
		<pubDate>Fri, 28 Sep 2012 01:03:54 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=358</guid>
		<description><![CDATA[After working under software sensei at Ooyala, I picked up a few productivity tips along the way. At first I was pretty averse to picking up new plugins and what not, believing that Vim alone was sufficient for my tasks. However after a little cajoling and watching one of my co-workers tear through code, I became [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=358&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After working under software sensei at Ooyala, I picked up a few productivity tips along the way. At first I was pretty averse to picking up new plugins and what not, believing that Vim alone was sufficient for my tasks. However after a little cajoling and watching one of my co-workers tear through code, I became a believer, a believer in productivity software.</p>
<p><a href="https://github.com/kien/ctrlp.vim">Ctrl-P (Vim)<br />
</a><br />
Before Ctrl-P entered my life, I was a sad man who used :e in Vim. Ctrl-P binds, well, “Ctrl-P” in Vim to a fuzzy file search mode (shown below).</p>
<div id="attachment_359" class="wp-caption aligncenter" style="width: 450px"><a href="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-08-07-pm.png"><img class="size-full wp-image-359" title="Screen Shot 2012-09-27 at 5.08.07 PM" src="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-08-07-pm.png?w=525" alt=""   /></a><p class="wp-caption-text">Ctrl-P fuzzy file search</p></div>
<p>This makes finding files SO much easier. No more trying to remember where everything is located. You don’t even need to remember the whole file name just maybe 4 or 5 consecutive letters. This will most definitely keep a few extra buffers open during your work day.</p>
<p><a href="https://github.com/jigish/slate">Slate (Mac OSX)<br />
</a><br />
I’ve been a Windows/Linux user my entire life and have even been a little against using Apple products. However, this summer I was forced to make the switch over to OS X and was pleasantly surprised by many of the features it had to offer. One feature I wasn’t satisfied with was its windowing system. To me, the windows look like someone took a stack of papers and slammed them down on a desk – splayed in disarray across the screen. One thing Windows got correct is their Aerosnap for windows and I missed it gravely. Slate erases all that and allows you to partition your windows easily with a press of a few buttons. Slate can also do a slew of other very useful things, including preset window configurations and window resizing.</p>
<div id="attachment_360" class="wp-caption aligncenter" style="width: 450px"><a href="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-34-13-pm.png"><img class="size-full wp-image-360" title="Screen Shot 2012-09-27 at 5.34.13 PM" src="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-34-13-pm.png?w=525" alt=""   /></a><p class="wp-caption-text">Perfectly split windows</p></div>
<p><a href="http://vimium.github.com/">Vimium</a></p>
<p>Vimium simply allows you to use Vim shortcuts for Chrome. While the browser is designed for the mouse, Vimium does a pretty darn good job of making it easy to explore the web with the keyboard. You can cleverly search for words using the oh-so-common “/” command in Vim and then, if that word is part of a link, simply hit enter twice to follow that link. All the basic Vim commands are what you expect as well (gg – top of page, G – bottom of the page… etc)</p>
<div id="attachment_361" class="wp-caption aligncenter" style="width: 450px"><a href="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-36-56-pm.png"><img class="size-full wp-image-361" title="Screen Shot 2012-09-27 at 5.36.56 PM" src="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-36-56-pm.png?w=525" alt=""   /></a><p class="wp-caption-text">Vimium</p></div>
<p>&#8212;</p>
<p>At the end of the day, productivity software actually makes a difference and is worth the time and research in order to make you a more effective coder. Do you have any life changing productivity applications? Let me know!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/358/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=358&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/09/28/3-productivity-applications-that-changed-the-way-i-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-08-07-pm.png" medium="image">
			<media:title type="html">Screen Shot 2012-09-27 at 5.08.07 PM</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-34-13-pm.png" medium="image">
			<media:title type="html">Screen Shot 2012-09-27 at 5.34.13 PM</media:title>
		</media:content>

		<media:content url="http://pennyhacks.files.wordpress.com/2012/09/screen-shot-2012-09-27-at-5-36-56-pm.png" medium="image">
			<media:title type="html">Screen Shot 2012-09-27 at 5.36.56 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>What 3 months of boxing teaches you about programming</title>
		<link>http://pennyhacks.com/2012/08/28/what-3-months-of-boxing-teaches-you-about-programming/</link>
		<comments>http://pennyhacks.com/2012/08/28/what-3-months-of-boxing-teaches-you-about-programming/#comments</comments>
		<pubDate>Tue, 28 Aug 2012 06:34:00 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=337</guid>
		<description><![CDATA[This summer I did a whole of programming at an awesome company called Ooyala. Along with my internship though, I also did a whole lot of boxing. I had never boxed before in my life, so it was a great experience for me. It was only natural to draw parallels between the two &#8212; maybe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=337&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This summer I did a whole of programming at an awesome company called Ooyala. Along with my internship though, I also did a whole lot of boxing. I had never boxed before in my life, so it was a great experience for me. It was only natural to draw parallels between the two &#8212; maybe this&#8217;ll inspire you to learn to box, or to program, or, better yet, both!</p>
<p><strong>Jab&#8230; jab&#8230; jab&#8230; CROSS!</strong></p>
<p>In boxing there are two key punches that all newbies learn. The jab and the cross. The jab is like your poking stick. You fire it out quickly to test the waters and then bring it back just as fast, if not faster. The cross is your nasty knuckle sandwich. You start with a pivot on your back foot and twist your whole body until you launch your dominant arm into a cross. It&#8217;s a bit slower, but way more powerful. You use your jab to make a hole in your opponent&#8217;s guard, and then, when the time is right, whip out the cross.</p>
<p>So how does this have anything to do with programming? Well, one of the first things I learned (from experience) about boxing is that you can&#8217;t release your cross right away unless you want to get walloped in the face.  Similarly, when working at a mid-size company like Ooyala, you don&#8217;t want to unleash your killer new feature in one big go, or be prepared to feel the pain that is angry users from the new bugs that will inevitably pop up. At Ooyala, they home brewed their own tool to release their feature incrementally so that not every user received the new changes. This was a pretty awesome idea that none of the previous companies I worked at did. This was incredibly handy when a large feature release (something they&#8217;ve been working on for over a year) was finally put into production. And, what do ya know, there were some pretty critical bugs. Not to fear though, the problem was isolated to only a few users and we were able to disable the new feature on those users until the fixes were made.</p>
<p><strong>Hitting the button</strong></p>
<p>Getting hit on the button is one of the worst things that can happen to you  as boxer. The button is what regular people call the chin. The reason it&#8217;s called the button is simple: when you get knocked in the chin it propagates to the back of your head and affects the nerves there, which in turn cause your legs to go limp (sorry for the hand wavy answer &#8212; this is what my coach told me and what I&#8217;ve verified through experience). This is why boxers fall down after getting knocked in the chin hard enough. Often, when I was first sparring (let&#8217;s be real it still happens) I would get hit on the button and feel a little dizzy, but my veins were so pumped with adrenaline I didn&#8217;t even stop to gather myself; I just went right back at it without stopping to think, only to get brained again. Usually my coach would come in and grab me and tell me to recoup and then go in and fix what I did wrong.</p>
<p>This exact feeling, perhaps to a lesser degree, was replicated during my time at Ooyala. It happened when I pushed some of my code to production, only semi-confident that it was perfected. Then when a bug report came back, I would scramble and try to figure out what I messed up. My heart would start pounding and the little voice in my head would shout at me &#8220;Oh god you dumb intern you&#8217;re going to screw everything up.&#8221; And sure enough, I could not find out what was wrong. It was then that I would realize that I had to take a breath, keep calm, look at the problem objectively, and then dig in with a clear mind &#8212; much more effective than method number one.</p>
<p><strong>You gotta run the 700 miles, do the 1000 push-ups, and punch the 5000 punches before you can hope to box </strong></p>
<p>One thing that I really liked about my coach is that he didn&#8217;t just throw you into the ring and hope you made it out alive. He made sure you were ready, even if it meant doing the boring conditioning. Everyone just likes to box; it&#8217;s a thrill. However, you&#8217;ll get your bell rung if you&#8217;re not prepared for it.</p>
<p>Ooyala similarly took the time to do all the boring stuff (and that&#8217;s a good thing). Sure, there was plenty of crazy development going on, with 2 week sprints where you could code whatever you wanted, but there was also a focus on having a polished, crisp product. And that takes discipline. Ooyala taught me to make sure my strings were translated in all their supported locales, to make sure that not a single line went over 110 characters, to never forget my <code>nil</code> checks, and so much more that helped make their product a well-oiled machine.</p>
<p>&#8212;</p>
<p>You&#8217;ll learn a lot boxing, seriously.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/337/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=337&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/08/28/what-3-months-of-boxing-teaches-you-about-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
		<item>
		<title>Crafting the worst interview process in 8 easy steps</title>
		<link>http://pennyhacks.com/2012/01/06/crafting-the-worst-interview-process-in-8-easy-steps/</link>
		<comments>http://pennyhacks.com/2012/01/06/crafting-the-worst-interview-process-in-8-easy-steps/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 03:06:20 +0000</pubDate>
		<dc:creator>Ben Rudolph</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://pennyhacks.com/?p=271</guid>
		<description><![CDATA[As a student, I&#8217;ve had a fair number of interviews and have discussed with others some of the ridiculous things companies do during the interview process. So I decided to put together a guide to concoct the most painful interview process based on things I&#8217;ve heard and experienced. Enjoy! Step 1: Email potential interviewee Start out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=271&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As a student, I&#8217;ve had a fair number of interviews and have discussed with others some of the ridiculous things companies do during the interview process. So I decided to put together a guide to concoct the most painful interview process based on things I&#8217;ve heard and experienced. Enjoy!</p>
<p><strong>Step 1: Email potential interviewee</strong></p>
<p>Start out normal. Email the <del>victim</del> interviewee explaining how interested you are in finding out more about him &#8211; how you&#8217;d like to see if he or she would be a good match for the company.</p>
<p><strong>Step 2: Ask for potential dates for phone interview or in-person interview</strong></p>
<p>Keep the facade going, lure him in by seeming like you will actually schedule this interview. This is an important step, this gives the interviewee hope. That &#8216;hope&#8217; has to be enough so that he will stick with you until the dirty end.</p>
<p><strong>Step 3: Wait until after those dates have passed to respond</strong></p>
<p>Perfect way to start the process. You&#8217;ve probably peeved him a little, but his emails are still full of niceties like &#8220;Thank you&#8221; and &#8220;Hello.&#8221;</p>
<p><strong>Step 4: Repeat Steps 2 &amp; 3 a sufficient number of times</strong></p>
<p>Break his will by repeating steps 2 &amp; 3. What&#8217;s a &#8220;sufficient&#8221; number of times? Some key indicators are: the failure to address you by your name at the beginning of the email, no more &#8220;Thank you&#8221;s, noticeable terseness in his responses.</p>
<p><strong>Step 5: Give the wrong address to your interviewee</strong></p>
<p>So you&#8217;ve finally worked out a date. He&#8217;s probably pretty relieved and he might even ask you where the office is. Nail him here by &#8220;accidentally&#8221; sending him the wrong address. He&#8217;s a busy guy so taking time to drive somewhere during the work day is most likely a hassle at the least. Even better, the interviewee is a student and doesn&#8217;t even have a car. Now that student has to pay an arm and a leg to get/borrow someone&#8217;s car. Score.</p>
<p><strong>Step 6: Reschedule with correct address</strong></p>
<p>You can lose him here, so your apology email must be sincere. Pretend like you&#8217;ve turned a new leaf. Reschedule the interview with new vigor and assure him that you&#8217;ve given him the correct address.</p>
<p><strong>Step 7: The interview</strong></p>
<p>Give the guy hope. Toy with his emotions as much as possible. Tell him how much you need his skills and how he would be a great addition to the team. Throw him softball questions that you know he&#8217;ll knock out of the park. Make sure the interview lasts a long time &#8211; you want to make sure you really wasted his day. Then end the interview with a firm handshake and say &#8220;We&#8217;ll get back to you soon.&#8221;</p>
<p><strong>Step 8: Never Respond</strong></p>
<p>This is key. Up to this point, it&#8217;s all tolerable &#8211; the interview process is usually not fun. Miscommunications happen all the time, your interviewee can look past this. Long interviews are fine when your interviewee sees the value in it and got a chance to meet some of your team. However, simply not responding after he comes in for an interview, after taking time out of his day, after sweating through all your interview questions is a small push that will make him never want to come back. Maybe it&#8217;s because it&#8217;s so easy to write a response or maybe it&#8217;s because an answer would put to rest his thoughts &#8211; whatever it is, this usually does the trick.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pennyhacks.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pennyhacks.wordpress.com/271/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pennyhacks.com&#038;blog=28246904&#038;post=271&#038;subd=pennyhacks&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pennyhacks.com/2012/01/06/crafting-the-worst-interview-process-in-8-easy-steps/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e39b7ae3eaa17df509f6e243330cba4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pennyhacks</media:title>
		</media:content>
	</item>
	</channel>
</rss>
