<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>blake walters - create, develop, design</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/" />
    <link rel="self" type="application/atom+xml" href="http://blake-walters.com/atom.xml" />
    <id>tag:blake-walters.com,2008-07-15://1</id>
    <updated>2008-07-18T16:55:36Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.12</generator>

<entry>
    <title>the illustrious background-position</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2008/07/the-illustrious-backgroundposi.html" />
    <id>tag:blake-walters.com,2008://1.11</id>

    <published>2008-07-18T16:55:36Z</published>
    <updated>2008-07-18T16:55:36Z</updated>

    <summary>IEPNGFIX 2.0 alpha now supports both background-position and background-repeat css attributes. No more struggling with repeatable regions and :hover states in IE6. Grab it here...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[<p>IEPNGFIX 2.0 alpha now supports both background-position and background-repeat css attributes.  No more struggling with repeatable regions and :hover states in IE6.</p>
<p><a href="http://www.twinhelix.com/css/iepngfix/">Grab it here</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>new blog platform and entries feed</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2008/07/new-blog-platform-entries-feed.html" />
    <id>tag:blake-walters.com,2008://1.9</id>

    <published>2008-07-15T03:45:20Z</published>
    <updated>2008-07-15T03:45:20Z</updated>

    <summary>You may have noticed that my sites been stripped back a little. Silly me, I went to update Folio (my Rails based blogging platform) only to realize that my webhost had upgraded to Rails 2.1, all of my gems were...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[<p>You may have noticed that my sites been stripped back a little. Silly me, I went to update Folio (my Rails based blogging platform) only to realize that my webhost had upgraded to Rails 2.1, all of my gems were out of date and the app was woefully incompatible.  After a few hours of debugging, I decided it'd be best to take it down for a rewrite and put up a commercial product in it's place.  I settled on <a href="http://www.movabletype.org">MovableType</a> and so far am really pleased with it.  </p>

<p>Long story short, my portfolio, details and contact pages are all offline for the time being but should be back up as soon as I can dig more into MovableType.  A note to all you subscribers, my rss feed has changed locations so be sure to point your feed readers to the new link at <a href="http://blake-walters.com/rss.xml">blake-walters.com/rss.xml</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>remove form input defaults on click</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2008/07/remove-form-input-defaults-on.html" />
    <id>tag:blake-walters.com,2008://1.8</id>

    <published>2008-07-14T02:07:08Z</published>
    <updated>2008-07-15T02:17:19Z</updated>

    <summary>Another quick and dirty jQuery trick. I often find myself wanting to place form instructions (&apos;enter name here&apos; or what have you) using the value attribute. Forcing a user to manually delete this information isn&apos;t what I would call great...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[<p>Another quick and dirty jQuery trick.  I often find myself wanting to place form instructions ('enter name here' or what have you) using the value attribute.  Forcing a user to manually delete this information isn't what I would call great usability.  But, with a little bit of javascripting, removing and replacing defaults on click is a piece of cake:</p>
<p><code>
$('input, textarea').each(function() { <br/>
 $(this).focus(function() {<br />
  if($(this).val() == this.defaultValue)<br />
    $(this).val("");<br />
  });<br />
  $(this).blur(function() {<br />
    if($(this).val() == "")<br />      $(this).val(this.defaultValue);<br />
  });<br />
});</code></p>
<p>
Simple, right?  Now, every time a user clicks a form input or textarea, it will remove the default value.  On blur, if no new text was entered, the default value was replaced.  If at anytime new data was inserted, it won't ever be removed or replaced but if ever on blur the input is empty, the default value is replaced.  Enjoy!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Google I/O</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2008/05/google-io.html" />
    <id>tag:blake-walters.com,2008://1.7</id>

    <published>2008-05-30T02:06:05Z</published>
    <updated>2008-07-15T02:06:26Z</updated>

    <summary> For the past two days I have all been in San Francisco attending Google I/O - Google&apos;s first annual conference dedicated to web development. They covered topics along the lines of Ajax and Javascript, Google&apos;s API&apos;s and Tools, Maps...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[ <p>For the past two days I have all been in San Francisco attending Google I/O - Google's first annual conference dedicated to web development. They covered topics along the lines of Ajax and Javascript, Google's API's and Tools, Maps & Geo, the Mobile Web (including Android), Open Social, and a slew of other micro topics. What follows are some of the the most applicable takeaways I brought back:</p>

<h3>On Ajax and Javascript</h3>

<p>The founders of <a href="http://www.ajaxian.com">Ajaxian</a> gave a "State of Ajax and Javascript" talk right off the bat.  The discussion focused heavily on javascript frameworks and their applications.  Although their are hundreds of well implemented JS frameworks, there are really only 4 major player: Google Web Toolkit, Dojo (with Dijit), Prototype (with Script.aculo.us) and jQuery (with jQuery UI). In the past, each major framework had a specific use and could be assigned to specific tasks. Today, however, all 4 include essentially the same layers (a core, an ajax framework, and a ui toolkit) and can be used based simply on preference.</p>

<p>Personally, I use jQuery exclusively on new development because of it's lightweight, css based selector structure, and easy to use Ajax implementation and this choice was entirely validated at the conference.</p>

<p>Perceived performance was hit on quite a bit in the seminar as well.  Humans can perceive delays in interactivity as small as .1 second and a train of thought can be broken (enough so for a person to leave a site) when delays reach the 1 second mark.  This applies directly interactive work. You need to really sit and think whether an animation or transition is really key to a site's success and weigh that against the possibility that it could be perceived as a loss of performance.</p>

<h3>On Accessibility</h3>

<p>A large part of what I'm trying to achieve is universally accessible website and web applications and who better to listen to a speech on accessibility than a blind software engineer?  The Chief Engineer for everything Accessibility was on hand giving a lecture on making websites more universally accessible and it's larger implications and first hand accounts of what it's like to be a disabled web user.  Developers today don't have to choose between Ajax and accessible websites, using some new techniques including broadcasting updates, scoping targets, navigation keys, and even client side JS frameworks, fully accessible websites can be easily achieved and having more accessible websites doesn't just assist disabled but power users as well, allowing shortcuts and quicker paths to more frequently used features.</p>  

<h3>On Performance</h3>

<p>Steve Souders, creator of <a href="http://developer.yahoo.com/yslow/">YSlow and the YSlow rules for website performance</a>, gave an amazing talk on creating faster websites.  Alternative techniques for loading script and style data into a webpage were presented that we hadn't ever thought of.  Some so amazingly simple and effective that I've started implementing them on current projects before even leaving the conference.</p>

<p>As it turns out, 80-90% of page load times are client side, meaning http requests, executing javascript, and other front-end matters. These can all be sped up dramatically by utilizing parallel downloading and execution, splitting the payload between what's needed on load versus on demand, and rearranging your load order to prevent blocks in the browser waiting for execution and DOM rendering. </p>

<p>Progressive rendering was also heavily pushed.  Instead of holding back certain data, waiting for an entire page/site/section to be loaded and then presented to a user, give users items to interact with as soon as their ready to be rendered.  On the whole, most users will begin to interact with a page before loading has completed and by holding back data until every last item is ready to be rendered out is only detrimental to the user experience.</p> 

<h3>On Search</h3>

<p>In what was probably the most informative seminar of the conference, we had a chance to listen to a google engineer discuss developing sites to be more searchable. We got to hear first hand that, as far as search goes, flash is essentially a black hole for search bots.  Developers shouldn't stop using flash, but should start using it sparingly, or instead as a content delivery mechanism instead of containing the base content itself.  What this boils down to is progressive enhancement: start with a base page that is completely indexable (like HTML or XHTML) and then use flash on top of that to add to the user experience. Serving content directly through flash is essentially putting it into a black box that search bots can see into.</p>

<p>Some quick tips to help maximize searchability:</p>
<ul>
<li>Appropriately title all pages</li>
<li>Add meta descriptions to help with search result displays</li>
<li>Give images appropriate titles and always fill in their alt text</li>
<li>choose www or not (http://www.example.com or http://example.com) and redirect from one to the other. don't have duplicates of the site at both</li>
<li>Avoid keyword stuffing</li>
<li>Implement robots.txt and use sitemaps xml files to assist in crawling</li>
</ul>

<p>There are a massive amount of tools provided by google that can help to tweak and fine-tune page ranks and get the most out of google's indexing that can be found at <a href="https://www.google.com/webmasters/tools/dashboard">Google Webmaster Tools</a></p>

<h3>On Google Practices</h3>

<p>Google's obviously the king of search, but they also do a lot of other things internally that really make them stand apart from most other businesses.  A big part of that is what they call 20% time.  Each employee is given a day out of the week to develop on their own without set schedules or deadlines or project teams or anything like that.  They are free to explore their passions and generally have fun with development.  It keeps them fresh and engaged and benefits the company tremendously.  In the past year half of all launched Google products (including Google News, Feed Reader, Google Calendar, and many more) began as 20% time projects.  Keeping people interested in what they are doing is the perfect way to foster a creative environment where great ideas are what push the industry forward.</p>

<p>Internal project are also an extremely large part of Google.  They've developed their own filesystem, their own database, even their own internal distribution of the Linux kernel to solve development issues that spanned the entire business.  Products like Google Web Toolkit (a javascript framework) and Google App Engine both started out as internal libraries used to assist development. I think this would be a great way to push the envelope of your own development practices.  Maybe develop and data providers or content management systems to help rollouts of new pages, work on more serious component frameworks for flash or other heavily used platforms, build up your code and utility libraries across all languages so you're not catching rourselves re-inventing the wheel with every client. Even the smallest of projects have the potential to one day grow into something that might change how you handle all of your development and that's the sort of thing that will keep us out in front of the industry</p>

<p>All in all, Google I/O was a great experience.  If you'd like to talk more about any of these topics, check me out on <a href="http://www.twitter.com/kidicarus74">twitter</a> or <a href="http://www.blake-walters.com/contact">shoot me a message</a></p>



]]>
        
    </content>
</entry>

<entry>
    <title>Limiting a text area with jQuery</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2008/01/limiting-a-text-area-with-jque.html" />
    <id>tag:blake-walters.com,2008://1.6</id>

    <published>2008-01-17T03:04:31Z</published>
    <updated>2008-07-15T02:05:12Z</updated>

    <summary> Ran into the problem of limiting the characters of a text area on a form recently. In my 8 minutes on google, all of the pure JS solutions felt cumbersome to me so i whipped together this little number...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[ <p>Ran into the problem of limiting the characters of a text area on a form recently.  In my 8 minutes on google, all of the pure JS solutions felt cumbersome to me so i whipped together this little number in jQuery</p>
<p><code>
$("#textAreaID").keypress(function(e) {<br/>
&nbsp;&nbsp;if(e.charCode >= 48 )<br/>
&nbsp;&nbsp;&nbsp;&nbsp;if($(this).val().length > 150)<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br/>
});<br/>
</code></p>
<p>Quick and dirty.  JQuery binds a function to the keypress even in the textarea.  This function checks if the keyCode of the pressed key is a character input key (<a href="http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx">see here for a list of keycodes</a>) and, if it is and the character count is over the pre-determined limit, returns false.  Easy, right?</p>

<p>Please note, this does require pretty much any version of <a href="http://www.jquery.com">jQuery</a> to actually work</p>


]]>
        
    </content>
</entry>

<entry>
    <title>The Interactive Designer&apos;s Toolbox</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2007/09/the-interactive-designers-tool.html" />
    <id>tag:blake-walters.com,2007://1.5</id>

    <published>2007-09-20T02:01:14Z</published>
    <updated>2008-07-15T02:01:47Z</updated>

    <summary> I&apos;ve gotten a few requests to post what exactly I use on a day-to-day basis for all of my design and development work, so here it is, my toolbox: note: yes, I use Macs almost exclusively for work so...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[ <p>I've gotten a few requests to post what exactly I use on a day-to-day basis for all of my design and development work, so here it is, my toolbox:</p>
<p><small>note: yes, I use Macs almost exclusively for work so everything in this list will be OSX based. This isn't because I'm some Apple zealot, and I'm not looking to stir up controversy, it's just a personal preference</small></p>
<p><strong><a href="http://www.panic.com">Coda</a></strong> $80 - my multipurpose tool.  I do all of my simple and general development work inside Coda.  It's a great app for having an editor, terminal, file transfer, projects and preview browser all in one spot.  Unless I specifically need a feature of another program, this is my go-to app. </p>
<p><strong><a href="http://www.macromates.com">TextMate</a></strong> ~$50 - if Coda is a swiss army knife, TextMate is a scalpel.  I use this for all heavy or intense coding sessions, especially for Rails. Bundles alone make this app worth the entry fee.</p>
<p><strong><a href="http://www.macrabbit.com">CSSEdit</a></strong> $30 - another extremely specialized tool.  I desperately wish CSSEdit's preview and XRay features were included in Coda.  I use this less when writing CSS from scratch (which I do by hand in Coda) and more when I need to debug someone else's style.</p>
<p><strong><a href="http://www.panic.com">Transmit</a></strong> $30 - another one from the boys and girls at Panic.  In my opinion, the must-have file-transfer client for OSX</p>
<p><strong><a href="http://www.colorschemer.com/">ColorSchemer</a></strong> $50 - a great app for web designers.  Give it a color, it gives you options for matching color schemes.  High specific, but extremely useful</p>
<p><strong><a href="http://www.iconfactory.com">XScope</a></strong> $17 - web development productivity tool from IconFactory.  Includes onscreen rulers, universal screen color grabber, window frames and positioning crosshairs.  Great part is, it can sit up in the menu bar and is always right there when you need it.</p>
<p><strong><a href="http://www.adobe.com/">Adobe CS3 Design Premium</a></strong> $600 (upgrade)- the grand daddy of all imaging suites.  Sure there are other apps out there that are a hell of a lot cheaper, and sure, Adobe might be doing some head-scratching things in the CS product line, but no matter what the picture, web design or illustration, Photoshop and Illustrator can handle it at the finesse of a skilled user.  Not the most user friendly, and coming in with steep learning curves, but you'd be hard pressed to find a serious designer that doesn't own at least one copy. </p>
<p>So there you have it.  I understand that none of my apps are free apps, and there's a reason for that.  It's not that I don't support open source, or that I have some burning desire to spend my hard-earned cash on Mac software (quite the contrary), I use the tools that do the job the way I want them to, plain and simple.  If a free app comes along that will completely replace Photoshop for me, great! That means I don't have to drop another $300 on an upgrade copy.</p>
<p>Grand Total - <strong>$857</strong> <small>(ouch)</small></p>]]>
        
    </content>
</entry>

<entry>
    <title>apple&apos;s just handing out money</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2007/09/apples-just-handing-out-money.html" />
    <id>tag:blake-walters.com,2007://1.4</id>

    <published>2007-09-05T01:59:35Z</published>
    <updated>2008-07-15T02:00:37Z</updated>

    <summary><![CDATA[Just a quick note to all you iPhone owners out there: get to your local AT&amp;T store or Apple Store to get your $200 back. I purchased my iPhone 13 days ago and was a bit miffed during work to...]]></summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[<p>Just a quick note to all you iPhone owners out there: get to your local AT&amp;T store or Apple Store to get your $200 back.  I purchased my iPhone 13 days ago and was a bit miffed during work to hear about <a href='http://www.apple.com/iphone/'>Stevie J's announcement</a>.  The second I left I headed straight to the AT&amp;T outfit near my apartment, receipt in hand, and asked for the difference to be refunded.  No hassle, no fuss, the guy at the counter just said, "Sure thing, give me just a minute" and sure enough, $200 right back in my pocket</p>
<p>Thanks Apple and AT&amp;T, that completely made my day</p>]]>
        
    </content>
