<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6644382285478084714</id><updated>2011-11-28T10:01:08.605-08:00</updated><category term='jqtouch'/><category term='node.js'/><category term='Server-Sent Events'/><category term='EventSource'/><category term='media'/><category term='gradients'/><category term='docs'/><category term='javascript'/><category term='photo gallery'/><category term='CSS'/><category term='Sony'/><category term='html5'/><category term='WebSocket'/><category term='W3C'/><category term='browser specific properties'/><category term='vendor prefix'/><category term='WebKit'/><category term='transforms'/><category term='Apple'/><category term='mdc'/><category term='Amazon CloudFront'/><category term='image gallery'/><category term='fixed toolbar'/><category term='PHP'/><category term='Amazon EC2'/><category term='iphone'/><category term='Firefox'/><category term='php innovation award sam shull'/><category term='Chrome'/><category term='bookmarklet'/><category term='posthack'/><category term='inertia scroll'/><category term='content delivery'/><category term='Safari'/><category term='google reader'/><category term='Verizon'/><category term='net neutrality'/><category term='digg bookmarklet'/><category term='mozilla'/><category term='iOS'/><category term='iPad'/><category term='learning'/><category term='teaching'/><category term='php autoload spl'/><category term='google'/><category term='Gecko'/><title type='text'>I was just thinking the same thing..</title><subtitle type='html'>Thoughts and Ideas on how we can make IT better</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.samshull.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-5635386132992555266</id><published>2010-10-09T15:00:00.000-07:00</published><updated>2010-10-09T15:00:14.696-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Server-Sent Events'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='node.js'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='EventSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='WebSocket'/><title type='text'>AJAX Push in iOS, Safari, and Chrome with Server-Sent Events</title><summary type='text'>
@import "http://samshull.com/sh/sh_style.css";







One of the many new APIs of HTML5 is Server-Sent Events. Server-Sent Events are a lot like long-polling. They work like this: establish a connection to the server from the client, send data from the server to the client in pieces, and if the connection is severed re-establish the connection from the client to the server and continue sending </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/5635386132992555266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/10/ajax-push-in-ios-safari-and-chrome-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/5635386132992555266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/5635386132992555266'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/10/ajax-push-in-ios-safari-and-chrome-with.html' title='AJAX Push in iOS, Safari, and Chrome with Server-Sent Events'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-1353627644727108074</id><published>2010-09-27T18:47:00.000-07:00</published><updated>2010-09-27T18:47:15.508-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='mdc'/><category scheme='http://www.blogger.com/atom/ns#' term='teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='docs'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Promote JS!</title><summary type='text'>If you care about being able to find good documentation for JavaScript, you should check out Mozilla's Promote JS campaign.

As Chris Heilman points out in his article highlighting why being able to find good documentation for JavaScript is so important, W3Schools usually makes it to the top of the list. Which is great for W3Schools, and they do provide a decent reference for the already </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/1353627644727108074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/09/promote-js.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/1353627644727108074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/1353627644727108074'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/09/promote-js.html' title='Promote JS!'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-4522078153917289274</id><published>2010-09-10T18:33:00.000-07:00</published><updated>2010-09-10T18:33:26.661-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='content delivery'/><category scheme='http://www.blogger.com/atom/ns#' term='Sony'/><title type='text'>Sony should be leveraging their hardware to deliver their media</title><summary type='text'>Since I have been ranting recently, I thought I would keep up the trend by sharing my thoughts on what I think is the biggest failing to capitalize on existing market share in recent history, namely Sony.

