<?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>MaisonBisson.com &#187; web development</title>
	<atom:link href="http://maisonbisson.com/blog/post/tag/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://maisonbisson.com</link>
	<description>A bunch of stuff I would have emailed you about.</description>
	<lastBuildDate>Sat, 14 Nov 2009 20:14:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Yelp: A Poster Child For Semantic Markup</title>
		<link>http://maisonbisson.com/blog/post/14078/yelp-a-poster-child-for-semantic-markup/</link>
		<comments>http://maisonbisson.com/blog/post/14078/yelp-a-poster-child-for-semantic-markup/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 16:48:24 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[semantic markup]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=14078</guid>
		<description><![CDATA[
Search Engine Land.com:
Yelp&#8230;is&#8230;essentially a poster-child for semantic markup. This spring, Google’s introduction of rich snippets has allowed Yelp’s listings in the SERPs to stand out more, attracting consumers to click more due to the “bling” decorating the listings in the form of the star ratings.
There are now some very good reasons why sites with ratings [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-14078"><!-- &nbsp; --></abbr>
<p><a href="http://searchengineland.com/brave-new-world-for-yellow-pages-google-nabs-marketshare-strangles-local-directories-25492">Search Engine Land.com</a>:</p>
<blockquote><p>Yelp&#8230;is&#8230;essentially a poster-child for semantic markup. This spring, Google’s introduction of rich snippets has allowed Yelp’s listings in the SERPs to stand out more, attracting consumers to click more due to the “bling” decorating the listings in the form of the star ratings.</p>
<p>There are now some very good reasons why sites with ratings and reviews should be adopting microformats, and it’s not that hard to do! For a more detailed explanation, read my recap on the subject, <a href="http://www.semclubhouse.com/why-use-microformats/">Why Use Microformats</a>?</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/14078/yelp-a-poster-child-for-semantic-markup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Martin Belam&#8217;s Advice To Hackers At The Guardian&#8217;s July 2009 Hack Day</title>
		<link>http://maisonbisson.com/blog/post/14011/martin-belams-advice-to-hackers-at-the-guardians-july-2009-hack-day/</link>
		<comments>http://maisonbisson.com/blog/post/14011/martin-belams-advice-to-hackers-at-the-guardians-july-2009-hack-day/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 14:44:15 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[hack day]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=14011</guid>
		<description><![CDATA[
An amusing hacks-conference lightning talk-turned-blog post on web development: &#8220;Graceful Hacks&#8221; &#8211; UX, IA and interaction design tips for hack days. Martin Belam&#8217;s talk at The Guardian&#8217;s July 2009 Hack Day must have been both funny and useful:

Funny: &#8220;However, I am given to understand that this is now deprecated and has gone out of fashion.&#8221;
Useful: &#8220;the Yahoo! Design [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-14011"><!-- &nbsp; --></abbr>
<p>An amusing hacks-conference lightning talk-turned-blog post on web development: <a href="http://www.currybet.net/cbet_blog/2009/08/graceful_hacks.php">&#8220;Graceful Hacks&#8221; &#8211; UX, IA and interaction design tips for hack days</a>. <a href="http://www.currybet.net/about.php">Martin Belam</a>&#8217;s talk at <a href="http://www.guardian.co.uk/media/pda/2009/jul/31/hacking-opensource1">The Guardian&#8217;s July 2009 Hack Day</a> must have been both funny and useful:</p>
<ul>
<li>Funny: &#8220;However, I am given to understand that this is now deprecated and has gone out of fashion.&#8221;</li>
<li>Useful: &#8220;the <a href="http://developer.yahoo.com/ypatterns/">Yahoo! Design Pattern Library</a> is your friend.&#8221;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/14011/martin-belams-advice-to-hackers-at-the-guardians-july-2009-hack-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SIMILE Timeline For, Um, Timelines</title>
		<link>http://maisonbisson.com/blog/post/13194/simile-timeline-for-um-timelines/</link>
		<comments>http://maisonbisson.com/blog/post/13194/simile-timeline-for-um-timelines/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 19:33:20 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[necode4lib]]></category>
		<category><![CDATA[SIMILE]]></category>
		<category><![CDATA[timeline]]></category>
		<category><![CDATA[timelines]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13194</guid>
		<description><![CDATA[

Timeline is a SIMILE project that uses Exhibit JSON (which you can create with Babel).
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13194"><!-- &nbsp; --></abbr>
<p><a href="http://www.flickr.com/photos/maisonbisson/3096277758/" title="Timeline by misterbisson, on Flickr"><img src="http://farm4.static.flickr.com/3005/3096277758_65fb69dc2e.jpg" width="500" height="219" alt="Timeline" /></a></p>
<p><a href="http://simile.mit.edu/timeline/" title="SIMILE | Timeline">Timeline</a> is a <a href="http://simile.mit.edu/" title="SIMILE Project">SIMILE</a> project that uses <a href="http://simile.mit.edu/exhibit/" title="SIMILE | Exhibit 2.0">Exhibit JSON</a> (which you can create with <a href="http://simile.mit.edu/babel/" title="SIMILE | Babel">Babel</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13194/simile-timeline-for-um-timelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Approach To Web Forms</title>
		<link>http://maisonbisson.com/blog/post/13185/another-approach-to-web-forms/</link>
		<comments>http://maisonbisson.com/blog/post/13185/another-approach-to-web-forms/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 17:16:17 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[necode4lib]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13185</guid>
		<description><![CDATA[
Just saw a cool demo of XForms and Orbeon Forms.
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13185"><!-- &nbsp; --></abbr>
<p>Just saw a cool demo of <a href="http://en.wikipedia.org/wiki/XForms" title="XForms - Wikipedia, the free encyclopedia">XForms</a> and <a href="http://www.orbeon.com/" title="Orbeon Forms - Web Forms for the Enterprise, Done the Right Way">Orbeon Forms</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13185/another-approach-to-web-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress For Zach&#8217;s Web Programming Class</title>
		<link>http://maisonbisson.com/blog/post/13180/wordpress-for-zachs-web-programming-class/</link>
		<comments>http://maisonbisson.com/blog/post/13180/wordpress-for-zachs-web-programming-class/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 19:30:34 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[filters]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web programming]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13180</guid>
		<description><![CDATA[
Zach is apparently too lazy to prep his own lectures for the last few days of his intro to web programming class. After bringing his students from zero to database-backed web-apps, he asked Matt do JavaScript and me to introduce WordPress as an application platform.
The WordPress API makes it easy to write plugins that modify [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13180"><!-- &nbsp; --></abbr>
<p><a href="http://nosheep.net/" title="Zach">Zach</a> is apparently too lazy to prep his own lectures for the last few days of his intro to web programming class. After bringing his students from zero to database-backed web-apps, he asked <a href="http://borkweb.com/" title="BorkWeb">Matt do JavaScript</a> and me to introduce WordPress as an application platform.</p>
<p>The <a href="http://codex.wordpress.org/Plugin_API" title="Plugin API « WordPress Codex">WordPress API</a> makes it easy to <a href="http://codex.wordpress.org/Writing_a_Plugin" title="Writing a Plugin « WordPress Codex">write plugins</a> that modify WordPress&#8217; behavior with <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference" title="Plugin API/Filter Reference « WordPress Codex">filters</a> and <a href="http://codex.wordpress.org/Plugin_API/Action_Reference" title="Plugin API/Action Reference « WordPress Codex">action hooks</a>. Additionally, <a href="http://codex.wordpress.org/Shortcode_API">shortcodes</a> allow you to put small <a href="http://en.wikipedia.org/wiki/BBCode">bbcode</a>-like tokens in your WordPress posts and pages that are replaced with by functionality defined in your plugins. Finally, the <a href="http://codex.wordpress.org/Plugins/WordPress_Widgets_Api">Widgets API</a> allows you to make tiny <a href="http://codex.wordpress.org/Plugins/WordPress_Widgets">applications/gadgets that users can configure and position on their site</a>.</p>
<p>Understanding WordPress means understanding its hooks and filters; however, tracing those hooks and filters isn&#8217;t as easy as cross-referencing function calls. <a href="http://wphooks.flatearth.org/">Mark Jaquith</a> and <a href="http://adambrown.info/p/wp_hooks">Adam Brown</a> each offer databases to help explain the hooks and filters. Brown&#8217;s is a little more up to date and includes code references, Jaquith&#8217;s includes some detailed descriptions to explain a handful of the hooks. And once you make sense of those hooks and filters, you have to realize that WordPress uses them internally for its default behavior, and just as you can register a hook of your own, you can unregister the default hooks (and filters).</p>
<p>I&#8217;ve already deleted my code examples, so the above intro is pretty much all I can offer as a take away.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13180/wordpress-for-zachs-web-programming-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Safari Advanced Features</title>
		<link>http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/</link>
		<comments>http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 21:10:14 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[web apps]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13148</guid>
		<description><![CDATA[
f you&#8217;re already building web apps, you might wonder why you should bother to build an iPhone native app. The short answer is that you might not need to, but you should still optimize the app for iPhones.
Native-looking chrome
Set these in the head:

// set a custom icon for when a user bookmarks the app to [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13148"><!-- &nbsp; --></abbr>
<p><div class="contents innerindex"><h3>Contents</h3><ol><li><a href="http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/#13148_native-looking-chrom_1">Native-looking chrome</a></li><li><a href="http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/#13148_touchable_1">Touchable</a></li><li><a href="http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/#13148_visually-sophisticat_1">Visually sophisticated</a></li><li><a href="http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/#13148_responsive_1">Responsive</a></li></ol></div>If you&#8217;re already building web apps, you might wonder why you should bother to build an iPhone native app. The short answer is that you might not need to, but you should still optimize the app for iPhones.</p>
<h3 id="13148_native-looking-chrom_1" >Native-looking chrome</h3>
<p>Set these in the head:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">// set a custom icon for when a user bookmarks the app to the home screen
&lt;link rel=&quot;apple-touch-icon&quot; href=&quot;/path/to/icon.png&quot; /&gt; 
// hide the browser chrome
&lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot; /&gt; 
//set the phone status bar style; can be grey, black, or black translucent
&lt;meta name=&quot;apple-mobile-web-app-status-bar-style&quot; content=&quot;black&quot; /&gt;</pre></div></div>

<p>Caveats:</p>
<ul>
<li>Only works for web pages that have been saved to the home screen and opened from there.</li>
<li>Portrait mode only.</li>
<li>Any link will open in new browser tab. Use ajax to keep application to single page, see dashcode templates for examples.</li>
</ul>
<p>Query this state via js:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">window.navigator.standalone</pre></div></div>

<p>Detect orientation:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;body onorientationchange=&quot;updateOrientation();&quot;&gt;</pre></div></div>

<h3 id="13148_touchable_1" >Touchable</h3>
<p>Touch Events<br />
They&#8217;re different from mouse events, so we&#8217;ve gotta code differently for them. The sequence works like this:<br />
touchstart -> touchmove -> touchend (or, if a user hits home button touchcancel)</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div ongtouchstart=&quot;function();&quot; &gt;</pre></div></div>

<p>What you get when from that:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">event.touches //all
event.targetTouches //this one
event.changedTouches //um...</pre></div></div>

<p>Touch events track every finger on the screen. Gestures are a higher-level interface to that data.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div ongesturestart=&quot;function();&quot; &gt;</pre></div></div>

<p>Scale and rotation properties of that gesture are available. I&#8217;m not sure if other gestures, such as page flicking, are handled as gestures or touches.</p>
<h3 id="13148_visually-sophisticat_1" >Visually sophisticated</h3>
<p>Apple decided that HTML was seriously deficient in the areas of object transformations, transitions, and keyframe animations.</p>
<p>Why render multiple rotated and resized versions of the images you use throughout your app/web page? Loading a single large version of the image may perform better than having to load multiple versions of the image at various sizes, rotations, or skews. </p>
<p>Here are a few options (<a href="http://maisonbisson.com/blog/post/12472/css-transformations-in-safari-webkit/">see previous</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">.transformed {
	-webkit-transform: rotate(20deg);
	-webkit-transform-origin: top left;
}</pre></div></div>

<p>And it can animate transitions between these styles. Specify the transition duration if you like.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">#myFlower {
	-webkit-transform: rotate(0deg);
	-webkit-transform: scale(1.0);
	-webkit-transition-duration: 2s;
}
document.getElementById('myFlower').style.webkitTransform = 'rotate(360dev) scale(0.5)'</pre></div></div>

<p>Other useful properties that you can set:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">-webkit-transition-timing-function
-webkit-transition-delay</pre></div></div>

<p>It gets a lot more exciting with key framed animation. First, define one or more animations:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">@-webkit-keyframes 'fall' {
	from{ -webkit-transform: translateY(-50px); }
	to{ -webkit-transform: translateY(600px); }
}
@-webkit-keyframes 'fade' {
	0% { opacity: 100%; }
	75% { opacity: 100%; }
	100% { opacity: 100%; }
}</pre></div></div>

<p>Then apply those animations to an object or class:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">.leaf {
	-webkit-animation-name: 'fall', 'fade';
	-webkit-animation-duration: 10s, 10s;
	-webkit-animation-iteration-count: infinite, infinite;
	-webkit-animation-timing-function: linear, ease-in;
}</pre></div></div>

<h3 id="13148_responsive_1" >Responsive</h3>
<p>Mobile safari supports local database storage as defined in HTML5. Using it improves responsiveness and battery performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13148/mobile-safari-advanced-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Plugin: wpSMS Supports Sending SMS Messages</title>
		<link>http://maisonbisson.com/projects/wpsms/</link>
		<comments>http://maisonbisson.com/projects/wpsms/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 16:21:46 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12911</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12911"><!-- &nbsp; --></abbr>
<abbr class="unapi-id" title="maisonbisson-12911"><!-- &nbsp; --></abbr>
<p><a title="wpSMS by misterbisson, on Flickr" href="http://www.flickr.com/photos/maisonbisson/3015632937/"><img src="http://farm4.static.flickr.com/3190/3015632937_45ed097017.jpg" alt="wpSMS" width="500" height="214" /></a></p>
<p><div class="contents innerindex"><h3>Contents</h3><ol><li><a href="http://maisonbisson.com/projects/wpsms/#12897_installation_1">Installation</a></li><li><a href="http://maisonbisson.com/projects/wpsms/#12897_usage_1">Usage</a></li><li><a href="http://maisonbisson.com/projects/wpsms/#12897_screenshots_1">Screenshots</a></li></ol></div>wpSMS enables the sending of <a href="http://en.wikipedia.org/wiki/Short_message_service">SMS messages</a> as easily as sending email (more easily, perhaps). An implementation of it can be seen at <a href="http://library.plymouth.edu/read/222334">my University&#8217;s library</a>, where they&#8217;ve used both <a href="http://about.scriblio.net/">Scriblio</a> and wpSMS to <a href="http://maisonbisson.com/blog/post/12094/scriblio-feature-text-this-to-me/">allow visitors to text information about a book to their cellies</a>.</p>
<h3 id="12897_installation_1" >Installation</h3>
<p>Simply <a href="http://wordpress.org/extend/plugins/wpsms/download/">download the plugin</a>, place the entire folder in your WordPress <code>/plugins/</code> folder, and activate.</p>
<h3 id="12897_usage_1" >Usage</h3>
<p>It currently uses <a href="http://www.clickatell.com/">Clickatell</a>&#8217;s gateway services, though more could be supported in the future. Once you <a href="https://www.clickatell.com/developers/api_http.php">get login credentials to Clickatell&#8217;s http gateway</a> you can start sending messages easily.</p>
<p>Simply instantiate the class with your credentials:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$mysms</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> wpSMS<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$API_ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$USERNAME</span><span style="color: #339933;">,</span> <span style="color: #000088;">$PASSWORD</span> <span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Then send your message:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$mysms</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$YOUR_MESSAGE</span><span style="color: #339933;">,</span> <span style="color: #000088;">$TO_PHONE_NUMBER</span> <span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>How you create the message or get the destination phone number is up to you.</p>
<h3 id="12897_screenshots_1" >Screenshots</h3>
<ul>
<li>You&#8217;ve found an interesting book in our library, but who wants to write down the location and call number when you can text it to yourself?<br /><a title="Text this book's location to your cell phone by misterbisson, on Flickr" href="http://www.flickr.com/photos/maisonbisson/3016513668/"><img src="http://farm4.static.flickr.com/3030/3016513668_36b30afe91_m.jpg" alt="Text this book's location to your cell phone" width="240" height="184" /></a></li>
<li>Clicking the &#8220;text this to me&#8221; link takes you to a screen where you preview the message and enter your mobile number.<br /><a title="Text this book's location to your cell phone by misterbisson, on Flickr" href="http://www.flickr.com/photos/maisonbisson/3016513420/"><img src="http://farm4.static.flickr.com/3276/3016513420_857777a686_m.jpg" alt="Text this book's location to your cell phone" width="240" height="184" /></a></li>
<li>The received message includes all the details you need to find the book on the shelf.<br /><a title="an SMS message from the catalog by misterbisson, on Flickr" href="http://www.flickr.com/photos/maisonbisson/2333754008/"><img src="http://farm4.static.flickr.com/3183/2333754008_27defb7113_m.jpg" alt="an SMS message from the catalog" width="240" height="144" /></a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/projects/wpsms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scaling PHP</title>
		<link>http://maisonbisson.com/blog/post/11407/scaling-php/</link>
		<comments>http://maisonbisson.com/blog/post/11407/scaling-php/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 13:28:50 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[callgrind]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Rasmus Lerdorf]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[scaling, php2008]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11407/</guid>
		<description><![CDATA[
This two year old post about Rasmus Lerdorf&#8217;s PHP scaling tips (slides) is interesting in the context of what we&#8217;ve learned since then. APC now seems common, and it&#8217;s supposedly built-in to PHP6. Still, I&#8217;d be interested in seeing an update. Are MySQL prepared statements still slow?
And that&#8217;s where Rasmus&#8217; latest presentation comes in. We [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11407"><!-- &nbsp; --></abbr>
<p>This two year old post about <a title="Rasmus Lerdorf on scaling web apps with PHP" href="http://www.niallkennedy.com/blog/archives/2006/07/rasmus-lerdorf-php-web20.html">Rasmus Lerdorf&#8217;s PHP scaling tips</a> (<a href="http://talks.php.net/show/oscon06/0">slides</a>) is interesting in the context of what we&#8217;ve learned since then. <a href="http://pecl.php.net/package/APC">APC</a> now seems common, and it&#8217;s supposedly built-in to PHP6. Still, I&#8217;d be interested in seeing an update. Are MySQL prepared statements still slow?</p>
<p>And that&#8217;s where <a href="http://talks.php.net/show/drupal08/">Rasmus&#8217; latest presentation</a> comes in. We don&#8217;t learn anything about MySQL prepared statements, but we do learn how to find choke points in our applications using callgrind and other tools. In his examples, he can do a little over 600 transactions per second with both static HTML <em>and</em> simple PHP, but various frameworks &#8212; with many inclusions and function calls &#8212; can slow that to under 50 transactions per second (I suppose they&#8217;d explain that in a <a href="http://en.wikipedia.org/wiki/Office_Space">TPS report</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11407/scaling-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Form Validation With jQuery</title>
		<link>http://maisonbisson.com/blog/post/12504/web-form-validation-with-jquery/</link>
		<comments>http://maisonbisson.com/blog/post/12504/web-form-validation-with-jquery/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 14:26:19 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[form validation]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12504</guid>
		<description><![CDATA[
Josh Bush&#8217;s Masked Input Plugin and Paulo P. Marinas&#8217; AlphaNumeric are both jQuery plugins to prevent input of invalid data in web forms.
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12504"><!-- &nbsp; --></abbr>
<p>Josh Bush&#8217;s <a title="digitalBush » Masked Input Plugin" href="http://digitalbush.com/projects/masked-input-plugin/">Masked Input Plugin</a> and Paulo P. Marinas&#8217; <a title="jQuery AlphaNumeric" href="http://itgroup.com.ph/alphanumeric/">AlphaNumeric</a> are both <a href="http://jquery.com/">jQuery</a> plugins to prevent input of invalid data in web forms.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12504/web-form-validation-with-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Browser-Based JSON Editors</title>
		<link>http://maisonbisson.com/blog/post/12488/browser-based-json-editors/</link>
		<comments>http://maisonbisson.com/blog/post/12488/browser-based-json-editors/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 11:49:22 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12488</guid>
		<description><![CDATA[
JSONLint, a JSON validator, was the tool I needed a while ago to be able to play with JSON as format for exchanging data in some APIs I was working on a while ago. And now I like JSON well enough that I&#8217;m thinking of using it as an internal data format in one of [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12488"><!-- &nbsp; --></abbr>
<p><a title="JSONLint - The JSON Validator." href="http://www.jsonlint.com/">JSONLint</a>, a JSON validator, was the tool I needed a while ago to be able to play with JSON as format for exchanging data in some APIs I was working on a while ago. And now I like JSON well enough that I&#8217;m thinking of using it as an internal data format in one of my applications, especially because it&#8217;s relatively easy to work with in JavaScript. Or, at least that&#8217;s the promise.</p>
<p>What I&#8217;ll need is an easy way to manipulate the contents of a simple array, and these JSON editors may give me a start.</p>
<p>The <a title="JSON Editor" href="http://braincast.nl/samples/jsoneditor/">Braincast JSON editor</a> was the first I found, but it doesn&#8217;t allow creation/expansion of the JSON. <a href="http://katamari.co.jp/">Katamari</a>&#8217;s <a title="JSON Editor by katamari" href="http://jsoneditor.net/#editor">JSON editor</a> seems to work and has a lot of features and a post 2005-looking interface, but that doesn&#8217;t make it simple. Worse, I don&#8217;t think it&#8217;s available for me to <a href="http://www.opensource.org/docs/definition.php">re-use, modify, or extend</a> in my projects. <a title="My JSON editor" href="http://www.thomasfrank.se/json_editor.html">Thomas Frank</a>&#8217;s <a title="http://www.thomasfrank.se/downloadableJS/JSONeditor_example.html" href="http://www.thomasfrank.se/downloadableJS/JSONeditor_example.html">JSON editor</a>, on the other hand, does have the features I need and a GPL license. That&#8217;s the place to start.</p>
<p>Extra: a <a href="http://tlrobinson.net/projects/js/jsondiff/">JSON diff</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12488/browser-based-json-editors/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>More Web Performance Tips From Steve Souders</title>
		<link>http://maisonbisson.com/blog/post/12328/more-web-performance-tips-from-steve-souders/</link>
		<comments>http://maisonbisson.com/blog/post/12328/more-web-performance-tips-from-steve-souders/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 16:10:28 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Steve Souders]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12328</guid>
		<description><![CDATA[

Hearing Steve Souders at WordCamp last week got me thinking about website performance, so I went looking for more. The slides from his WordCamp talk are online, but he gave a similar talk at Google I/O which got videotaped and posted richer detail than his slides alone will ever reveal.
Also on his blog: Use the [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12328"><!-- &nbsp; --></abbr>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/QRUqVyP27Hw&amp;color1=11645361&amp;color2=13619151&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/QRUqVyP27Hw&amp;color1=11645361&amp;color2=13619151&amp;fs=1" allowfullscreen="true" wmode="transparent"></embed></object></p>
<p>Hearing <a title="» Steve Souders On Website Performance MaisonBisson.com" href="http://maisonbisson.com/blog/post/12238/steve-souders-on-website-performance/">Steve Souders at WordCamp</a> last week got me thinking about website performance, so I went looking for more. The slides from his WordCamp talk are <a href="http://stevesouders.com/docs/wordcamp-20080816.ppt">online</a>, but he gave a similar talk at <a title="Google I/O" href="http://code.google.com/events/io/">Google I/O</a> which got <a title="Even Faster Web Sites (Google I/O Session Videos and Slides)" href="http://sites.google.com/site/io/even-faster-web-sites">videotaped and posted</a> richer detail than his slides alone will ever reveal.</p>
<p>Also on his blog: Use the <a title="Google AJAX Libraries API" href="http://www.stevesouders.com/blog/2008/05/27/google-ajax-libraries-api/">Google AJAX Libraries API</a> when you don&#8217;t have a CDN, and a post that asks <a title="Split the Initial Payload" href="http://www.stevesouders.com/blog/2008/05/14/split-the-initial-payload/">why make users wait</a> to download all your javascript before they see the page if you&#8217;re only going to use 25% of it at first?</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12328/more-web-performance-tips-from-steve-souders/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parse HTML And Traverse DOM In PHP?</title>
		<link>http://maisonbisson.com/blog/post/11996/parse-html-and-traverse-dom-in-php/</link>
		<comments>http://maisonbisson.com/blog/post/11996/parse-html-and-traverse-dom-in-php/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 01:11:40 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Tidy]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11996/parse-html-and-traverse-dom-in-php</guid>
		<description><![CDATA[
I love how easily I can traverse an HTML document with jQuery, and I&#8217;d love to be able to do it in PHP. There are a few classes, but the PHP binding for Tidy seems to be where it&#8217;s at. The Zend dev pages make it look that way, anyway.
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11996"><!-- &nbsp; --></abbr>
<p>I love how easily I can <a href="http://www.learningjquery.com/category/types/dom-traversing">traverse an HTML document with jQuery</a>, and I&#8217;d love to be able to do it in PHP. There are a few classes, but the <a href="http://www.php.net/manual/en/ref.tidy.php" title="PHP: tidy - Manual">PHP binding</a> for <a href="http://tidy.sourceforge.net/" title="HTML Tidy Project Page">Tidy</a> seems to be where it&#8217;s at. The <a href="http://devzone.zend.com/node/view/id/761#Heading7" title="Tidying up your HTML with PHP 5">Zend dev pages</a> make it look that way, anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11996/parse-html-and-traverse-dom-in-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apache, MySQL, and PHP on MacOS X</title>
		<link>http://maisonbisson.com/blog/post/12075/apache-mysql-and-php-on-macos-x/</link>
		<comments>http://maisonbisson.com/blog/post/12075/apache-mysql-and-php-on-macos-x/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 17:07:04 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mac os X]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12075/apache-mysql-and-php-on-macos-x</guid>
		<description><![CDATA[
p0ps Harlow tweeted something about trying to get an AMP environment running on his Mac. Conversation followed, and eventually I sent along an email that look sorta like this:
If you&#8217;re running 10.4 (I doubt it, but it&#8217;s worth mentioning because I&#8217;m most familiar with it), here&#8217;s how I&#8217;ve setup dozens of machines for web development [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12075"><!-- &nbsp; --></abbr>
<p><a href="http://www.p0ps.com/" title="p0ps.com">p0ps Harlow</a> tweeted something about trying to get an AMP environment running on his Mac. Conversation followed, and eventually I sent along an email that look sorta like this:</p>
<blockquote><p>If you&#8217;re running 10.4 (I doubt it, but it&#8217;s worth mentioning because I&#8217;m most familiar with it), here&#8217;s how I&#8217;ve setup dozens of machines for web development and WordPress:</p>
<p>Install MySQL<br />
<a href="http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg">http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg</a></p>
<p>Install Marc Liyanage&#8217;s PHP 5 package<br />
<a href="http://www.entropy.ch/software/macosx/php/">http://www.entropy.ch/software/macosx/php/</a></p>
<p>From there all you have to do is install WordPress.</p>
<p>10.5 changed lots of this (as you probably already know). The good news is that it includes current versions of the AMP suite. The bad news is that the PHP doesn&#8217;t include a number of useful components. Still, it will run WordPress and I&#8217;ve got it working on my laptop. These directions look like pretty much what I had to do:</p>
<p><a href="http://stringfoo.com/2007/11/05/server_setup_on_leopard/">http://stringfoo.com/2007/11/05/server_setup_on_leopard/</a><br />
<a href="http://remysharp.com/2007/10/27/lamp-in-leopard-osx-105-php5-and-apache-22">http://remysharp.com/2007/10/27/lamp-in-leopard-osx-105-php5-and-apache-22</a></p>
<p>It&#8217;s likely none of that will be helpful, in which case you will have discovered why I&#8217;m no longer a sysadmin.</p></blockquote>
<p><a href="http://www.entropy.ch/home/">Marc Liyanage</a>&#8217;s builds of <a href="http://www.entropy.ch/software/macosx/php/">PHP for Mac</a> are probably the easiest to use and they include most all the extensions a person could want, but he hadn&#8217;t released a package for Leopard at the time (<a href="http://www.entropy.ch/phpbb2/viewtopic.php?t=2945">he&#8217;s got a release in beta now</a>). As it turned out, p0ps actually was running 10.4, and he got things going in a jiffy.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12075/apache-mysql-and-php-on-macos-x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Usability experts are from Mars, graphic designers are from Venus</title>
		<link>http://maisonbisson.com/blog/post/12073/usability-experts-are-from-mars-graphic-designers-are-from-venus/</link>
		<comments>http://maisonbisson.com/blog/post/12073/usability-experts-are-from-mars-graphic-designers-are-from-venus/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 14:00:50 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[usability vs. design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12073/usability-experts-are-from-mars-graphic-designers-are-from-venus</guid>
		<description><![CDATA[
This an old one, but it just caught my atention. In A List Apart tells us Usability experts are from Mars, graphic designers are from Venus. Is this still true? Haven&#8217;t the last several years been about the triumph of good design in both the usability and graphic senses? Or are rounded corners not actually [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12073"><!-- &nbsp; --></abbr>
<p>This an old one, but it just caught my atention. In <a href="http://www.alistapart.com/" title="A List Apart: A List Apart">A List Apart</a> tells us <a href="http://www.alistapart.com/articles/marsvenus/" title="A List Apart: Articles: Usability experts are from Mars, graphic designers are from Venus">Usability experts are from Mars, graphic designers are from Venus</a>. Is this still true? Haven&#8217;t the last several years been about the triumph of good design in both the usability and graphic senses? Or are rounded corners not actually useful?</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12073/usability-experts-are-from-mars-graphic-designers-are-from-venus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fancy Up Your Website With Web Clip Icons</title>
		<link>http://maisonbisson.com/blog/post/12033/fancy-up-your-website-with-web-clip-icons/</link>
		<comments>http://maisonbisson.com/blog/post/12033/fancy-up-your-website-with-web-clip-icons/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 09:29:44 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[web clip]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12033/fancy-up-your-website-with-web-clip-icons</guid>
		<description><![CDATA[
Aaron Schmidt alerted me to this how to sweetening up your site with fancy iPhone web clip icons.
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12033"><!-- &nbsp; --></abbr>
<p><a href="http://www.walkingpaper.org/550" title="iPhone/iPod touch webclip icons at walking paper">Aaron Schmidt</a> alerted me to <a href="http://vjarmy.com/archives/2008/01/howto_iphone_webclip_icons.php" title="HOWTO: iPhone Webclip Icons - Dan Dickinson: The Primary Vivid Weblog">this how to</a> sweetening up your site with fancy iPhone web clip icons.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12033/fancy-up-your-website-with-web-clip-icons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Language Translation Icon</title>
		<link>http://maisonbisson.com/blog/post/12003/language-translation-icon/</link>
		<comments>http://maisonbisson.com/blog/post/12003/language-translation-icon/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 17:41:53 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Libraries & Networked Information]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[language translation]]></category>
		<category><![CDATA[translate icon]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/12003/language-translation-icon</guid>
		<description><![CDATA[

We all need a recognized icon to represent “translate this.” We&#8217;ve got one for feeds and social bookmarking, but where&#8217;s our translate icon? A lot of folks simply use flags, but that&#8217;s a bad idea because they&#8217;re “nationalistic, and represent ideals, boundaries, and political beliefs, but do not represent a language.” 
Joe Lee has developed [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12003"><!-- &nbsp; --></abbr>
<p><a href="http://www.flickr.com/photos/maisonbisson/2097427487/" title="translate icon by misterbisson, on Flickr"><img src="http://farm3.static.flickr.com/2264/2097427487_854acde562_o.png" width="512" height="512" alt="translate icon" /></a></p>
<p>We all need a recognized icon to represent “translate this.” We&#8217;ve got one for <a href="http://www.feedicons.com/">feeds</a> and <a href="http://alexking.org/projects/share-icon">social bookmarking</a>, but where&#8217;s our translate icon? A lot of folks simply use flags, but <a href="http://maisonbisson.com/blog/post/10468/international-symbols" title="» International Symbols">that&#8217;s a bad idea</a> because they&#8217;re “nationalistic, and represent ideals, boundaries, and political beliefs, but do not represent a language.” </p>
<p><a href="http://wiki.laptop.org/go/User:Leejc">Joe Lee</a> has developed <a href="http://wiki.laptop.org/go/User:Leejc/Icons">a few icons</a> for use in the OLPC project, and they look good. The only problem I have with them is in trying to make them work at 16&#215;16 pixels. I developed the icon above (and <a href="http://www.flickr.com/photos/maisonbisson/2098205368/">the 16&#215;16 version</a>) to support the new <a href="http://www.flickr.com/photos/maisonbisson/2062004151/">Bookmark Share (&#038; Translate)</a> feature in <a href="http://maisonbisson.com/blog/bsuite">bSuite</a> (<a href="http://maisonbisson.com/blog/bsuite?bsuite_share=1">see it at work</a>). It&#8217;s simply a mashup of Joe&#8217;s work (<a href="http://wiki.laptop.org/go/Image:Translate_icon1.svg">this</a>) with the feed icon (there&#8217;s an Adobe Illustrator version in the <a href="http://www.feedicons.com/index.php?download=3">developer pack</a>). </p>
<p>This particular icon has a few problems (it could easily be confused with “reload”), and I&#8217;d love to see something better. Any suggestions (that fit a 16 x 16 square)?</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12003/language-translation-icon/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Compress CSS &amp; JavaScript Using PHP Minify</title>
		<link>http://maisonbisson.com/blog/post/11994/compress-css-javascript-using-php-minify/</link>
		<comments>http://maisonbisson.com/blog/post/11994/compress-css-javascript-using-php-minify/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 12:50:13 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[minify]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11994/compress-css-javascript-using-php-minify</guid>
		<description><![CDATA[
It was part of a long thread among WordPress hackers over the summer and fall, but this post at VulgarisOverIP just reminded of it: minify promises to be an easy way to compress external CSS and JavaScript without adding extra steps to your develop/deploy process. No, really, look at the usage instructions. (To be clear, [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11994"><!-- &nbsp; --></abbr>
<p>It was part of a long thread among WordPress hackers over the summer and fall, but <a href="http://www.vulgarisoip.com/2007/06/21/minify-your-external-javascript-and-css-with-php/" title="“Minify” your external JavaScript and CSS with PHP at VulgarisOverIP">this post at VulgarisOverIP</a> just reminded of it: <a href="http://code.google.com/p/minify/">minify</a> promises to be an easy way to compress external CSS and JavaScript without adding extra steps to your develop/deploy process. No, really, look at <a href="http://code.google.com/p/minify/wiki/UserGuide" title="UserGuide - minify - Google Code">the usage instructions</a>. (To be clear, the Vulgaris and Google Code versions are different, one derived from the other and backported to PHP4 compatible. Still, the concept is the same.)</p>
<p>Vulgaris reports a nearly 300% decrease in time to download, definitely worth the effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11994/compress-css-javascript-using-php-minify/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Developing and Testing Mobile Content</title>
		<link>http://maisonbisson.com/blog/post/11931/developing-and-testing-mobile-content/</link>
		<comments>http://maisonbisson.com/blog/post/11931/developing-and-testing-mobile-content/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 02:31:33 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[browser testing]]></category>
		<category><![CDATA[mobi]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11931/developing-and-testing-mobile-content</guid>
		<description><![CDATA[
Read: A List Apart: Articles: Put Your Content in My Pocket and Part II. 
Test/simulate: Opera Mini, Lynx, a variety of mobile phones, Internet Explorer (because even with Parallels, who really wants to infect their machine with windows?), and iPhone.
mobi, mobile, web development, mobile web, browser testing
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11931"><!-- &nbsp; --></abbr>
<p><strong>Read:</strong> <a href="http://alistapart.com/articles/putyourcontentinmypocket" title="A List Apart: Articles: Put Your Content in My Pocket">A List Apart: Articles: Put Your Content in My Pocket</a> and <a href="http://alistapart.com/articles/putyourcontentinmypocketpart2" title="A List Apart: Articles: Put Your Content in my Pocket, Part II">Part II</a>. </p>
<p><strong>Test/simulate:</strong> <a href="http://www.operamini.com/demo/" title="Opera Mini™ Simulator">Opera Mini</a>, <a href="http://www.delorie.com/web/lynxview.html" title="Lynx Viewer">Lynx</a>, a variety of <a href="http://ready.mobi/" title="ready.mobi">mobile phones</a>, <a href="http://ipinfo.info/netrenderer/index.php" title="IE NetRenderer - Browser Compatibility Check">Internet Explorer</a> (because even with Parallels, who really wants to infect their machine with windows?), and <a href="http://www.marketcircle.com/iphoney/" title="Marketcircle: iPhoney">iPhone</a>.</p>
<p><tags>mobi, mobile, web development, mobile web, browser testing</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11931/developing-and-testing-mobile-content/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Gears</title>
		<link>http://maisonbisson.com/blog/post/11843/google-gears/</link>
		<comments>http://maisonbisson.com/blog/post/11843/google-gears/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 19:54:41 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[offline ajax]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11843/#google-gears</guid>
		<description><![CDATA[
Google Gears: create web apps that work offline
google, offline ajax, web development, ajax, offline, google gears
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11843"><!-- &nbsp; --></abbr>
<p><a href="http://code.google.com/apis/gears/index.html" title="Google Gears API Developer's Guide - Home">Google Gears</a>: <a href="http://www.hackszine.com/blog/archive/2007/05/gears_api_create_web_apps_that.html" title="Hackszine.com: Gears API: create web apps that work offline">create web apps that work offline</a></p>
<p><tags>google, offline ajax, web development, ajax, offline, google gears</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11843/google-gears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5 + XML = LOVE</title>
		<link>http://maisonbisson.com/blog/post/11706/php5-xml-love/</link>
		<comments>http://maisonbisson.com/blog/post/11706/php5-xml-love/#comments</comments>
		<pubDate>Fri, 21 Oct 2005 09:11:55 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11706/#php5-xml-love</guid>
		<description><![CDATA[
The Zend overview of the new XML features in PHP 5 has re-energized me for building XML Server Applications at my library.
xml, php, web development
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11706"><!-- &nbsp; --></abbr>
<p>The <a href="http://www.zend.com/">Zend</a> overview of the <a href="http://www.zend.com/php5/articles/php5-xmlphp.php" title="Zend Technologies - PHP 5 In Depth - XML in PHP 5 - What's New?">new XML features in PHP 5</a> has re-energized me for building <a href="http://maisonbisson.com/blog/post/10566/">XML Server Applications</a> at my library.</p>
<p><tags>xml, php, web development</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11706/php5-xml-love/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A List Apart Updated</title>
		<link>http://maisonbisson.com/blog/post/10755/a-list-apart-updated/</link>
		<comments>http://maisonbisson.com/blog/post/10755/a-list-apart-updated/#comments</comments>
		<pubDate>Tue, 23 Aug 2005 16:35:31 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[a list apart]]></category>
		<category><![CDATA[ala]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web development resources]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10755</guid>
		<description><![CDATA[
A List Apart, has been revamped and they&#8217;re proud of it. They should be, it&#8217;s beautiful and functional. It&#8217;s one of the few early web development resources that&#8217;s still with us, and there&#8217;s a reason.

tags: a list apart, ala, redesign, web development, web development resources

]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10755"><!-- &nbsp; --></abbr>
<p><a href="http://alistapart.com/">A List Apart</a>, has been revamped and they&#8217;re <a href="http://alistapart.com/articles/ala40">proud of it</a>. They should be, it&#8217;s beautiful and functional. It&#8217;s one of the few early web development resources that&#8217;s still with us, and there&#8217;s a reason.<br />
<!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/a list apart" rel="tag">a list apart</a>, <a href="http://technorati.com/tag/ala" rel="tag">ala</a>, <a href="http://technorati.com/tag/redesign" rel="tag">redesign</a>, <a href="http://technorati.com/tag/web development" rel="tag">web development</a>, <a href="http://technorati.com/tag/web development resources" rel="tag">web development resources</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10755/a-list-apart-updated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sweet Cheat Sheets</title>
		<link>http://maisonbisson.com/blog/post/10715/sweet-cheat-sheets/</link>
		<comments>http://maisonbisson.com/blog/post/10715/sweet-cheat-sheets/#comments</comments>
		<pubDate>Tue, 02 Aug 2005 16:25:24 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[cheat sheets]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.maisonbisson.com/blog/?p=10715</guid>
		<description><![CDATA[
Colin over at Command-Tab alerted me to some great cheat sheets, including this one for JavaScript at ILoveJackDaniels.com.

tags: cheat sheet, cheat sheets, javascript, programming, web, web development

&#160;
&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10715"><!-- &nbsp; --></abbr>
<p><a href="http://www.ilovejackdaniels.com/cheat-sheets/"><img src="http://www.ilovejackdaniels.com/images/javascript_cheat_sheet_thmb_2.png" width="147" height="199" style="float: right; border: solid 2px #000000; margin: 0px 0px 8px 8px; padding: 4px 4px 4px 4px;" /></a><a href="http://www.command-tab.com/">Colin</a> over at <a href="http://www.command-tab.com/index.php/javascript-cheat-sheet/" title="Command-Tab » JavaScript Cheat Sheet">Command-Tab</a> alerted me to some great <a href="http://www.ilovejackdaniels.com/cheat-sheets/" title="Cheat Sheets - ILoveJackDaniels.com">cheat sheets</a>, including this one for <a href="http://www.ilovejackdaniels.com/javascript/javascript-cheat-sheet/" title="JavaScript Cheat Sheet - JavaScript - ILoveJackDaniels.com">JavaScript</a> at <a href="http://www.ilovejackdaniels.com/">ILoveJackDaniels.com</a>.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/cheat sheet" rel="tag">cheat sheet</a>, <a href="http://technorati.com/tag/cheat sheets" rel="tag">cheat sheets</a>, <a href="http://technorati.com/tag/javascript" rel="tag">javascript</a>, <a href="http://technorati.com/tag/programming" rel="tag">programming</a>, <a href="http://technorati.com/tag/web" rel="tag">web</a>, <a href="http://technorati.com/tag/web development" rel="tag">web development</a></p>
<p><!-- technorati tags end --></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10715/sweet-cheat-sheets/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>