<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title><![CDATA[Steff.me > Journal]]></title><link>http://steff.me/journal/</link><description>I'm Steffan Williams, a freelance front-end developer. These are my thoughts.</description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/steffme" /><feedburner:info uri="steffme" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Archiving Scribble</title><link>http://feedproxy.google.com/~r/steffme/~3/-37TjxK2Iug/</link><guid isPermaLink="false">http://steff.me/journal/archiving-scribble/#When:Mon,  4 Jul 2011 10:42:10 GMT</guid><pubDate>Mon,  4 Jul 2011 10:42:10 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
&lt;p&gt;After receiving yet another 'your domain is about to expire!' email from GoDaddy, I decided to let it do just that. I'm finally shutting down Scribble, and archiving it to some dusty corner of my back-up hard-drive. I wouldn't be at all surprised if you're never heard of Scribble, but it was in building the site during my spare time at university that made me want to do what I'm doing today. I won't go into any details on how I built the app (mainly because it was so long ago, and I can't remember everything), but for nostalgia's sake I wanted to give it one final farewell.&lt;/p&gt;

&lt;figure&gt;
  &lt;p class="img-wrapper ten-col pull-two"&gt;
    &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/homepage.png"&gt;
      &lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/homepage.png" alt="Scribble Homepage &amp;mdash; Logged out" /&gt;
    &lt;/a&gt;
  &lt;/p&gt;
  &lt;figcaption class=""&gt;Scribble's Homepage &amp;mdash; Logged out&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2&gt;What is Scribble?&lt;/h2&gt;

&lt;div class="pull-three twelve-col"&gt;
&lt;blockquote&gt;
  &lt;p&gt;Scribble is a small, light-weight to-do list tool. We like to keep things simple and easy, so that's exactly what Scribble was designed to be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Scribble started out as a simple to-do list application. I created Scribble to solve my own major problem: keeping track of university assignments. I have an absolutely terrible memory, and the idea of a centralised list of things I need to get done that I could open on any computer on campus really appealed to me. I had checked a whole slew of GTD and todo-list apps but none of them seemed to fit with what I wanted.&lt;/p&gt;