Sony is in to everything, and I mean everything. They make a list of consumer electronic devices longer than my arm. Everything from TVs, to video disc players (Blu-Ray and DVD), music players </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/4522078153917289274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/09/sony-should-be-leveraging-their.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4522078153917289274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4522078153917289274'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/09/sony-should-be-leveraging-their.html' title='Sony should be leveraging their hardware to deliver their media'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-1736812222387969796</id><published>2010-09-08T20:43:00.000-07:00</published><updated>2010-09-10T19:11:52.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon CloudFront'/><category scheme='http://www.blogger.com/atom/ns#' term='Verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='net neutrality'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon EC2'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Big ISPs can offer services that protect net neutrality and the bottom line</title><summary type='text'>I read an article a while back, before Google and Verizon actually announced their psuedo net neutrality plan, about what Google and Verizon might be cooking up that didn't violate net neutrality "technically," but still allowed Google to reach users faster. In the article, the author theorizes that Google maybe trying to reach a deal to get their self-contained data centers closer to Verizon </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/1736812222387969796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/09/big-isps-can-offer-services-that.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/1736812222387969796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/1736812222387969796'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/09/big-isps-can-offer-services-that.html' title='Big ISPs can offer services that protect net neutrality and the bottom line'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-538750446277348002</id><published>2010-09-06T21:27:00.000-07:00</published><updated>2010-09-08T20:59:06.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gradients'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Gecko'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='transforms'/><category scheme='http://www.blogger.com/atom/ns#' term='W3C'/><title type='text'>CSS Transform Functions Need More Work</title><summary type='text'>I wonder how many people writing CSS look at the transforms spec and wonder why it doesn't have an long-hand property names like "transform-scale" or "transform-rotate". It really reminds me of the old Microsoft specs for their Visual Filters. Is Apple really the new Microsoft? When did the W3C start changing the property arguments convention?

Don't get me wrong, I think the short-hand version </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/538750446277348002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/09/css-transform-functions-need-more-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/538750446277348002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/538750446277348002'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/09/css-transform-functions-need-more-work.html' title='CSS Transform Functions Need More Work'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-4838700220904306083</id><published>2010-08-24T17:45:00.000-07:00</published><updated>2010-08-24T18:30:06.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inertia scroll'/><category scheme='http://www.blogger.com/atom/ns#' term='jqtouch'/><category scheme='http://www.blogger.com/atom/ns#' term='image gallery'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='photo gallery'/><title type='text'>How to jQExtensions</title><summary type='text'>Recently I have received a few questions on how to perform certain tasks using jQExtensions and I thought it would be a good idea to highlight a few of them here in hopes that it will help more people out.
Setup
For the purpose of these examples #myphoto will reference a jQTouch Photo Gallery created by the following call


jQT.generateGallery("myphoto", [/*images*/], {/*options*/});


and #</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/4838700220904306083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/08/how-to-jqextensions.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4838700220904306083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4838700220904306083'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/08/how-to-jqextensions.html' title='How to jQExtensions'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-3661924646839869892</id><published>2010-07-13T20:33:00.000-07:00</published><updated>2010-08-10T07:07:30.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='posthack'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='vendor prefix'/><category scheme='http://www.blogger.com/atom/ns#' term='browser specific properties'/><title type='text'>Prefix or PostHack, or Both</title><summary type='text'>The entire debate about "Prefix or PostHack" is going down the wrong path. With PPK going so far as to suggest that vendor prefixes should be completely eliminated or simplified into a single extension (though he did recant a little), and Eric Meyer rebutting that CSS before vendor prefixes was effectively a living nightmare. The REAL problem is not whether or not vendor prefixes should be used, </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/3661924646839869892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/07/prefix-or-posthack-or-both.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/3661924646839869892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/3661924646839869892'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/07/prefix-or-posthack-or-both.html' title='Prefix or PostHack, or Both'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-5702042475992595381</id><published>2010-07-08T20:07:00.000-07:00</published><updated>2010-07-08T20:07:12.825-07:00</updated><title type='text'>Support for jQTouch Photo Gallery and Extensions</title><summary type='text'>A couple people have expressed interest in donating to show their support for the work on jQTouch Photo Gallery. So feel free to contribute, your graditude is always appreciated, and it is definitely a motivator to keep sharing. Or feel free to submit patches and suggestions, they are appreciated as well. Thanks.</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/5702042475992595381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/07/support-for-jqtouch-photo-gallery-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/5702042475992595381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/5702042475992595381'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/07/support-for-jqtouch-photo-gallery-and.html' title='Support for jQTouch Photo Gallery and Extensions'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-7568249294517201856</id><published>2010-06-15T22:17:00.000-07:00</published><updated>2010-08-24T18:25:00.748-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inertia scroll'/><category scheme='http://www.blogger.com/atom/ns#' term='jqtouch'/><category scheme='http://www.blogger.com/atom/ns#' term='image gallery'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='photo gallery'/><category scheme='http://www.blogger.com/atom/ns#' term='fixed toolbar'/><title type='text'>jQTouch Photo Gallery</title><summary type='text'>I just uploaded a new Photo Gallery extension for jQTouch to the jqextensions project, along with a completely revamped version of the jQTouch inertia scrolling/sliding/fixed toolbar extension. It was quite an experience building the photo gallery extension, and the updates to the scrolling extension were pretty exciting for me.

