<?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>zahnster</title>
	<atom:link href="http://zahnster.com/feed" rel="self" type="application/rss+xml" />
	<link>http://zahnster.com</link>
	<description>my name's jade. i'm a child of the internet.</description>
	<lastBuildDate>Thu, 11 Feb 2010 08:17:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Your Work is Bigger than Yourself</title>
		<link>http://zahnster.com/industry-talk/your-work-is-bigger-than-yourself</link>
		<comments>http://zahnster.com/industry-talk/your-work-is-bigger-than-yourself#comments</comments>
		<pubDate>Sun, 23 Aug 2009 01:34:53 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Industry Talk]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=187</guid>
		<description><![CDATA[This week marked a monumental event for Ruby programmers. The enigma which was _why, the hacker/artist who was instrumental in shaping the Ruby community, simply vanished without a trace. All of his websites were removed, his social media accounts cancelled, and he left without so much as a goodbye note to the community he so [...]]]></description>
			<content:encoded><![CDATA[<p>This week marked a monumental event for Ruby programmers. The enigma which was _why, the hacker/artist who was instrumental in shaping the Ruby community, simply vanished without a trace. All of his websites were removed, his social media accounts cancelled, and he left without so much as a goodbye note to the community he so very much shaped.</p>
<p>Losing _why was bad enough, as his voice will be missed by anyone who&#8217;s ever interacted with the Ruby language, but another loss we suffered was in the fact that when _why left, he took his work with him.</p>
<p>Losing _why&#8217;s work is a great loss, one which will be far-reaching an long-lasting, especially by those who have adopted his code into their own projects. There&#8217;s no more Camping, no more Shoes, no more Why&#8217;s Guide, no more Try Ruby. There&#8217;s much more we lost, but to list it all would require a blog post within itself. The revocation of his projects hurts all of us, and while I try not to be offended by his brash actions, I can&#8217;t help but feel that his actions were completely and utterly selfish.</p>
<p><span id="more-187"></span></p>
<p>I&#8217;ve always been in the thought-mind that by being a programmer, and creating programs, you are creating something much bigger than yourself. Especially if you go on to release them open-source. Once you do that, like _why did many times over with his work, they become their own entity &#8211; a sort of life form of their own, and they are no longer just your work, they are themselves a part of the community in their own right.</p>
<p>It would have been one thing to simply abandon the projects, this has happened many times in the open-source community and will continue to do so, as programmers lose interest / change their lifestyle, or what have you. That&#8217;s the beauty of open-source, someone else can then step in and continue where the originator left off. The project can live on.</p>
<p>The fact that _why chose to eliminate his projects from the Internet is a hurtful blow, as many people use his projects in their work, and now have to scrounge through the caches of the Interwebs to find even a trace of documentation. _why clearly didn&#8217;t consider the ruby community at all when he decided to abandon ship, at worst he did think of us and didn&#8217;t care. Either way it&#8217;s a pretty sad ending to what should have been a great story.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/industry-talk/your-work-is-bigger-than-yourself/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Make Enemies and Intimidate Customers, a vBulletin Story</title>
		<link>http://zahnster.com/software/how-to-make-enemies-and-intimidate-customers-a-vbulletin-story</link>
		<comments>http://zahnster.com/software/how-to-make-enemies-and-intimidate-customers-a-vbulletin-story#comments</comments>
		<pubDate>Sat, 27 Jun 2009 20:51:14 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=182</guid>
		<description><![CDATA[Being a hosting reseller has been a pretty uneventful experience so far. I&#8217;ve been dabbling in the field since my college days, nothing ever too serious, but I do offer some of my MediaTemple DV space to a small number of clients to help offset the cost of dedicated server ownership.
However, yesterday marked a milestone [...]]]></description>
			<content:encoded><![CDATA[<p>Being a hosting reseller has been a pretty uneventful experience so far. I&#8217;ve been dabbling in the field since my college days, nothing ever too serious, but I do offer some of my MediaTemple DV space to a small number of clients to help offset the cost of dedicated server ownership.</p>
<p>However, yesterday marked a milestone in my hosting experience, albeit not a good one. I received notification from MediaTemple that a DMCA suit was thrown at me, for an instance of vBulletin running on one of my clients domains. A chill ran down my spine; DMCA suits are serious, scary business.</p>
<p>Long investigative story short, it turns out that my client was mistakenly in possession of a yearly license, and technically in the wrong. However, my client was misinformed when the site was built into thinking they had a permanent license, so the mistake was innocent enough.</p>
<p>What wasn&#8217;t innocent enough were the harsh tactics used by the vBulletin service to inform us of this error. One of my core values is the golden rule, to treat others like you would want to be treated. The fact that vBulletin&#8217;s first thought of action at discovering this expired license was to throw a *lawsuit* on us? WTF.</p>
<p><span id="more-182"></span></p>
<p>Contacting my client directly to solve the issue would have been easy enough. Not only is there contact information throughout their site, but a simple &#8216;whois&#8217; lookup would have also provided vBulletin with easy methods to reach out, like dignified human beings, to inform them of the error and give them the means to correct it.</p>
<p>It probably would have been a hell of a lot cheaper for vBulletin as well. I&#8217;m sure some lawyer was paid to serve that DMCA suit.</p>
<p>If vBulletin had simply reached out to us like mutually respected individuals, there&#8217;s no doubt in my mind that my client would have fixed the oversight without a blink. $180 is not a lot of money, all things considered.</p>
<p>Instead, their harsh, intimidating methods alienated not only my client, but myself as well as the server owner. We&#8217;re at a point now where the last thing we want to do is fund the people who&#8217;ve been harassing us. Not when we can move over to a better, fresher forum software called <a href="http://getvanilla.com/">Vanilla</a>, for absolutely no cost at all (yay open-source).</p>
<p>So, I know piracy sucks, and dealing with piracy is a huge issue that companies face, but when investigating possible cases, remember that people are innocent until proven guilty. We weren&#8217;t some shop with 100 unlicensed versions of Windows XP. We were running one recently expired version of vBulletin&#8217;s $180 software. It&#8217;s not worth a DMCA suit, and it&#8217;s definitelt not worth alienating your customer base.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/software/how-to-make-enemies-and-intimidate-customers-a-vbulletin-story/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>You are not your IP address</title>
		<link>http://zahnster.com/industry-talk/you-are-not-your-ip-address</link>
		<comments>http://zahnster.com/industry-talk/you-are-not-your-ip-address#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:56:19 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Industry Talk]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=167</guid>
		<description><![CDATA[The move to Mexico has opened my eyes to a whole new world. And I don&#8217;t mean because I&#8217;m in another country (although that&#8217;s also true, Puerto Vallarta is a stark contrast to NYC in just about every way possible). What I&#8217;m talking about is how the Internet treats people in different locations.
It&#8217;s no secret [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-173" title="We're sorry, but we suck" src="http://zahnster.com/wp-content/uploads/2009/04/picture-2-300x142.png" alt="We're sorry, but we suck" width="300" height="142" />The move to Mexico has opened my eyes to a whole new world. And I don&#8217;t mean because I&#8217;m in another country (although that&#8217;s also true, Puerto Vallarta is a stark contrast to NYC in just about every way possible). What I&#8217;m talking about is how the Internet treats people in different locations.</p>
<p>It&#8217;s no secret that media streaming sites, such as Hulu, don&#8217;t function outside the US. If you visit Hulu from Mexico (or France, or Zimbabwe&#8230;) Hulu will display a message that you&#8217;re outside their ad-supported geobubble, and thus, cannot view it&#8217;s content.</p>
<p>Aside from this being a total buzzkill (how am I going to watch my Daily Show <nobr>now?)</nobr>, I&#8217;ll say that it also introduces a very limited mindset from advertisers in how to reach their audience. Just because I&#8217;m accessing a website from a particular location doesn&#8217;t mean that I&#8217;m from that location. As the Internet becomes increasingly integrated into our lives, it opens up a freedom for us to explore more, to change our location, because thanks to the Internet, we can still be productive and do all the same things that we&#8217;d do from our homes.</p>
<p><span id="more-167"></span></p>
<p>Lets take another example of location-based advertising. Facebook, the epitome of &#8220;how can we make targeted ad revenue work&#8221; also fails hard in this respect. Even though my language of choice on Facebook is set to English, and my networks are all US-Based, about 80% of the advertisements shown to me on Facebook are in Spanish. Even worse, I&#8217;ve seen plenty of ads telling me how I can &#8220;earn a green card and gain my right to work in America.&#8221;</p>
<p>Umm&#8230; really? Wow, cool. It&#8217;s not like I&#8217;m an American citizen or anything.</p>
<p>So, it&#8217;s easy to complain, but we need to address the issue and offer solutions, and while I think my suggestion could be considered a bit &#8216;backwards&#8217;, it&#8217;s a hell of a lot better than this short-sighted &#8220;you are your IP address&#8221; mentality that the Internet is currently resorting to. I want Hulu to send me a letter. A real letter, like with a postage stamp and everything (yes, those still exist). Let me verify my US address, let me convince you that although I may be currently viewing your content from the lovely beaches of Puerto Vallarta, I am indeed a US citizen, and when you show me advertisements, it&#8217;d be much more effective ad-targeting for you to show me ones from the US than from Mexico.</p>
<p>I think your advertisers would see the logic in this, especially as expatriate communities continue to boom.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/industry-talk/you-are-not-your-ip-address/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Skittles: A lesson in fail.</title>
		<link>http://zahnster.com/social-networking/skittles-fail</link>
		<comments>http://zahnster.com/social-networking/skittles-fail#comments</comments>
		<pubDate>Thu, 05 Mar 2009 19:07:39 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=158</guid>
		<description><![CDATA[It&#8217;s been a few days now since the relaunch of the Skittles.com website, and it&#8217;s been getting a huge amount of buzz for it&#8217;s groundbreaking use of social media in an official setting.
The only problem is, they&#8217;re doing it wrong, and they made a damn mess of it.
When I first heard the concept, I was [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a few days now since the relaunch of the <a href="http://skittles.com">Skittles.com</a> website, and it&#8217;s been getting a huge amount of buzz for it&#8217;s groundbreaking use of social media in an official setting.</p>
<p>The only problem is, they&#8217;re doing it wrong, and they made a damn mess of it.</p>
<p>When I first heard the concept, I was very excited. I&#8217;m a huge fan of an openly social web, where the opinions and facts from people all over the world can help shape a brand. It&#8217;s clearly the direction the web is going, and a natural evolution from the early days of product reviews and recommendations.</p>
<p>As soon as I went to the site, however, I was repulsed, as it&#8217;s the laziest, most confusing implementation that I ever could have imagined. Completely different from what I was expecting, in every way.</p>
<p><span id="more-158"></span></p>
<p>The problem is they let the social content <strong>be</strong> the site. The Skittles site pulls in random social media pages (I&#8217;ve seen it pull Facebook and Wikipedia personally) in the background, while placing some ugly, huge floating nav over the top of the site. You can&#8217;t move this nav, you can&#8217;t hide it, and depending on which site it decides to pull, it can block the content behind it.</p>
<p>It feels like someone put this site together in about five minutes, not taking into account anything related to user experience, usability, or anything that a professional web architect should think of. It feels like a cheap viral marketing campaign, and yet it&#8217;s their entire web presence. Quite frankly, I&#8217;m grossed out.</p>
<p>Now, what&#8217;s the point in bitching if I&#8217;m not offering solutions, right? Well, here&#8217;s a solution, here&#8217;s what I was hoping the Skittles.com site would represent before I clicked on the link. Social commentary should help shape a site, you can pull in content and display it in a personalized, custom layout, without it actually being the site. How about you have a nice, branded Skittles page, and you have different feed boxes where you can pull Facebook&#8217;s fan page comments into, or a twitter feed. There are many handy tools for RSS parsing, and more.</p>
<p>So while I completely love the concept, the execution of this Skittles site is worrying. It&#8217;s going to put a bad spin on having companies use social commentary in an official setting, and to me that feels like a step backwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/social-networking/skittles-fail/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Five goals for an exciting year</title>
		<link>http://zahnster.com/personal/five-goals-for-an-exciting-year</link>
		<comments>http://zahnster.com/personal/five-goals-for-an-exciting-year#comments</comments>
		<pubDate>Sat, 24 Jan 2009 21:58:22 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=148</guid>
		<description><![CDATA[With my recent announcement that I&#8217;ll soon be leaving Zenbe and the comforts of New York City for a dream job with Apple (and warmer climates), I kick off what I know will be a truly exciting year.
In celebration of this, and in light of many others&#8217; posts about their new year&#8217;s goals, I present [...]]]></description>
			<content:encoded><![CDATA[<p>With my <a href="http://twitter.com/zahnster/status/1142581524">recent announcement</a> that I&#8217;ll soon be leaving Zenbe and the comforts of New York City for a dream job with Apple (and warmer climates), I kick off what I know will be a truly exciting year.</p>
<p>In celebration of this, and in light of many others&#8217; posts about their new year&#8217;s goals, I present my own list of goals that I will be striving for in 2009.</p>
<p><strong>1. Become financially prosperous</strong><br />
Raised by a single mother, I come from a very working class background. As a child, I watched my mom fight to stay afloat in the financial waters, running into things like unemployment, gender equality, and the general obstacles of life. When I grew up, I knew that I&#8217;d have to work my ass off to make it in this world, and my hard work and perseverance are starting to pay off. This year, my primary focus will be on saving money and making investments which will help ensure a financially prosperous future.</p>
<p><strong>2. Have more adventures</strong><br />
This is actually going to be a pretty attainable goal for this year. As I am going to be working remote for a while, part of my money-saving strategy includes moving back home &#8211; and home for me just happens to be <a href="http://en.wikipedia.org/wiki/Puerto_Vallarta">Puerto Vallarta, Mexico</a>. My dad and stepmom have a well-established life there, having been there since 1999 <a href="http://retiremx.com">selling real estate</a>, and by going back, not only will I gain massive benefits from Mexico&#8217;s low cost of living, but I will be able to go on tons of adventures and weekend road trips. Mexico is a seriously beautiful country, filled with jungles, mountains, rivers, and valleys, and exploring them has been something I&#8217;ve dreamed about for a long time.</p>
<p><span id="more-148"></span><strong>3. Keep building my online persona</strong><br />
Someone once told me that my online persona was, &#8220;a bit much,&#8221; well I&#8217;d argue that it&#8217;s not enough. This is the web generation, and for anyone who makes their career out of Internet-based means needs to have an online persona &#8211; the bigger the better. That&#8217;s how people like <a href="http://chris.pirillo.com/">Chris Prillo</a> and <a href="http://www.ted.me/">Ted Murphy</a> thrive in this market. I know that I&#8217;ve gained much benefit from my online persona &#8211; it&#8217;s how I get people interested in my work, and it&#8217;s how I find out about interesting, life-changing things (I found my gig with Apple through Twitter). I just passed 200 followers on Twitter &#8211; and by the end of the year I better have at least doubled that count, if not tripled.</p>
<p><strong>4. Expand my writing beyond this blog</strong><br />
When I first went to college, I was an English major. I&#8217;ve always been fond of the written word, thanks to an enormous amount of reading I did as a kid, and people like my <a href="http://www.itworld.com/blog/sandra-henry-stocker">Aunt Sandra</a>, who have written and published books professionally. This year, I need to change that in some shape or form, whether it&#8217;s by co-writing a book or even publishing an article in a magazine (online or offline).</p>
<p><strong>5. Build something new</strong><br />
This is the most interesting goal, as it&#8217;s success depends heavily on having the 4 other goals in place. When I was a teen, I made sites like Operation Blackout, and Dark Angel Online, which gained serious, international attention and were pretty innovative for their day (I was blogging back in 1999). However, since turning professional, I haven&#8217;t made anything significant on my own. Not to say I haven&#8217;t had ideas, because I have, but I&#8217;ve been lacking the time and drive to keep building after a long day of work. This must change this year, as I&#8217;ve had an idea floating around for a while, and will not rest until it&#8217;s a reality.</p>
<p>2009 is going to be huge &#8211; possibly the most important year of my life. I feel like I just won an Emmy, but I also know that this year will be a lot of hard work, and will require new levels of discipline and responsibility.</p>
<p>Good news is, I feel ready, I feel empowered, and I can&#8217;t wait.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/personal/five-goals-for-an-exciting-year/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A dose of reality with Slickspeed</title>
		<link>http://zahnster.com/javascript/a-dose-of-reality-with-slickspeed</link>
		<comments>http://zahnster.com/javascript/a-dose-of-reality-with-slickspeed#comments</comments>
		<pubDate>Sat, 17 Jan 2009 06:46:05 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=139</guid>
		<description><![CDATA[I&#8217;ve been a fan of the Slickspeed Selectors test for a while &#8211; in all honesty it&#8217;s probably the coolest thing Mootools has released (and this isn&#8217;t a knock on their js framework). The Slickspeed selectors test does everything right &#8211; easy, friendly open-source code which is stupid easy to customize. The tests are extremely [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a fan of the <a href="http://mootools.net/slickspeed">Slickspeed Selectors test</a> for a while &#8211; in all honesty it&#8217;s probably the coolest thing <a href="http://mootools.net">Mootools</a> has released (and this isn&#8217;t a knock on their js framework). The Slickspeed selectors test does everything right &#8211; easy, friendly open-source code which is stupid easy to customize. The tests are extremely useful and can give you some amazing insight on how the framework you&#8217;re using for your app compares to the other ones that are out there (and you can even test on your own code!).</p>
<p>After a discussion at work today about how expensive Prototype&#8217;s $$ function is in the lovely Internet Explorer, I decided to run the Slickspeed tests in IE7 &#8211; something which I&#8217;m a little embarrassed to admit I&#8217;ve never done before. I knew the results would be bad &#8211; but seeing just how bad they were made my stomach turn. It also piqued my curiosity to dig into this some more.</p>
<p>With the preset settings and my own custom frameworks (I chose Prototype 1.6.0.2, 1.6.0.3, and jQuery 1.3), both Prototype&#8217;s came in at over 2 seconds (2142 and 2169ms, respectively). Granted, I&#8217;m running my IE&#8217;s on a VM powered by a nearly 2 year old MacBook, but an &#8216;average&#8217; website visitor is probably powered by something on a similar level.</p>
<p><span id="more-139"></span>To pour some salt in the jQuery vs Prototype war, jQuery&#8217;s results are in a whole &#8216;nother division, coming in at 386ms. While it really burns me to knock on Prototype, I can&#8217;t look at the framework and not see it&#8217;s downward spiral into disrepair. It&#8217;s only glimmer of hope is the strange fact that 1.6.0.3 performs extremely well in Safari, but at 5-7% of the market, that really don&#8217;t mean squat. Not when IE7 is that pathetic.</p>
<p>Deciding to dig a bit deeper, and take advantage of the true customization allowances of the Slickspeed tester, I decided to actually use some real code from the Zenbe app. So I took the source code of one of the frames, changed the selectors list to mimic some of the ones we call frequently, and ran the test again.</p>
<p>The results were similar, but on a slightly smaller scale (the default testing document they provide is somewhat heavy, and does include a lot of CSS3 selectors which most devs never use). However, the ratio of difference between Prototype and jQuery is astonishing (like 400% faster astonishing), and even moreso is the fact that in IE7, 1.6.0.2 outperforms 1.6.0.3.</p>
<p>I&#8217;m not going to get into my thoughts on what all of this means for Prototype, that&#8217;s another blog post (or two&#8230;), but I hope this post encourages developers to try Slickspeed out on their own site, and see how your JavaScript framework is treating you compared to others.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/javascript/a-dose-of-reality-with-slickspeed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Please back off the startups</title>
		<link>http://zahnster.com/rant/please-back-off-the-startups</link>
		<comments>http://zahnster.com/rant/please-back-off-the-startups#comments</comments>
		<pubDate>Thu, 08 Jan 2009 20:55:18 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=132</guid>
		<description><![CDATA[This post is going to be a bit of a rant, so bear with me and feel free to bitch me out in the comments, but I&#8217;ve been getting really annoyed with people&#8217;s attitudes towards startups. In general, people seem to have short tempers with performance issues with startups &#8211; whenever an app goes down [...]]]></description>
			<content:encoded><![CDATA[<p>This post is going to be a bit of a rant, so bear with me and feel free to bitch me out in the comments, but I&#8217;ve been getting really annoyed with people&#8217;s attitudes towards startups. In general, people seem to have short tempers with performance issues with startups &#8211; whenever an app goes down or behaves slowly, the &#8216;webosphere&#8217; fills up with a bunch of whiners&#8217; complaints.</p>
<p>Well, I&#8217;m here now to urge you all to have a little bit more patience and flexibility. In other words, quit your bitchin&#8217;.</p>
<p>Having been involved in the web community for over half my life, I would like to think I&#8217;m &#8220;on the level&#8221; with startups, how they work and the people behind them. The web startup culture is full of passionate nerds &#8211; myself included. We decided to get into this field because we want to help innovate the Internet, connect people, share information, and overall better ourselves and others through this extremely powerful global communication tool.</p>
<p><span id="more-132"></span>We work on our startups with a passion. When our app goes down, or works slowly, we&#8217;re hurt by that, probably moreso than most of the end-users. Most startup developers I know use their apps on a daily level, and we care very much when it doesn&#8217;t behave as it should.</p>
<p>When an app&#8217;s performance suffers, it&#8217;s not because the developers are lazy sloths who don&#8217;t give a crap about their product. It couldn&#8217;t be more the opposite. Most of the time an app will end up suffering from it&#8217;s own popularity, especially the more home-brew apps that were started because some nerd was bored one day and had an idea. This can really catch people by surprise, as there is no way to tell how popular an app will be in the future. Even the most experienced developers can&#8217;t always keep scaling up on par with popularity growth.</p>
<p>So, the next time Twitter takes a dive, or Facebook&#8217;s friend feed drops a story, instead of acting like a spoiled child and writing all over the Internet how much you hate it and how much that app sucks, how about you take a moment and realize that there are real people behind the app, who are working their asses off to deliver you your content the best they can.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/rant/please-back-off-the-startups/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A Case for Canvas</title>
		<link>http://zahnster.com/javascript/a-case-for-canvas</link>
		<comments>http://zahnster.com/javascript/a-case-for-canvas#comments</comments>
		<pubDate>Wed, 07 Jan 2009 05:22:35 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=124</guid>
		<description><![CDATA[Anyone who follows me on Twitter is probably aware that for the last few months, I&#8217;ve been getting my feet wet with Canvas drawing.
For those who aren&#8217;t familiar, Canvas is an HTML5 element which enables you to do script-based drawing, specifically Javascript. While not natively supported by the IE&#8217;s, the wonderful Explorer Canvas script works [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who follows me on Twitter is probably aware that for the last few months, I&#8217;ve been getting my feet wet with Canvas drawing.</p>
<p>For those who aren&#8217;t familiar, <a href="https://developer.mozilla.org/en/HTML/Canvas">Canvas is an HTML5 element</a> which enables you to do script-based drawing, specifically Javascript. While not natively supported by the IE&#8217;s, the wonderful <a href="http://excanvas.sourceforge.net/">Explorer Canvas</a> script works very well in converting Canvas drawing to the IE-supported VML. While I hear you can&#8217;t do everything with Explorer Canvas, most drawing, coloring, and animations will work just fine.</p>
<p>After getting around the initial mind-warp of drawing with script, Canvas has proven itself to be flexible, fast, and fun, and although it&#8217;s very new and not (officially) globally supported, I would recommend that anyone who&#8217;s considering adopting it to do so.<span id="more-124"></span></p>
<p>There&#8217;s quite a few reasons I suggest this. First, it will lighten the load on the client-side quite a bit. You end up with some seriously simplified CSS (there&#8217;s no browser inconsistencies with canvas drawing), and a lot less images, which saves both bandwidth and http requests. Gradients, shadows, transparency, and rounded corners become nothing but an afterthought to develop (screw sliding doors), and theming becomes as easy as changing some hex values (or rgb, or hsv&#8230; it&#8217;s easy like that).</p>
<p>Without giving too much away, Canvas is going to be a big part of some upcoming releases at Zenbe, and I couldn&#8217;t be more stoked about it. It&#8217;s done very well in the tests so far, and I&#8217;m looking forward to being on the bleeding-edge of client-side web development. Officially and thoroughly.</p>
<p>Expect to hear more Canvas stuff from me in the upcoming months. After I wrap up my work with it at Zenbe, I plan on continuing development with it, releasing some core classes open-source to help gain support for this extremely powerful drawing framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/javascript/a-case-for-canvas/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Test-Driven CSS (sorta)</title>
		<link>http://zahnster.com/css/test-driven-css</link>
		<comments>http://zahnster.com/css/test-driven-css#comments</comments>
		<pubDate>Wed, 24 Dec 2008 00:07:09 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=112</guid>
		<description><![CDATA[A common problem that web apps face over time is CSS bloat. Especially with new sites, any rapidly-evolving app is going to be subject to some serious  front-end abuse in today&#8217;s extreme programming world. As features are added, removed, and modified on a whim, it&#8217;s all too easy for CSS to get out of [...]]]></description>
			<content:encoded><![CDATA[<p>A common problem that web apps face over time is CSS bloat. Especially with new sites, any rapidly-evolving app is going to be subject to some serious  front-end abuse in today&#8217;s extreme programming world. As features are added, removed, and modified on a whim, it&#8217;s all too easy for CSS to get out of control.</p>
<p>This is something we&#8217;re currently faced with at Zenbe, and my current task has been to refactor our app&#8217;s CSS by finding and eliminating a decent amount of bloat that&#8217;s developed during our app&#8217;s first year (well, 8 months).</p>
<p>When starting this task, I knew that we&#8217;d have to come up with an at-a-glance method for our developers to take the newly re-factored CSS and run with it. A lot of the CSS bloat that I initially saw was related to a simple lack of consistency as new UI items have been added to our system. Take our buttons, for instance &#8211; we started off with one-size buttons, then we had 2, then we added different colors, and so on. As these items have been added, instead of letting the CSS classes build off each other<a href="#note">*</a>, we&#8217;ve acted like they&#8217;re not related at all &#8211; and before we knew it we had a ton of redundant CSS.</p>
<p>This is where test-driven CSS comes in.</p>
<p><span id="more-112"></span></p>
<div id="attachment_116" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-116" title="CSS Tests" src="http://zahnster.com/wp-content/uploads/2008/12/picture-2-300x184.png" alt="Lining up UI items is a quick and easy way to build off consistencies while avoiding inconsistencies." width="300" height="184" /><p class="wp-caption-text">Lining up UI items is a quick and easy way to build off consistencies while avoiding inconsistencies.</p></div>
<p>Now, I&#8217;m not 100% sure calling this method of testing CSS &#8220;test-driven&#8221; is accurate, as you can&#8217;t really have tests for things with no true variables. Rather, the test-driven CSS I&#8217;ve created is almost like a UI element showcase. It gives us a one-stop shop for seeing our different UI items (buttons, form elements, glyphs, dialogs, etc) in their pure form &#8211; and to enable us to build new features based off what&#8217;s existing.</p>
<p>We gain some critical things by having this testing in place. First, we have a singular place where we can see all of Zenbe&#8217;s UI items in their pure form &#8211; all lined up in a row. It&#8217;s all to easy to mis-slice something by 1-2 pixels and never notice in production &#8211; it&#8217;s quite a different story when they&#8217;re all lined up next to each other. I was able to reduce nearly half of the code in our buttons.css file just by aligning the button slices so they were the same dimensions &#8211; turning any variations of these buttons into a simple background-image replacement, instead of replacing the image <em>and</em> resetting dimensions, padding, and margins.</p>
<p>Additionally, as we make changes to our code, it gives us a nice testing place so we can make sure that all of the site&#8217;s UI elements still render the way they should, which is why I&#8217;m inclined to call this &#8216;test-driven&#8217;. Additionally, the UI items are created in a tdd-like fashion: first the HTML is created, which will &#8216;fail&#8217; without the proper CSS. Then, the CSS is written so that the HTML element renders as it should.</p>
<p>As this continues to be built out I might face some unseen obstacles, but so far our pseudo test-driven CSS is going to be a huge help in keeping our CSS code mean and lean.</p>
<p><a name="note"></a><br />
<sup><em>*This concept will be covered more in an upcoming post about CSS inheritance tips</em></sup></p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/css/test-driven-css/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why I&#8217;m a Mac (and proud of it)</title>
		<link>http://zahnster.com/applemac/why-im-a-mac-and-proud-of-it</link>
		<comments>http://zahnster.com/applemac/why-im-a-mac-and-proud-of-it#comments</comments>
		<pubDate>Sat, 29 Nov 2008 19:45:14 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Apple/Mac]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=104</guid>
		<description><![CDATA[Ever since transitioning over from PCland in early 2004, my Mac affiliation hasn&#8217;t been questioned much, due to the fact that most of the industry professionals around me also use them. It&#8217;s kind of like being a liberal in NY, nobody&#8217;s going to question your motives. This is all good and fine, until you find [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since transitioning over from PCland in early 2004, my Mac affiliation hasn&#8217;t been questioned much, due to the fact that most of the industry professionals around me also use them. It&#8217;s kind of like being a liberal in NY, nobody&#8217;s going to question your motives. This is all good and fine, until you find your Macness under attack. With your defenses down, it&#8217;s hard to think of a good response, and you can end up looking silly.</p>
<p>This is exactly what&#8217;s been happening to me recently, and being sick of my weak responses, one night I got to thinking, <em>why</em> am I a Mac?</p>
<p>Well, I know why I&#8217;m not a &#8216;Windows&#8217;. As someone who&#8217;s grown up online, and turned professional web developer during the birth of web 2.0, I&#8217;ve been pretty spoiled by innovation in software. I demand it, and any company who can&#8217;t provide me with such a service is not worth my time. I don&#8217;t have time to wait 3 years for a buggy web browser, and I definitely don&#8217;t have time to wait 8 years for a crummy OS. Add to that viruses, trojans, adware, malware, and spyware&#8230; you know, I think I&#8217;ll pass, kthxbai.</p>
<p><span id="more-104"></span></p>
<p>I also know why I&#8217;m not on Linux. Several times during my childhood I would have Linux phases, where I was just too annoyed / bored by Windows, and wanted to experience the &#8216;nix way of life. I had heard such good things about it, after all, and it really is the best line of OSes. The problem with this, was at the age of 15 I was no computer science expert. I was just a kid who liked to play around with websites, so compiling my own drivers so I could play a DVD was not my idea of a fun time. I wanted to like Linux as my OS, I really did, but at the end of the day I ended up missing the application support of Windows.</p>
<p>Then came along OS X. In early &#8216;04 I was in the market for a laptop, so I took the jump on the advice of a friend and got my first Mac, a PowerBook G4. It had OS X v10.3. I immediately liked it because of it&#8217;s &#8216;nix background. It had the security and stability of a super-solid OS in it&#8217;s FreeBSD backbone, yet there rarely is a need to get &#8216;down and dirty&#8217; with the OS unless you wanted to. Even things like web services can be handled Terminal-free with programs such as <a href="http://www.mamp.info/">MAMP</a> and <a href="http://sourceforge.net/projects/locomotive">Locomotive</a>. Mac had everything I needed, nothing I didn&#8217;t, and unlike my Linux phases, I didn&#8217;t miss Windows one bit.</p>
<p>In fact, as time went on, I became more and more immersed in the Mac world. The innovation is brilliant, with a new OS coming out roughly every 1.5 years. And if the OS innovation wasn&#8217;t enough, Mac boasts some of the most creative and useful apps on the planet. Case in point, they have the only decent svn gui in <a href="http://versionsapp.com">Versions</a>, and there&#8217;s a wide array of homebrew companies like <a href="http://omnigroup.com">Omni</a> and <a href="http://panic.com">Panic</a>, who release amazing software for really affordable prices. Mac is the incredible marriage of &#8216;nix and a commercialized support community, who not only pumps creativity and innovation in, but they do it on a really personal level. It all adds up to one big win.</p>
<p>A lot of the attacks against Mac tend to be in their business practices. Some of the top arguments I&#8217;ve heard:</p>
<ul>
<li>&#8220;They stop supporting older technologies too quick&#8221;</li>
<li>&#8220;They&#8217;re not open-source&#8221;</li>
<li>&#8220;They dictate what you can build on it&#8221;  (this is a huge argument against the iPhone)</li>
<li>and the all too famous, &#8220;They&#8217;re too expensive&#8221;</li>
</ul>
<p>Granted, they&#8217;re pretty decent reasons, but with good comes bad and Apple needs these in place to be the innovators that they are. Yes, they do need to control the hardware a bit more, because that&#8217;s how the OS can be so streamlined. Yes, they have strict standards as far as development goes, but that&#8217;s how they keep the crap out, and provide a unified theme to the OS experience.</p>
<p>As far as costs go, I seem to be the only person who doesn&#8217;t think Mac&#8217;s are overpriced. Sure, you can get a flimsy Dell for $499, but you can also get a Kia, or you can get a Porsche. There&#8217;s clearly a difference in the manufacturing.</p>
<p>I&#8217;m not saying Apple&#8217;s the perfect company, but for this web professional at least, it&#8217;s clearly the best pick of the bunch.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/applemac/why-im-a-mac-and-proud-of-it/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
