<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>inessential.com</title>
    <link>http://inessential.com/</link>
    <description>Brent Simmons’s weblog.</description>
    <item>
      <title>Path Design</title>
      <link>http://inessential.com/2012/01/30/path_design</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://sexpigeon.org/post/16729718345/path-puts-a-silly-amount-of-trust-in-its-avatars&quot;&gt;sexpigeon on Path&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Path is tappy and its content reads like the content of taps. “I am in a place,” you tap. “:)”, come the replies.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;http://log.scifihifi.com/post/16733284144/path-is-pretty-in-the-same-designy-way-as-our&quot;&gt;Buzz Andersen&lt;/a&gt; on sexpigeon on Path:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This is the best thing I’ve read about Path, and it perfectly articulates something I’ve thought not only about Path, but also a lot of other exemplars of the fussy, post-Apple wave of “high design” in tech products.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Read both, and then the Khoi Vinh article article Buzz links to.&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 14:56:27 -0800</pubDate>
      <guid>http://inessential.com/2012/01/30/path_design</guid>
      <dc:date>2012-01-30T14:56:27-08:00</dc:date>
    </item>
    <item>
      <title>On Hibari’s Design</title>
      <link>http://inessential.com/2012/01/30/on_hibaris_design</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://violasong.com/2012/01/hibari-design-philosophy&quot;&gt;violasong&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Because Hibari is a secondary app, I want it to fit in with the feel of the operating system as much as possible. I call Hibari “minimalist,” but it’s certainly not an instance of bare, angular, monochromatic minimalism. I’m aiming instead for a quiet, soothing, Japanese-style minimalism; one that feels natural. For my taste, an angular black &amp;amp; white app juxtaposed against the grays of OS X wouldn’t produce the most minimalist result.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I love reading about design philoshopy. Good post.&lt;/p&gt;

&lt;p&gt;And it motivates me to check out &lt;a href=&quot;http://hibariapp.com/&quot;&gt;Hibari&lt;/a&gt;, which I hadn’t done yet.&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 14:49:05 -0800</pubDate>
      <guid>http://inessential.com/2012/01/30/on_hibaris_design</guid>
      <dc:date>2012-01-30T14:49:05-08:00</dc:date>
    </item>
    <item>
      <title>360MacDev</title>
      <link>http://inessential.com/2012/01/30/360macdev</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://www.360macdev.com/&quot;&gt;360MacDev&lt;/a&gt; starts on Friday. It looks like tickets are still available and just $300.&lt;/p&gt;

