<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0">

				<channel>

					<title>matthom / Archive</title>
<link>http://matthom.com/</link>
<description>Personal weblog of Matt Thommes: independent publishing enthusiast, informative writer, web developer from Chicago.</description>
<language>en-us</language>

<copyright>Copyright 2010, matthom</copyright>
<webMaster>matthom@gmail.com</webMaster>

<image>
	<title>matthom</title>
	<url>http://matthom.com/images/emblem.jpg</url>
	<link>http://matthom.com/</link>

	<width>300</width>
	<height>300</height>
	<description>Personal weblog of Matt Thommes: independent publishing enthusiast, informative writer, web developer from Chicago.</description>
</image>


		<item>

			<title>Whatever happened to programming?</title>
			<link>http://matthom.com/archive/2010/03/17/whatever-happened-to-programming</link>
			<category>Programming, Web Development, Links</category>
			<pubDate>Wed, 17 Mar 2010 07:00:51 -0700</pubDate>

			<description>
			
				<![CDATA[

					<p><a href="http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/">This post</a> (via <a href="http://daringfireball.net/linked/2010/03/09/taylor">Daring Fireball</a>) makes and references some pretty poignant statements about programming in today's world:</p>

<blockquote>
  <p>"The problem is that coding isn't fun if all you can do is call things out of a library, if you can't write the library yourself. If the job of coding is just to be finding the right combination of parameters, that does fairly obvious things, then who'd want to go into that as a career?"</p>
</blockquote>

<p>This got me thinking about my own "web development" job and extracurricular endeavors.</p>

<blockquote>
  <p>"The ubiquitious availability of nearly-right-but-not-quite libraries and frameworks-that-do-it-all-for-you-except-that-actually-they-don't wipes out the exhilaration ..."</p>
</blockquote>

<p>I believe the exhilaration is still there for me - at least, for my extracurricular endeavors (personal and side-project websites I maintain).</p>

<p>The reason is simple: I don't use libraries or pre-built CMS's. I hand-code everything that I possibly can. It takes longer, and causes more debugging and issues, but the end result is much more satisfying. I feel I'm actually doing the hard work, and laboring to create something. The less I have to rely on a third-party utility or library, the easier my life becomes in the long run.</p>

<p>I'm also lucky to have a day job that allows me to still create things. Sure, we have loads of commonly used functionality stored away to be accessed in a one-line snippet of code, but most of it our company wrote by hand, so it still requires an in-depth understanding of it, in case something goes wrong.</p>

<p>The key is to not use something pre-built by a third-party if you can do it yourself.</p>

<p>I carry this philosophy with me for development projects, and even things like social networks. I'm tired of giving all of my data (status updates, photos, etc) to a third-party, without knowing if I'll ever get it back. In 20 years, don't you want to look back on this "era," and recall all of the stuff you posted and shared?</p>

<p>It may seem easier to just post it to the social network now, and worry about it's preservation later, but taking the right steps now can save you a lot of discontent in the future.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>The Rosebuds - Birds Make Good Neighbors (2005)</title>
			<link>http://matthom.com/archive/2010/03/16/the-rosebuds-birds-make-good-neighbors</link>
			<category>Music</category>
			<pubDate>Tue, 16 Mar 2010 09:57:59 -0700</pubDate>

			<description>
			
				<![CDATA[

					<p><img src="http://matthom.com/images/1583.jpg" width="240" height="240" alt="Album cover for The Rosebuds - Birds Make Good Neighbors" title="The Rosebuds - Birds Make Good Neighbors" /></p>

<p>I bought this album on a whim from iTunes sometime in 2005. I ended up liking the simplicity of it right away.</p>

<p>It's nothing overly extravagant or lush. The vocals and minimal instruments are distant and muffled at times, and the songs short and to-the-point.</p>

<p>Yet to this day, I still find myself randomly replaying the opening track in my head - something about it "sticks" with me.</p>

<p>And once I hear the entire first song again, I have to listen to the rest of the album.</p>

<p>Listen if you like:</p>

<ul>
<li>Longwave</li>
<li>The Shore</li>
<li>Gomez</li>
<li>The Doves</li>
<li>Shout Out Louds</li>
<li>Kaiser Chiefs</li>
<li>The Bravery</li>
</ul>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Moving on from Dreamhost</title>
			<link>http://matthom.com/archive/2010/03/16/moving-on-from-dreamhost</link>
			<category>Perspective, Technical, Web Hosting, Dreamhost</category>
			<pubDate>Tue, 16 Mar 2010 06:42:28 -0700</pubDate>

			<description>
			
				<![CDATA[

					<p>I've used Dreamhost for many years. They were my first <em>real</em> web host, starting back in the summer of 2003, when my online activity started to increase - I needed a reliable host to help me set up sites quickly, and with minimal fuss.</p>

<p>Dreamhost was the answer. They provided most features at unlimited quantity with easy-to-use interface controls, and had a subtle sense of humor to their marketing and newsletters, which made things less serious and more fun.</p>

<p>It was just this past fall that I finally moved on from Dreamhost.</p>

<p>My reasons were two:</p>

<ol>
<li>Service issues</li>
<li>Monthly cost</li>
</ol>

<h2>Dreamhost shared hosting</h2>

<p>I've always had at least some service interruption using Dreamhost shared hosting. It's one of those <em>"what do you expect?"</em> aspects of shared hosting. You get what you pay for. $20/month doesn't mean your sites will be accessible 100% of the time, without any interruption.</p>

<p>But I eventually became sick of the nagging issues - there was things that I couldn't even chalk up to shared hosting delays, such as random "Internal Server Error" messages, that couldn't be resolved without contacting support, or <a href="http://matthom.com/archive/2006/10/16/a-quick-dreamhost-site-error-fix">performing an update</a> via your web control panel.</p>

<p>I'm a web developer with experience setting up sites and dealing with common server issues. But even some things were way over my head, which prompted me to contact support on many occasions.</p>

<p>Often I'd receive responses as such:</p>

<blockquote>
  <p>"Hi, I'm sorry - I looked at your server, and there was a switch accidentally turned off, causing this. I've since turned the switch back on, and everything should now be fine."</p>
</blockquote>

<p>This is an <a href="http://matthom.com/archive/2009/06/18/tech-support-responses-often-over-exaggerated">exaggerated and sarcastic reply</a>, but it's not far off from the real thing.</p>

<p>It's not so much that the occasional outage occurred - that can happen at any host. It was the fact that many outages did not auto-fix themselves (for example, an unresponsive site will eventually start responding, using shared hosting).</p>

<p>But responses like the above just made me cringe, because I couldn't help but picture some guy sitting behind a desk in a basement, with a bunch of wires everywhere, and somehow my wire got unplugged.</p>

<p>It's the sheer incompetence of it all. Towards the end I needed something more professional and reliable.</p>

<p>So I tried "Dreamhost PS."</p>

<h2>Dreamhost Virtual Private Servers</h2>

<p>At first, VPS seemed like a great idea, and Dreamhost marketed it with compelling flair. For a chunk of change more per month, I'd get a much more reliable server and never have to worry about shared hosting issues again!</p>

<p>The best part was I wouldn't have to switch hosts completely, or update a bunch of my MySQL connection strings - all of my data and files would simply be migrated to the VPS, and everything would work as it always did.</p>

<p><em>"This is a no-brainer,"</em> I thought.</p>

<p>After a while, however, my Dreamhost PS started having similar issues that I had using shared hosting. I felt my sites were much more accessible, with less lags, but the same "Internal Server Error" messages plagued my sites from time-to-time.</p>

<p>I realize this is an Apache error, which is often caused by an <strong>.htaccess</strong> file on the server (which I use all of the time), and I take the blame in many cases of the error message showing. But trust me - this error would show up constantly, in random situations in which I never edited or made changes to the .htaccess file.</p>

<p>This error was much harder to stomach with a monthly bill that was <strong>three times</strong> what it used to be.</p>

<p>Needless to say, Dreamhost PS may have provided some short-term relief from their quality of shared hosting, but in the end I started to feel I could have better luck elsewhere.</p>

<p>I realized it may not be my own incompetence, but the web host themselves.</p>

<h2>Back to shared hosting</h2>

<p>I started to feel that Dreamhost PS was a scam. I was paying around $70/month for the private server and MySQL services, with some of the same nagging issues still present. And how would I really know I actually had a private server? They could be doing whatever they want behind the scenes, and I would have no idea.</p>

<p>I started to despise the "memory sliders" that Dreamhost included in users' control panels, where you could add or subtract memory from your VPS services, without having to contact support. I'm sure they worked as stated, but the sans-technical aspect of it almost made me feel like it was a cheap gimmick. Was this actually adjusting my servers' memory allotment? And what was I really accomplishing by moving sliders up and down?</p>

<p>It all just started to feel <em>silly</em>.</p>

<p>With new budget restraints present due to life changes (getting married and moving out on my own), I looked for areas that I could cut back on. One of those areas was that hefty monthly web hosting fee. I felt I could get better (and more professional) service <em>for shared hosting</em>, than my Dreamhost PS offered - <em>at a third of the price</em>.</p>

<p>I also realized the sites I was publishing were not so sensitive that they needed 99.9% uptime - I was publishing mainly personal blogs and a few small business sites, with little traffic.</p>

<p>This all led me to try a new web host - and go back to shared hosting.</p>

<h2>Media Temple</h2>

<p>My new web host, Media Temple, is just as I expected. I pay $20/month for shared hosting, and rarely have outages. The only issues I ever notice is the typical "shared hosting lag," where my sites won't load for a few minutes, here and there. But they eventually start loading again after a few minutes.</p>

<p>I <em>never</em> see any strange "Internal Server Error" messages, or anything that would cause me to contact support to resolve.</p>

<p>The service is <em>way</em> more professional than Dreamhost, and although not every bit of functionality is made to be as simple as adjusting <em>sliders</em>, I don't mind the extra learning I have to do to make server adjustments. It broadens my knowledge and adds new skills to my toolset.</p>

<h2>In closing</h2>

<p>This post was not meant to bash Dreamhost - I'm just sharing thoughts from my perspective. As I said, I used Dreamhost for many years, and they did a lot of good things for me. They're a solid, reputable company, but it was just time for me to move on.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Support an investigative resource; not a crystal ball</title>
			<link>http://matthom.com/archive/2010/03/13/support-an-investigative-resource-not-a-crystal-ball</link>
			<category>Rants, Technical, Perspective</category>
			<pubDate>Sat, 13 Mar 2010 08:32:37 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>I've <a href="http://matthom.com/archive/2009/10/21/tech-support-requests-tangible-vs-intangible">ranted about support requests</a> before, and here's another.</p>

<p>As a support rep, I am often asked why I do not have an immediate resolution, or "matter-of-fact" answer to any question presented by the particular client.</p>

<p>I often hear statements such as:</p>

<blockquote>
  <p>"Well, you're the support rep - you tell me why this is not working."</p>
</blockquote>

<p>My approach with any support issue is to <em>investigate</em>. This is done by asking the client direct questions related to their problem, or their specific setup. In order to even begin troubleshooting the problem, I need basic questions answered, such as:</p>

<ol>
<li>What were you doing to cause the problem?</li>
<li>What do you expect the software to do in that situation?</li>
</ol>

<p>I then need to gauge responses to these questions by asking myself:</p>

<ol>
<li>Is the client misunderstanding something?</li>
<li>Is this how the software is <em>supposed</em> to behave?</li>
</ol>

<p>The answers to these two questions help me decide whether the problem is actually a problem, or simply a misunderstanding.</p>

<p>This approach can throw people off - as they expect support reps to know <em>every aspect</em> of an application or process, in response to any possible problems that comes up.</p>

<p>I'll be the first to admit - I don't have all of the answers. In fact, I don't have <em>most</em> of the answers. What I have is the ability to investigate issues, and <em>find the answers</em>.</p>

<p>When working on a software application, or anything involving a group of contributors, each person is usually more adept at certain functions or sections of the application. However, support requests often require us to <em>cross over</em> into other areas that we may not have worked on directly, but are still capable of investigating.</p>

<p>Clients don't like to explain everything - they just want a solution <em>now</em>.</p>

<p>Unfortunately, I must perform a thorough investigation before any troubleshooting or "fixes" can be made.</p>

<p>Support is an <em>investigative resource</em>, not a crystal ball.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Twitter as architecture</title>
			<link>http://matthom.com/archive/2010/02/26/twitter-as-architecture</link>
			<category>Twitter, Social Networks</category>
			<pubDate>Fri, 26 Feb 2010 15:03:51 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>I've been thinking a lot about Twitter's impact on society, and wondering exactly why it's so popular. Now, I'm not a "Twitter critic" by any means - I used the service for years, after it's initial launch, and loved every minute. <a href="http://matthom.com/archive/2009/09/04/ive-quit-twitter-heres-why">I've since quit</a> to focus my energy on more <em>productive</em> things (among a few other reasons).</p>

<p>So, here we are today with (how many Twitter users?), and celebrities signing up for the service left and right.</p>

<p>And what exactly does this service <em>do</em>? (I'm thinking abstractly, apart from my own knowledge and experiences.)</p>

<p>It literally just stores <strong>text</strong>. Just short snippets of text submitted by users. It also distributes that text through various notification channels, like SMS, IM, RSS, etc.</p>

<p>This is the future?</p>

<p>Some would call it a "social network," but what we really have here is a <strong>mass text distribution system</strong>. A <em>paradigm</em> for communication.</p>

<p>Twitter is just <em>architecture</em>, like phone lines or network grids. What you pass between the communication channels is entirely up to you.</p>

<p>Remember the old cup on the end of a string - and how two cups enable multiple parties to communicate from a distance? (Whether this is true or not, I don't know, but the image is a popular one so it fits my analogy.)</p>

<p>Twitter <em>is</em> those cups, and string.</p>

<p>You don't <em>go</em> to Twitter, like you would go to Facebook or any other social network. Twitter comes to you.</p>

<p>But what is this architecture that's so unique? Can't Facebook and [insert any other social network] do the same thing?</p>

<p>Certainly. But since Facebook, and most other social networks, are inherently more complex and involved, efforts to emulate the same architecture won't be as successful because they were not initially defined as <em>architecture-only</em> services.</p>

<p>Forget that Twitter has a website where you can update your profile and interact with the service. Twitters' website is merely an extension of the "Twitter architecture." It's just <em>one</em> avenue of input/output.</p>

<p>Facebook and [insert any other social network], on the other hand, <strong>require</strong> interaction through a web browser, or another third-party software application (iPhone app, email client, etc). Their interaction is limited to whatever the service decides to provide.</p>

<p>Whereas Twitter, I believe, is striving to be more of a <em>content-relay system</em>, by allowing input/output from just about any source.</p>

<p>I heard a quote once - I believe it was a Twitter employee, or one of the founders - and it went something like this: <em>(in regards to Twitter) "We'll be successful when people don't even realize we exist. When we just slide to the background."</em></p>

<p>So, Twitter is not striving to be "the hottest social network around." It's striving to be <em>what all other social networks require to function</em>, and <em>what it means to be connected and social, in the first place</em>.</p>

<p>Period.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Indirect features are most important</title>
			<link>http://matthom.com/archive/2010/02/23/indirect-features-are-most-important</link>
			<category>Software, Features, Society</category>
			<pubDate>Tue, 23 Feb 2010 16:05:22 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>Features are for the birds. At the end of the day, we all just need to get things done in the most efficient way possible.</p>

<p>The best "features" are the ones we don't even realize exist - the ones we take for granted because they are always there.</p>

<h2>Reliability</h2>

<p>For example, have you ever thought about how reliable Gmail is? I mean, sure, it's had some downtime throughout the years, but compared to all of the hours and minutes the service is active and immediately responsive - we take this constant connection for granted.</p>

<p>No matter where we are in the world, we can instantly send and receive email (provided you have a mobile device) in a number of ways most efficient for you (web interface, IMAP, etc).</p>

<p>Gmail is always there, and it (almost) always works.</p>

<p>Reliability, in this case, is a feature.</p>

<h2>Simplicity</h2>

<p>Another example is Twitter. I consider Twitter to be more of a communication platform than a "website providing a cool service." It's a "mass-sharing texting system." The only <strong>feature</strong> of Twitter that matters is that it's <em>up and running</em>. After that, it's just text being sent to the service via a number of protocols, such as web, SMS, IM, etc.</p>

<p>Twitter has made sharing text simple by allowing you to use whatever input source you prefer. You're not forced to load the web interface over your mobile device just to interact with the service. You can, instead, use SMS, IM, etc. As the service improves, I imagine it will allow input from as many sources as possible.</p>

<p>In a sense, Twitter provides the <em>connectivity</em>, and you provide <em>what it means to use the service</em>. It's entirely up to you what you can do with Twitter. It's completely open-ended, and <strong>simple</strong> (just share some text). It's what you make of it.</p>

<p>Simplicity, in this case, is a feature.</p>

<h2>Uniqueness</h2>

<p>A unique service is that which allows users to do the things they do, <em>better</em>. This is a broad statement, but it involves our own personal goals in life - how we grow as an individual, reach new heights, and constantly learn about the world around us.</p>

<p>A website or software application may just be a bunch of data and pixels, but it's inherent meaning to us is much more. There's a value behind what we do with software. We don't just update Twitter because it's there. We do it to connect with others, meet new people, open up new opportunities, and possibly even learn something. The scope of that is far greater than servers and "uptime."</p>

<p>For example, as a writer I had become accustomed to blog-length posts for many years. It wasn't until Twitter arrived on stage that I though about how effective short updates can be. There's a certain skill or <em>craft</em> involved in making your point clear in such a short statement.</p>

<p>This limitation requires <em>more</em> creativity, thereby challenging us to think differently.</p>

<p>For each service you join, ask yourself, <em>"What is this making me do better? More efficiently? Will this challenge my core beliefs, push me to try new things, and help me grow?"</em> If not, then the service is probably just a "fresh face on an old game."</p>

<p>It's easy to create new services that look pretty, act differently, or contain a bunch of catchy features, but the real challenge is creating something of <em>value</em> - something that reaches deep into a person's psyche, and persuades them that "this <em>can</em> truly make you better."</p>

<p>Uniqueness, in this case, is a feature.</p>

<h2>Wrap-up</h2>

<p>The most successful services are the ones that combine all three of the above "features" into something that changes society, and the world.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Google Bugz</title>
			<link>http://matthom.com/archive/2010/02/18/google-bugz</link>
			<category>Google Buzz, Bugs, Design</category>
			<pubDate>Thu, 18 Feb 2010 11:30:29 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>Google Buzz has only been out about a week now, and surely more changes are apt to come, so I shouldn't be so quick to judge, but I have a few gripes with the service that I hope get resolved over time.</p>

<h2>Platform inconsistency</h2>

<p>Using the mobile version of Buzz, you can share your location, but not with the desktop version. It's understandable that GPS aids with this, but it's not <em>impossible</em> to narrow down your location to some degree using your computers' IP address. Heck, Gmail even has a "Labs" feature called "Location in Signature," which is designed mainly for using the <strong>desktop Gmail interface</strong>:</p>

<p><img src="http://matthom.com/images/1534.png" width="519" height="112" alt="Screenshot of Gmail Labs" title="Location in Signature Gmail Labs feature" /></p>

<p>While they're at it, put the "Nearby" section in the desktop version as well.</p>

<p>As a worst-case scenario, at least let us <strong>free-form</strong> type in our current location with the desktop version.</p>

<p>In general, the mobile version feels like an entirely different application from the desktop version, which only confuses users.</p>

<h2>Strange bugs</h2>

<p>No matter how much I refresh, log in and out, quit the browser, etc - I keep seeing this inconsistent total of "Connected sites" for my Buzz profile:</p>

<p><img src="http://matthom.com/images/1535.png" width="517" height="127" alt="Screenshot of Google Buzz site" title="Differing totals of connected sites in Google Buzz" /></p>

<p>The <em>true</em> value should be 0, since I currently have no connected sites.</p>

<p>I also cannot load the mobile version of Buzz at all - I've been trying for days. The entire page loads, but the inner loading icon keeps spinning. Therefore, the most recent posts I see are from <em>days</em> ago:</p>

<p><img src="http://matthom.com/images/1536.png" width="320" height="316" alt="Screenshot of Google Buzz mobile site" title="Mobile Google Buzz site will not refresh" /></p>

<p>I'm excited about Buzz, but the interface needs to become more consistent, and the service needs to mature a bit.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>New noise: status updates hit Gmail</title>
			<link>http://matthom.com/archive/2010/02/15/new-noise-status-updates-hit-gmail</link>
			<category>Social Networks, Gmail, #fb</category>
			<pubDate>Mon, 15 Feb 2010 11:56:02 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>With Google's recent release of Buzz, Gmail now includes email, instant-message, and social network updates in it's web interface.</p>

<h2>The good</h2>

<p>Buzz is a natural compliment to your email inbox, and part of a larger push of social networking features being added to Google products.</p>

<p>I find Buzz fitting into Gmail quite well. After all, we already conduct emailing and instant-message chats within the Gmail web interface, so why not include social networking on top of all that?</p>

<p>And it's more than just social networking - it's <em>RSS</em>, <em>Facebook</em>, and <em>Twitter</em> as well. The similarities to these technologies/services is obvious:</p>

<ul>
<li><strong>RSS</strong>: Ability to import content from external sites</li>
<li><strong>Facebook</strong>: Comment threads and "Like" button</li>
<li><strong>Twitter</strong>: Public links for each update</li>
</ul>

<p>There's also <strong>location-based features</strong> of the Buzz mobile web app, which is similar to <em>Brightkite</em>, <em>Foursquare</em>, etc.</p>

<p>Like most Gmail users last week, I dove right into using Buzz. It was effortless. Merely six hours after Buzz appeared in my Gmail, I had already posted a bunch of status updates, photos, links, etc. I also immediately had about 15 friends - mainly those from my other networks, but the sheer <em>rapid pace of acclimation</em> was astounding.</p>

<p><strong>I really feel like Buzz has been there all along.</strong></p>

<h2>The... not so good</h2>

<p>Despite this immediate adoption by most Gmail users, Buzz may be suffering from growing too popular, too fast. There's hardly been enough time to quell privacy complaints, but Google appears to be working around the clock to address such issues.</p>

<p>Also, I'm finding a lot of inconsistencies and weird behavior with the service.</p>

<p>Often I'll post an update from the mobile interface, which won't appear in the desktop interface, despite refreshing. I also notice many duplicate posts in Buzz from my external sites.</p>

<p>It's also very unclear on how the service works, in regards to <strong>flow</strong>. For example, do posts with new comments always move to the top of your stream?</p>

<p>Can I update via email, or SMS?</p>

<p>These questions, and interface behavior should be fine-tuned over time. I may hold off on using Buzz regularly, or as my sole network, until the service matures a little more.</p>

<h2>The bad</h2>

<p>Why do we need another social network, that essentially does the exact same things as other networks already out there?</p>

<p>What reason do I have to drop Facebook, Twitter, or <em>[insert favorite social network here]</em>, for Buzz? What is helping me do better?</p>

<p>At first glance, I don't have any positive answers for the above questions. My answers, in sequence, are:</p>

<ul>
<li>We don't.</li>
<li>No reason.</li>
<li>Nothing.</li>
</ul>

<p>I am already in a few social networks with established contacts, and a reputable track record. I'm comfortable updating those networks, and I know the "in's and out's" of each service. I know what to expect, as far as how things work.</p>

<h2>The resurrection</h2>

<p>Upon further reflection, I realize I'm not considering the big picture.</p>

<p>If there's one thing Buzz is doing effectively and <em>different</em>, in it's very short existence, it's <strong>moving email out of the inbox</strong>.</p>

<p>No longer do I need to be emailed about news stories, funny quotes, or random meme's. All that stuff can safely fit under the "Buzz" section, which I can follow at my own leisure, without having to manage it all in my real-world, time-sensitive email inbox.</p>

<p>This merging of email inbox with social network is the key, here. Facebook is trying it, but they're not quite there yet.</p>

<p>One aspect of using Facebook, Twitter, or any other social network is the age-old dependence on email for notifications, correspondence, etc. Most services create their own "inbox" interface, and some just forward messages to your primary email. But the whole process is disjointed, because most <em>sane</em> people like to have only a single source for messages. And for most of us, that's our Gmail inbox.</p>

<p>If Gmail can effectively merge the email inbox with a social network that's easy to use, easy to sign up, and <em>easy to feel like any other network</em> - they may have a huge hit on their hands.</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>Site redesign</title>
			<link>http://matthom.com/archive/2010/02/13/site-redesign</link>
			<category>Development, Code, Design</category>
			<pubDate>Sat, 13 Feb 2010 14:59:34 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>I've just launched a re-designed site, which is the first time in many years. I don't even recall when the previous design went into place. All I know is it's been the same for a <em>long</em> time.</p>

<p>In the old days, I re-designed more frequently, as CSS and "web standards" were a primary passion of mine. I always wanted to structure my site's markup more semantically, while taking advantage of time-saving styling techniques with CSS.</p>

<p>Standards and CSS are still important to me, but I don't have quite the same intensity as I once had. I'm more concerned with making the back-end more optimized and efficient.</p>

<p>I enjoyed doing this re-design, as it was more of a back-end update than a front-end adjustment. The front-end is still as <em>bland</em> as ever, appropriate for a simple blog, and I don't ever intend to over-glorify such a simple site. I just need a place to put my words.</p>

<h2>Tiny details</h2>

<p>For those who don't know, I hand-code every site I create, including this blog. I don't rely on third-party content management systems like WordPress. I enjoy knowing <em>every detail</em> that is happening on my site. It's pure bliss to control every aspect of a site, down the tiniest level.</p>

<p>I'm <em>very</em> particular and detail-oriented. I literally lose sleep over my site layout being a couple pixels off. I am obsessive, yes, but I think it's a good obsession.</p>

<p>Knowing every little detail also makes debugging, and design adjustments <em>so</em> much easier to handle. Relying on third-party processes is certainly <em>handy</em>, but it comes a price - and that is, if something goes wrong, you have no way of fixing it unless you contact the company or try to sift through someone elses code.</p>

<p>Yuck. I have better things to do with my time.</p>

<h2>Code optimization</h2>

<p><img src="http://matthom.com/images/1530.png" width="536" height="172" alt="Screenshot of code" title="Site back-end code screenshot" /></p>

<p>The changes I made were mainly to the back-end code. You wouldn't believe how years of stale, bulky code just sits there <em>rotting</em>, screaming to be cleaned up. The code running my site needed a <em>major</em> refreshing.</p>

<p>This refreshing took <em>less than two weeks</em> - compared to the <em>months</em> it took me to design the initial blog system that was here before. I owe this to years of learning from my mistakes, and optimizing/modularizing code, which made the backend adjustments a breeze.</p>

<p>I probably cut down on <em>hundreds</em> of lines of code, excess pages, and unnecessary logic.</p>

<h2>Front-end changes</h2>

<p>The visible changes you'll see on the front-end include:</p>

<ul>
<li>Slightly cleaned up layout</li>
<li>Comments now reside on blog post page, instead of at the "<code>/feedback/</code>" URL</li>
<li>Friendly URL's for filtering blog posts based on category, search, pagination, and RSS</li>
</ul>

<p><img src="http://matthom.com/images/1528.png" width="587" height="381" alt="Screenshot of website" title="Site screenshot" /></p>

<p><img src="http://matthom.com/images/1529.png" width="442" height="201" alt="Screenshot of website" title="Site screenshot" /></p>

<p><img src="http://matthom.com/images/1531.png" width="444" height="389" alt="Screenshot of website" title="Site screenshot - example RSS feed URL" /></p>

<p>There's also some additions to the comments, such as the ability to sign in to your Twitter account, and sync your comment with your Twitter stream:</p>

<p><img src="http://matthom.com/images/1527.png" width="442" height="142" alt="Screenshot of comment form" title="Tweet this to comment on post" /></p>

<p>The friendly URL's work like this:</p>

<ul>
<li><code>/archive/</code>: Main blog post archive, showing posts in reverse-chronological order (most recent on top).</li>
<li><code>/archive/category/[name]</code>: Filter the posts to category "[name]" (replace with actual category name).</li>
<li><code>/archive/search/[query]</code>: Search posts using query "[query]" (replace with actual search query).</li>
<li><code>/archive/page/[2]</code>: Paginate to the second page of posts, in sequence (replace "[2]" with the desired page number).</li>
<li><code>/archive/rss</code>: Obtain the RSS feed for the current view.</li>
</ul>

<p>The nice thing is you can mix and match to meet your desired filter. Here are some more complex examples that work:</p>

<ul>
<li><code>/archive/category/php/rss</code>: Obtain the RSS feed for posts in category "php."</li>
<li><code>/archive/category/php/search/mysql</code>: Filter posts to category "php," with a search for "mysql."</li>
<li><code>/archive/category/php/search/mysql/rss</code>: Obtain the RSS feed for posts in category "php," with a search for "mysql."</li>
</ul>

<p>As you can see, you just keep appending "folders" to the URL to navigate to the page you want.</p>

<h2>Typekit font</h2>

<p>You may have noticed the main font for the site does not look like a typical "safe" font that is recommended to use on the web:</p>

<p><img src="http://matthom.com/images/1532.png" width="291" height="109" alt="Screenshot of website" title="Site screenshot - example common font" /></p>

<p><img src="http://matthom.com/images/1533.png" width="306" height="109" alt="Screenshot of website" title="Site screenshot - example design font" /></p>

<p>It's not Flash, or some other type of messy image replacement technique. It's actual text - go ahead and copy and paste it - it works just like any other text on a webpage. It also renders fine in all major browsers.</p>

<p>It's a service provided by <a href="http://typekit.com/">Typekit</a>, which dynamically replaces your fonts with custom, designer fonts.</p>

<p>The service is not free, however. It's $25/year for the basic plan, which allows a certain amount of bandwidth, features, etc. There <em>is</em> a free plan, but it's a little more restricted.</p>

<p>It's just an experiment. I'm not sure I'm fully content with having to <em>pay</em> to display a certain font. Time will tell if I continue using the service.</p>

<h2>Back to writing!</h2>

<p>I've been toiling away at this re-design for the past couple of weeks, so my writing has taken a back seat. Needless to say, I have blog post ideas coming out of my ears, that haven't even been started yet.</p>

<p>Back to writing!</p>

					
				]]>
				
			</description>

		</item>

		
		<item>

			<title>SMS API pricing: Twilio vs. TextMarks</title>
			<link>http://matthom.com/archive/2010/02/09/sms-api-pricing-twilio-vs-textmarks</link>
			<category>Twilio, TextMarks, SMS, API</category>
			<pubDate>Tue, 09 Feb 2010 09:13:15 -0800</pubDate>

			<description>
			
				<![CDATA[

					<p>Twilio has recently released an <a href="http://www.twilio.com/sms/">SMS API</a>, capable of sending and receiving text messages using a custom application on your server.</p>

<p><img src="http://matthom.com/images/1526.png" width="511" height="211" alt="Screenshot of Twilio website" title="Twilio SMS" /></p>

<p>I'm an avid user of <a href="http://matthom.com/archive/2008/09/12/ad-free-sms-applications-with-textmarks">TextMarks</a>, which has a similar API for sending and receiving SMS.</p>

<p>It seems the only obvious difference between the two services (without having tried the Twilio API just yet) is the how pricing works.</p>

<p>Twilio offers "pay as you go" pricing, and charges <strong>3 cents</strong> per inbound/outbound message. TextMarks charges a flat monthly fee (anywhere from $10 - $1,000 per month), which allows a certain amount of outbound messages without ads in them.</p>

<p>For a "sandbox developer" such as myself, I can't afford a flat monthly fee when my custom SMS apps do not generate income, and are more or less "toys" I've created. I also use SMS for internal applications that only I access, such as To-Do lists, blog management, etc - where my usage is sporadic, and can peak some months, and others not.</p>

<p>The "pay as you go" model seems ideal for my purposes, since I would not be charged for any messages not used.</p>

<p>However, Twilio doesn't offer a free, ad-supported version like TextMarks does. With Twilio, you're also stuck paying a monthly fee (in order to use the SMS API, you first need to buy a Twilio phone number at <strong>$1/month</strong>), and then pay the <em>3 cents per message</em> usage charge. $1/month is not very pricey, but it's nice having the free alternative (albeit ad-supported) using TextMarks.</p>

<p>I'm still waiting for Google to enter the "SMS API" fray. I imagine it could be lucrative for their ad-based income model, or possibly offer a much cheaper alternative to the paid-services we have now.</p>

					
				]]>
				
			</description>

		</item>

		
				</channel>

			</rss>

			