</entry>

<entry>
    <title>Full-Time + Freelancing = Experience + Money - Sanity</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2007/09/fulltime-freelancing-experienc.html" />
    <id>tag:blake-walters.com,2007://1.3</id>

    <published>2007-09-04T01:57:47Z</published>
    <updated>2008-07-15T01:58:54Z</updated>

    <summary> A couple of weeks ago (in fact, directly coinciding with the launch of this site), I received a steady stream of freelance work from the guys over at XHTML Slicer. At first I was a little unsure about the...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[ <p>A couple of weeks ago (in fact, directly coinciding with the launch of this site), I received a steady stream of freelance work from the guys over at <a href="http://www.xhtmlslicer.com">XHTML Slicer</a>.  At first I was a little unsure about the prospect, thinking the work they churned out was the web equivalent of a chop-shop but I was definitely wrong.  The slicing guys are a great bunch of coders, whose XHTML and CSS work is truly top notch.  The kicker, every design, no matter how complex (or absolutely insane in some cases) is completed in 24-72 hours.  What this means for the customer is great looking code at a completely reasonable price (starting at just $200) in hardly any time at all.  What this means for the coders, however, is churning out pages at breakneck speeds with a very little margin of error.  It's stressful, undoubtedly, but the experience gained is worth 10x the money it pays (which isn't shabby at all) in that the ability to visualize and implement the XHTML and CSS for any design has become completely second nature.  If you're a designer (or work for a company unable to afford full time web developers), I highly encourage you to check out their service; you won't be disappointed.</p>]]>
        
    </content>
</entry>

<entry>
    <title>telling time</title>
    <link rel="alternate" type="text/html" href="http://blake-walters.com/2007/08/test.html" />
    <id>tag:blake-walters.com,2008://1.2</id>

    <published>2007-08-22T01:42:49Z</published>
    <updated>2008-07-15T01:57:08Z</updated>

    <summary>Jason over at 37signals just put up an amazing little article about web design. &quot;... if watch designers can do it, web designers can do it So if someone can make a 2 inch circle look unique, you can make...</summary>
    <author>
        <name>blake</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://blake-walters.com/">
        <![CDATA[<p>Jason over at 37signals just put up an amazing little article about web design.</p>
<blockquote>"... if watch designers can do it, web designers can do it
So if someone can make a 2 inch circle look unique, you can make a million pixels look unique. "
</blockquote>
<p><a href="http://www.37signals.com/svn/posts/575-but-theres-only-so-many-ways-to-do-something-right">Read the full article</a></p>

<p>Some days great inspiration is hard to come by, even for the best artists and it's incredibly easy to "borrow" a design from someone else.  Even if you try and fail in a design, or really in anything in life, though, at least you tried and failed as yourself than succeeding as somebody else.</p>]]>
        
    </content>
</entry>

</feed>