&lt;p&gt;I’m doing the keynote. Other speakers include Mike Lee, Dave Wiskus, Kyle Richter, Colin Donnell, Luc Vandal, and more really smart people. Here’s the &lt;a href=&quot;http://www.360macdev.com/schedule/&quot;&gt;schedule&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This may be the only Mac-specific conference in the world! And I totally can’t wait. Mac apps rule. You should go.&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 14:37:05 -0800</pubDate>
      <guid>http://inessential.com/2012/01/30/360macdev</guid>
      <dc:date>2012-01-30T14:37:05-08:00</dc:date>
    </item>
    <item>
      <title>Frictiony Sharing</title>
      <link>http://inessential.com/2012/01/30/frictiony_sharing</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://nick.typepad.com/blog/2012/01/the-friction-in-frictionless-sharing.html&quot;&gt;Nick Bradbury&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Because in the past the user only had to decide whether to share something they just read, but now they have to think about every single article before they even read it. &lt;em&gt;If I read this article, then everyone will know I read it, and do I really want people to know I read it?&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
      <pubDate>Mon, 30 Jan 2012 14:28:27 -0800</pubDate>
      <guid>http://inessential.com/2012/01/30/frictiony_sharing</guid>
      <dc:date>2012-01-30T14:28:27-08:00</dc:date>
    </item>
    <item>
      <title>Android and ‘Legacy’</title>
      <link>http://nick.typepad.com/blog/2012/01/androids-legacy-nonsense.html</link>
      <description>&lt;p&gt;My co-worker &lt;a href=&quot;http://nick.typepad.com/blog/2012/01/androids-legacy-nonsense.html&quot;&gt;Nick Bradbury&lt;/a&gt; asks:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;So “legacy apps” are ones built for the most prevalent versions of Android?&lt;/p&gt;&lt;/blockquote&gt;</description>
      <pubDate>Fri, 27 Jan 2012 12:32:55 -0800</pubDate>
      <guid>http://inessential.com/2012/01/27/android_and_legacy</guid>
      <dc:date>2012-01-27T12:32:55-08:00</dc:date>
    </item>
    <item>
      <title>Facebook and Passive Sharing</title>
      <link>http://inessential.com/2012/01/27/facebook_and_passive_sharing</link>
      <description>&lt;p&gt;Jenny, on the &lt;a href=&quot;http://glassboard.com/blog/2012/01/27/passive-sharing-is-the-new-oversharing-on-facebook/&quot;&gt;Glassboard blog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;When I think of oversharing, I think of self-pitying status updates that can at least garner schadenfreude. But this information is useless, much like non-alcoholic beer or another Chipmunk movie.&lt;/p&gt;&lt;/blockquote&gt;</description>
      <pubDate>Fri, 27 Jan 2012 12:26:05 -0800</pubDate>
      <guid>http://inessential.com/2012/01/27/facebook_and_passive_sharing</guid>
      <dc:date>2012-01-27T12:26:05-08:00</dc:date>
    </item>
    <item>
      <title>Ubuntu HUD</title>
      <link>http://inessential.com/2012/01/24/ubuntu_hud</link>
      <description>&lt;p&gt;Every few years I check out Linux-on-the-desktop, and every few years I’m disappointed because it seems like they’re just designing Windows clones.&lt;/p&gt;

&lt;p&gt;The argument for this is that it made it easier for people to switch. Which I think is a terrible argument: why copy something sucky? Why not attract users by doing something new and &lt;em&gt;better&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;In recent years it started to get a little better, when Ubuntu started to design Mac clones instead. I say “better” because I think Mac user interface is better than Windows — but the same criticism still applies. Why not try something new? Why not shoot for better?&lt;/p&gt;

&lt;p&gt;Maybe, finally, the Linux world is trying something new. Or, at least, Ubuntu is. See Mark Shuttleworth’s blog post about the &lt;a href=&quot;http://www.markshuttleworth.com/archives/939&quot;&gt;HUD and the future of the menu&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I don’t know if it’s a good idea, or if it will prove usable. But I’m in full favor of the spirit.&lt;/p&gt;</description>
      <pubDate>Tue, 24 Jan 2012 14:01:24 -0800</pubDate>
      <guid>http://inessential.com/2012/01/24/ubuntu_hud</guid>
      <dc:date>2012-01-24T14:01:24-08:00</dc:date>
    </item>
    <item>
      <title>Fantastical and language detection</title>
      <link>http://inessential.com/2012/01/24/fantastical_and_language_detection</link>
      <description>&lt;p&gt;Since &lt;a href=&quot;http://flexibits.com/blog/2012/01/fantastical-1-2-going-global/&quot;&gt;Fantastical&lt;/a&gt; is all about natural language processing, localization is an especially interesting issue.&lt;/p&gt;

&lt;p&gt;With most apps, localization means translating menus and labels into other languages and displaying the right translations based on a user’s language settings. But Fantastical has to go farther: it has to understand what you type.&lt;/p&gt;

&lt;p&gt;The first step in understanding what you type is to know what language you typed. The developers could have gone the straightforward route — look at your language settings — but instead they went a step further: Fantastical detects the language based on what you actually typed.&lt;/p&gt;

&lt;p&gt;This means your system could be set to French but you could type Spanish text and it will work.&lt;/p&gt;