&lt;figure&gt;
  &lt;p class="img-wrapper ten-col pull-two"&gt;
    &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/logged-in-homepage.png"&gt;
      &lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/logged-in-homepage.png" alt="Scribble Homepage &amp;mdash; Logged in" /&gt;
    &lt;/a&gt;
  &lt;/p&gt;
  &lt;figcaption&gt;Scribble's Homepage &amp;mdash; Logged in&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I started with the basics; adding, deleting and editing to-do's (be a bit of a rubbish to-do application otherwise, wouldn't it). As there were multiple university assignments running at the same time, I added the ability to prioritize to-do's over others and sorting so that you could list them by priority or date added. I also added tagging, so I could tag the module each to-do was associated with and sort by that too.&lt;/p&gt;

&lt;p&gt;While all well and good, I still had one problem left: I kept losing the files I was working on for each of the assignments. After completing a to-do, I'd email the file to myself so that I could wander up to campus, print it off and hand it in. Well, in the mass amounts of emails, I'd lose track of which version I was meant to be submitting. So, I decided to add file uploads to Scribble. I could assign myself a to-do saying &lt;i&gt;X needs to be done&lt;/i&gt;, then when I completed it, mark it as done and upload the corresponding file. I encorporated Scribble into my workflow, which let me upload a file, tag it with the module and version number, delete the previous version and repeat until I was finished with the assignment. I didn't need anything as advanced as a version control system, not for simple documents and essays. Of course, this is before the days of &lt;a href="http://db.tt/8yNNymI"&gt;Dropbox&lt;/a&gt; &amp;mdash; where the majority of my files now live.&lt;/p&gt;

&lt;h2&gt;Getting "social"&lt;/h2&gt;

&lt;p&gt;When a university class assigned a group project, it was time to update Scribble to allow users to interact. I created a really basic way of allowing a user to assign another user a to-do, all you had to do is know the other person's username. When the other person logged in, they would be presented with a message saying they've had new tasks assigned to them. Viewing the list of assigned tasks, the assignee could then either choose to accept the tasks, or ignore them; whichever they chose, the assigner would be sent an email with the decision.&lt;/p&gt;

&lt;figure&gt;
  &lt;p class="img-wrapper ten-col pull-two"&gt;
    &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/suggestions.png"&gt;
      &lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/suggestions.png" alt="Scribble &amp;mdash; Suggested to-do's" /&gt;
    &lt;/a&gt;
  &lt;/p&gt;
  &lt;figcaption class=""&gt;Scribble &amp;mdash; Suggested to-do's&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A friend's list seemed too advanced for Scribble; I had been reading 37signals "&lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;". Reading the chapter on &lt;em&gt;Feature Selection&lt;/em&gt;, I decided that it was down to the user to track their own friends. If you wanted to manage your friends, just create a to-do, tag it as "friends" and keep updating it with the users. Need to keep people separate, and remember who you are doing that maths class with? Create multiple todos, and tag them as friends and "maths class". It was a simplistic way of doing it, but it worked for me and didn't require me to spend too much time implementing new features.&lt;/p&gt;

&lt;h2&gt;Bookmarklets&lt;/h2&gt;

&lt;p&gt;The way I was using Scribble started to change from the initial "to-do list app", to remembering articles I wanted to read or videos I wanted to watch with the sound turned up (because that wouldn't be a great idea in the middle of class). So, I built two bookmarklets to help me add new items to Scribble.&lt;/p&gt;

&lt;figure&gt;
  &lt;p class="img-wrapper ten-col pull-two"&gt;
    &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/bookmarklets.png"&gt;
      &lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/bookmarklets.png" alt="Scribble &amp;mdash; Bookmarklets installation help" /&gt;
    &lt;/a&gt;
  &lt;/p&gt;
  &lt;figcaption class=""&gt;Scribble &amp;mdash; Bookmarklets installation help&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Version one was the 'quick scribble'. Clicking the bookmarklet grabbed the page title along with any text you had selected within the document, and added it as a link to the top of your Scribble list.&lt;/p&gt;

&lt;p&gt;Version two was 'scribble this'. This embedded the 'new to-do' form to the top of the page you were on, giving you the ability to write any text you wanted and set a priority on it. This version would also add a default value to the textarea, picking up the title of the page you were on and any text you selected. Both bookmarklets also appended a link back to the original page you were viewing.&lt;/p&gt;

&lt;p&gt;Realising that a few of my &lt;em&gt;scribbles&lt;/em&gt; were funny videos (of cats), I decided to embed the videos right into Scribble so that I could save myself the click. I implemented embedding for various video sites, including: YouTube, flickr, Vimeo, Metacafe, Viddler, Revision3, Qik, Hulu, Funny or Die and College Humour. I also added image embedding, from flickr and Picasa.&lt;/p&gt;

&lt;p&gt;After graduating this is all I used Scribble for &amp;mdash; browsing the web and saving articles to read later.&lt;/p&gt;

&lt;h2&gt;Mobile&lt;/h2&gt;

&lt;p&gt;When I got my hands on an iPhone, I realised I needed to add a mobile version of Scribble &amp;mdash; it was the future, and I was excited to be able to carry around all my to-do's in my pocket. http://m.scribbleit.net/ wasn't an iPhone specific site exactly, but a stripped down 'mobile' version. No images, no video embedding, just a simple list and a way to add and track your &lt;em&gt;scribbles&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;

&lt;ul class="twelve-col no-bullets"&gt;
  &lt;li class="four-col"&gt;
    &lt;figure&gt;
      &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/mobile-homepage.png"&gt;&lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/mobile-homepage.png" alt="Scribble Mobile Homepage &amp;mdash; Logged out" /&gt;&lt;/a&gt;
      &lt;figcaption&gt;Scribble's Mobile Homepage &amp;mdash; Logged out&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
  &lt;li class="four-col"&gt;
    &lt;figure&gt;
      &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/mobile-logged-in-homepage.png"&gt;&lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/mobile-logged-in-homepage.png" alt="Scribble Mobile Homepage &amp;mdash; Logged in" /&gt;&lt;/a&gt;
      &lt;figcaption&gt;Scribble's Mobile Homepage &amp;mdash; Logged in&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
  &lt;li class="four-col last-col"&gt;
    &lt;figure&gt;
      &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/mobile-sorting.png"&gt;&lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/mobile-sorting.png" alt="Scribble Mobile &amp;mdash; Sorted list" /&gt;&lt;/a&gt;
      &lt;figcaption&gt;Scribble Mobile &amp;mdash; Sorted list&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
  &lt;li class="four-col prefix-two clear-left"&gt;
    &lt;figure&gt;
      &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/mobile-complete-todo.png"&gt;&lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/mobile-complete-todo.png" alt="Scribble Mobile &amp;mdash; Complete to-do" /&gt;&lt;/a&gt;
      &lt;figcaption&gt;Scribble Mobile &amp;mdash; Complete to-do&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
  &lt;li class="four-col suffix-two"&gt;
    &lt;figure&gt;
      &lt;a href="http://steff.me/journal/archiving-scribble/assets/images/mobile-new-todo.png"&gt;&lt;img class="full" src="http://steff.me/journal/archiving-scribble/assets/images/mobile-new-todo.png" alt="Scribble Mobile &amp;mdash; New to-do" /&gt;&lt;/a&gt;
      &lt;figcaption&gt;Scribble Mobile &amp;mdash; New to-do&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;The mobile version of Scribble offered all of the same features as the main site &amp;mdash; suggestions, sorting, editing etc. &amp;mdash; less the file uploading.&lt;/p&gt;
  
  &lt;h2&gt;Extras&lt;/h2&gt;
  &lt;p&gt;In the spirit of throwing the kitchen sink into the app, I decided to add a few other features that I didn't really use, but thought were cool. Just to list a few:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;RSS feed&lt;/li&gt;
  &lt;li&gt;RESTful API&lt;/li&gt;
  &lt;li&gt;Twitter integration &amp;mdash; DM &lt;a href="http://twitter.com/scribbleit"&gt;@scribbleit&lt;/a&gt; your to-do, and it would be added to the top of your list (which reminds me, I need to delete that account).&lt;/li&gt;
  &lt;li&gt;Email todo@scribbleit.net and the content would be added to the top of your list.&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;h2&gt;End of an era&lt;/h2&gt;
  &lt;p&gt;So that's Scribble; the to-do list app you never knew and will forget about as soon as you close this page. If you made it this far, I'd like to thank you for allowing me the self-indulgent moment to reflect on why I got into this business to begin with: creating things is fun. The knowledge I gained in building the web app was well worth the time and effort I invested into it. Before starting, I'd never touched PHP or JavaScript, and I was only just getting started playing with HTML and CSS.&lt;/p&gt;
  
  &lt;p&gt;If it weren't for Scribble, I would be doing something very different for a living, and I wouldn't have discovered the passion I have for the web.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/-37TjxK2Iug" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/archiving-scribble/</feedburner:origLink></item><item><title>Fluid Inconsistencies</title><link>http://feedproxy.google.com/~r/steffme/~3/BlrKdULMPSU/</link><guid isPermaLink="false">http://steff.me/journal/fluid-inconsistencies/#When:Wed, 01 Dec 2010 20:37:06 GMT</guid><pubDate>Wed, 01 Dec 2010 20:37:06 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;In developing the next version of &lt;a href="http://gridinator.com/"&gt;Gridinator&lt;/a&gt;, I wanted to make sure that everything that I was allowing in the pixel and em based layouts were available in the percentage ones too. That meant I needed to write fluid prefixes, suffixes and a few other things that are a little bit more complex in a liquid layout.&lt;/p&gt;
  
  &lt;!-- more --&gt;
  
  &lt;p&gt;So this is where I ran into some major inconsistencies in the way different browsers render percentage values. While I'm well aware that things &lt;a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/"&gt;don't have to look the same in every browser&lt;/a&gt;, it just seems to strike me as odd that CSS3 features keep getting touted on the front of browser homepages, and yet something as fundamental as a percentage would be rendered incorrectly (or, rather, not as well as would be expected).&lt;/p&gt;
  
  &lt;p class="pull-three twelve-col"&gt;
    &lt;a href="http://steff.me/assets/journal/fluid-inconsistencies/gridinator-columns.png"&gt;
      &lt;img class="full" src="http://steff.me/assets/journal/fluid-inconsistencies/gridinator-columns.png" alt="A cimparison of Gridinator columns displayed in various browsers" /&gt;
    &lt;/a&gt;
  &lt;/p&gt;
  
  &lt;p&gt;The image above shows a comparison of a Gridinator generated grid as displayed in Firefox, Safari, Chrome, Opera and IE6 through to IE9. To make it a fair test, the browser window was set to 940px in each case (thus giving IE6 a fighting chance, as it would normally ignore the max-width attribute). Each column is floated left except for the last one in each row, which is floated right.&lt;/p&gt;
  
  &lt;p&gt;Anything strike you as odd?&lt;/p&gt;
  
  &lt;p&gt;I don't know what I was expecting, but I was hoping for consistency between the &lt;strong&gt;modern&lt;/strong&gt; browsers at least. Opera ignores the decimal places, Safari and Chrome seem to round to one decimal place, and who knows what IE8/9 are doing. Interestingly, it seems that Firefox rounds almost perfectly, as do Internet Explorer 6 and 7. This means that Internet Explorer is getting &lt;strong&gt;worse&lt;/strong&gt; at rendering percentages in the more standards compliant versions than the ones us webbies have wanted dead for some time.&lt;/p&gt;
  
  &lt;p&gt;So, what is the answer? Is the hope of a truly flexible, fluid grid just a dream? Do we have to just settle for using CSS3 media queries and use things like &lt;a href="http://lessframework.com/"&gt;Less Framework&lt;/a&gt;? Don't get me wrong, I have nothing against the noble pixel, but I really want to push forward and use more &lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;responsive designs&lt;/a&gt; with true fluidity.&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I've put the &lt;a href="http://steff.me/static/fluid-inconsistencies/"&gt;source HTML/CSS online so you can test for yourself&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/BlrKdULMPSU" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/fluid-inconsistencies/</feedburner:origLink></item><item><title>Static Textpattern Forms and Pages</title><link>http://feedproxy.google.com/~r/steffme/~3/-hh86KaGm3Y/</link><guid isPermaLink="false">http://steff.me/journal/static-textpattern-forms-and-pages/#When:Fri, 22 Oct 2010 10:34:09 GMT</guid><pubDate>Fri, 22 Oct 2010 10:34:09 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;When I started work on redesigning this site, I also made the switch from WordPress to Textpattern. There was one thing that I really started to miss while developing the site &amp;mdash; files for templates. WordPress had made this so easy in its theming system, which uses PHP files, thus allowing the use of an external text editor. Instead, Textpattern forces you to use a textarea in the admin interface, and saves the markup in a database. Since I like to have syntax highlighting and the ability to quickly edit multiple templates at once, I decided to create a little workaround to allow me to use files for both &lt;strong&gt;page and form&lt;/strong&gt; templates.&lt;/p&gt;
  
  &lt;!-- more --&gt;
  
  &lt;h2&gt;Warning &amp;amp; Disclaimer&lt;/h2&gt;
  &lt;p&gt;Before I begin, if you are allergic to looking at source code I recommend you look away now. Still here? Then let's begin, and don't say I didn't warn you.&lt;/p&gt;
  &lt;p&gt;The modifications made here are to the &lt;strong&gt;Textpattern 4.2.0&lt;/strong&gt; core library files, as such any updates to Textpattern will require you to repeat this process. While unlikely (I run this on all my Textpattern installations), I take no responsibility if your install breaks as a result of making these changes. If you would like a quick and easy method of having static page files &lt;strong&gt;only&lt;/strong&gt; (ie: not forms), then please read &lt;a href="http://hicksdesign.co.uk/journal/using-files-for-page-templates-in-textpattern"&gt;this post by Mr. Hicks&lt;/a&gt; which explains how to achieve this with a lot less effort.&lt;/p&gt;
  
  &lt;h2&gt;Getting started&lt;/h2&gt;
  &lt;p&gt;This guide is based on creating the template folder outside of your textpattern folder at the same level as it. If you would like your templates somewhere else, modify the location in each case below. You will also need to enable "Allow PHP in pages?" in Advanced Preferences of the Admin tab, if you haven't already.&lt;/p&gt;
  
  &lt;h2&gt;Pages&lt;/h2&gt;
  &lt;p&gt;First, the templates for pages. In the textpattern folder, open the file &lt;code&gt;publish.php&lt;/code&gt;. On line 482 is the start of the &lt;code&gt;textpattern()&lt;/code&gt; function (do a search for 'function textpattern' in your favourite text editor). We want to edit this function to try and import a file, should it exist, before looking in the databse for the page HTML.&lt;/p&gt;
  
  &lt;p&gt;Replace lines 496 to 498 with the code shown in the Gist below &amp;mdash; start copying from &lt;code&gt;$html&lt;/code&gt;. The ... indicates that there is more code not shown, and the &lt;code&gt;function textpattern()&lt;/code&gt; is to show what function you are editing in the file.&lt;/p&gt;
  &lt;p class="no-js-only"&gt;&lt;a href="http://gist.github.com/583356"&gt;View code on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;Textpattern will now look for page templates in &lt;code&gt;templates/pages/&lt;/code&gt; folder. Make sure to set up your sections and corresponding page templates as you want them. Create a new file in the pages folder with the same name as the page template you wish to use: default.php, for example, if you wish to overwrite the default page.&lt;/p&gt;
  
  &lt;h2&gt;Forms&lt;/h2&gt;
  &lt;p&gt;Following the same process as for pages above, open the file &lt;code&gt;textpattern/lib/txplib_misc.php&lt;/code&gt;. On line 1589 you will find &lt;code&gt;function fetch_form($name)&lt;/code&gt; (do a search for 'function fetch_form' in your favourite text editor). Replace this function with the one below:
  &lt;p class="no-js-only"&gt;&lt;a href="http://gist.github.com/583352"&gt;View code on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;h2&gt;Error pages&lt;/h2&gt;
  &lt;p&gt;Just one more step left, 404/error pages (error_default in a standard Textpattern install). If you'd like a static error page too, there's one more step you need to do.&lt;/p&gt;
  
  &lt;p&gt;In the file &lt;code&gt;textpattern/lib/txplib_misc.php&lt;/code&gt;, on line 1827, you'll find a function called txp_die (do a search for 'function txp_die' in your favourite text editor). Simply replace the code in that file with the code below.&lt;/p&gt;
  &lt;p class="no-js-only"&gt;&lt;a href="http://gist.github.com/583310"&gt;View code on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="six-col prefix-three suffix-three"&gt;  
  &lt;p&gt;And you're done! Congratulations, you now have a Textpattern install that can use template files!&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/-hh86KaGm3Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/static-textpattern-forms-and-pages/</feedburner:origLink></item><item><title>Ignoring iOS &lt; 4 when embedding Typekit</title><link>http://feedproxy.google.com/~r/steffme/~3/-9p_AG_DSmY/</link><guid isPermaLink="false">http://steff.me/journal/ignoring-ios-4-when-embedding-typekit/#When:Wed, 20 Oct 2010 19:29:53 GMT</guid><pubDate>Wed, 20 Oct 2010 19:29:53 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;If you are a user of Typekit you might be aware of a &lt;a href="http://blog.typekit.com/2010/06/23/improvements-to-iphone-font-support-in-ios4/"&gt;small problem reported on the Typekit blog&lt;/a&gt;:&lt;/p&gt;
  
  &lt;div class="twelve-col pull-three"&gt;
    &lt;blockquote&gt;
      &lt;p&gt;Mobile Safari on iPhone OS 3.1+ will crash when rendering multiple weights and styles of SVG webfonts&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/div&gt;
  &lt;p&gt;If you are one of the people who use multiple font weights, I've written a little script to browser-sniff for iOS under version 4 and not include the Typekit embed script.&lt;/p&gt;
  
  &lt;!-- more --&gt;
  
  &lt;p&gt;The first is JavaScript; where you would normally put &lt;code&gt;try{Typekit.load();}catch(e){}&lt;/code&gt;, replace it with the first gist.&lt;/p&gt;
  &lt;p&gt;The second is a PHP version. It doesn't even embed the Typekit JS source if an iOS &amp;lt; 4 is detected, which saves some bytes &amp;mdash; useful on a mobile browser, especially if it doesn't support the feature anyway.&lt;/p&gt;
  &lt;p class="no-js-only"&gt;&lt;a href="http://gist.github.com/636181"&gt;View code on GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/-9p_AG_DSmY" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/ignoring-ios-4-when-embedding-typekit/</feedburner:origLink></item><item><title>"CMD+F" for Mobile Safari</title><link>http://feedproxy.google.com/~r/steffme/~3/ye--Y4VKOB8/</link><guid isPermaLink="false">http://steff.me/journal/cmdf-for-mobile-safari/#When:Mon, 10 Oct 2011 15:35:03 GMT</guid><pubDate>Mon, 10 Oct 2011 15:35:03 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;Find on page (CMD+F on a Mac) was never something I really felt like I &lt;em&gt;needed&lt;/em&gt; in Mobile Safari, until I bought an iPad. As the experience is more than the iPhone, it felt like it needed more of the features from a desktop version of the application. In an effort to learn more &lt;em&gt;pure&lt;/em&gt; JavaScript I decided to create a bookmarklet to solve the problem. While I'm sure there are others out there, I created this for myself as a way to back away from relying on jQuery and teach myself some raw JS.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- more --&gt;

&lt;ul class="twelve-col no-bullets"&gt;
  &lt;li class="three-col"&gt;
    &lt;img src="http://steff.me/assets/journal/cmdf-for-mobile-safari/images/cmd-f-image-1.png" title="Find on page bar loaded" class="full" /&gt;
  &lt;/li&gt;
  &lt;li class="three-col"&gt;
    &lt;img src="http://steff.me/assets/journal/cmdf-for-mobile-safari/images/cmd-f-image-2.png" title="Entering a search term of Steff into find on page" class="full" /&gt;
  &lt;/li&gt;
  &lt;li class="three-col"&gt;
    &lt;img src="http://steff.me/assets/journal/cmdf-for-mobile-safari/images/cmd-f-image-3.png" title="Reporting how many results find on page found" class="full" /&gt;
  &lt;/li&gt;
  &lt;li class="three-col last-col"&gt;
    &lt;img src="http://steff.me/assets/journal/cmdf-for-mobile-safari/images/cmd-f-image-4.png" title="Showing find on page highlighting the keyword Steff in the page" class="full" /&gt;
  &lt;/li&gt;
  &lt;li class="container"&gt;
    &lt;img src="http://steff.me/assets/journal/cmdf-for-mobile-safari/images/cmd-f-image-5.png" title="Showing find on page highlighting the keyword Steff in the page on the iPad" class="full" /&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;h2&gt;Features&lt;/h2&gt;
  &lt;ul&gt;
  &lt;li&gt;It reports how many results are found for your search keyword, and allows you to easily step through them.&lt;/li&gt;
  &lt;li&gt;Text that is contained within a hidden element (display:none or visibility:hidden) are not shown; it highlights only what you're able to see.&lt;/li&gt;
  &lt;li&gt;Native&lt;em&gt;-ish&lt;/em&gt; look and feel for both the iPad and iPhone.&lt;/li&gt;
  &lt;li&gt;It doesn't break the content of the page you search on, so multiple searches can be made without any issue.&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;h2&gt;Known issues&lt;/h2&gt;
  &lt;ul&gt;
  &lt;li&gt;&lt;p&gt;Text within different nodes cannot be highlighted together &amp;mdash; if part of a word is bold, it is considered a different word in terms of the search.&lt;/p&gt;
  
  &lt;p&gt;Example: Java&lt;strong&gt;Scr&lt;/strong&gt;ipt&lt;/p&gt;
  
  &lt;p&gt;The word "JavaScript" above is considered three words &amp;mdash; "Java", "Scr" and "ipt", as part of the text is within a &amp;lt;strong&amp;gt; tag. As such, it won't get highlighted in a search for "JavaScript".&lt;/p&gt;
  &lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;h2&gt;Download&lt;/h2&gt;
  &lt;p&gt;CMD+F is free and open source. It is available to &lt;a href="http://steff.me/lab/cmd-f/"&gt;install from the installation guide here&lt;/a&gt;, and you can &lt;a href="http://github.com/steffanwilliams/cmd-f"&gt;view the source and fork it on GitHub&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Before you complain about the installation process, please &lt;a href="http://www.marco.org/1288715399"&gt;read this post&lt;/a&gt; by Marco Arment regarding the state of bookmarklets on Mobile Safari.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/ye--Y4VKOB8" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/cmdf-for-mobile-safari/</feedburner:origLink></item><item><title>The Return of Steff dot Me</title><link>http://feedproxy.google.com/~r/steffme/~3/f5_1FdMjf3A/</link><guid isPermaLink="false">http://steff.me/journal/the-return-of-steff-dot-me/#When:Tue, 05 Oct 2010 08:10:41 GMT</guid><pubDate>Tue, 05 Oct 2010 08:10:41 GMT</pubDate><description>&lt;div class="six-col prefix-three suffix-three"&gt;
  &lt;p&gt;A while back I intentionally broke the site in order to push me to redesign it and rethink the content I was putting out. Unfortunately, that didn't work and I just ended up with a broken site sitting online for months. So, after a (very) long break, Steff dot Me is once more!&lt;/p&gt;
  
  &lt;!-- more --&gt;
  
  &lt;h2&gt;The details&lt;/h2&gt;
  
  &lt;p&gt;I've made the switch away from &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;, and this site is now powered by &lt;a href="http://textpattern.com/"&gt;Textpattern&lt;/a&gt;. It's taking a bit of getting used to, but ultimately I felt a bit trapped by WordPress and needed a bit more freedom &amp;mdash; less of a blogging engine and more of a content management system.&lt;/p&gt;
  
  &lt;p&gt;The layout for this site makes use of a fluid grid generated by &lt;a href="http://gridinator.com/"&gt;Gridinator&lt;/a&gt; (it actually uses a new version, more on that soon!), combined with @media queries, which has let me jump on the bandwagon of &lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;responsive web design&lt;/a&gt;.&lt;/p&gt;
  
  &lt;p&gt;You can view the grid by pressing G (or two-finger tap on an iOS device &amp;mdash; &lt;strong&gt;warning&lt;/strong&gt;: can be slow on long pages, and will lockup Mobile Safari until the grid is shown/hidden) as I'm using &lt;a href="http://hashgrid.com/"&gt;#grid&lt;/a&gt; from &lt;a href="http://analog.coop/"&gt;Analog&lt;/a&gt;, which I have modified slightly to make use of the Gridinator class names and thus making it fluid. As part of the responsive design, the leading and vertical rhythm of #grid adapts to the size of the browser.&lt;/p&gt;
  
  &lt;p&gt;The type in use is &lt;a href="http://typekit.com/fonts/adelle-web"&gt;Adelle&lt;/a&gt; for headings and navigation, and &lt;a href="http://typekit.com/fonts/proxima-nova"&gt;Proxima Nova&lt;/a&gt; for body text. This is being served via the wonderful &lt;a href="http://typekit.com/"&gt;Typekit&lt;/a&gt;. You can &lt;a href="http://typekit.com/colophons/wue5kco"&gt;view more details about the fonts&lt;/a&gt; used on this website on Typekit.&lt;/p&gt;
  
  &lt;p&gt;This site is marked up with HTML5 (for &lt;a href="http://www.zeldman.com/2010/08/03/html5-fuzzies/"&gt;border-radius and text-shadow&lt;/a&gt;, obviously), and uses &lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt; to give IE the kick it needs to use the new elements, while providing feature detection for any snazzy things I want to progressively enhance. That being said, if anything looks a bit broken in any of the non-modern browsers, I don't overly care (sorry, but this is my personal site and it's my choice... just upgrade already).&lt;/p&gt;
  
  &lt;figure&gt;
  &lt;p class="img-wrapper twelve-col pull-three"&gt;&lt;a href="http://www.flickr.com/photos/steffanwilliams/5054404323/" title="Steff dot Me &amp;mdash; small by Steffan Williams, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4126/5054404323_c40a456afa_b.jpg" alt="Steff dot Me &amp;mdash; small" class="full" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;p class="img-wrapper twelve-col pull-three"&gt;&lt;a href="http://www.flickr.com/photos/steffanwilliams/5054404643/" title="Steff dot Me &amp;mdash; medium by Steffan Williams, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4128/5054404643_47614a8964_b.jpg" alt="Steff dot Me &amp;mdash; medium" class="full" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;p class="img-wrapper twelve-col pull-three"&gt;&lt;a href="http://www.flickr.com/photos/steffanwilliams/5054404961/" title="Steff dot Me &amp;mdash; large by Steffan Williams, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4087/5054404961_7ee6c7542a_b.jpg" alt="Steff dot Me &amp;mdash; large" class="full" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;p class="img-wrapper twelve-col pull-three"&gt;&lt;a href="http://www.flickr.com/photos/steffanwilliams/5055023908/" title="Steff dot Me &amp;mdash; extra large by Steffan Williams, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4126/5055023908_d8969e2a7a_b.jpg" alt="Steff dot Me &amp;mdash; extra large" class="full" /&gt;&lt;/a&gt;&lt;/p&gt;
  
  &lt;figcaption&gt;
  &lt;p&gt;Steff dot Me in its various incarnations of responsiveness with @media queries and a fluid layout. How meta is it to see a screenshot of the article you're reading in the article?&lt;/p&gt;
  &lt;/figcaption&gt;
  &lt;/figure&gt;
  
  &lt;h2&gt;Going forward&lt;/h2&gt;
  
  &lt;p&gt;The goal of this new site &amp;mdash; more than anything &amp;mdash; is to give me the freedom to create. Whether it be in the form of writing in the journal section or experimenting in the lab; the aim is to just keep playing with and learning the new web technologies as they develop. It's certainly an exciting time for the web, and I'm happy once again to have a part of it where I can express myself.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/steffme/~4/f5_1FdMjf3A" height="1" width="1"/&gt;</description><feedburner:origLink>http://steff.me/journal/the-return-of-steff-dot-me/</feedburner:origLink></item></channel></rss>