New features in the scrolling extension include: an optional </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/7568249294517201856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/06/jqtouch-photo-gallery.html#comment-form' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/7568249294517201856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/7568249294517201856'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/06/jqtouch-photo-gallery.html' title='jQTouch Photo Gallery'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-4216840619467077879</id><published>2010-02-20T09:40:00.000-08:00</published><updated>2010-02-20T09:48:10.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php autoload spl'/><title type='text'>Why you should use an autoload function in PHP</title><summary type='text'>The loading of classes is something that managed languages like Java and C# don't need to worry about, class loaders are built into the compiler. But C/C++ programmers have always had to deal with the issue of accidentally including the same file into a build. They found an easy way around that by wrapping some includes in an
#ifndef CONSTANT
#include 'myfile.h'
#endifand placing
#ifndef CONSTANT</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/4216840619467077879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/02/why-you-should-use-autoload-function-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4216840619467077879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/4216840619467077879'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/02/why-you-should-use-autoload-function-in.html' title='Why you should use an autoload function in PHP'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-3649036497111170357</id><published>2010-02-20T08:42:00.000-08:00</published><updated>2010-02-20T08:42:54.075-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php innovation award sam shull'/><title type='text'>Sam Shull: PHP Programming Innovation Award of 2009</title><summary type='text'>The PHP community at phpclasses.org has honored me with the PHP Programming Innovation Award of 2009. I am humbled that the international PHP community has shown such great appreciation for my endeavors and community contributions. I think that the hard work of Manuel Lemos at phpclasses has a very positive effect on the PHP community in providing a centralized place to share experiences and </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/3649036497111170357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/02/sam-shull-php-programming-innovation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/3649036497111170357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/3649036497111170357'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/02/sam-shull-php-programming-innovation.html' title='Sam Shull: PHP Programming Innovation Award of 2009'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-6336011250766202301</id><published>2010-02-17T21:48:00.000-08:00</published><updated>2010-02-17T21:48:24.959-08:00</updated><title type='text'>Cross Browser ECMAScript for XML (E4X)</title><summary type='text'>I have written a cross browser compatible implementation of E4X.

Well, when I say cross browser, I mean that it is capable of handling the methodical implementation of the specification, not the syntactical parts. Many of the key features that make E4X so useful are hard, if not impossible, to reproduce in other javascript engines. But what can be reproduced is the simplicity and namespace </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/6336011250766202301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/02/cross-browser-ecmascript-for-xml-e4x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6336011250766202301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6336011250766202301'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/02/cross-browser-ecmascript-for-xml-e4x.html' title='Cross Browser ECMAScript for XML (E4X)'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-2649778812047202258</id><published>2010-02-11T19:44:00.000-08:00</published><updated>2010-02-12T05:34:16.775-08:00</updated><title type='text'>Thoughts on XHP</title><summary type='text'>I am really happy to hear that Facebook has now officially released XHP, an E4X type of implementation for PHP. My initial thoughts are that PHP was built as a templating engine, and so this innovative approach to templating will only help solidify PHP as the best templating engine for the web. But after reading Rasmus' take on the performance hit that you might sustain from using XHP, I'm not so</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/2649778812047202258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/02/thoughts-on-xhp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/2649778812047202258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/2649778812047202258'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/02/thoughts-on-xhp.html' title='Thoughts on XHP'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-8415605657476996349</id><published>2010-02-10T20:33:00.000-08:00</published><updated>2010-02-10T20:33:45.744-08:00</updated><title type='text'>Extensions to jQTouch</title><summary type='text'>A few months back I discovered jQTouch by Dave Kaneda, which is a pretty amazing framework for building mobile WebKit based web apps. It's still in beta, but the animations are very robust, and it is easily extended. And so I set out to write a few extensions that would make jQTouch act more like a native iPhone app.