&lt;p&gt;I like this. The best Mac developers have been famous for taking the extra steps. Most people won’t need this — but those who do it will delight.&lt;/p&gt;</description>
      <pubDate>Tue, 24 Jan 2012 13:48:38 -0800</pubDate>
      <guid>http://inessential.com/2012/01/24/fantastical_and_language_detection</guid>
      <dc:date>2012-01-24T13:48:38-08:00</dc:date>
    </item>
    <item>
      <title>Mac Toolbox Lives</title>
      <link>http://inessential.com/2012/01/20/mac_toolbox_lives</link>
      <description>&lt;p&gt;I enjoyed Gwynne Raskind’s two posts about the Mac Toolbox on Mike Ash’s blog.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://mikeash.com/pyblog/friday-qa-2012-01-13-the-mac-toolbox.html&quot;&gt;Friday Q&amp;amp;A 2012-01-13: The Mac Toolbox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://mikeash.com/pyblog/the-mac-toolbox-followup.html&quot;&gt;The Mac Toolbox: Followup&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During my rare spare cycles, I’ve been working on updating a Toolbox app which was Carbonized just enough to run on OS X back in 2001.&lt;/p&gt;

&lt;p&gt;It still runs now, yes, but years have passed, and many of the APIs it uses have been deprecated. I can’t even use Xcode 4 to build it — I have to boot back into Snow Leopard and use Xcode 3.&lt;/p&gt;

&lt;p&gt;The biggest challenge with this app, by far, is dealing with QuickDraw. I’ve already switched from Open Transport to sockets and switched from old date APIs to NSDate and related APIs. But QuickDraw is the black beast, since it’s so unlike Quartz.&lt;/p&gt;

&lt;p&gt;Among other things, it’s given me the opportunity to learn Core Text, which I hadn’t had a need for until now — but which I will need soon in my job.&lt;/p&gt;

&lt;p&gt;The code is a great reminder of how far we’ve come and how much easier many things are now. For example: this code has switch statements for which part of a scrollbar was hit. It calls WaitNextEvent. It uses cooperative threading (which meant using non-blocking sockets). It’s got lots of globals. It’s written in C (but using a very object-oriented style, with structs, function pointers, and callbacks).&lt;/p&gt;

&lt;p&gt;Eventually I’d like to make it a Cocoa app — but the first step is replacing deprecated APIs and being able to build on Lion using Xcode 4.x. (It still &lt;em&gt;runs&lt;/em&gt; on Lion, at least.)&lt;/p&gt;</description>
      <pubDate>Fri, 20 Jan 2012 15:43:03 -0800</pubDate>
      <guid>http://inessential.com/2012/01/20/mac_toolbox_lives</guid>
      <dc:date>2012-01-20T15:43:03-08:00</dc:date>
    </item>
    <item>
      <title>Bought xScope</title>
      <link>http://inessential.com/2012/01/19/bought_xscope</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://itunes.apple.com/us/app/xscope/id447661441?mt=12&quot;&gt;Must-have&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 19 Jan 2012 15:41:20 -0800</pubDate>
      <guid>http://inessential.com/2012/01/19/bought_xscope</guid>
      <dc:date>2012-01-19T15:41:20-08:00</dc:date>
    </item>
    <item>
      <title>Bad Writing of the Day</title>
      <link>http://inessential.com/2012/01/19/bad_writing_of_the_day</link>
      <description>&lt;p&gt;Toulouse Petit is a popular Seattle restaurant on lower Queen Anne that specializes in Cajun food. I recommend it.&lt;/p&gt;

&lt;p&gt;But &lt;a href=&quot;http://toulousepetit.com/&quot;&gt;check out their website&lt;/a&gt;. The first paragraph:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Toulouse as a dining, lounge and experiential possibility was inspired and built around notions larger and more expansive than any particular theme or region: unique and lusty cuisine that requires discipline and skill to prepare; texturally rich and intricate décor that can only have been designed and created by individuals who approach their craft with focus and commitment; and the general desire to deliver the various possibilities of dining, drinking and adult escapism to others in a way that is positive safe, friendly, values-driven… and which leaves everyone better off for having had the experience.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Not a word about how good is the gumbo — and plenty of words that make me want to never go there, ever.&lt;/p&gt;

