<?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>Matt Hodges</title>
	<atom:link href="http://matthodges.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthodges.com</link>
	<description>I have no idea what I&#039;m talking about</description>
	<lastBuildDate>Thu, 02 May 2013 02:02:33 +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>Is This Real Life?</title>
		<link>http://matthodges.com/2013/05/is-this-real-life/</link>
		<comments>http://matthodges.com/2013/05/is-this-real-life/#comments</comments>
		<pubDate>Thu, 02 May 2013 01:28:03 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=416</guid>
		<description><![CDATA[Today is May 1, 2013. Last May, big things were happening in my life. I graduated from college. I moved to Cincinnati. I was gearing up to start my career as a software developer. I can&#8217;t believe that was a &#8230; <a href="http://matthodges.com/2013/05/is-this-real-life/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-417" alt="davidafterdentist" src="http://matthodges.com/wp-content/uploads/2013/05/davidafterdentist.png" width="247" height="259" />Today is May 1, 2013. Last May, big things were happening in my life. I graduated from college. I moved to Cincinnati. I was gearing up to start my career as a software developer. I can&#8217;t believe that was a year ago.</p>
<p>In that time, a lot of great things have happened. I hit the ground running with my job. I was part of a mobile dev team, from which I learned A LOT. I&#8217;ve worked on multiple side projects that have garnered modest publicity. I was on the front page of some of the <a href="http://www.thepaulweber.com/blog/2012/08/08/shout-outs-in-numbers/" target="_blank">world&#8217;s most read online publications</a> (that literally caught the eye of more than 2.5 million people). I&#8217;ve got some amazing people in my life now that I didn&#8217;t even know one year ago and I can&#8217;t imagine living without. I could go on and on.</p>
<p>It&#8217;s been a good year. No, it&#8217;s been a <em>great</em> year. But I&#8217;d be lying if I said I was content. There are many reasons for that, but I won&#8217;t bore you with them. Rather I&#8217;ll leave you with this: Where do you see yourself in five years? Why are you waiting five years to get there?</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2013/05/is-this-real-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple&#8217;s Payment Problem</title>
		<link>http://matthodges.com/2013/03/apples-payment-problem/</link>
		<comments>http://matthodges.com/2013/03/apples-payment-problem/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 23:10:12 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=384</guid>
		<description><![CDATA[This past Sunday I purchased a really cool iOS app called CodeBucket. It&#8217;s a handy app that lets me completely manage my Git repositories that live on Bitbucket. I use it primarily for issue tracking on the go. But this &#8230; <a href="http://matthodges.com/2013/03/apples-payment-problem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>This past Sunday I purchased a really cool iOS app called <a href="https://itunes.apple.com/kn/app/codebucket/id551531422?mt=8&amp;ign-mpt=uo%3D2" target="_blank">CodeBucket</a>. It&#8217;s a handy app that lets me completely manage my Git repositories that live on Bitbucket. I use it primarily for issue tracking on the go. But this post is not about that.</p>
<p><strong>I&#8217;m cheap</strong></p>
<p>I admit it, I&#8217;m not one to often purchase apps. It&#8217;s not that the price is too high, it&#8217;s just that I don&#8217;t find myself to be very productive on my iPhone. It&#8217;s usually not worth the money when I can often complete a task more quickly on my laptop&#8211;and for free. Despite all this, CodeBucket had good reviews so I decided to buy it for the negligible price of $1.99. Or so I was told.</p>
<p><strong>Buffering&#8230;</strong></p>
<p>It wasn&#8217;t until two days later, Tuesday, that I received an email receipt from Apple for my purchase. Here&#8217;s a snippet from that receipt:</p>
<p><img class="aligncenter size-full wp-image-385" alt="codebucket-receipt-screenshot" src="http://matthodges.com/wp-content/uploads/2013/03/codebucket-receipt-screenshot.png" width="715" height="534" /></p>
<p>First of all, why the hell did it take two entire days for me to receive an emailed receipt? The purchase happened on Sunday, the receipt is dated Monday, and I get the email on Tuesday? Perhaps the <a href="http://www.youtube.com/watch?v=_cZC67wXUTs" target="_blank">internet tubes were filled</a> in Cupertino this weekend. But, whatever, I can live with it. It&#8217;s not like I was eagerly awaiting my receipt so that I could keep my books in tip-top shape.</p>
<p><strong>What&#8217;s up with that?</strong></p>
<p><img class="alignright size-full wp-image-387" alt="what-up-with-that" src="http://matthodges.com/wp-content/uploads/2013/03/what-up-with-that.jpg" width="250" height="235" />The second issue here is a bit more bothersome. As I mentioned, I thought I was purchasing an app for $1.99. Apparently a 6.5% sales tax was applied to this purchase, bringing the grand total to $2.12. Now, my issue here isn&#8217;t with the fact that I had to pay tax; that doesn&#8217;t bother me. The problem is that <em>I was never told</em> that I would be paying tax on the transaction. The price read $1.99 so I assumed I would pay $1.99. There was no final confirmation to make sure I agreed to a grand total&#8211;it just went ahead and applied the tax and charged me.</p>
<p>I consulted the iTunes Store <a href="http://www.apple.com/legal/itunes/us/terms.html" target="_blank">Terms and Conditions</a>, and sure enough it&#8217;s in there:</p>
<blockquote><p>Your total price will include the price of the product plus any applicable sales tax; such sales tax is based on the bill-to address and the sales tax rate in effect at the time you download the product. We will charge tax only in states where digital goods are taxable.</p></blockquote>
<p>Apparently Ohio enforces tax on the sale of digital goods. I was unaware of that. I did a quick ctrl+f on the <a href="http://en.wikipedia.org/wiki/Taxation_of_Digital_Goods" target="_blank">Wikipedia page</a>, and Ohio didn&#8217;t come up. I guess Apple knows more than me about taxes. Regardless, it&#8217;s a common courtesy to let a customer know just how much they&#8217;re paying for something <em>before</em> they actually pay. Oh, and an emailed receipt really shouldn&#8217;t take two days to deliver. But I guess when FT 500 says you&#8217;re the most valuable company in the world, you can do what you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2013/03/apples-payment-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The App Bubble</title>
		<link>http://matthodges.com/2012/11/the-app-bubble/</link>
		<comments>http://matthodges.com/2012/11/the-app-bubble/#comments</comments>
		<pubDate>Sun, 18 Nov 2012 21:57:59 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=350</guid>
		<description><![CDATA[Many people who study economics say that you often don&#8217;t know you&#8217;re in a bubble until it has popped. But once the bubble bursts, it seems almost obvious that one had existed. I&#8217;m going to postulate something that no one &#8230; <a href="http://matthodges.com/2012/11/the-app-bubble/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-360" title="sad-challenge-failed-l" src="http://matthodges.com/wp-content/uploads/2012/11/sad-challenge-failed-l.png" alt="" width="150" height="143" />Many people who study economics say that you often don&#8217;t know you&#8217;re in a bubble until it has popped. But once the bubble bursts, it seems almost obvious that one had existed. I&#8217;m going to postulate something that no one in Silicon Valley wants to hear right now: we&#8217;re in another bubble.</p>
<p><strong>This isn&#8217;t the same as the dotcom bubble</strong></p>
<p>In the late 1990&#8242;s and the early 2000&#8242;s, we had the dotcom bubble. Every other day, a new IPO was launching for some web company. Excitement was bountiful, and it seemed like a fool-proof move to invest in anything that ended in &#8220;.com.&#8221; Some things were great. After all, the economy was surging at the time and companies like Amazon made the scene. But, as we soon found out, there wasn&#8217;t much to back up this excitement. Eventually, companies like Pets.com realized that having a website wasn&#8217;t equivalent to having a business, and the bubble collapsed. Investors pulled out, stock values went to zero, credit was frozen, and companies died. The dotcom bubble was an exercise in investing in <em>nothing</em>. But the current app bubble more closely resembles the recent housing bubble.</p>
<p><img class="alignleft  wp-image-362" title="troll-sad-troll-face-l" src="http://matthodges.com/wp-content/uploads/2012/11/troll-sad-troll-face-l.png" alt="" width="150" height="116" />If you want a good, in-depth, analysis of what happened in the housing crisis of 2008, you should read Andrew Ross Sorkin&#8217;s <a href="http://www.amazon.com/Too-Big-Fail-Washington-FinancialSystem/dp/0143118242" target="_blank">Too Big To Fail</a>. But for the moment, we can focus on some very simple concepts. The housing bubble came about because (big investment) banks made risky bets. They loaned money to consumers to buy homes that, historically, should not have been eligible for such financing. The banks assumed that housing prices would continue to go up, and even if they took some losses on risky loans, they would profit in the long run. Also, these big banks took out insurance on their loans so that if a consumer defaulted, the bank would still be covered. Unfortunately, the defaults hit hard. The assets (housing) that the banks had financed became toxic&#8211;as there was no one to pay off the debt&#8211;and the banks started losing money, fast. The insurance that they had taken out was also crumbling because it was never anticipated that so many banks would need so much coverage in such a short span of time. All in all, the banks, who had loaned and insured trillions of dollars to each other, started to bring one another down.</p>
<p>So what does that have to do with apps? Well, take this same idea and scale it down a couple orders of magnitude. Instead of large investment banks and houses, we have venture capital investors (like Y Combinator or Google Ventures) and app startups. New app companies are popping up at a very impressive rate, and it seems like they all have the same business model: build up a user base and then sell out to a big company. Very few of them appear to have an actual method of bringing in revenue. But what&#8217;s more amazing is that the big tech companies are continuing to invest in these &#8220;toxic&#8221; assets. Facebook bought Instagram for $1 billion. Instagram had never turned a profit. Companies like Zynga, which is in the &#8220;virtual farm animal&#8221; industry, are buying up competitors like OMGPOP for hundreds of millions of dollars.</p>
<p>Yes, there is a case to be made for these acquisitions. You could argue that Facebook bought out Instagram so that it could secure the large user base. But here&#8217;s the problem: that cannot go on forever. Asset bubbles occur when companies focus on securing assets rather than profits, in the hopes that the profits will come later. The big banks secured housing, California investors are securing apps and users. This is when &#8220;bubble math&#8221; starts appearing. Companies make a large investment, and break it down into individuals, saying things like &#8220;we spent $20/user on that acquisition,&#8221; and hope to eventually turn that user into a profit.</p>
<p><strong>Software development is a good business model</strong></p>
<p><img class="alignleft  wp-image-355" title="happy-thumbs-up-l" src="http://matthodges.com/wp-content/uploads/2012/11/happy-thumbs-up-l.png" alt="" width="168" height="135" />I know that this sounds like an attack on the software development industry. Trust me: it&#8217;s not. I work in the software development industry and I see enormous value in it every day. There are also decades of evidence to show that the industry is quite lucrative.</p>
<p>I also have no problem with software startups. You never know which next big tech company is going to come about out of someone&#8217;s garage. The problem is that too many people think that having a website or an app is the same thing as having a business. If you don&#8217;t sell anything (such as your software or a service related to your software) it&#8217;s hard to picture any success in the long run. Eventually, Google and Facebook will stop spending $1 billion on asset takeovers and realize that they can do it cheaper in-house. Then what will happen? Google will stop paying inflated prices for the assets. Venture capitalists, who have been anticipating these high payouts, will stop (or significantly decrease) funding to startups, and then we&#8217;ll see a massive exodus (failure) in the tech startup industry.</p>
<p>Six months ago, <a href="https://twitter.com/hodgesmr/status/200261444611211264" target="_blank">I predicted</a> that we would see the bubble collapse soon after the Facebook IPO landed. So far, we haven&#8217;t seen that. And for the sake of all those startups, I hope I&#8217;m wrong. But for the sake of a healthy industry, we need to start producing better products and services. I would much rather see Google, or any other large tech company, acquire <em>profitable</em> tech startups. Or better yet, if startups can be profitable on their own, then maybe they will be the next Google or Facebook. Enough with this Instagram and Zynga crap. Let&#8217;s see some real innovation that is actually sustainable.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/11/the-app-bubble/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The QR Code Bubble</title>
		<link>http://matthodges.com/2012/10/the-qr-code-bubble/</link>
		<comments>http://matthodges.com/2012/10/the-qr-code-bubble/#comments</comments>
		<pubDate>Wed, 24 Oct 2012 01:57:41 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=297</guid>
		<description><![CDATA[Let&#8217;s talk about QR Codes. But before we begin, think for a second about the last time you actually scanned one. Was it worth your time? Was it easy? How often do you actually use them? I&#8217;m willing to bet &#8230; <a href="http://matthodges.com/2012/10/the-qr-code-bubble/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="wp-image-298 alignright" title="t-qr" src="http://matthodges.com/wp-content/uploads/2012/10/t-qr.png" alt="" width="199" height="199" />Let&#8217;s talk about QR Codes. But before we begin, think for a second about the last time you actually scanned one. Was it worth your time? Was it easy? How often do you actually use them? I&#8217;m willing to bet a lot of money that your answers to those three questions were &#8220;no, no, <em>and</em> never.&#8221; Why? Because QR Codes suck. And despite how much they suck, they are stubborn little bastards that just don&#8217;t seem to go away. But it&#8217;s not useful to just declare that a technology is shitty. Let&#8217;s be pragmatic and actually try to understand <em>why</em> the technology is shitty.</p>
<p><strong>You&#8217;re doing it wrong</strong></p>
<p><img class="alignleft  wp-image-301" title="all-aboard-the-failboat" src="http://matthodges.com/wp-content/uploads/2012/10/all-aboard-the-failboat.jpg" alt="" width="180" height="149" />It&#8217;s not the QR Code&#8217;s fault that it sucks. It really isn&#8217;t. In fact, QR Codes are very good at what they do: they are a two-dimensional representation of some data. That god-awful box polluting the top of this blog post holds some data and your mobile device is very good at delivering that data to you in a meaningful way. The problem is that the powers that be haven&#8217;t yet figured out how to use these things correctly.</p>
<p>For whatever reason, QR Codes started gaining huge popularity in the late 2000s and that has continued into the current decade. Restaurants, libraries, museums, and marketers all realized that QR Codes could be read by smartphones and they instantly assumed that it would be a good idea to plaster these ugly things everywhere. I can forgive some people for this, but <em>marketers</em>? What the hell are you thinking? Every piece of a product or advertisement design is important. Why would you waste such valuable space with a giant ugly box that literally means nothing when viewed by a human eye? Protip: if you&#8217;re making me go through hoops to get your advertising message, you probably need to reevaluate things.</p>
<p>I saw a big QR Code plastered to the back of a truck driving down the highway the other day. In 1994 Denso Waved invented a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention they affixed QR Codes to the backs of moving vehicles.</p>
<p><strong>It’s only when we wake up that we realize something was actually strange</strong></p>
<p>Like the housing bubble, many people are too blind to be able to see that we&#8217;re in a QR Code bubble. Everyone keeps chugging a long like nothing&#8217;s wrong, despite endless stats that suggest that no one is actually using these things.</p>
<p>The main issue here is that QR Codes should have never been presented to consumers. They shouldn&#8217;t be built into advertising, they shouldn&#8217;t act as information kiosks in department stores, and they certainly shouldn&#8217;t be substituted for a simple web link. QR Codes should be treated like bar codes, <em>because they are the same thing</em>. The only difference is that QR Codes can hold a lot more data.</p>
<p>When I go to the store, I pay absolutely no attention to the bar codes on the items I am purchasing. There is no need for me to even realize that they are present. But they are of great value to merchants: they power their entire point of sale and inventory systems! You may have also noticed that when you receive a package shipped by FedEx or UPS, they often have similar two-dimensional data matrix labels on the box. Those aren&#8217;t for you, they&#8217;re for the shipping company to track the package!</p>
<p><strong>If you must do it, do it right</strong></p>
<p>And this is the key. Because QR Codes are ugly and because they really aren&#8217;t convenient, you should stop expecting consumers to use them. That&#8217;s not to say, however, that you can&#8217;t use them yourself.</p>
<p>I was part of a research and development team for <a href="http://shelvar.com/" target="_blank">ShelvAR</a> for two years working on integrating this sort of technology into an augmented reality shelving and inventory system. While we didn&#8217;t use the exact specifications for QR Codes, we did create very similar codes, aptly named ShelvAR tags. They are the same idea: a rectangle of black and white pixels that represent data. But here&#8217;s the kicker: the consumer (in our case, a library patron) is never meant to interact with these tags. They might notice them, but a call to action is never requested.</p>
<p><iframe src="http://www.youtube.com/embed/ENoHkhXoJXs" frameborder="0" width="640" height="360"></iframe></p>
<p>Library employees, however, <em>are</em> meant to use these tags&#8211;but very minimally. In the project&#8217;s most recent demo, you can see that the tags are passed over very quickly and don&#8217;t act as a gateway to more content. They serve their very concise purpose and the person moves on.</p>
<p>Not unlike bar codes in a grocery store or tracking codes on packages, ShelvAR employs this technology correctly. Other projects can use codes like this correctly too, it just takes some time to stop and think. So stop this madness of trying to turn ugly pixels into marketing and realize that it&#8217;s time to move on to something different.  Just like you would never expect me to scan a bar code to view your content, you should never expect me to scan a QR Code either.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/10/the-qr-code-bubble/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Your Name Is Your Brand</title>
		<link>http://matthodges.com/2012/09/your-name-is-your-brand/</link>
		<comments>http://matthodges.com/2012/09/your-name-is-your-brand/#comments</comments>
		<pubDate>Sat, 29 Sep 2012 15:39:49 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=206</guid>
		<description><![CDATA[Recently, a buddy of mine asked a question on Twitter and Facebook: What are your thoughts on changing your name on Facebook/Twitter to [First Name] [Middle Name] so potential employers won&#8217;t find you? — Eliot Fowler (@EliotF1011) September 28, 2012 &#8230; <a href="http://matthodges.com/2012/09/your-name-is-your-brand/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Recently, a <a href="http://twitter.com/EliotF1011" target="_blank">buddy of mine</a> asked a question on Twitter and Facebook:</p>
<blockquote class="twitter-tweet tw-align-center"><p>What are your thoughts on changing your name on Facebook/Twitter to [First Name] [Middle Name] so potential employers won&#8217;t find you?</p>
<p>— Eliot Fowler (@EliotF1011) <a href="https://twitter.com/EliotF1011/status/251680675768451074" data-datetime="2012-09-28T13:52:03+00:00">September 28, 2012</a></p></blockquote>
<p><script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"></script>To which I fired back a resounding:</p>
<blockquote><p>&#8220;It&#8217;s asinine. Set up proper privacy settings instead.&#8221;</p></blockquote>
<p>and</p>
<blockquote><p>&#8220;Your name is your brand. If you compromise it for &#8216;privacy&#8217; reasons you&#8217;re doing it wrong.&#8221;</p></blockquote>
<p>Now, there are many theories about the idea of assuming a temporary and new identity; some debate whether the act of disguise is necessary, others question if it even works. But I&#8217;m not going to discuss either of those. I&#8217;m going to tell you why hiding your name online, even temporarily, is a terrible idea.</p>
<p><strong>But we have to, like, hide from creepers</strong></p>
<p><img class="alignleft size-full wp-image-246" title="worried-omg-run-l" src="http://matthodges.com/wp-content/uploads/2012/09/worried-omg-run-l.png" alt="" width="170" height="215" />For the uninitiated or indisposed, the idea is that you can &#8220;hide&#8221; your online profile by changing your listed last name to your middle name. The theory is that if anyone searches for your first and last name they won&#8217;t be able to find you <em>and</em> you get to keep your online presence in tact. It&#8217;s a popular tactic, often exercised by college girls looking for jobs, that likely stems from some forced procedure during sorority rushing. Unfortunately, the fiction here is the belief that your online presence persists after such a change. I assure you: it does not.</p>
<p>It used to aggravate me when my Facebook feed would suddenly fill up with people (mostly girls) that I could not identify. It seemed as if overnight I had friended fifteen Sarah Nicoles and eleven Katy Lynns! At first, I&#8217;d try to identify who everyone was by clicking on their profiles and shuffling through some picture, but I quickly gave up on that. I&#8217;m bad enough with names that I sure as hell wasn&#8217;t going to try to learn everyone&#8217;s middle name. Eventually I went through and unfriended everyone that I couldn&#8217;t immediately identify.</p>
<p><strong>They weren&#8217;t anonymous, they were ambiguous </strong></p>
<p><img class="alignright size-full wp-image-225" title="misc-will-smith-tada" src="http://matthodges.com/wp-content/uploads/2012/09/misc-will-smith-tada-l.png" alt="" width="180" height="279" />If my frustrated anecdote about Facebook friends isn&#8217;t enough, then let&#8217;s talk about it in broader terms. Social media is a shouting board that anyone can jump onto and immediate have an audience of hundreds or even thousands of people. Why on earth wouldn&#8217;t you use this to your advantage? When you alter your identity, yes you can still consume but you cannot produce. You have given up the most powerful platform available to you! If you&#8217;re searching for a job, why not impress recruiters with your insightful tweets about the industry? And take it even farther than Facebook and Twitter. Do you have a website? Does it use your name? If not, why? If you are an artist it could be your portfolio. If you develop software why not showcase some of your work? Hell, if you work in finance then why aren&#8217;t you blogging about the markets?</p>
<p>For some of you, it&#8217;s because you&#8217;re lazy. Others of you are scared. You&#8217;re afraid that the big and scary internet may judge you and point out where you are wrong. It doesn&#8217;t matter. If you&#8217;re looking to make a name for yourself or you&#8217;re just looking to get hired, your enthusiasm to create content will win over at least half of everyone who sees it.</p>
<p><strong>Your liabilities should be assets</strong></p>
<p><img class="alignleft  wp-image-221" style="line-height: 24px; font-size: 16px;" title="oh-god-why" src="http://matthodges.com/wp-content/uploads/2012/09/disgusted-oh-god-why-text-l.png" alt="" width="180" height="173" /></p>
<p>The entire point of social media is to have an online presence that represents who you are and you should be proud of it. I&#8217;m not telling you to open up your entire Facebook profile to the world but I am telling you that if there&#8217;s anything online that would ruin your career, you&#8217;ve got bigger problems than Facebook&#8217;s challenging privacy settings. And on that note, configure your Facebook privacy settings! I know, they&#8217;ve got a confusing and shitty setup, but take an hour and just do it.</p>
<p>If you use Twitter and your account is private, you&#8217;re doing it wrong. Twitter is not Facebook. You&#8217;re meant to interact with people you don&#8217;t know. No one wants to ask permission to read your tweets. Now, because Twitter should be treated as an all-eyes platform, you need to use it differently from the way you use Facebook. You know what&#8217;s worse than a drunk texter? A drunk tweeter. You can ask Anthony Weiner about that one.</p>
<p><strong>A rose by any other name</strong></p>
<p><img class="alignright size-full wp-image-257" title="determined-feel-like-a-superhero-l" src="http://matthodges.com/wp-content/uploads/2012/09/determined-feel-like-a-superhero-l.png" alt="" width="190" height="156" />Your name is your brand. Unless you&#8217;ve achieved all of your dreams and aspirations in life, you need to go out and sell yourself every day. This isn&#8217;t the 1950&#8242;s, so stump speeches in front of the barber shop won&#8217;t work anymore. The entire world is interconnected and you&#8217;re competing against everyone else. Social media is a fantastic tool that you&#8217;ve been given, so use it. What&#8217;s in a name? In our world, everything.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/09/your-name-is-your-brand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Like Making Assumptions About People</title>
		<link>http://matthodges.com/2012/09/i-like-making-assumptions-about-people/</link>
		<comments>http://matthodges.com/2012/09/i-like-making-assumptions-about-people/#comments</comments>
		<pubDate>Sat, 08 Sep 2012 19:11:23 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=181</guid>
		<description><![CDATA[One of technology&#8217;s favorite buzzwords right now is &#8220;big data&#8221;.  It&#8217;s the idea that social networks (and other services) hold so much data about so many people that it is possible to extrapolate useful and accurate information about individual users. &#8230; <a href="http://matthodges.com/2012/09/i-like-making-assumptions-about-people/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-198" title="aliens-politics" src="http://matthodges.com/wp-content/uploads/2012/09/25026868.jpg" alt="" width="192" height="186" />One of technology&#8217;s favorite buzzwords right now is &#8220;big data&#8221;.  It&#8217;s the idea that social networks (and other services) hold so much data about so many people that it is possible to extrapolate useful and accurate information about individual users.  This is something that is particularly interesting for advertisers.  Knowing this, I decided to do a little experiment.  Given how much I enjoy politics, I thought that it would be interesting to try to find out who my Facebook friends will vote for in the 2012 election, based on their likes and reported political affiliations.  And so, <a href="http://deductivepolitics.com/" target="_blank">Deductive Politics</a> was born.</p>
<p><strong>Nobody cared</strong></p>
<p>The response from the service was tiny.  In the month that the site has been active, I&#8217;ve had roughly 80 users.  I think there is a lot to be said about this, but it probably boils down to two conclusions: First, most people seem to hate any political integration into Facebook.  While I believe that Facebook is an excellent medium for political discussion (we&#8217;ll save that argument for a different blog post) most people seem to disagree with me.  It&#8217;s likely due to the cognitive tensions that politics creates between friends, and that makes people uncomfortable.  Second, I believe that most people, at least in my age demographic, are rather apathetic about politics.  Most don&#8217;t follow it enough to really have a strong opinion on most political matters, let alone care what other people think.  If you&#8217;re an outlier, by all means, check out the site.  See how your Facebook friends (might) vote this November.  I promise not to harvest any of your data.</p>
<p><strong>It makes an ass out of you and me</strong></p>
<p>The entire project is guesswork that relies solely on my broad generalizations about people.  Some of the assumptions are obvious.  For example, if you like Mitt Romney&#8217;s page, I assume that your leaning towards voting for him.  Other times, it&#8217;s empirical.  A <a href="http://www.washingtonpost.com/blogs/post-partisan/post/nbc-news-wsj-poll-romney-is-not-in-the-black--literally/2012/08/22/6ab57bf4-ec63-11e1-aca7-272630dfd152_blog.html" target="_blank">recent poll</a> from NBC/WSJ showed that President Obama pulled in 94% support from black voters, while Mitt Romney pull in 0%.  From that, I&#8217;m making the assumption that if you like the NAACP&#8217;s Facebook page, you&#8217;re probably voting for Obama.  Overall, I cataloged 120 Facebook pages and put them into either a &#8216;Romney&#8217; pile or and &#8216;Obama&#8217; pile&#8211;giving some pages more weight than others.  From there, the math was easy.  I simply looked through a user&#8217;s likes and found the ones that fell into each pile.  If one pile had more than the other, I assumed that they are going to vote for that pile&#8217;s respective candidate.  There is absolutely nothing scientific about my method.</p>
<p><strong>Don&#8217;t trust these statistics </strong></p>
<p>It was interesting to see how my Facebook friends are forming opinions as we get closer to the election&#8211;especially now after both the Republican and Democratic conventions.  When I first launched Deductive Politics, it was able to make predictions about roughly 18% of my friends.  Now, just a few days after the wrap-up of the DNC, it&#8217;s making predictions about 21% of my friends.  I&#8217;ve also received feedback from users letting me know that, since the conventions, the balance has shifted between candidates.  Draw whatever conclusions from this that you like.</p>
<p>Final thought: please <a href="https://register.rockthevote.com/?partner=14581" target="_blank">register to vote</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/09/i-like-making-assumptions-about-people/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Be Silent Or Say Something Better Than Silence</title>
		<link>http://matthodges.com/2012/08/be-silent-or-say-something-better/</link>
		<comments>http://matthodges.com/2012/08/be-silent-or-say-something-better/#comments</comments>
		<pubDate>Wed, 08 Aug 2012 15:25:44 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=110</guid>
		<description><![CDATA[There is a long-standing assumption that programmers suck at communicating.  Business analysts love to remind us of this and it&#8217;s always veiled as a favor: &#8220;we&#8217;ll talk to the client so you don&#8217;t have to.  Besides, you&#8217;d rather focus on your code anyway.&#8221; &#8230; <a href="http://matthodges.com/2012/08/be-silent-or-say-something-better/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-125" title="genius" src="http://matthodges.com/wp-content/uploads/2012/08/genius.png" alt="" width="180" height="196" />There is a long-standing assumption that programmers suck at communicating.  Business analysts love to remind us of this and it&#8217;s always veiled as a favor: &#8220;we&#8217;ll talk to the client so you don&#8217;t have to.  Besides, you&#8217;d rather focus on your code anyway.&#8221;  While this may be true for<em> some</em> developers, I reject the idea that this is universal.  I, for one, enjoy giving presentations to groups of people.  I like explaining technical things to people who aren&#8217;t technically inclined.</p>
<p>That being said, there are tons of ways that we, as developers, can improve our communication skills.  Much of this blog post could be applied to other fields, but since I&#8217;m a developer, that&#8217;s the context in which we&#8217;ll be discussing.  I&#8217;ve worked through issues on team projects, work assignments, and personal endeavors, and because everybody loves blog posts with lists, I&#8217;ve compiled some common pitfalls below, minus any pointless enumeration.</p>
<p><strong>Be conversational</strong></p>
<p>One of the easiest ways for a developer to break out of this stereotype is to talk about something other than software development.  You&#8217;re a human, not a robot, which means you do human things outside of work.  What are your hobbies?  What TV shows do you like?  What do you like to read?  What&#8217;s your family like?  Pick one of these, and take a few minutes to talk to your teammates about it.  Find out something about them.  Show an interest in their lives.  What&#8217;s great about this kind of conversation is that there&#8217;s absolutely no pressure attached to it.  It is exactly what people mean when they say &#8216;small talk&#8217;.  And it achieves two things: the team becomes more knowledgeable about each other, which allows them to work better together, and it boosts morale.  It&#8217;s nice to know that someone showed an interest in you.</p>
<p><strong>Ask for help</strong></p>
<p>A lot of people are shy.  This is true of developers and it&#8217;s true in virtually every other position you can think of.  The fear of being judged is very real and very much a challenge for some people.  But here&#8217;s the problem: as a software developer, you work in a field that is completely based on problem solving&#8211;and mostly within a team setting.  If you&#8217;re stuck on something, by all means ask for help.  There&#8217;s a reason you&#8217;ve been placed on a team with a more senior developer.  Chances are, he or she has seen this exact issue before, and if they haven&#8217;t they may have the expertise to help you figure it out.  If you are the senior developer and you&#8217;ve hit a roadblock, don&#8217;t be afraid to float the question out to the rest of your team.  You never know what strange quirks they may have encountered through their experiences.  Additionally, programmers love to show off how smart they are.  They are usually eager to share a piece of knowledge.</p>
<p><strong> </strong><strong>Don&#8217;t tell me what the answer isn&#8217;t</strong></p>
<p>One of my biggest pet peeves is something that other developers like to do <em>all</em> the time: I ask a question and they tell me what&#8217;s not the answer.  Here&#8217;s how that conversation usually goes with me:</p>
<blockquote><p>Me: &#8220;What do you think the round-trip-time on this request will be?&#8221;</p>
<p>Teammate: &#8220;Well it&#8217;s not going to be like an hour.&#8221;</p>
<p>Me: &#8220;That doesn&#8217;t answer the question.&#8221;</p></blockquote>
<p>I can&#8217;t tell you how many times I&#8217;ve had to go through a version of that conversation.  Usually, the person responding to my question is doing so sarcastically, as if to imply that my question was stupid.  Not only is this type of exchange not helpful, it&#8217;s also a waste of time and a good way to create unnecessary tension within the team.  Programmers tend to think (rightfully or wrongly) that they are intelligent.  These subtle jabs are a good way to piss them off.  Fortunately, unless your teammate is a dick (more on that soon), these types of interactions only occur when a question of fact is presented.  If, instead, I had asked for assistance, the same teammate would have proved to be more helpful.</p>
<p><strong>For the love of god, speak up</strong></p>
<p>Sometimes ideas are necessary without an explicit prompt.  Brainstorming sessions are not uncommon, and many times they will include people who are not members of the development team.  These could be discussions about which direction to take a product, which features to implement next, or even just a general discussion of how things are going.  If you have a thought that you think is important, put it out there.  The title of this post is &#8216;Be Silent Or Say Something Better Than Silence&#8217;.  I&#8217;m sure you&#8217;ve got something better than silence.  It doesn&#8217;t matter if you think that it doesn&#8217;t concern someone who is present.  Most of the time, you&#8217;re going to have something valuable to contribute.  Every other time, by just saying something every now and then, you send the message that you are engaged with the team.  The more perceived participation you have, the more clout the team will give you.  If you seem invested in the project, the team will become invested in you.</p>
<p><strong>This isn&#8217;t a chat room; inflection matters</strong></p>
<p>Many programmers prefer to communicate over email or instant message.  I would recommend against this as much as possible.  The more you refuse to actually speak to people, the more they will think you suck at communicating.  That being said, when you actually <em>do </em>talk with someone, make sure you use appropriate tonalities and non-verbals.  Look them in the eye.  Smile.  Use your hands.  Speak loudly.  No one likes talking to Napoleon Dynamite.  Unfortunately, this is one of the most challenging fixes to make.  Many people don&#8217;t even know that they exhibit these issues and what&#8217;s worse is that it takes practice to actually fix them.</p>
<p><strong>Explain it to me like I&#8217;m five</strong></p>
<p>Whether you&#8217;re explaining something to a fellow developer or to anyone else, don&#8217;t assume that the other person knows exactly what you&#8217;re thinking.  Many times, programmers will gloss over details that they perceive as obvious and the listener gets an abridged version of  whatever you&#8217;re trying to say.  Slow down and be very specific, down to the elementary facts.  You&#8217;ll quickly be able to gauge whether or not the other person needs more detail.  Take the following <em>bad</em> example:</p>
<blockquote><p>Person A: &#8220;Why do we want to use a hash table?&#8221;</p>
<p>Person B: &#8220;It&#8217;s faster.&#8221;</p></blockquote>
<p>If Person A is a developer (which they probably are since they know what a hash table is) they probably could have guessed that the application should be implemented with the fastest runtime, therefore Person B&#8217;s answer didn&#8217;t really answer anything.  When trying to be more specific, I like to lead my answers with a question.  It lets me know if I&#8217;m being specific enough and allows them to interject with a request for more details if necessary:</p>
<blockquote><p>Person A: &#8220;Why do we want to use a hash table?&#8221;</p>
<p>Person B: &#8220;So, you know how hash tables have a constant lookup time?  Well, since we don&#8217;t care about order for our data, we don&#8217;t need to waste time traversing though an ordered data structure like an array.&#8221;</p></blockquote>
<p>Same question and technically same answer, but much more informative.</p>
<p><strong>Drop the initialisms</strong></p>
<p>API, JRE, SDK, IDE, RoR, WCM, and any other abbreviated piece of technology that you might be working with can usually be left out of discussions with non-developers.  If one of your stake-holders asks you how hard it would be to implement a feature, they don&#8217;t want to hear about you having to rewrite all of the JSON requests.  Usually you&#8217;ll be fine by saying &#8220;it&#8217;s a significant code change&#8221; and then say how long it will take.  If they press for more details, only then should you start pulling in the technical nomenclature.</p>
<p><strong>Your time is not more important than mine</strong></p>
<p>If I&#8217;m taking time out of my day to talk to you about an issue, it&#8217;s probably important.  This is true whether I&#8217;m a developer, a designer, or a business analyst.  It&#8217;s very rare that someone is &#8216;wasting&#8217; your time.  Sure, you&#8217;re busy.  Everybody&#8217;s busy.  If I initiate an interaction, consider it important.  You wouldn&#8217;t appreciate it if someone blew off your emails, would you?  Your code isn&#8217;t going anywhere.  That being said, programmers do &#8220;get in the zone&#8221; and when we&#8217;re on a roll coding, it&#8217;s very upsetting to be interrupted.  The best way to avoid such interruptions is to stop them as soon as they become apparent.  If you think that there really is no value of you sitting in on a meeting, talk to its organizer about it and explain the impact on the project.  You may not always win your refuge, but that&#8217;s life.</p>
<p><span style="color: #000000;"><strong>Separate yourself from your work</strong></span></p>
<p>We program because it&#8217;s something we enjoy doing.  But remember, unless you&#8217;re working on a project that you&#8217;ve invented, <span style="line-height: 24px;">this is a job you&#8217;re doing for someone else.  It&#8217;s easy for programmers to get caught up and connected to the code we write, but it&#8217;s just a product.  By all means, give your job the best effort you can, but if someone corrects your work, know that they are doing just that: correcting your work.  Don&#8217;t take it as a slight against your abilities.  If you start taking offense, your positive communication skills will break down.  You&#8217;ll start speaking defensively and will gradually become less approachable.  If you have a question or disagree in any way, voice it in an appropriate fashion.  Once the issue is settled, move on and make whatever changes are necessary.</span></p>
<p><strong>Don&#8217;t be a dick</strong></p>
<p>This one should be obvious, but I don&#8217;t think that it actually is.  And this statement should be applied to any field, not just developers.  Assholery (yup) does you no good.  At the very best, it may trick others into thinking that you are smart and important&#8211;and maybe you are. But for the most part it&#8217;s just going to make the team hate you.  If you&#8217;re a dick, teammates aren&#8217;t going to want to ask you questions or help you when you have a problem.  They won&#8217;t be likely to turn to you for input, and more likely than not, they&#8217;ll be less willing to work with you in the future if they have the choice.  Chill out; if you&#8217;re trying to prove something, you&#8217;re failing.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/08/be-silent-or-say-something-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Internet Virulence</title>
		<link>http://matthodges.com/2012/07/on-internet-virulence/</link>
		<comments>http://matthodges.com/2012/07/on-internet-virulence/#comments</comments>
		<pubDate>Sat, 28 Jul 2012 18:13:40 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=92</guid>
		<description><![CDATA[There are a million and one reasons why the internet is the greatest thing since using soap to prevent the black plague.  But one of the most interesting aspects of the internet is its ability to make something &#8220;go viral&#8221;.  The internet having &#8230; <a href="http://matthodges.com/2012/07/on-internet-virulence/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>There are a million and one reasons why the internet is the greatest thing since using soap to prevent the black plague.  But one of the most <em>interesting </em>aspects of the internet is its ability to make something &#8220;go viral&#8221;.  The internet having this capability certainly makes sense.  But what types of things &#8220;go viral&#8221; and why?  Below are three experiences I&#8217;ve had with internet virulence.  I hope that the drastic differences between each is obvious.</p>
<p><strong>ShelvAR</strong></p>
<p><iframe src="http://www.youtube.com/embed/NgZVI630SsI" frameborder="0" width="640" height="360"></iframe></p>
<p>A video about <a href="http://shelvar.com" target="_blank">ShelvAR</a> was my first experience with something &#8220;going viral&#8221; on the internet.  In less than a day, we received tens of thousands of hits on our video and were being contacted by librarians, researchers, and Fortune 500 companies all over the world.  Interviews and photo shoots happened shortly there-after.  We were even scheduled to appear on CNN to discuss this technology but that ended up getting bumped due to the death of Osama bin Laden.  Unlike my other experiences, this instance of &#8220;going viral&#8221; moved beyond the internet and out into the <em>real world</em>.</p>
<p><strong>I Just Can&#8217;t Wait For Booty</strong></p>
<p><iframe src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F40495088&amp;show_artwork=true" frameborder="no" scrolling="no" width="100%" height="166"></iframe></p>
<p>One of my side hobbies is creating <a href="http://soundcloud.com/you/tracks" target="_blank">mashups</a>.  I&#8217;m no <a href="http://milkmanmusic.net/fr_music.cfm" target="_blank">Milkman</a>, but people tend to send me positive feedback on what I make.  Usually I&#8217;m very excited when I get a couple hundred listens on my tracks.  One of my tracks sampled &#8220;I Just Can&#8217;t Wait To Be King&#8221; from the Lion King soundtrack.  Initially, it was like the others and was only exposed to a small group of people.  One day, though, I logged on and saw that it had over 100,000 plays in under 24 hours.  Today it sits at over 200,000 plays.  Turns out the track was discovered by a popular Tumblr site <a href="http://ruinedchildhood.com/" target="_blank">Ruined Childhood</a>, and it took off.</p>
<p><strong>So this is happening&#8230;</strong></p>
<p><img class="alignnone size-full wp-image-98" title="viral-photo" src="http://matthodges.com/wp-content/uploads/2012/07/DQCaE.jpg" alt="" width="960" height="720" /></p>
<p>Yesterday some of my coworkers and I were goofing around and took a stupid picture.  Yup, that&#8217;s me with the thumbs-up.  Then we thought it would be funny to continue taking iterations where someone else sits next to a display of the previously shot picture.  My friend in Washington DC, <a href="http://thepaulweber.com" target="_blank">Paul Weber</a>, saw it on Facebook and he jumped in too.  Long story short, the idea made its way to <a href="http://www.reddit.com/r/funny/comments/x9cmn/so_my_friends_and_i_have_been_doing_this_all_day/" target="_blank">Reddit</a>.  Over 1.8 million views and 750 comments later, the joke exploded into a &#8220;crowd-sourced chain photo&#8221; with participants from all over the world.  The full series is <a href="http://imgur.com/a/nZVQ3" target="_blank">here</a>.</p>
<p><em>Update, 2012-08-08</em>:  My buddy, Paul, ended up putting together a <a href="http://www.youtube.com/watch?v=M6w1O0lJjbo" target="_blank">video of the pictures</a>.  I think it&#8217;s safe to say that it has also &#8220;gone viral&#8221;.  In about 24 hours it&#8217;s received over 101,000 hits on YouTube, was covered by <a href="http://gizmodo.com/5932341/what-a-picture-in-a-picture-in-a-picture-in-a-seemingly-endless-loop-of-more-pictures-looks-like" target="_blank">Gizmodo</a> and <a href="http://www.dailymail.co.uk/news/article-2184930/Mind-bending-photo-photo-viral-shows-happens-office-workers-time-hands.html" target="_blank">The Daily Mail</a>, and ABC&#8217;s Good Morning America even asked if they could show the video.</p>
<p><strong>I have no idea what I&#8217;m doing</strong></p>
<p>I can&#8217;t explain why some things go viral and others don&#8217;t.  Some might argue that the ShelvAR video is boring, the mashup is off-beat, and the chain-photos are stupid.  And I could probably entertain all of those assertions.  But they took off anyway.  I believe that a lot of it has to do with luck.  A large portion of internet virulence can be attributed to sites like Reddit and 4Chan, and I think that most of the success there relies on good timing.  Other services like Tumblr, Facebook, and Twitter are also key players.  But what makes someone want to click an link <em>and</em> share it?</p>
<p>You can&#8217;t force it.  When I was in school, I heard of classes trying to create viral videos.  They would brain-storm and attempt to come up with something clever.  Sure, the videos would turn out ok, and they might have received a lot of attention from peers, but nothing ever took off.  Internet virulence is not a goal, it&#8217;s a side effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/07/on-internet-virulence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lessons Learned From Building a Twitter Spam Bot</title>
		<link>http://matthodges.com/2012/06/lessons-learned-from-building-a-twitter-spam-bot/</link>
		<comments>http://matthodges.com/2012/06/lessons-learned-from-building-a-twitter-spam-bot/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 23:22:17 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=76</guid>
		<description><![CDATA[A little less than 72 hours ago, I decided it was time to build up my Ruby chops.  By that I mean I wanted to actually build  something in Ruby.  More importantly, I wanted to build something both interesting and that I &#8230; <a href="http://matthodges.com/2012/06/lessons-learned-from-building-a-twitter-spam-bot/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-77" title="happy-haters-gonna-hate-l" src="http://matthodges.com/wp-content/uploads/2012/06/happy-haters-gonna-hate-l.png" alt="" width="180" height="203" />A little less than 72 hours ago, I decided it was time to build up my Ruby chops.  By that I mean I wanted to actually build <em></em><em> something</em> in Ruby.  More importantly, I wanted to build something both interesting and that I could show people.  After a solid 10 minutes of consideration, I decided I wanted to make a Twitter bot.  Given my interest in programming, I thought it would be fun to build a hybrid that combined <a href="https://twitter.com/hackernewsbot" target="_blank">Hacker News Bot</a> and <a href="https://twitter.com/reddit_prog" target="_blank">Reddit Programming</a>.  And that quickly, the idea behind @CoderNews was born.</p>
<p><strong>So fast you&#8217;ll freak</strong></p>
<p>I was very surprised at how easy it is to build such a thing.  No wonder actual spam bots are always latching on to my account.  In just a couple of hours, I whipped up a cluttered hack that aggregated stories from Hacker News and Proggit, pushed it to a virtual machine on my laptop, and watched as the automated tweets came pouring in.  I even set up a <a href="https://github.com/hodgesmr/CoderNews" target="_blank">public repository on GitHub</a> so that the world could see my messy hackjob.  Granted, I spent much of the day tweaking various pieces and fixing some bugs that I hadn&#8217;t accounted for, the whole process was surprisingly fast.</p>
<p><strong>The best way to screw up UTF-8 decoding is to not do it at all</strong></p>
<p>The next morning, I went to my bot&#8217;s timeline to find two surprising facts.  First, I noticed that I had somehow tricked 12 people into following the bot that would be spamming them with links every 15 minutes.  Second, I saw that a lot of the tweets contained garbage text. One of the biggest offenders was <strong>&amp;euro;&amp;trade;</strong>.  One of the APIs was sending me the HTML-safe version of UTF-8 encoded text that had been decoded in CP-1252.  That bold hunk of garbage should have been an apostrophe.</p>
<p>Fortunately, <a href="http://hndroidapi.appspot.com/" target="_blank">the API</a> is open source and I shot the creator and email.  He replied back confirming what I had already concluded and that he hopes to push a fix some time soon.  If any of you are savvy with Python and are interested in contributing a fix, the GitHub repository can be found <a href="https://github.com/glebpopov/Hacker-News-Droid-API" target="_blank">here</a>.</p>
<p><strong>You shall not pass</strong></p>
<p>Upon returning home from work yesterday, I went to check on my bot.  Because I hadn&#8217;t handled any sort of network errors, it had crashed at some point during the day.  I went to restart it; no go.  I then called up twitter.com in my browser, to find that it wouldn&#8217;t load.  I temporarily shrugged this off, as Twitter is notorious for having random downtime.  A few hours later, I noticed that I still could not get on Twitter.  My TweetDeck client was failing to connect as well.  Intrigued, I asked my roommate to try.  He was able to connect via his mobile phone, but not through the connection from our house.  Awesome.  I quickly fired up curl to see if I could get <em>any </em>response.  Nope.  I wasn&#8217;t even getting a 4xx or 5xx HTTP response.  The best I could do was ping.</p>
<p>It was at that point that I concluded that my bot had somehow pissed off the spam filters on Twitter and I was IP Banned.  Despite the fact that the API Docs say up to 150 requests per hour are allowed (I was making about 8), I felt like this could be the only explanation.  Hours had gone by at this point and the issue still existed, so I emailed their support.  I explained the monster of a script that I had created, let them know that I had turned it off, and that all I wanted was to be able to tweet again from my personal account.  Ten minutes later, and no response from support, I was able to get access Twitter again.</p>
<p><strong>It&#8217;s all for the best, of course it is</strong></p>
<p>It&#8217;s probably a good thing that my bot only lived to be 2 days old.  It was, after all, very spammy.  Also, it would have been cumbersome to try to keep a virtual machine constantly running on my laptop.  If you&#8217;re interested in seeing the mess I created, feel free to fork the GitHub repository.  I stand by every line in that script.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/06/lessons-learned-from-building-a-twitter-spam-bot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My Bank is a Security Vulnerability</title>
		<link>http://matthodges.com/2012/06/my-bank-is-a-security-vulnerability/</link>
		<comments>http://matthodges.com/2012/06/my-bank-is-a-security-vulnerability/#comments</comments>
		<pubDate>Sun, 10 Jun 2012 21:26:37 +0000</pubDate>
		<dc:creator>Matt Hodges</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://matthodges.com/?p=61</guid>
		<description><![CDATA[The big catastrophe in the technosphere this week was the leak of 6.5 million LinkedIn password hashes.  And Francois Pesce did an excellent summary of some of the things we should learn from this&#8211;at least from the perspective of security.  The main &#8230; <a href="http://matthodges.com/2012/06/my-bank-is-a-security-vulnerability/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-64" title="shut-up-and-take-my-money" src="http://matthodges.com/wp-content/uploads/2012/06/shut-up-money.jpg" alt="" width="300" height="188" />The big catastrophe in the technosphere this week was the leak of <a href="http://news.cnet.com/8301-1009_3-57448079-83/millions-of-linkedin-passwords-reportedly-leaked-online/" target="_blank">6.5 million LinkedIn password hashes</a>.  And Francois Pesce did an <a href="https://community.qualys.com/blogs/securitylabs/2012/06/08/lessons-learned-from-cracking-2-million-linkedin-passwords" target="_blank">excellent summary</a> of some of the things we should learn from this&#8211;at least from the perspective of security.  The main idea is that even with relatively old hardware, passwords can be cracked <em>extremely</em> quickly.  This applies to seemingly long and complex passwords too.  Unfortunately, as users, the best thing we can do is pick long random passwords that don&#8217;t use real words, or hope for the best security with <a href="http://www.codinghorror.com/blog/2005/07/passwords-vs-pass-phrases.html" target="_blank">passphrases</a>.</p>
<p><strong>The Dark Ages — they haven&#8217;t ended yet</strong></p>
<p>In the interest of not pissing off the people who hold all of my money, I&#8217;ll leave the name of my bank out of this.  For those of you who follow me on Twitter, it won&#8217;t be hard for you to figure out who I&#8217;m talking about.</p>
<p>In the wake of all this LinkedIn madness, I decided it was that time of the year again to change all of my passwords.  Obviously, I did this in order of primacy, starting at the top: my online banking account.  If anyone ever gained access to that, they would not only be able to take my money, they would also be able to assume much of my identity.  Like any good citizen of the internet, I was prepared to create a new passphrase that was long and made up of letters, numbers, and special characters.  Remember: the goal is not to stop attackers from guessing your password; it&#8217;s to stop them from <em>cracking</em> your password.  I was instantly stopped in my tracks.  As it turns out, my bank doesn&#8217;t allow for passwords longer than 12 characters and no special characters are allowed.</p>
<p>Even before the LinkedIn leak, this is just bad password practice.  An argument, albeit a poor argument, could be made against special characters (the fear of SQL injections comes to mind), but a maximum length of 12 is absurd.  In fact, 12 characters should be the <a href="http://www.msnbc.msn.com/id/38771772/#.T9UM4tVYsk8" target="_blank">minimum</a> length.</p>
<p><strong>When in doubt, castle</strong></p>
<p>So what could I do?  I am, as it stands, at the mercy of my bank&#8217;s rules.  Some, such as <a href="https://twitter.com/codinghorror" target="_blank">Jeff Atwood</a>, would suggest that I change banks.  But that really isn&#8217;t practical.  So, I did the best thing I was willing to do: pick a 12-character <a href="http://www.random.org/passwords/" target="_blank">random password</a>.  I&#8217;m still in the process of committing that to memory.</p>
<p>Moral of the story: go find out how your financial institutions are limiting your security.  Pick the strongest passphrase possible.  You may even be more compelled to change banks all together.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthodges.com/2012/06/my-bank-is-a-security-vulnerability/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