My initial goal was to write an extension that would enable the same type of </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/8415605657476996349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2010/02/extensions-to-jqtouch.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/8415605657476996349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/8415605657476996349'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2010/02/extensions-to-jqtouch.html' title='Extensions to jQTouch'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-6618906053027963699</id><published>2009-09-08T20:05:00.000-07:00</published><updated>2009-09-08T20:05:00.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='browser specific properties'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Proprietary CSS extensions for targeting individual browsers and versions</title><summary type='text'>I know that there are hacks for targeting different versions of IE:

* star in front means IE7, 
_ underscore in front means IE6 and below, 
\ Escaping any letter within the property name which isn't in the range a-f, A-F, 0-9 will hide that rule from IE 5.x,
-ms is IE8 vendor prefix
/ forward slash in front of a property is ignored by ie, but causes other browsers to ignore line
But what about </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/6618906053027963699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2009/09/proprietary-css-extensions-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6618906053027963699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6618906053027963699'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2009/09/proprietary-css-extensions-for.html' title='Proprietary CSS extensions for targeting individual browsers and versions'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-6458221668530612320</id><published>2009-09-07T10:21:00.000-07:00</published><updated>2009-09-09T06:29:52.864-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='digg bookmarklet'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Digg bookmarklet for the iPhone</title><summary type='text'>To add a bookmarklet to the iPhone click on the "Digg This" link below, you will see this page again. Then bookmark the page in your iPhone.





Then you will have to go into your bookmarks 



and edit the bookmark,



remove "
document.write(location.href.substring(0, location.href.indexOf('?') &gt; -1 ? location.href.indexOf('?') : location.href.length))
?" from the bookmark URI.





Now to </summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/6458221668530612320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2009/09/digg-bookmarklet-for-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6458221668530612320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/6458221668530612320'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2009/09/digg-bookmarklet-for-iphone.html' title='Digg bookmarklet for the iPhone'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_pnC-nWHHg_0/SqLfmsA2EPI/AAAAAAAAARc/wY6zdiMnMcI/s72-c/Add%20bookmark.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-7793847666153128079</id><published>2009-09-05T18:56:00.000-07:00</published><updated>2009-09-07T12:48:11.301-07:00</updated><title type='text'>iPhone friendly Blogger template change</title><summary type='text'>If you would like to make your Blogger template more iPhone friendly, try adding the following lines of code:

&lt;meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/&gt;
     &lt;style&gt;
    @media screen and (max-device-width: 480px)
    {
         #sidebar-wrapper{display:none}
         #outer-wrapper{padding:2px}
         .post img{border:none;</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/7793847666153128079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2009/09/iphone-friendly-blogger-template-change.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/7793847666153128079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/7793847666153128079'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2009/09/iphone-friendly-blogger-template-change.html' title='iPhone friendly Blogger template change'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6644382285478084714.post-9028512944560690289</id><published>2009-09-05T13:35:00.000-07:00</published><updated>2009-09-09T06:31:30.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bookmarklet'/><category scheme='http://www.blogger.com/atom/ns#' term='google reader'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>iPhone bookmarklet-Add to Google Reader</title><summary type='text'>To add a bookmarklet to the iPhone click on the "Add to Google Reader" link below, you will see this page again. Then bookmark the page in your iPhone.





Then you will have to go into your bookmarks 



and edit the bookmark,



remove "
document.write(location.href.substring(0, location.href.indexOf('?') &gt; -1 ? location.href.indexOf('?') : location.href.length))
?" from the bookmark URI.




</summary><link rel='replies' type='application/atom+xml' href='http://blog.samshull.com/feeds/9028512944560690289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.samshull.com/2009/09/add-to-google-reader-bookmarklet-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/9028512944560690289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6644382285478084714/posts/default/9028512944560690289'/><link rel='alternate' type='text/html' href='http://blog.samshull.com/2009/09/add-to-google-reader-bookmarklet-for.html' title='iPhone bookmarklet-Add to Google Reader'/><author><name>Sam</name><uri>http://www.blogger.com/profile/03802447044388016030</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_pnC-nWHHg_0/SqMdK1vb5LI/AAAAAAAAATU/U75Fv9PYn48/S220/Me.thumbnail.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_pnC-nWHHg_0/SqLfmsA2EPI/AAAAAAAAARc/wY6zdiMnMcI/s72-c/Add%20bookmark.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