&lt;p&gt;Luckily, I &lt;em&gt;have&lt;/em&gt; eaten there, and I know it’s good. So I’ll go again.&lt;/p&gt;</description>
      <pubDate>Thu, 19 Jan 2012 15:17:32 -0800</pubDate>
      <guid>http://inessential.com/2012/01/19/bad_writing_of_the_day</guid>
      <dc:date>2012-01-19T15:17:32-08:00</dc:date>
    </item>
    <item>
      <title>The Great French/Norwegian Snowman War</title>
      <link>http://inessential.com/2012/01/19/the_great_french_norwegian_snowman_war</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://www.myballard.com/2012/01/19/the-great-frenchnorwegian-snowman-war/&quot;&gt;Pictures are on My Ballard&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 19 Jan 2012 14:10:00 -0800</pubDate>
      <guid>http://inessential.com/2012/01/19/the_great_french_norwegian_snowman_war</guid>
      <dc:date>2012-01-19T14:10:00-08:00</dc:date>
    </item>
    <item>
      <title>Stephen Hargrove’s Blog Workflow</title>
      <link>http://inessential.com/2012/01/16/stephen_hargroves_blog_workflow</link>
      <description>&lt;p&gt;Stephen Hargrove &lt;a href=&quot;http://spiritofnine.com/posts/2012/01/16/site-rewrite-complete/&quot;&gt;wrote his own static blog generator&lt;/a&gt;: it uses Perl, Dropbox, AppleScript, Acorn, and Hazel — and it does a lot more than mine does.&lt;/p&gt;

&lt;p&gt;I dig how it works. Stephen writes:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;So basically, my workflow is now this:
1. Write a post.
2. Rename the post with the &quot;.markdown&quot; extension.
3. Check my iPhone when the notification comes in to see the post was successfully made.&lt;/p&gt;&lt;/blockquote&gt;</description>
      <pubDate>Mon, 16 Jan 2012 21:49:17 -0800</pubDate>
      <guid>http://inessential.com/2012/01/16/stephen_hargroves_blog_workflow</guid>
      <dc:date>2012-01-16T21:49:17-08:00</dc:date>
    </item>
    <item>
      <title>The Richter Scale: Kyle’s Fat Loss Program</title>
      <link>http://inessential.com/2012/01/16/the_richter_scale_kyles_fat_loss_pro</link>
      <description>&lt;p&gt;I bought &lt;a href=&quot;http://itunes.apple.com/us/app/slender/id493656257?mt=12&quot;&gt;Slender&lt;/a&gt; today. Not because everybody else did — they did — but because I’ve wanted something like this for a long time.&lt;/p&gt;</description>
      <pubDate>Mon, 16 Jan 2012 21:41:15 -0800</pubDate>
      <guid>http://inessential.com/2012/01/16/the_richter_scale_kyles_fat_loss_pro</guid>
      <dc:date>2012-01-16T21:41:15-08:00</dc:date>
    </item>
    <item>
      <title>jQuery Widgets + Throwing Stars</title>
      <link>http://inessential.com/2012/01/16/jquery_widgets_throwing_stars</link>
      <description>&lt;p&gt;My friend Faisal Jawdat is co-author of &lt;a href=&quot;http://ninjaui.com/&quot;&gt;Ninja UI&lt;/a&gt; — reusable widgets for web pages. Reusable widgets that are lethal.&lt;/p&gt;</description>
      <pubDate>Mon, 16 Jan 2012 21:38:22 -0800</pubDate>
      <guid>http://inessential.com/2012/01/16/jquery_widgets_throwing_stars</guid>
      <dc:date>2012-01-16T21:38:22-08:00</dc:date>
    </item>
    <item>
      <title>Things I Learned Doing Responsive Web Design</title>
      <link>http://inessential.com/2012/01/13/things_i_learned_doing_responsive_web_de</link>
      <description>&lt;p&gt;It looks like the web is being born again, again.&lt;/p&gt;

&lt;p&gt;Here are some things I’ve noticed about the web:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Designers have realized the need to design for mobile devices and tablets, and they’ve come up with &lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;responsive design&lt;/a&gt; rather than doing special mobile versions.&lt;/li&gt;
&lt;li&gt;CSS3 and HTML5 are gaining support, and they make possible some things that were difficult or practically impossible before.&lt;/li&gt;
&lt;li&gt;There’s an explosion of technologies: &lt;a href=&quot;http://lesscss.org/&quot;&gt;LESS&lt;/a&gt;, &lt;a href=&quot;http://sass-lang.com/&quot;&gt;Sass&lt;/a&gt;, &lt;a href=&quot;http://compass-style.org/&quot;&gt;Compass&lt;/a&gt;, and &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Bootstrap&lt;/a&gt; for CSS; &lt;a href=&quot;http://jashkenas.github.com/coffee-script/&quot;&gt;CoffeeScript&lt;/a&gt; for JavaScript; app frameworks such as &lt;a href=&quot;http://documentcloud.github.com/backbone/&quot;&gt;Backbone.js&lt;/a&gt; and &lt;a href=&quot;http://thinkvitamin.com/code/javascript/ember-js-a-more-lightweight-sproutcore/&quot;&gt;Ember.js&lt;/a&gt;; server-side technologies such as &lt;a href=&quot;http://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;, &lt;a href=&quot;http://www.sinatrarb.com/&quot;&gt;Sinatra&lt;/a&gt;, and &lt;a href=&quot;http://en.wikipedia.org/wiki/Nginx&quot;&gt;nginx&lt;/a&gt;; and interesting new databases such &lt;a href=&quot;http://code.google.com/p/leveldb/&quot;&gt;LevelDB&lt;/a&gt; and &lt;a href=&quot;http://couchdb.apache.org/&quot;&gt;CouchDB&lt;/a&gt;. And more — &lt;em&gt;plenty&lt;/em&gt; more.&lt;/li&gt;
&lt;li&gt;Web fonts are finally practical: see &lt;a href=&quot;https://typekit.com/&quot;&gt;TypeKit&lt;/a&gt;, &lt;a href=&quot;http://emigre.com/WebFonts&quot;&gt;Emigre Web Fonts&lt;/a&gt;, and &lt;a href=&quot;http://www.google.com/webfonts&quot;&gt;Google Web Fonts&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Flash is finally losing ground, and developers are replacing it with standards-based technology.&lt;/li&gt;
&lt;li&gt;There’s a renewed interest in design of all kinds — very much including web design. See &lt;a href=&quot;http://dribbble.com/&quot;&gt;Dribbble&lt;/a&gt; and &lt;a href=&quot;http://www.uiparade.com/&quot;&gt;Ui Parade&lt;/a&gt;. Native mobile app design ideas are coming to web design, and designers are experimenting.&lt;/li&gt;
&lt;li&gt;Deploying applications is cheaper than ever, thanks to &lt;a href=&quot;http://en.wikipedia.org/wiki/Virtualization&quot;&gt;virtualization&lt;/a&gt; and to &lt;a href=&quot;http://aws.amazon.com/&quot;&gt;Amazon Web Services&lt;/a&gt;, &lt;a href=&quot;http://www.heroku.com/&quot;&gt;Heroku&lt;/a&gt;, &lt;a href=&quot;http://www.windowsazure.com/en-us/&quot;&gt;Azure&lt;/a&gt;, &lt;a href=&quot;http://www.engineyard.com/&quot;&gt;Engine Yard&lt;/a&gt;, and others.&lt;/li&gt;
&lt;li&gt;Collaboration has gotten easier due to &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; and &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt; — and perhaps even more due to &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; and &lt;a href=&quot;https://bitbucket.org/&quot;&gt;Bitbucket&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;While the giant companies are busy rediscovering the America OnLine model of walled gardens, while Congress is debating the &lt;a href=&quot;http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act&quot;&gt;Stop Online Piracy Act&lt;/a&gt;, developers are remembering the web as the open garden of free speech. And they don’t want to lose it.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I haven’t done serious web work — HTML web work, that is — since I last worked on &lt;a href=&quot;http://en.wikipedia.org/wiki/UserLand_Software#Manila&quot;&gt;Manila&lt;/a&gt; 10 years ago.&lt;/p&gt;

&lt;p&gt;I’ve done some small things — the system that generates this blog, for instance — but I haven’t had the chance to use almost any of the newer web technology. I’ve never written a &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; app, used &lt;a href=&quot;http://jquery.com/&quot;&gt;JQuery&lt;/a&gt;, or deployed to a virtual server.&lt;/p&gt;

&lt;p&gt;So when I had the chance to re-do the websites for our company and main product, I was excited — because it meant I could try some of the new technologies and learn some things.&lt;/p&gt;

&lt;h4&gt;The plan: re-do four sites&lt;/h4&gt;

&lt;p&gt;I wanted to re-do SepiaLabs.com and Glassboard.com — their home pages and blogs. That’s two sites, but in practice it was four sites.&lt;/p&gt;

&lt;p&gt;I did them in this order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sepialabs.com/blog/&quot;&gt;SepiaLabs.com blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sepialabs.com/&quot;&gt;SepiaLabs.com home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://glassboard.com/&quot;&gt;Glassboard home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://glassboard.com/blog/&quot;&gt;Glassboard blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I had two main goals:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make them look at least credible.&lt;/li&gt;
&lt;li&gt;Make them work on tablets and mobile devices.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I don’t claim these as exemplars of design, and there are bugs and nits to fix — there’s &lt;em&gt;plenty&lt;/em&gt; of room for improvement. Tons of room.&lt;/p&gt;

&lt;p&gt;I’ll talk about #2 — responsive web design — and what I learned.&lt;/p&gt;

&lt;h4&gt;Breakpoints&lt;/h4&gt;

&lt;p&gt;Responsive design works because of the combination of CSS layout and CSS media-queries. You can change the layout for different sizes.&lt;/p&gt;

&lt;p&gt;When I first started, I created two breakpoints (where the layout changes): one for iPad-sized screens and one for phone-sized screens. It seemed logical.&lt;/p&gt;

&lt;p&gt;Later on I figured out a better way: create breakpoints when the layout breaks.&lt;/p&gt;

&lt;p&gt;I just shrank the width of my browser window until the design broke in some way, then I dealt with it, either by changing things or by creating a breakpoint and changing the layout at that point.&lt;/p&gt;

&lt;p&gt;This made more sense because I was working with the design rather than thinking about specific devices.&lt;/p&gt;

&lt;h4&gt;Layout&lt;/h4&gt;

&lt;p&gt;It was kind of like working with toothpaste.&lt;/p&gt;

&lt;p&gt;When the layout broke and I created a breakpoint, I worked from the top down to fix the layout. The more narrow the screen, the more the layout became vertical, and the more often I relied on centering to make things work. I also hid things (via &lt;code&gt;display: none&lt;/code&gt;) that were nice at bigger sizes but that weren’t needed at smaller sizes.&lt;/p&gt;

&lt;p&gt;That’s not the most sophisticated approach, but, given the time constraints and my goals, it worked.&lt;/p&gt;

&lt;h4&gt;Why not design for mobile first?&lt;/h4&gt;

&lt;p&gt;As I was finishing the sites I read some advice on the web: design for mobile first, then build up to the desktop size.&lt;/p&gt;

&lt;p&gt;I like this advice because it forces you to think about what’s utterly necessary from the start, and it makes sure the mobile size is not an afterthought or something done in a hurry when the project is due.&lt;/p&gt;

&lt;p&gt;That’s not what I did, but I think I’ll try it next time (whenever that may be).&lt;/p&gt;

&lt;h4&gt;CSS Transforms&lt;/h4&gt;

&lt;p&gt;Sometimes I needed to move something from where it would naturally be to somewhere nearby. Sometimes the traditional way of doing it would make for bad code: divs-within-divs-within-divs, or worse.&lt;/p&gt;

&lt;p&gt;One way to move something a little bit is to use &lt;code&gt;translate&lt;/code&gt;, &lt;code&gt;translateX&lt;/code&gt;, or &lt;code&gt;translateY&lt;/code&gt;. Simple.&lt;/p&gt;

&lt;p&gt;I kind of think of this as a bit of a cheat — certainly something to be used sparingly. But it worked.&lt;/p&gt;

&lt;h4&gt;Tools&lt;/h4&gt;

&lt;p&gt;I started by doing CSS by hand, just me and a text editor. I got about halfway through before I switched to Sass and Compass.&lt;/p&gt;

&lt;p&gt;Sass is wonderful. (I’m sure I’d like LESS no less.) Just having variables alone would be enough for me to love Sass, but it has a bunch more (functions!) besides.&lt;/p&gt;

&lt;p&gt;The way it works is that you launch a command-line script that watches for changes in your .scss file (the file that you edit). When it changes, it compiles a .css file. It happened so quickly that I never noticed the compile time.&lt;/p&gt;

&lt;h4&gt;JavaScript&lt;/h4&gt;

&lt;p&gt;Though the sites have some JavaScript, none of it is used to make the sites work at different screen sizes. I didn’t think it would be necessary, and it turned out I was right. (Using JavaScript for this would make the sites harder to maintain, I reasoned.)&lt;/p&gt;

&lt;h4&gt;Testing&lt;/h4&gt;

&lt;p&gt;Testing on my desktop was easy: I used Safari, Chrome, and Firefox. I also then uploaded the sites to a staging server and tested with IE 9 on Vista and Chromium on Ubuntu (via VMWare) and tested with an iPad and an iPhone. Other folks in the company tested with other browsers and with Android devices.&lt;/p&gt;

&lt;p&gt;But testing was absolutely necessary. Though adoption of CSS3 has progressed, this is not quite standards-based Eden.&lt;/p&gt;

&lt;h4&gt;Version control&lt;/h4&gt;

&lt;p&gt;I created a local Mercurial repository whenever I started a project. I have not yet taken this all the way. I should have a repository that other folks at the company can access, and I should have a deploy script for staging and live servers.&lt;/p&gt;

&lt;p&gt;This is made somewhat complicated by the blogs: they’re WordPress blogs, and I don’t know if changing a theme is scriptable. (Maybe it is. I haven’t looked yet.)&lt;/p&gt;

&lt;h4&gt;What have I not learned?&lt;/h4&gt;

&lt;p&gt;I’ve dipped my toes in: I’m a novice. At this point in learning new technology I try to get a rough idea of the size and shape of everything I haven’t learned yet. I also assume that I’ll look back to now and smack my forehead.&lt;/p&gt;

&lt;p&gt;But there’s an important thing I did learn: I learned that this work is &lt;em&gt;fun&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I was reminded of how the Cocoa world felt in 2002 — those days felt like early days again. There was so much excitement for what we could make and what would come next.&lt;/p&gt;

&lt;p&gt;And now it feels like that for the web. Again.&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jan 2012 20:09:26 -0800</pubDate>
      <guid>http://inessential.com/2012/01/13/things_i_learned_doing_responsive_web_de</guid>
      <dc:date>2012-01-13T20:09:26-08:00</dc:date>
    </item>
    <item>
      <title>‘Content’</title>
      <link>http://inessential.com/2012/01/12/content</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://drewb.org/post/15732011345/content-creep&quot;&gt;Drew Breunig&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;One day, if you’re working at a business with a “content” based model, you’ll wake up and find out you’re not hitting your revenue numbers.&lt;/p&gt;&lt;/blockquote&gt;</description>
      <pubDate>Thu, 12 Jan 2012 15:55:37 -0800</pubDate>
      <guid>http://inessential.com/2012/01/12/content</guid>
      <dc:date>2012-01-12T15:55:37-08:00</dc:date>
    </item>
    <item>
      <title>The Clutter Didn’t Kill the Love</title>
      <link>http://inessential.com/2012/01/12/the_clutter_didnt_kill_the_love</link>
      <description>&lt;p&gt;Running a search at Google was starting to feel like walking through a minefield. I’ve trained myself to be careful where I click, because I might step on a +1 explosive or get blown to bits by surprise double-chevrons.&lt;/p&gt;

&lt;p&gt;But I still used Google search, because I trusted the search. &lt;a href=&quot;http://searchengineland.com/examples-google-search-plus-drive-facebook-twitter-crazy-107554&quot;&gt;Now I don’t&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Losing trust of its users may be the worst thing a search engine can do.&lt;/p&gt;

&lt;p&gt;I’m trying &lt;a href=&quot;http://www.bing.com/&quot;&gt;Bing&lt;/a&gt;, which I never thought I’d do. It’s easy to switch: the search bar in Safari has a little menu where you can choose your search engine. You can switch back if you don’t like it.&lt;/p&gt;

&lt;p&gt;I don’t trust Bing yet, but I don’t have a reason to distrust it, either.&lt;/p&gt;</description>
      <pubDate>Thu, 12 Jan 2012 14:02:01 -0800</pubDate>
      <guid>http://inessential.com/2012/01/12/the_clutter_didnt_kill_the_love</guid>
      <dc:date>2012-01-12T14:02:01-08:00</dc:date>
    </item>
    <item>
      <title>Matt on the Open Web</title>
      <link>http://inessential.com/2012/01/11/matt_on_the_open_web</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://gigaom.com/2011/12/27/12-for-2012/3/&quot;&gt;Matt Mullenweg&lt;/a&gt;: “The Internet needs a strong, independent platform for those of us who don’t want to be at the mercy of someone else’s domain.”&lt;/p&gt;

&lt;p&gt;Also see &lt;a href=&quot;http://searchengineland.com/examples-google-search-plus-drive-facebook-twitter-crazy-107554&quot;&gt;how Google Plus is infecting search results&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 11 Jan 2012 13:38:29 -0800</pubDate>
      <guid>http://inessential.com/2012/01/11/matt_on_the_open_web</guid>
      <dc:date>2012-01-11T13:38:29-08:00</dc:date>
    </item>
    <item>
      <title>No ‘No’</title>
      <link>http://inessential.com/2012/01/09/no_no</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://collindonnell.com/blog/2012/1/9/learn-and-work-hard.html&quot;&gt;Collin Donnell&lt;/a&gt;: “No one could tell me ‘no’…”&lt;/p&gt;

&lt;p&gt;That’s the thing. If it weren’t for the web and software — if I had had to rely on somebody telling me “yes” to have a vocation — I’d still be a busboy.&lt;/p&gt;

&lt;p&gt;(I was a great busboy, by the way. Detail-oriented, fast, and good at keeping the coffee cups full. Seattle-ites will recognize some of the places I worked: Trattoria Mitchelli, McCormick and Schmick’s, A-Jay’s, and &lt;a href=&quot;http://www.anthonys.com/restaurants/detail/chinook-at-salmon-bay&quot;&gt;Chinook’s&lt;/a&gt;. Mostly Chinook’s. I loved coming home with actual cash every day.)&lt;/p&gt;</description>
      <pubDate>Mon, 09 Jan 2012 16:18:15 -0800</pubDate>
      <guid>http://inessential.com/2012/01/09/no_no</guid>
      <dc:date>2012-01-09T16:18:15-08:00</dc:date>
    </item>
  </channel>
</rss>

