<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>MarcoCarag.com</title>
    <atom:link href="http://marcocarag.com/feed.xml" rel="self" type="application/rss+xml"></atom:link>
    <link>http://marcocarag.com</link>
    <description>Marco Carag's blog about stuff he's into.</description>
    <pubDate>Fri, 17 Oct 2014 17:24:00 -0400</pubDate>
    <generator>Wintersmith - https://github.com/jnordberg/wintersmith</generator>
    <language>en</language>
    <item>
      <title>Feeling on Cue</title>
      <link>http://marcocarag.com/2014/10/17/feeling-on-cue/</link>
      <pubDate>Fri, 17 Oct 2014 17:24:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2014/10/17/feeling-on-cue/</guid>
      <author></author>
      <description>&lt;p&gt;The pain of losing someone close to you is a beast of a thing. It aches, pierces, smacks, numbs, shocks, and absolutely, completely crushes. But the worst part for me is that it sneaks. I never quite know when sadness will be jostled enough to completely spill over the brim and paralyze me for a time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-IscmevcID2g/VEGODHDP7oI/AAAAAAAAR_c/d24PiPDYLnc/w1216-h1620-no/P8301607.jpg?align=right&quot; alt=&quot;&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/6071289956755566210?pid=6071289956755566210&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;A year ago today, that which has been the dominant subject of my sparsely updated blog of late happened; my dad passed away. And even through the course of writing this post, I was a teary wreck for half of the first paragraph, and then stoic and nearly distracted from the topic the next. That I can’t completely control that can be hard to accept.&lt;/p&gt;
&lt;p&gt;When I went home for what would have been my dad’s 69th birthday last August, I thought the brim would spill over right from the get-go — that the whole weekend would have been painful and cathartic. It wasn’t… I found enough distractions in being home, with family, my 9-month-old nephew, and the new bustle of fresh development in my hometown. There was a brand new commuter train station, surrounded by new malls in previously empty fields, and high rise apartments — black spires piercing a sky that had been clear blue and empty for generations. Even my old neighbor’s house was torn down, replaced, and a new young family moved in. There wasn’t much to allow sentimentality to take root during the short two days I was there.&lt;/p&gt;
&lt;p&gt;I don’t know what I had in the way of expectations — probably very few of them at all. But I was hoping, after a difficult week leading up to it, that the weekend &lt;em&gt;would&lt;/em&gt; be emotional. And when it still wasn’t, leading up to returning to New York, I was frustrated. I was reminded that the triggers for my sadness are often unpredictable. I can’t just &lt;em&gt;plan&lt;/em&gt; to emote in a certain way at a certain time — humans don’t work that way, least of all me. Sometimes the right song will catch me in just the right way. A second listen may sound completely bland, instead.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-rh3zQ1qNncQ/VEGOAI1EH5I/AAAAAAAAR_c/3Si3NRqTKGo/w2160-h1620-no/P8301596.jpg?align=fullWidth&quot; alt=&quot;A worthwhile distraction in my nephew, with his mom, my sister.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/6071289905693335442?pid=6071289905693335442&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;In the time since, I’ve had my moments — some made sense, others didn’t. I realize in general that I need to achieve a certain level of isolation from the world — I’m sure meditation would be effective for controlling this were I to learn it. But the most important learning, that I &lt;em&gt;constantly&lt;/em&gt; have to repeat to myself, is to &lt;strong&gt;&lt;em&gt;allow&lt;/em&gt;&lt;/strong&gt; the moments to happen, as best I can wherever and whenever I am. And maybe even more importantly for me, to allow them to &lt;em&gt;not happen&lt;/em&gt; if they just aren’t going to. The problem I have with &lt;em&gt;not&lt;/em&gt; emoting in the way I want to is a tendency to try to force it, and instead being left with numbness. And that’s worse territory to be in. Not being hard on myself and trying to force it is a skill I’m learning very slowly, but it might be the most important one to learn.&lt;/p&gt;
&lt;p&gt;Anyway, I don’t have much more to say about this, and I’ve been a bit rambling anyway. But it was also satisfyingly cathartic after all. So at least I have that. Thanks for reading!&lt;/p&gt;
&lt;p&gt;Miss you, Dad. I’m grateful for the growth I’ve experienced in the year since you left us. I’ve apparently got a lot of growth left to do.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-OvFmyT7vcxg/VEGNlymrcYI/AAAAAAAAR_c/tGrmppjdCo8/w2236-h1490-no/IMG_1737.jpg?align=fullWidth&quot; alt=&quot;&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/6071289453050818946?pid=6071289453050818946&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Lessons from Dad: The Crab Feast</title>
      <link>http://marcocarag.com/2014/08/30/lessons-from-dad-the-crab-feast/</link>
      <pubDate>Sat, 30  Aug 2014 12:21:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2014/08/30/lessons-from-dad-the-crab-feast/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-GbBxEIp-tHM/VAH-T8X08lI/AAAAAAAAR2M/WNK_WE64zNU/w2236-h1578-no/img002.jpg?align=fullWidth&quot; alt=&quot;&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/6053398992739693138?pid=6053398992739693138&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;It’s my father’s birthday, the first since his passing last October. My mind’s been on him a lot lately, so I figured I’d write my next few posts about my and others’ memories of him. Here’s the first of those, from the cobwebbed archives of my brain.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My family over my lifetime used to (and still does) gather for relatively normal reasons - Christmas, Easter, and Thanksgiving - and sometimes for less normal reasons, like mahjong or silver anniversaries. What I remembered most of these times was not necessarily the details of the occasion, but the atmosphere of my house transformed by people…a din I wasn’t so much helping to create than I was just witnessing it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-SEaFeGJMnG0/VAH-VWQChjI/AAAAAAAAR18/l_DSGrwtbhY/w2236-h1600-no/img016.jpg?align=left&quot; alt=&quot;&quot; title=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053399016866219570?sort=1&amp;amp;pid=6053399016866219570&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;One fond summertime occasion I recall from my childhood was the grown ups in my family gathering over a pile of Chesapeake crabs, and doing what you’d expect: tearing into them while chatting the sun down. Us kids - my sister, brother, and cousin - sat at the coffee table with ears of corn - I presume because crabs terrified us (or at least me).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-IgKpPZkCUCg/VAH-TogdUqI/AAAAAAAAR2U/_DupvhMaBLs/w2236-h1568-no/img003.jpg?align=right&quot; alt=&quot;Dad and his mom laugh at a joke I probably didn&amp;#39;t understand.&quot; title=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053398987407184546?sort=1&amp;amp;pid=6053398987407184546&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sometimes the piano would be opened, or a guitar would come out. We’d play Super Mario Bros. 2. Always shells cracking open in the background. But definitely my strongest memory was seeing my Dad’s generation of the family around a table laughing about things I didn’t understand, whether it was because I was too young for the humor, or the jokes were told in Tagalog which I didn’t speak. It didn’t matter whether I understood - what I loved was that the grown-ups were liberated to be themselves, and not worried about me or my siblings (at least that I could tell…Mom might tell a different story).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-MhvZNmU7IAM/VAH-WKlaDgI/AAAAAAAAR2I/dhuTMtOwpO4/w2236-h1596-no/img017.jpg?align=fullWidth&quot; alt=&quot;My Lolo and Lola overseeing the whole thing.&quot; title=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053399030914485762?sort=1&amp;amp;pid=6053399030914485762&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;Memories of these crab feasts were some of the first that filled my brain in the days after my father suddenly passed. The event of his death triggered a distillation process that’s been ongoing ever since, and in the beginning, it was a coarse one; my entire present life just disintegrated in an instant and I felt as if I were 8-years-old again. In the months since, whenever I’ve found myself in a stressful spiral, the distillation spins up again. It’s not always a good thing - sometimes, the present stress &lt;em&gt;can’t&lt;/em&gt; be grated away so easily (I can’t just &lt;em&gt;move out&lt;/em&gt; of New York, is a frequent example), and the resulting cognitive dissonance is awfully numbing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-_APdMhAlnnw/VAH-XegyRXI/AAAAAAAAR2E/LEfTU1qNSds/w2236-h1588-no/img021.jpg?align=right&quot; alt=&quot;Us kids with corn.&quot; title=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053399053443679602?sort=1&amp;amp;pid=6053399053443679602&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;But when it polishes down my memories to ones like this, then it becomes a helpful guide. Sometimes, all you need to feel better is to fill a space with a comfortable din, made with friends and family. There may be crabs there, and you may have eaten them, or not. Just fill that space so that there’s no room for the stuff that doesn’t matter. It maybe took a couple of decades for me to realize, but I’m glad I know now that Dad had the right idea. I’ll do my best to take up that mantle.&lt;/p&gt;
&lt;p&gt;Happy birthday, Dad. We miss you.&lt;/p&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053398991575241954?sort=1&amp;pid=6053398991575241954&amp;oid=101625155591132408533&quot;&gt;
        &lt;img src=&quot;https://lh3.googleusercontent.com/-Lx2rOr5xS3Q/VAH-T4CM1OI/AAAAAAAAR2Q/-d-0AFF7ANs/w2236-h1560-no/img005.jpg&quot;
          alt=&quot;Photo of all the women of the family&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      The better half.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/photos/+MarcoCarag/albums/5728262585017161025/6053399006995743282?sort=1&amp;pid=6053399006995743282&amp;oid=101625155591132408533&quot;&gt;
        &lt;img src=&quot;https://lh5.googleusercontent.com/-xqgby4HWp-E/VAH-UxevAjI/AAAAAAAAR1w/aBQ3XzIkcTg/w2236-h1592-no/img007.jpg&quot;
          alt=&quot;Photo of all the men of the family&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      The boys.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Migrating Away from GitHub Pages and Changing Task Runners (just 'cause)</title>
      <link>http://marcocarag.com/2014/06/18/migrating-away-from-github-pages-and-changing-task-runners-just-cause/</link>
      <pubDate>Wed, 18 Jun 2014 14:57:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2014/06/18/migrating-away-from-github-pages-and-changing-task-runners-just-cause/</guid>
      <author></author>
      <description>&lt;p&gt;I’m changing my workflow again! Partly because the nature of my recent work — quickly spinning together apps and prototypes one after another — has gotten me interested in workflow options more than ever before. But also partly because my last change — to &lt;a href=&quot;http://marcocarag.com/2014/03/30/migrating-my-blog-s-content-to-wintersmith/&quot;&gt;Wintersmith from Jekyll&lt;/a&gt; — was already somewhat dissatisfying and behind the times. I’m talking about two things here: hosting on &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt;, and using &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; as my taskrunner.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;github-pages&quot;&gt;Github Pages&lt;/h2&gt;
&lt;p&gt;The first problem with GitHub Pages stems from my choice of moving away from Jekyll. Jekyll is the engine that GitHub uses to build GitHub Pages from source files. But moving away from Jekyll means that source content won’t automatically be compiled by GitHub. Not a huge obstacle, as the simple solution is to compile the site locally and commit the files to my repository. So I did just that, using Grunt to help that part of the workflow.&lt;/p&gt;
&lt;p&gt;This was immediately dissatisfying, however, because it resulted in the compiled content &lt;em&gt;and&lt;/em&gt; the source content commingling in the repository together. To make the situation even messier, in order to be served out by GitHub Pages, the compiled content needed to be at the root of the repository. This effectively was a regression from the Jekyll situation, where the source content could be committed normally, and GitHub would handle the page compilation (I actually &lt;a href=&quot;http://marcocarag.com/2013/05/22/jekyll-plugins-in-github-pages/&quot;&gt;moved away&lt;/a&gt; from that, as well, to accommodate plugins; though, leveraging Rake, I still separated source from compiled). But more importantly, it just felt gross to have both source and compiled content all mixed together at the same root and in the same repository.&lt;/p&gt;
&lt;h2 id=&quot;dns-issues&quot;&gt;DNS issues&lt;/h2&gt;
&lt;p&gt;The next problem I had was unexpected: GitHub was intentionally &lt;code&gt;302&lt;/code&gt; redirecting hits straight to my site. &lt;a href=&quot;http://helloanselm.com/2014/github-pages-redirect-performance/&quot;&gt;This blog post&lt;/a&gt; sums it up nicely; in short, as a means to better mitigate &lt;a href=&quot;http://en.wikipedia.org/wiki/Denial-of-service_attack&quot;&gt;DDoS attacks&lt;/a&gt; against their IPs, GitHub first filters against bot user agents before &lt;code&gt;302&lt;/code&gt;-ing plain ol’ humans to Pages. This is only true for Pages using &lt;code&gt;A&lt;/code&gt; DNS records to point custom domains straight at their server IPs.&lt;/p&gt;
&lt;p&gt;I could have used an &lt;code&gt;ALIAS&lt;/code&gt; record (pluses and minuses of which are well explained by my DNS provider, &lt;a href=&quot;http://blog.dnsimple.com/2014/01/why-alias-record/&quot;&gt;DNSimple&lt;/a&gt;) pointed at &lt;code&gt;jazzcrazed.github.io&lt;/code&gt; to handle the redirect issue, but the first repository-cleanliness problem had me turned off to Pages, anyway. It tasted a little sour to have my hosting situation dictate my content management and source control in such specific ways.&lt;/p&gt;
&lt;h2 id=&quot;enter-s3&quot;&gt;Enter S3&lt;/h2&gt;
&lt;p&gt;For several quick projects at my most recent job, we threw up frontend-only applications on our &lt;a href=&quot;http://aws.amazon.com/s3/&quot;&gt;Amazon S3 buckets&lt;/a&gt;. They were cheap, easy, and performant. It actually seemed close to an ideal match to my needs for this blog.&lt;/p&gt;
&lt;p&gt;I had long ago set up an AWS account that had been idling with the intention of using it more directly. Now that work had me using AWS quite regularly, I felt perfectly comfortable with moving to it. I was already generating my Wintersmith blog on my local machine — I even had created a bucket long ago named &lt;code&gt;marcocarag.com&lt;/code&gt; (I can’t remember why… I think to host assets?). The only missing piece was deployment.&lt;/p&gt;
&lt;h2 id=&quot;-also-enter-gulp-js&quot;&gt;…Also, Enter Gulp.js&lt;/h2&gt;
&lt;p&gt;I was all ready to add a Grunt plugin for S3, and create a deploy task — when I had the rug pulled out from under me, a good half a year late.&lt;/p&gt;
&lt;p&gt;Turns out, at the beginning of this year, several months before I migrated from Jekyll and Rake to Wintersmith and Grunt, a challenger to Grunt emerged named &lt;a href=&quot;http://gulpjs.com/&quot;&gt;Gulp.js&lt;/a&gt;. The reasons for its success since are well written about by now — and most all of them resonated with me, as well. Particularly the opinion, which I share, that Gulp.js code is simply more readable than Grunt’s JSON configuration.&lt;/p&gt;
&lt;p&gt;Since a major part of the existence of this blog is to &lt;em&gt;learn&lt;/em&gt; stuff, while on the track of migrating to a new host, I may as well spend some time playing with Gulp. So I converted my Grunt to Gulp, and in the process audited my tasks and cleaned them up slightly — and also added deployment to my build task. I’m no expert by any stretch of the imagination, and so it means something when I was able to change from Grunt to Gulp — and understand decently what was going on — in a fraction of the time it took to set up Grunt.&lt;/p&gt;
&lt;p&gt;Here’s the before:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;module.exports = &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;(grunt)&lt;/span&gt; {&lt;/span&gt;
  grunt.initConfig({
    cssmin: {
      production: {
        expand: &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;,
        cwd: &lt;span class=&quot;string&quot;&gt;'css'&lt;/span&gt;,
        src: [&lt;span class=&quot;string&quot;&gt;'*.css'&lt;/span&gt;],
        dest: &lt;span class=&quot;string&quot;&gt;'css'&lt;/span&gt;
      }
    },
    coffee: {
      preview: {
        sourceMap: &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;,
        files: {
          &lt;span class=&quot;string&quot;&gt;'contents/js/script.js'&lt;/span&gt;: [&lt;span class=&quot;string&quot;&gt;'contents/coffee/*.coffee'&lt;/span&gt;]
        }
      },
      production: {
        sourceMap: &lt;span class=&quot;literal&quot;&gt;false&lt;/span&gt;,
        files: {
          &lt;span class=&quot;string&quot;&gt;'contents/js/script.js'&lt;/span&gt;: [&lt;span class=&quot;string&quot;&gt;'contents/coffee/*.coffee'&lt;/span&gt;]
        }
      }
    },
    compass: {
      dist: {
        options: {
          sassDir: &lt;span class=&quot;string&quot;&gt;'contents/sass'&lt;/span&gt;,
          cssDir: &lt;span class=&quot;string&quot;&gt;'css'&lt;/span&gt;,
          environment: &lt;span class=&quot;string&quot;&gt;'production'&lt;/span&gt;
        }
      },
      dev: {
        options: {
          sassDir: &lt;span class=&quot;string&quot;&gt;'contents/sass'&lt;/span&gt;,
          cssDir: &lt;span class=&quot;string&quot;&gt;'contents/css'&lt;/span&gt;,
          environment: &lt;span class=&quot;string&quot;&gt;'development'&lt;/span&gt;
        }
      }
    },
    extend: {
      options: {
        deep: &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;,
        defaults: grunt.file.readJSON(&lt;span class=&quot;string&quot;&gt;'config.json'&lt;/span&gt;)
      },
      production: {
        files: {
          &lt;span class=&quot;string&quot;&gt;'./config-production.json'&lt;/span&gt;: [&lt;span class=&quot;string&quot;&gt;'./config-production-base.json'&lt;/span&gt;]
        }
      },
      preview: {
        files: {
          &lt;span class=&quot;string&quot;&gt;'./config-preview.json'&lt;/span&gt;: [&lt;span class=&quot;string&quot;&gt;'./config-preview-base.json'&lt;/span&gt;]
        }
      }
    },
    wintersmith: {
      production: {
        options: {
          config: &lt;span class=&quot;string&quot;&gt;'./config-production.json'&lt;/span&gt;
        }
      },
      preview: {
        options: {
          action: &lt;span class=&quot;string&quot;&gt;&quot;preview&quot;&lt;/span&gt;,
          config: &lt;span class=&quot;string&quot;&gt;'./config-preview.json'&lt;/span&gt;
        }
      }
    },
    watch: {
      sass: {
        files: [
          &lt;span class=&quot;string&quot;&gt;'contents/sass/**/*.scss'&lt;/span&gt;
        ],
        tasks: [
          &lt;span class=&quot;string&quot;&gt;'compass:dev'&lt;/span&gt;
        ]
      },
      coffeescript: {
        files: [
          &lt;span class=&quot;string&quot;&gt;'contents/coffee/**/*.coffee'&lt;/span&gt;
        ],
        tasks: [
          &lt;span class=&quot;string&quot;&gt;'coffee:preview'&lt;/span&gt;
        ]
      }
    },
    uglify: {
      production: {
        files: {
          &lt;span class=&quot;string&quot;&gt;'js/script.js'&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;'js/script.js'&lt;/span&gt;
        }
      }
    },
  });
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;&quot;grunt-extend&quot;&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;&quot;grunt-contrib-coffee&quot;&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;'grunt-contrib-cssmin'&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;'grunt-contrib-compass'&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;'grunt-wintersmith'&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;'grunt-contrib-watch'&lt;/span&gt;);
  grunt.loadNpmTasks(&lt;span class=&quot;string&quot;&gt;'grunt-contrib-uglify'&lt;/span&gt;);
  grunt.registerTask(&lt;span class=&quot;string&quot;&gt;'preview'&lt;/span&gt;, [
    &lt;span class=&quot;string&quot;&gt;'extend:preview'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'coffee:preview'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'compass:dev'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'wintersmith:preview'&lt;/span&gt;
  ]);
  grunt.registerTask(&lt;span class=&quot;string&quot;&gt;'buildProduction'&lt;/span&gt;, [
    &lt;span class=&quot;string&quot;&gt;'extend:production'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'coffee:production'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'compass:dist'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'wintersmith:production'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'uglify:production'&lt;/span&gt;,
    &lt;span class=&quot;string&quot;&gt;'cssmin:production'&lt;/span&gt;
  ]);
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the &lt;code&gt;gulpfile.js&lt;/code&gt; that replaced it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; gulp        = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; gutil       = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-util'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; cssmin      = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-cssmin'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; extend      = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-extend'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; coffee      = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-coffee'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; compass     = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-compass'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; wintersmith = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'run-wintersmith'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; clean       = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-clean'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; uglify      = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-uglify'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; path        = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'path'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; fs          = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'fs'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; awspublish  = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-awspublish'&lt;/span&gt;);

&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; BUILD_DIR = &lt;span class=&quot;string&quot;&gt;'build'&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; CONTENT_DIR = &lt;span class=&quot;string&quot;&gt;'contents'&lt;/span&gt;;
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; TEMPLATES_DIR = &lt;span class=&quot;string&quot;&gt;'templates'&lt;/span&gt;;

gulp.task(&lt;span class=&quot;string&quot;&gt;'clean'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; gulp.src(BUILD_DIR, { read: &lt;span class=&quot;literal&quot;&gt;false&lt;/span&gt; }).pipe(clean());
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'coffee'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  gulp.src(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/coffee/*.coffee'&lt;/span&gt;)
      .pipe(coffee({bare: &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;}).on(&lt;span class=&quot;string&quot;&gt;'error'&lt;/span&gt;, gutil.log))
      .pipe(gulp.dest(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/js/script.js'&lt;/span&gt;));
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'uglify'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; dir = CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/*.js'&lt;/span&gt;;
  gulp.src(dir)
      .pipe(uglify())
      .pipe(gulp.dest(dir))
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'compass'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  gulp.src(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/sass/*.scss'&lt;/span&gt;)
      .pipe(compass({
        project: path.join(__dirname, &lt;span class=&quot;string&quot;&gt;'/'&lt;/span&gt; + CONTENT_DIR),
        css: &lt;span class=&quot;string&quot;&gt;'css'&lt;/span&gt;,
        sass: &lt;span class=&quot;string&quot;&gt;'sass'&lt;/span&gt;
      }))
      .pipe(gulp.dest(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/css'&lt;/span&gt;));
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'cssmin'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; dir = CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/css'&lt;/span&gt;;
  gulp.src(dir + &lt;span class=&quot;string&quot;&gt;'/**/*.css'&lt;/span&gt;)
      .pipe(cssmin())
      .pipe(gulp.dest(dir));
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'set-production-config'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  console.log(&lt;span class=&quot;string&quot;&gt;'Creating production config'&lt;/span&gt;);
  gulp.src([&lt;span class=&quot;string&quot;&gt;'./config.json'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'./config-production-base.json'&lt;/span&gt;])
      .pipe(extend(&lt;span class=&quot;string&quot;&gt;'config-production.json'&lt;/span&gt;, &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;))
      .pipe(gulp.dest(&lt;span class=&quot;string&quot;&gt;'./'&lt;/span&gt;));

  console.log(&lt;span class=&quot;string&quot;&gt;'Setting production config for Wintersmith\'s use'&lt;/span&gt;);
  wintersmith.settings.configFile = &lt;span class=&quot;string&quot;&gt;'config-production.json'&lt;/span&gt;;
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'build-and-deploy'&lt;/span&gt;, [&lt;span class=&quot;string&quot;&gt;'clean'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'coffee'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'uglify'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'compass'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'cssmin'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'set-production-config'&lt;/span&gt;], &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  console.log(&lt;span class=&quot;string&quot;&gt;'Running Wintersmith build'&lt;/span&gt;);
  wintersmith.build(&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;// Log on successful build&lt;/span&gt;
    console.log(&lt;span class=&quot;string&quot;&gt;'Wintersmith has finished building!'&lt;/span&gt;);

    console.log(&lt;span class=&quot;string&quot;&gt;'Reading AWS config'&lt;/span&gt;);
    &lt;span class=&quot;comment&quot;&gt;// create a new publisher&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; publisher = awspublish.create(&lt;span class=&quot;built_in&quot;&gt;JSON&lt;/span&gt;.parse(fs.readFileSync(&lt;span class=&quot;string&quot;&gt;'./env.json'&lt;/span&gt;)));

    &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; gulp.src(&lt;span class=&quot;string&quot;&gt;'./'&lt;/span&gt; + BUILD_DIR + &lt;span class=&quot;string&quot;&gt;'/**'&lt;/span&gt;)
      .pipe(publisher.publish())

      &lt;span class=&quot;comment&quot;&gt;// create a cache file to speed up consecutive uploads&lt;/span&gt;
      .pipe(publisher.cache())

       &lt;span class=&quot;comment&quot;&gt;// print upload updates to console&lt;/span&gt;
      .pipe(awspublish.reporter());
  });
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;the-exploded-view&quot;&gt;The Exploded View&lt;/h2&gt;
&lt;p&gt;To publish and upload my site, I now run the command &lt;code&gt;gulp build-and-deploy&lt;/code&gt;. Here’s what goes on behind the scenes:&lt;/p&gt;
&lt;h3 id=&quot;cleaning-the-build-folder&quot;&gt;Cleaning the Build Folder&lt;/h3&gt;
&lt;p&gt;First, I run a &lt;code&gt;clean&lt;/code&gt; task using &lt;a href=&quot;https://www.npmjs.org/package/gulp-clean&quot;&gt;gulp-clean&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; clean = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-clean'&lt;/span&gt;);

gulp.task(&lt;span class=&quot;string&quot;&gt;'clean'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; gulp.src(BUILD_DIR, { read: &lt;span class=&quot;literal&quot;&gt;false&lt;/span&gt; }).pipe(clean());
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It’s referring to a global I defined earlier called &lt;code&gt;BUILD_DIR&lt;/code&gt;, which is simply a string of the folder name: &lt;code&gt;build&lt;/code&gt; (yay, no more compiled content mixed in with source!).&lt;/p&gt;
&lt;h3 id=&quot;compile-js&quot;&gt;Compile JS&lt;/h3&gt;
&lt;p&gt;Then, I compile and minify my coffeescript files (of which I actually have none presently, ‘cause I’m not doing any JavaScript on my blog — yet) using &lt;a href=&quot;https://www.npmjs.org/package/gulp-coffee&quot;&gt;gulp-coffee&lt;/a&gt; and &lt;a href=&quot;https://www.npmjs.org/package/gulp-uglify&quot;&gt;gulp-uglify&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; coffee = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-coffee'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; uglify = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-uglify'&lt;/span&gt;);

gulp.task(&lt;span class=&quot;string&quot;&gt;'coffee'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  gulp.src(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/coffee/*.coffee'&lt;/span&gt;)
      .pipe(coffee({bare: &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;}).on(&lt;span class=&quot;string&quot;&gt;'error'&lt;/span&gt;, gutil.log))
      .pipe(gulp.dest(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/js/script.js'&lt;/span&gt;));
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'uglify'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; dir = CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/*.js'&lt;/span&gt;;
  gulp.src(dir)
      .pipe(uglify())
      .pipe(gulp.dest(dir))
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These operate in another folder called &lt;code&gt;CONTENT_DIR&lt;/code&gt; (which maps to &lt;code&gt;/contents&lt;/code&gt;, the source folder Wintersmith uses by default). I want to do these operations on the source content so that Wintersmith copies it all wholesale with the HTML to &lt;code&gt;/build&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;compile-css&quot;&gt;Compile CSS&lt;/h3&gt;
&lt;p&gt;Next up, compilation and minification of CSS from &lt;code&gt;scss&lt;/code&gt; using &lt;a href=&quot;https://www.npmjs.org/package/gulp-compass&quot;&gt;gulp-compass&lt;/a&gt; and &lt;a href=&quot;https://www.npmjs.org/package/gulp-cssmin&quot;&gt;gulp-cssmin&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; cssmin = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-cssmin'&lt;/span&gt;);
&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; compass = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-compass'&lt;/span&gt;);

gulp.task(&lt;span class=&quot;string&quot;&gt;'compass'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  gulp.src(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/sass/*.scss'&lt;/span&gt;)
      .pipe(compass({
        project: path.join(__dirname, &lt;span class=&quot;string&quot;&gt;'/'&lt;/span&gt; + CONTENT_DIR),
        css: &lt;span class=&quot;string&quot;&gt;'css'&lt;/span&gt;,
        sass: &lt;span class=&quot;string&quot;&gt;'sass'&lt;/span&gt;
      }))
      .pipe(gulp.dest(CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/css'&lt;/span&gt;));
});

gulp.task(&lt;span class=&quot;string&quot;&gt;'cssmin'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; dir = CONTENT_DIR + &lt;span class=&quot;string&quot;&gt;'/css'&lt;/span&gt;;
  gulp.src(dir + &lt;span class=&quot;string&quot;&gt;'/**/*.css'&lt;/span&gt;)
      .pipe(cssmin())
      .pipe(gulp.dest(dir));
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Just like my coffeescript-&amp;gt;JavaScript, I’m compiling my &lt;code&gt;scss&lt;/code&gt; files to a &lt;code&gt;/css&lt;/code&gt; folder within &lt;code&gt;/contents&lt;/code&gt;, and then minifying it in the same folder. Wintersmith will handle copying the results to &lt;code&gt;/build&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;set-the-config-build-and-deploy&quot;&gt;Set the config, build, and deploy&lt;/h3&gt;
&lt;p&gt;There is no plugin specifically for Wintersmith and Gulp. Instead, there’s a module called &lt;a href=&quot;https://github.com/vanjacosic/run-wintersmith&quot;&gt;run-wintersmith&lt;/a&gt; the intention behind which is to remain agnostic to things like Gulp. Using it is rather simple, and I do so right in the &lt;code&gt;build-and-deploy&lt;/code&gt; task:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;gulp.task(&lt;span class=&quot;string&quot;&gt;'build-and-deploy'&lt;/span&gt;, [&lt;span class=&quot;string&quot;&gt;'clean'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'coffee'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'uglify'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'compass'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'cssmin'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'set-production-config'&lt;/span&gt;], &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  console.log(&lt;span class=&quot;string&quot;&gt;'Running Wintersmith build'&lt;/span&gt;);
  wintersmith.build(&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;// Log on successful build&lt;/span&gt;
    console.log(&lt;span class=&quot;string&quot;&gt;'Wintersmith has finished building!'&lt;/span&gt;);
  });
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;All of the earlier tasks are called using &lt;a href=&quot;https://github.com/gulpjs/gulp/blob/master/docs/API.md#deps&quot;&gt;dependencies&lt;/a&gt; — an array of the task names that need to be run, first.&lt;/p&gt;
&lt;p&gt;Within the task callback, there’s only one method that matters here: &lt;code&gt;wintersmith.build()&lt;/code&gt;. However, as you may have inferred from the dependencies, I have to set the config beforehand, as I had already set up Wintersmith to use a preview or production config depending on the task context:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; extend = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-extend'&lt;/span&gt;);

gulp.task(&lt;span class=&quot;string&quot;&gt;'set-production-config'&lt;/span&gt;, &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt; {&lt;/span&gt;
  console.log(&lt;span class=&quot;string&quot;&gt;'Creating production config'&lt;/span&gt;);
  gulp.src([&lt;span class=&quot;string&quot;&gt;'./config.json'&lt;/span&gt;, &lt;span class=&quot;string&quot;&gt;'./config-production-base.json'&lt;/span&gt;])
      .pipe(extend(&lt;span class=&quot;string&quot;&gt;'config-production.json'&lt;/span&gt;, &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;))
      .pipe(gulp.dest(&lt;span class=&quot;string&quot;&gt;'./'&lt;/span&gt;));

  console.log(&lt;span class=&quot;string&quot;&gt;'Setting production config for Wintersmith\'s use'&lt;/span&gt;);
  wintersmith.settings.configFile = &lt;span class=&quot;string&quot;&gt;'config-production.json'&lt;/span&gt;;
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’m leaning on a module called &lt;a href=&quot;https://www.npmjs.org/package/gulp-extend&quot;&gt;gulp-extend&lt;/a&gt; to merge and create a new config JSON file from the base &lt;code&gt;config.json&lt;/code&gt; and &lt;code&gt;config-production-base.json&lt;/code&gt;. Then, I set the config option on my instance of &lt;code&gt;run-wintersmith&lt;/code&gt; to point to &lt;code&gt;config-production-base.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now, &lt;code&gt;wintersmith.build()&lt;/code&gt; will work using my production options (specifically, to output to the &lt;code&gt;/build&lt;/code&gt; folder, and set locals that are production-specific).&lt;/p&gt;
&lt;h3 id=&quot;deployment&quot;&gt;Deployment&lt;/h3&gt;
&lt;p&gt;After configuring my &lt;code&gt;marcocarag.com&lt;/code&gt; and &lt;code&gt;www.marcocarag.com&lt;/code&gt; buckets as &lt;a href=&quot;https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html#root-domain-walkthrough-s3-tasks&quot;&gt;static websites&lt;/a&gt; on the AWS Management Console, I was all set to deploy &lt;code&gt;/build&lt;/code&gt;. First, I stored my AWS API credentials in a file called &lt;code&gt;env.json&lt;/code&gt; (which, &lt;strong&gt;crucially&lt;/strong&gt;, I made sure to add to my &lt;code&gt;.gitignore&lt;/code&gt; to prevent from open sourcing my keys):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;{
  &lt;span class=&quot;string&quot;&gt;&quot;key&quot;&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;&quot;[AWS KEY HERE]&quot;&lt;/span&gt;,
  &lt;span class=&quot;string&quot;&gt;&quot;secret&quot;&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;&quot;[AWS SECRET HERE]&quot;&lt;/span&gt;,
  &lt;span class=&quot;string&quot;&gt;&quot;bucket&quot;&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;&quot;marcocarag.com&quot;&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I installed a module called &lt;a href=&quot;https://www.npmjs.org/package/gulp-awspublish&quot;&gt;gulp-awspublish&lt;/a&gt;, and within the success callback of &lt;code&gt;wintersmith.build()&lt;/code&gt;, I loaded and parsed &lt;code&gt;env.json&lt;/code&gt; and sent &lt;code&gt;/build&lt;/code&gt; through &lt;code&gt;gulp-awspublish&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; awspublish  = &lt;span class=&quot;built_in&quot;&gt;require&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;'gulp-awspublish'&lt;/span&gt;);
...
  &lt;span class=&quot;comment&quot;&gt;// Inside of the build-and-deploy task&lt;/span&gt;
  console.log(&lt;span class=&quot;string&quot;&gt;'Running Wintersmith build'&lt;/span&gt;);
  wintersmith.build(&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;// Log on successful build&lt;/span&gt;
    console.log(&lt;span class=&quot;string&quot;&gt;'Wintersmith has finished building!'&lt;/span&gt;);

    console.log(&lt;span class=&quot;string&quot;&gt;'Reading AWS config'&lt;/span&gt;);
    &lt;span class=&quot;comment&quot;&gt;// create a new publisher&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;var&lt;/span&gt; publisher = awspublish.create(&lt;span class=&quot;built_in&quot;&gt;JSON&lt;/span&gt;.parse(fs.readFileSync(&lt;span class=&quot;string&quot;&gt;'./env.json'&lt;/span&gt;)));

    &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; gulp.src(&lt;span class=&quot;string&quot;&gt;'./'&lt;/span&gt; + BUILD_DIR + &lt;span class=&quot;string&quot;&gt;'/**'&lt;/span&gt;)
      .pipe(publisher.publish())

      &lt;span class=&quot;comment&quot;&gt;// create a cache file to speed up consecutive uploads&lt;/span&gt;
      .pipe(publisher.cache())

       &lt;span class=&quot;comment&quot;&gt;// print upload updates to console&lt;/span&gt;
      .pipe(awspublish.reporter());
  });
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;.pipe(publisher.cache())&lt;/code&gt; bit is pretty cool; it maintains a set of hashes to determine whether a file has changed and needs to be re-uploaded. Effectively, it makes subsequent deploys far, far faster by reducing the number of uploads to only the changed files.&lt;/p&gt;
&lt;h2 id=&quot;some-dns-changes&quot;&gt;Some DNS changes&lt;/h2&gt;
&lt;p&gt;Now, I had to do what I mentioned earlier — point a new &lt;code&gt;ALIAS&lt;/code&gt; record at my bucket.&lt;/p&gt;
&lt;p&gt;Coincidentally, I wasn’t totally thrilled with the management tools of my registrar (&lt;a href=&quot;http://jumpline.com/&quot;&gt;Jumpline&lt;/a&gt;, which I was grandfathered into as they apparently took over my old registrar whom I’d been using for the better part of a decade). So I went ahead and signed up for &lt;a href=&quot;http://dnsimple.com/&quot;&gt;DNSimple&lt;/a&gt; — again, an introduction brokered by work.&lt;/p&gt;
&lt;p&gt;I turned off the DNS management tools at Jumpline, and instead pointed my domain at DNSimple’s nameservers, recreated all of my records over there, and added a new &lt;code&gt;ALIAS&lt;/code&gt; record pointing at my bucket endpoint, &lt;code&gt;marcocarag.com.s3-website-us-east-1.amazonaws.com&lt;/code&gt;. I also added a &lt;code&gt;CNAME&lt;/code&gt; pointing &lt;code&gt;www.marcocarag.com&lt;/code&gt; to the “naked” &lt;code&gt;marcocarag.com&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;done-for-now&quot;&gt;Done…for now&lt;/h2&gt;
&lt;p&gt;And that’s that! My publishing workflow still has the same number of steps as before (building and committing), but there’s a (relatively) clean separation between the compiled site and the source. Perhaps the most fun part of the process was &lt;code&gt;git rm&lt;/code&gt;ing all of the now unnecessary compiled content and Grunt-related files and lines from the repository.&lt;/p&gt;
&lt;p&gt;The nicest thing, though, was bringing in Gulp. It’s easy enough to use that I want to do more with it. Most immediately, I should bring back my preview task, maybe with some &lt;code&gt;livereload&lt;/code&gt;ing.&lt;/p&gt;
&lt;p&gt;Ah, who am I kidding… Knowing me, I’ll probably switch to a whole different platform by the time I write another technical blog post. Whatever the case, I hope others find this useful, and please let me know of questions you have or things I should do to improve this workflow!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>When nostalgia hurts</title>
      <link>http://marcocarag.com/2014/05/03/when-nostalgia-hurts/</link>
      <pubDate>Sat, 03 May 2014 14:10:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2014/05/03/when-nostalgia-hurts/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/amtrak-window.jpg?align=fullWidth&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;I’ve always loved taking the Northeast Corridor Amtrak between Penn Station in New York and Union Station in DC. The trips served as time capsules, cutting through slow-moving, rarely-touched industrial parks, vine-encrusted warehousing, and humble mid-century exurbs. The sheer contrast with what I’m used to from either the destination or the origin made it easy to mentally escape via the view out the window. &lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I used to take these trains regularly, usually from the reverse perspective, as my way of going home for the holidays from college. Back then, a ticket on the Northeast Direct costed probably no more than $50 (now I was lucky to get one for $84, though on an admittedly much more comfortable train). I take it extremely rarely today, as my wife and I tend to drive down nowadays and use our car while in Virginia. But when I do, I’m back in the capsule again.&lt;/p&gt;
&lt;p&gt;Occasionally, I see sparks of change as the radius of urban development inevitably kisses the extremes of trackside landscape — a tan and brick condo seemingly cut straight from parts on Home Depot’s shelves is surrounded by weary looking (but probably structurally much sounder) row houses, a pristine CVS gleams across the street from the century-dulled headstones of a tiny cemetery. But for now, the trip looks very much the same out the window, and it puts me in fairly the same headspace.&lt;/p&gt;
&lt;p&gt;Though, the hue is far different this time. It’s now a &lt;em&gt;time&lt;/em&gt; capsule, woven inexorably in the context of &lt;em&gt;why&lt;/em&gt; I used to travel these tracks — to go home to my family, a staid institution in my life, not to live with my mind’s eye in a theme park capsule peering with rapt imagination for a brief few hours at human-less buildings speeding past.&lt;/p&gt;
&lt;p&gt;And now, I’m sitting on an Amtrak, rumbling as fast as meager American trackage will allow, to go home to something different but oh so painfully similar. I’m going home to celebrate my five-month-old nephew Sammy’s baptism. But to a home empty of my dad, who succumbed a month before Sammy was born to a heart attack just after putting his shoes and jacket on to pick my mom up from the Metro. It’s about all I can think of.&lt;/p&gt;
&lt;p&gt;As we rock comfortably to a stop in Wilmington, Delaware, a smattering of Amtrak stations away from DC, I realize how much I miss those capsules; my imagination through the Amtrak window inventing escapes away from the realities at either end of the trip. They don’t work nearly as well anymore.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/dad-006.jpg?align=centered&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Migrating my Blog's Content to Wintersmith</title>
      <link>http://marcocarag.com/2014/03/30/migrating-my-blog-s-content-to-wintersmith/</link>
      <pubDate>Sun, 30 Mar 2014 19:08:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2014/03/30/migrating-my-blog-s-content-to-wintersmith/</guid>
      <author></author>
      <description>&lt;p&gt;I know now that it takes an inordinate amount of effort for me to consistently update this blog. It’s not for want of content, but rather a problem of editing. To jump-start my stalled blogging in a sort of meta way, I’ve decided to migrate my blog from tried-and-true &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; to Node.js-based &lt;a href=&quot;http://wintersmith.io/&quot;&gt;Wintersmith&lt;/a&gt;. Because what’s better to blog about than the blog itself? (The answer’s “a lot of things,” and I promise to get to those later, but this’ll be interesting, too.)&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-is-and-why-wintersmith-&quot;&gt;What is and why Wintersmith?&lt;/h2&gt;
&lt;p&gt;For a long time, I’d been considering migrating to &lt;a href=&quot;http://www.middlemanapp.com/&quot;&gt;Middleman&lt;/a&gt; because I’d been enjoying it much more often than Jekyll for a variety of projects.&lt;/p&gt;
&lt;p&gt;But then a year passed, during which I’ve been a full-stack Rails developer (yes, I got a new job…one of those “things” I promise to get to later), and I figured I ought to try something completely new. Entre Wintersmith: a fairly mature &lt;a href=&quot;http://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;-based generator that I picked out of several alternatives mostly because it seemed relatively easy for it to accommodate the many customizations I had done in my Jekyll blog. The whole of front-end development had changed around me with JavaScript at its center while I tooled around day after day following &lt;a href=&quot;http://railscasts.com/&quot;&gt;Railscast tutorials&lt;/a&gt;, so there was a lot for me to learn — including using npm, Grunt.js, and Node in general.&lt;/p&gt;
&lt;p&gt;Migrating from Jekyll to Wintersmith was not completely straightforward, thanks to the aforementioned customizations. But the basics are a cinch, starting with…&lt;/p&gt;
&lt;h2 id=&quot;installing-wintersmith&quot;&gt;Installing Wintersmith&lt;/h2&gt;
&lt;p&gt;This was the easy part — and I’m going to skip over the installation of Node.js, because in my case it already was installed (thanks to Rails).&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/jnordberg/wintersmith&quot;&gt;Wintersmith docs&lt;/a&gt; cover this effort pretty well:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install wintersmith -g
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then I made a folder for my new blog, and initialized Wintersmith inside of it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mkdir marcocarag.com
$ wintersmith new marcocarag.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After that, I can start a preview server:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cd marcocarag.com
$ wintersmith preview
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And my new blog can be browsed at &lt;a href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt;. Wintersmith comes with a few demo templates, located under &lt;code&gt;/templates&lt;/code&gt;, and posts, each located in their own semantically named subdirectory under &lt;code&gt;contents/articles&lt;/code&gt; with an &lt;code&gt;index.md&lt;/code&gt; Markdown file inside. Adding a new post is a simple matter of creating another subdirectory under &lt;code&gt;articles&lt;/code&gt; with its own &lt;code&gt;index.md&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;Wintersmith’s operation is centered around &lt;code&gt;config.json&lt;/code&gt; in the root of its install, which — similar to Jekyll’s own config — contains parameters that are important to the blog. Specifically, a &lt;code&gt;locals&lt;/code&gt; object right up top that needs to be customized for my purposes:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;locals: {
  name: &lt;span class=&quot;string&quot;&gt;&quot;MarcoCarag.com&quot;&lt;/span&gt;,
  owner: &lt;span class=&quot;string&quot;&gt;&quot;Marco Carag&quot;&lt;/span&gt;,
  description: &lt;span class=&quot;string&quot;&gt;&quot;Marco Carag's blog about stuff he's into.&quot;&lt;/span&gt;,
  tagline: &lt;span class=&quot;string&quot;&gt;&quot;Expert ♥er of things&quot;&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And that is the five-minutes-to-blogging process that is the Wintersmith install.&lt;/p&gt;
&lt;h2 id=&quot;migrating-my-posts&quot;&gt;Migrating my posts&lt;/h2&gt;
&lt;p&gt;There are many ways to skin the cat of moving my Jekyll posts over, with the simplest being to rename them all to &lt;code&gt;index.md&lt;/code&gt; and copy them each to unique subfolders underneath &lt;code&gt;contents/articles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This didn’t sit completely well with me, and it’s not because it’s a little annoying to create a new subfolder for each post — I could easily make a script or task to one-line that piece every time (like &lt;code&gt;rake post &amp;lt;title&amp;gt;&lt;/code&gt; in my Jekyll blog).&lt;/p&gt;
&lt;p&gt;It was more because if I were to change how post files are organized, I’m not sure that I’d want it to be the Wintersmith default way. Seeing all of the post files with date and titles in one place just seemed more convenient. Also, if I could get it to work in Wintersmith, it’d mean I could copy my posts nearly intact from &lt;code&gt;_posts&lt;/code&gt; in Jekyll to &lt;code&gt;contents/articles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Fortunately, I didn’t have to figure it out… A fellow by the name of &lt;a href=&quot;http://www.andrewphilipclark.com/&quot;&gt;Andrew Clark&lt;/a&gt; (who’s own Wintersmith blog I leaned on heavily during this migration) modified Wintersmith to scrape a single folder for uniquely named Markdown files — exactly as I wanted. The key was in Wintersmith’s &lt;code&gt;plugin/paginator.coffee&lt;/code&gt;; specifically, this bit:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-coffeescript&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;title&quot;&gt;getArticles&lt;/span&gt; = &lt;span class=&quot;params&quot;&gt;(contents)&lt;/span&gt; -&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;# helper that returns a list of articles found in *contents*&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;# note that each article is assumed to have its own directory in the articles directory&lt;/span&gt;
  articles = contents[options.articles]._.directories.map &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;params&quot;&gt;(item)&lt;/span&gt; -&amp;gt;&lt;/span&gt; item.index
  articles.sort &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;params&quot;&gt;(a, b)&lt;/span&gt; -&amp;gt;&lt;/span&gt; b.date - a.date
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; articles
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Which Andrew turned into this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-coffeescript&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;title&quot;&gt;getArticles&lt;/span&gt; = &lt;span class=&quot;params&quot;&gt;(contents)&lt;/span&gt; -&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;# helper that returns a list of articles found in *contents*&lt;/span&gt;
  articles = []
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; key, value &lt;span class=&quot;keyword&quot;&gt;of&lt;/span&gt; contents[options.articles]
    articles.push value &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; value &lt;span class=&quot;keyword&quot;&gt;instanceof&lt;/span&gt; env.plugins.Page

  articles.sort &lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;params&quot;&gt;(a, b)&lt;/span&gt; -&amp;gt;&lt;/span&gt; b.date - a.date
  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; articles
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;…leveraging the filename instead of the directory names to create an array of &lt;code&gt;articles&lt;/code&gt; (which are actually &lt;code&gt;pages&lt;/code&gt;, which are actually my posts). And with that, I could literally copy all of my post files from &lt;code&gt;_posts/&lt;/code&gt; to &lt;code&gt;contents/articles&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;changing-permalinks&quot;&gt;Changing Permalinks&lt;/h2&gt;
&lt;p&gt;Wintersmith posts and pages by default get urls like &lt;code&gt;/this-is-my-post-title/index.html&lt;/code&gt;, thanks to the one-for-one mapping of the subfolders under &lt;code&gt;contents/articles&lt;/code&gt;. For my purposes, though, I need to reproduce the date and title-based permalinks of my Jekyll blog.&lt;/p&gt;
&lt;p&gt;Custom permalinks in Wintersmith are made possible via a &lt;a href=&quot;http://jekyllrb.com/docs/frontmatter/&quot;&gt;front-matter&lt;/a&gt; property called &lt;code&gt;filename&lt;/code&gt;, which instructs Wintersmith how to output the compiled HTML:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-python&quot;&gt;&lt;span class=&quot;comment&quot;&gt;# To yield a permalink of /2014/03/30/heres-my-post/index.html&lt;/span&gt;
filename: &lt;span class=&quot;string&quot;&gt;&quot;/:year/:month/:day/:title/index.html&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That’s good enough to reproduce the urls I want. But it kinda’ sucks to have to repeat it in every post. &lt;a href=&quot;http://www.andrewphilipclark.com/&quot;&gt;Andrew Clark&lt;/a&gt; to the rescue again. His post, &lt;a href=&quot;http://andrewphilipclark.com/2013/11/08/removing-the-boilerplate-from-wintersmith-blog-posts/&quot;&gt;How to remove the boilerplate from Wintersmith blog posts&lt;/a&gt;, was actually how I found his ever-helpful blog in the first place.&lt;/p&gt;
&lt;p&gt;In that post, he outlines a &lt;a href=&quot;https://github.com/acdlite/andrewphilipclark.com/blob/master/plugins/blog.coffee&quot;&gt;plugin&lt;/a&gt; that he wrote which enables a Wintersmith blog to set global &lt;code&gt;filename&lt;/code&gt; values, as well as templates:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-coffeescript&quot;&gt;&lt;span class=&quot;comment&quot;&gt;# plugins/blog.coffee&lt;/span&gt;
&lt;span class=&quot;built_in&quot;&gt;module&lt;/span&gt;.&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;title&quot;&gt;exports&lt;/span&gt; = &lt;span class=&quot;params&quot;&gt;(env, callback)&lt;/span&gt; -&amp;gt;&lt;/span&gt;

  defaults =
    &lt;span class=&quot;attribute&quot;&gt;postsDir&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;'articles'&lt;/span&gt; &lt;span class=&quot;comment&quot;&gt;# directory containing blog posts&lt;/span&gt;
    &lt;span class=&quot;attribute&quot;&gt;template&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;'post.jade'&lt;/span&gt;
    &lt;span class=&quot;attribute&quot;&gt;filenameTemplate&lt;/span&gt;: &lt;span class=&quot;string&quot;&gt;'/:year/:month/:day/:title/index.html'&lt;/span&gt; &lt;span class=&quot;comment&quot;&gt;# Here's the magic part&lt;/span&gt;

  &lt;span class=&quot;comment&quot;&gt;# assign defaults for any option not set in the config file&lt;/span&gt;
  options = env.config.blog &lt;span class=&quot;keyword&quot;&gt;or&lt;/span&gt; {}
  &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; key, value &lt;span class=&quot;keyword&quot;&gt;of&lt;/span&gt; defaults
    options[key] ?= defaults[key]

  &lt;span class=&quot;class&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;BlogpostPage&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;env&lt;/span&gt;.&lt;span class=&quot;title&quot;&gt;plugins&lt;/span&gt;.&lt;span class=&quot;title&quot;&gt;MarkdownPage&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;### DRYer subclass of MarkdownPage ###&lt;/span&gt;

    &lt;span class=&quot;attribute&quot;&gt;getTemplate&lt;/span&gt;:&lt;span class=&quot;function&quot;&gt; -&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;property&quot;&gt;@metadata&lt;/span&gt;.template &lt;span class=&quot;keyword&quot;&gt;or&lt;/span&gt; options.template &lt;span class=&quot;keyword&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;super&lt;/span&gt;()

    &lt;span class=&quot;attribute&quot;&gt;getFilenameTemplate&lt;/span&gt;:&lt;span class=&quot;function&quot;&gt; -&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;property&quot;&gt;@metadata&lt;/span&gt;.filenameTemplate &lt;span class=&quot;keyword&quot;&gt;or&lt;/span&gt; options.filenameTemplate &lt;span class=&quot;keyword&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;super&lt;/span&gt;()

  &lt;span class=&quot;comment&quot;&gt;# register the plugin&lt;/span&gt;
  prefix = &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; options.postsDir &lt;span class=&quot;keyword&quot;&gt;then&lt;/span&gt; options.postsDir + &lt;span class=&quot;string&quot;&gt;'/'&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;''&lt;/span&gt;
  env.registerContentPlugin &lt;span class=&quot;string&quot;&gt;'posts'&lt;/span&gt;, prefix + &lt;span class=&quot;string&quot;&gt;'**/*.*(markdown|mkd|md)'&lt;/span&gt;, BlogpostPage

  &lt;span class=&quot;comment&quot;&gt;# done!&lt;/span&gt;
  callback()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Saving that to &lt;code&gt;plugins/blog.coffee&lt;/code&gt; and including it in my Wintersmith blog by adding this snippet to &lt;code&gt;config.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;lang-javascript&quot;&gt;plugins: [
  &lt;span class=&quot;string&quot;&gt;&quot;./plugins/blog.coffee&quot;&lt;/span&gt;
]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;…saved me the effort of having to add &lt;code&gt;filename&lt;/code&gt; to every one of my posts.&lt;/p&gt;
&lt;p&gt;Unfortunately, there’s many reasons yet for me to inconveniently edit them all, as we’ll see in subsequent posts.&lt;/p&gt;
&lt;h2 id=&quot;up-next-templates-and-styles&quot;&gt;Up next: Templates and Styles&lt;/h2&gt;
&lt;p&gt;At this point, I have a working Wintersmith blog with all of the posts of my old Jekyll one, accessible at the same urls as the original. If I wanted, I could just run &lt;code&gt;$ wintersmith build&lt;/code&gt;, take the resulting output of &lt;code&gt;/build/*&lt;/code&gt; and replace my repo with its contents, push up to &lt;code&gt;master&lt;/code&gt; and be done.&lt;/p&gt;
&lt;p&gt;But as much as I actually really like the default templates that come with Wintersmith — in many ways, I prefer them to my own — I wasn’t prepared to get rid of my old design. If nothing else, it gives me an excuse to dig in even deeper into using Wintersmith and a Node-driven blog.&lt;/p&gt;
&lt;p&gt;So in my next post, I’ll go a layer up and talk about migrating my Jekyll blog’s layout templates and stylesheets, which comes with the added bonus of setting up &lt;a href=&quot;http://compass-style.org/&quot;&gt;Compass&lt;/a&gt; — not a default part of Wintersmith.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Jekyll Plugins in Github Pages</title>
      <link>http://marcocarag.com/2013/05/22/jekyll-plugins-in-github-pages/</link>
      <pubDate>Wed, 22 May 2013 22:08:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/05/22/jekyll-plugins-in-github-pages/</guid>
      <author></author>
      <description>&lt;p&gt;I thought it was high time I made some effort in cleaning up and 
streamlining my post composition workflow, while riding the wave of my
&lt;a href=&quot;http://marcocarag.com/2013/05/09/redesigned-ish&quot;&gt;small redesign&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The first thought I had was that I should damn well try to use
&lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt;,
as that’s what most sane people who use Jekyll (and
&lt;a href=&quot;http://www.middlemanapp.com/&quot;&gt;Middleman&lt;/a&gt; and other blog-friendly
generators) use. Along those lines, &lt;a href=&quot;http://www.jekyllbootstrap.com/&quot;&gt;Jekyll
Bootstrap&lt;/a&gt; comes with a handy &lt;a href=&quot;http://rake.rubyforge.org/&quot;&gt;Rake&lt;/a&gt;
task: &lt;code&gt;rake post title=&amp;quot;&amp;quot;&lt;/code&gt;, which will generate a Markdown file in
&lt;code&gt;_posts&lt;/code&gt; with the appropriate filename and YAML frontmatter. I made a
minor tweak to include the time, as I use that in my post layout.&lt;/p&gt;
&lt;p&gt;Next, I wanted to stop the copy pasta involved in rendering my silly 3D
shadow effect with images. So, I made a quick and dirty (I mean
&lt;em&gt;really&lt;/em&gt; dirty) &lt;a href=&quot;https://github.com/jazzcrazed/jazzcrazed.github.com/blob/source/_plugins/curved_shadow_image.rb&quot;&gt;Jekyll
plugin&lt;/a&gt;
that acts like a view partial, taking in the necessary parameters to
spit out my precious markup without me having to repeatedly type/paste said
markup. Works well enough, but I’m sure there’s refactoring
to come (like, I hate that I’m not passing my parameters as an
object).&lt;/p&gt;
&lt;p&gt;In order to use my plugin — and any plugin, for that matter
— I would have to adjust my workflow with &lt;a href=&quot;http://pages.github.com/&quot;&gt;Github Pages&lt;/a&gt;,
since it runs Jekyll in “safe mode” and doesn’t
execute plugins (basically, arbitrary &lt;a href=&quot;http://www.ruby-lang.org/en/]&quot;&gt;Ruby&lt;/a&gt;, so
that seems reasonable of them). This basically means I need to compile
the posts and pages on my local machine, rather than let Github Pages do
it. &lt;a href=&quot;http://ixti.net/software/2013/01/28/using-jekyll-plugins-on-github-pages.html&quot;&gt;ixti has a good post&lt;/a&gt;
on how to go about this in a way that isn’t too painful;
basically, I moved &lt;a href=&quot;https://github.com/jazzcrazed/jazzcrazed.github.com&quot;&gt;my repo’s&lt;/a&gt;
master branch to a new branch called “source”, made that my
default branch in Github, and used the &lt;code&gt;rake publish&lt;/code&gt; task ixti outlined to do a
Jekyll compilation, move the resulting &lt;code&gt;_site&lt;/code&gt; output to master, and
&lt;code&gt;force push&lt;/code&gt; it up, all in one command.&lt;/p&gt;
&lt;p&gt;Felt a little nervous doing a &lt;code&gt;force push&lt;/code&gt;, especially to master, but
that was just my conditioning after years of avoiding &lt;em&gt;exactly that.&lt;/em&gt;
Besides, my source branch is effectively the new master. And now I can
use &lt;a href=&quot;http://jekyllrb.com/docs/plugins/&quot;&gt;Jekyll plugins&lt;/a&gt; on my Github
Pages site!&lt;/p&gt;
&lt;p&gt;Some things I have to be careful about: it doesn’t matter
what’s pushed up to origin/source — the Jekyll compilation
that happens as a result of &lt;code&gt;rake publish&lt;/code&gt; will compile anything and
everything. So, I need to make sure I’m clean locally before
publishing; I basically ensure that &lt;code&gt;git status&lt;/code&gt; returns &lt;code&gt;nothing to
commit&lt;/code&gt; before I dare &lt;code&gt;rake publish&lt;/code&gt;. I could surely adjust the Rake
task to smooth this over — a Github WebHook feels like
the right place. That’ll be for a future iteration&amp;hellip;&lt;/p&gt;
&lt;p&gt;Hell, I’m just happy to be using Markdown!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>My New Daily Beater: The Seiko 5</title>
      <link>http://marcocarag.com/2013/05/20/my-new-daily-beater-the-seiko-5/</link>
      <pubDate>Mon, 20 May 2013 22:43:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/05/20/my-new-daily-beater-the-seiko-5/</guid>
      <author></author>
      <description>&lt;p&gt;I’ve been wanting for a while a more practical
daily-use watch. One that is clearly readable in light and dark, not
oversized, water resistant, and shows the date. I’m surprised it took me
this long to find all that in Seiko’s venerable “5” series.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-4TfAkg4dL7A/UZrgrYzFbRI/AAAAAAAANRs/P30lIrPKTtk/w1197-h898-no/P5170132.jpg?align=fullWidth&quot; alt=&quot;The Seiko SNKL07 and SNKL29&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5880259299481316626?pid=5880259299481316626&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;My &lt;a href=&quot;http://marcocarag.com/2012/04/23/parnis-manual-wind-watches&quot;&gt;Parnis pilot watch&lt;/a&gt;,
while running strong and looking great for a year, at 44mm was starting to feel
large on the wrist. My Hamilton at 42mm was not much better — and
thanks to its complicated automatic movement was thicker and heavier. I also
missed having a watch, like my old busted Garton, that would be readable for a
couple of hours in a dark movie theater — which neither of the
above could accomplish.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-I48erprXOlY/UZkS959BYCI/AAAAAAAANP4/lbTXD5Zl2fk/w1197-h898-no/P5089682.jpg&quot; alt=&quot;The Seiko box&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879751643246977058?pid=5879751643246977058&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;The “5” is a line of workhorse automatics by Japanese
horological titan, &lt;a href=&quot;http://en.wikipedia.org/wiki/Seiko&quot;&gt;Seiko&lt;/a&gt;, that
meet five criteria: unbreakable mainspring, shock resistance,
water resistance, automatic movement, and a day/date complication (according
to the &lt;a href=&quot;http://forums.watchuseek.com/f281/seiko-branding-dictionary-209014.html&quot;&gt;Seiko Branding Dictionary&lt;/a&gt;
on &lt;a href=&quot;http://watchuseek.com/&quot;&gt;WatchUSeek&lt;/a&gt;. They also frequently meet one
more: extremely long-lasting visible glow-in-the-dark lume. And a
seventh criteria: &lt;a href=&quot;https://www.google.com/search?q=seiko+5+site%3Aamazon.com&amp;amp;rlz=1C5CHFA_enUS503US505&amp;amp;aq=f&amp;amp;oq=seiko+5+site%3Aamazon.com&amp;amp;aqs=chrome.0.57.2809j0&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8#q=seiko+5&amp;amp;rlz=1C5CHFA_enUS503US505&amp;amp;source=univ&amp;amp;tbm=shop&amp;amp;tbo=u&amp;amp;sa=X&amp;amp;ei=0I2aUb7BF8Lv0gG15IDAAg&amp;amp;ved=0CC4Qsxg&amp;amp;bav=on.2,or.r_cp.r_qf.&amp;amp;bvm=bv.46751780,d.dmg&amp;amp;fp=6f14e6494ed75bed&amp;amp;biw=1440&amp;amp;bih=828&quot;&gt;often costing under $100&lt;/a&gt;. It’s a wonder I never happened
on these when I first sought a mechanical watch.&lt;/p&gt;
&lt;h2 id=&quot;a-dress-watch-in-the-snkl29&quot;&gt;A Dress Watch in the SNKL29&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-MIRNBlMM9gg/UZkTLEDBCKI/AAAAAAAANQQ/8EIfL9amc7k/w947-h710-no/P5089685.jpg?align=right&quot; alt=&quot;Most Seiko 5s, including the SNKL29, come with a steel bracelet that I&amp;#39;m fond of not using.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879751869294774434?pid=5879751869294774434&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;I made a decent excuse to get my first Seiko 5: I needed a good dress watch for
the occasional wedding. It had to sport a white or silver dial, and look good
with a black leather strap. The &lt;a href=&quot;http://www.amazon.com/gp/product/B0051IYQ06/ref=wms_ohs_product?ie=UTF8&amp;amp;psc=1&quot;&gt;SNKL29&lt;/a&gt;
at $64 was a bargain match. I loved the watch so much that I got it a
&lt;a href=&quot;http://www.amazon.com/gp/product/B001F0PTO6/ref=wms_ohs_product?ie=UTF8&amp;amp;psc=1&quot;&gt;brown leather strap&lt;/a&gt;
for near-daily use. It really sort of blew me away with how much watch it was
for the money. Just for the terrific day &lt;em&gt;and&lt;/em&gt; date display, and perfect 38mm
size, I’d be happy. But it sports a beautiful dial with lovely and classic
printed Roman numerals around a simple track of second markings that also sport
shockingly strong dot lume at the hours. The plongeur-style hands are
also exceedingly readable through the night. Literally — I could
still read the time in the darkness of extremely early morning (the few
times I was awake).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-0kskuCcKyI4/UZrodplTYaI/AAAAAAAANSk/Pfqne558zgA/w947-h710-no/P5170134.jpg&quot; alt=&quot;The Seiko SNKL07 and SNKL29. The 29 has an 18mm lug width, while the 07 has a 20mm.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5880267859561767330?pid=5880267859561767330&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;One important thing to note is that the SNKL29 sports an 18mm lug width
— &lt;em&gt;not&lt;/em&gt; the 19mm specified on its Amazon page. This was annoying
when I got my 19mm straps, as I had to shave a bit off of them to fit.
It’s also got a silver dial — not white. I actually think
white would feel dressier, but the silver has a nice sheen, and
there’s a kind of pinstripe guilloche-like effect inside the
seconds track.&lt;/p&gt;
&lt;h2 id=&quot;the-perfect-daily-beater-in-the-snkl07&quot;&gt;The Perfect Daily Beater in the SNKL07&lt;/h2&gt;
&lt;p&gt;Recently, I came across &lt;a href=&quot;http://i1056.photobucket.com/albums/t363/kmusky68/snkl09/DSCN02172.jpg&quot;&gt;this photo of the SNKL09&lt;/a&gt;
in &lt;a href=&quot;http://forums.watchuseek.com/f71/show-off-your-seiko-5-a-702513.html&quot;&gt;this addictive thread&lt;/a&gt;,
and fell in love. The big hour markers, the black dial mated with an army-green
canvas strap, the fire-red second hand&amp;hellip; I knew my days with just
one Seiko were numbered.&lt;/p&gt;
&lt;p&gt;I’d placed both the 09 and its Navy sibling, the SNKL07, into my Amazon
wishlist. The 07 dipped below $65 a few weeks ago, and I took the bait.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-jJ9-XLUKyGw/UZkTRAWfVoI/AAAAAAAANQg/8iVZixy8q_A/w949-h712-no/P5170136.jpg?align=right&quot; alt=&quot;The SNKL29 has a smaller, inset crown, while the SNKL07&amp;#39;s is sized and placed more traditionally at 3-o-clock.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879751971381925506?pid=5879751971381925506&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;Other than the obvious dial color difference, the 07 has a white instead
of red second-hand, and a white background to the day/date. This
actually makes it feel more formal in my mind than the military-like 09.
Compared to the dressier silver-faced 29, it’s around the same diameter,
but the crown is larger and placed more traditionally at the 3-o-clock.
On the 29, the tiny inset crown helps maintain a clean look on a dressy
watch, though it can be hard to access; on the 07, it’s more practically
sized and positioned for a much more general-use watch.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-pNk3U2Za5eo/UZkTd4HiKZI/AAAAAAAANRI/68eGlbfrBl0/w947-h710-no/P5180148.jpg&quot; alt=&quot;The SNKL07 on an olive nylon strap.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879752192510011794?pid=5879752192510011794&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;Despite not feeling as military as its black-dialed red-handed 09
brother, the 07 is still gorgeous. It looks good on my &lt;a href=&quot;http://marcocarag.com/2013/05/20/my-new-daily-beater-the-seiko-5/{%%20post_url%202012-07-29-nato-style-straps-rock%20%}&quot;&gt;olive-green NATO
strap&lt;/a&gt;, but like my 
Hamilton this deep navy watch looks great with light browns. With a 20mm lug
width, it can accommodate all of my existing straps, and I found its
ultimate pairing with my thick caramel-colored NATO leather strap.
It’s a bit weathered of a strap after accommodating the
harsh-edged 44mm Parnis for so long, but I’ve come to enjoy the
added texture. It’s literally become pretty much my daily watch.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-IAU8oQmYL_E/UZkTgCVHMYI/AAAAAAAANRQ/4OpamtUqPK4/w1197-h898-no/P5180149.jpg?align=fullWidth&quot; alt=&quot;The navy dial matches much better with caramel leather.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879752229611057538?pid=5879752229611057538&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;seiko-5-features&quot;&gt;Seiko 5 Features&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-qMDI8gN7pKU/UZkTbFtIAOI/AAAAAAAANRA/LIJusLbUQrU/w1198-h898-no/P5170139.jpg?align=right&quot; alt=&quot;38mm is clearly smaller than 44. The Parnis is slightly skinnier, though.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879752144617734370?pid=5879752144617734370&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;Both Seikos are perfectly sized at around 38mm in diameter, and
relatively narrow and light. They aren’t quite as skinny as my
Parnis, which is understandable as an automatic movement is typically
thicker than a manual-wind (also, undoubtedly the water resistance adds
girth thanks to things like gaskets), but they’re not thick
either, and are obviously narrower in diameter and look more proportional
on my skinny wrists.&lt;/p&gt;
&lt;p&gt;The movement in both is, like nearly all Seiko 5s, the &lt;a href=&quot;https://watchotaku.atlassian.net/wiki/display/swr/Seiko+7S26&quot;&gt;7S26&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It’s an automatic movement that is the result of decades of
polish and streamlining by Seiko to the point where they could churn
these out blind. It’s undecorated and purely utilitarian —
the print on the back claims 21 jewels, but none are really visible
through the transparent casebacks on my 07 or 29. Like all mechanical
watches, it’s not going to be as accurate as a quartz. But I
realize after years on mechanical watches that I don’t really
notice or care about the inaccuracy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-N6PuCDTggO4/UZkTU7d2iBI/AAAAAAAANQo/4-BQCcSp6vw/w946-h710-no/P5170137.jpg&quot; alt=&quot;Seiko&amp;#39;s workhorse automatic movement: the 7S26.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879752038790105106?pid=5879752038790105106&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;p&gt;The day/date function on both watches is about as good as it gets. First
off, you get the &lt;em&gt;day&lt;/em&gt;, while most watches are content with just the
date. Who cares that I usually always remember the day of the week?
There are less useful complications out in the watch world.
There’s also the option of Spanish rather than English days. Also,
“SAT” takes on a nice baby blue, while “SUN” is a
striking red.&lt;/p&gt;
&lt;p&gt;And the lume really deserves reiteration. I’m spoiled for
watch lume thanks to these Seikos, to the point that the lume on my other
watches make little sense in comparison. I wasn’t kidding that
these are readable after hours in the dark. And I don’t explicitly
“charge” these watches — this is just with the general office
light and sunlight they receive during a rather average (I think) workday.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-c0zhfroVh1g/UZr034E2lsI/AAAAAAAANTE/XK-z8htfAZc/w1437-h736-no/P5180146.jpg?align=fullWidth&quot; alt=&quot;The Seiko lume is plenty for me. Parnis&amp;#39; is barely there, which is too bad because it has an awesome dial.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5879752161044979890?pid=5879752161044979890&amp;amp;oid=101625155591132408533&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;other-5s-hellip-&quot;&gt;Other 5s&amp;hellip;&lt;/h2&gt;
&lt;p&gt;It’ll be hard to make the 07 my last Seiko. It might swing too closely to
the 09 (I’d sooner just have the second hand replaced for a red one than
also nab the 9). But at least half a dozen Seiko 5s from the amazing
&lt;a href=&quot;http://forums.watchuseek.com/f281/seiko-branding-dictionary-209014.html&quot;&gt;WatchUSeek thread&lt;/a&gt;
have made it to my wishlist or bookmarks. Like the sporty &lt;a href=&quot;http://forums.watchuseek.com/f71/show-off-your-seiko-5-a-702513-4.html#post5135874&quot;&gt;SNKK27K1&lt;/a&gt;,
which looks especially great on tan leather. Or the &lt;a href=&quot;http://forums.watchuseek.com/f71/show-off-your-seiko-5-a-702513-9.html#post5270388&quot;&gt;SNZJ63&lt;/a&gt;.
Or for ultra readability, the &lt;a href=&quot;http://forums.watchuseek.com/f21/understated-snk381-310921.html&quot;&gt;SNK381&lt;/a&gt;
seems hard to beat.&lt;/p&gt;
&lt;p&gt;And when it comes to a reliable and affordable automatic it seems hard to beat
the Seiko 5 series in general.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Problem with CSS viewport units for width?</title>
      <link>http://marcocarag.com/2013/05/10/problem-with-css-viewport-units-for-width/</link>
      <pubDate>Fri, 10 May 2013 09:07:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/05/10/problem-with-css-viewport-units-for-width/</guid>
      <author></author>
      <description>&lt;p&gt;
  Getting some unexpected behavior when using viewport units (&lt;code&gt;vw&lt;/code&gt;,
  &lt;code&gt;vh&lt;/code&gt;, &lt;code&gt;vmin&lt;/code&gt;, and &lt;code&gt;vmax&lt;/code&gt;) to size width in
  Webkit browsers:
&lt;/p&gt;

&lt;blockquote class=&quot;big quotation&quot;&gt;
  When elements have a fixed width set in a viewport unit, their parents no
  longer contain them properly in Webkit browsers.
&lt;/blockquote&gt;

&lt;p&gt;
  Open the following in Chrome (tried version 26 stable, and 29 Canary) or
  Safari 6, and compare to Firefox (tried in version 20):
&lt;/p&gt;

&lt;p&gt;&lt;pre class=&quot;codepen&quot; data-height=&quot;300&quot; data-type=&quot;result&quot; data-href=&quot;oABEh&quot; data-user=&quot;jazzcrazed&quot; data-safe=&quot;true&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;a href=&quot;http://codepen.io/jazzcrazed/pen/oABEh&quot;&gt;Check out this Pen!&lt;/a&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;script async src=&quot;http://codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;Here&amp;rsquo;s a screenshot of what that looks like in Chrome 26:&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/css-viewport-unit-width-chrome.png&quot;
      alt=&quot;Elements not containing their children properly when children have widths set in viewport units in Chrome&quot; /&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;Here&amp;rsquo;s the same thing in Firefox 20:&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/css-viewport-unit-width-ff.png&quot;
      alt=&quot;Elements containing their children properly when children have widths set in viewport units in Firefox&quot; /&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
  What I&amp;rsquo;d expect is the Firefox case, where the dark green parent element
  properly stretches to fit the width of its content (in this case, the child
  elements with fixed viewport-unit widths).
&lt;/p&gt;

&lt;p&gt;
  What do you think? A real bug? Certainly, one of them is wrong, and I&amp;rsquo;m
  pretty sure it&amp;rsquo;s Webkit, since the behavior with other types of units
  (&lt;code&gt;px&lt;/code&gt;, &lt;code&gt;em&lt;/code&gt;, &lt;code&gt;rem&lt;/code&gt;, etc.) is like the Firefox
  screenshot. I&amp;rsquo;ll have to check it out in IE10, which supports viewport
  units as well, &lt;a href=&quot;http://caniuse.com/viewport-units&quot;&gt;according to
    Can I Use&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  Additionally, it looks like there&amp;rsquo;s weirdness in the height, considering
  the lime green box in the Firefox screenshot is so much taller. Probably a
  difference in what each browser is considering the viewport. I&amp;rsquo;ll
  investigate that further.
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Redesigned-ish</title>
      <link>http://marcocarag.com/2013/05/09/redesigned-ish/</link>
      <pubDate>Thu, 09 May 2013 11:59:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/05/09/redesigned-ish/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-FR2Fvmap1UY/UYj7W5BXPvI/AAAAAAAAM9I/bXAMqwck1Vk/w1131-h848-no/P3107827.jpg?align=fullWidth&quot; alt=&quot;Tools on the floor of our unfinished apartment in Astoria.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5875222084587044594&quot;&gt;&lt;/p&gt;
&lt;p&gt;Been having the itch since the beginning of the year to make some changes to
my year-old site design. So I worked on it on-and-off for several days, and
launched it last week. In addition to some small clean-up, I&amp;rsquo;ve changed
some fonts and colors. I&amp;rsquo;d barely want to call it a
&amp;ldquo;redesign&amp;rdquo; at all, but there are some fun details I want to note.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  Colors were the biggest deal for me. I was so done with the white over deep
  navy, and the radioactive green &amp;mdash; it started to grate on me. So I
  sought a more neutral and calming palette. I still liked the letterpress feel,
  so I picked a cream color that could be like paper. And all of the type now
  has a subtle bevel.
&lt;/p&gt;

&lt;p&gt;
  The next obvious change are fonts. Picking new type probably took the most
  time. I didn&amp;rsquo;t change the logotype, because I still like
  &lt;a href=&quot;http://www.smeltery.net/fonts/audimat&quot;&gt;Audimat&lt;/a&gt; in the block
  cut-sort of effect. But, I didn&amp;rsquo;t like Audimat for the headers as I was
  using it before. So I replaced them with the rather popular
  &lt;a href=&quot;http://www.yanone.de/typedesign/kaffeesatz/&quot;&gt;Kaffeesatz&lt;/a&gt;,
  by Yanone &amp;mdash; an eminently readable sans-serif typeface with a whimsical
  kind of handwritten feeling. I picked it mostly because, outside of being
  beautifully treated by Yanone, it&amp;rsquo;s rather condensed, and I love its
  relatively large &lt;a href=&quot;http://en.wikipedia.org/wiki/X-height&quot;&gt;x-height&lt;/a&gt;.
  I&amp;rsquo;ve got a thing for big x-heights.
&lt;/p&gt;

&lt;p&gt;
  X-height and whimsy also led me to my choice of body font: a serif face by
  Oriol Esparraguera called
  &lt;a href=&quot;http://www.fontsquirrel.com/fonts/afta-serif&quot;&gt;Afta Serif&lt;/a&gt;. I was
  drawn to its visual rhythm; it&amp;rsquo;s fairly light in weight, and the curves
  are a bit squarish, which combined with the generous x-height emphasizes the
  whitespace and increases (in my opinion) readability. I also love the lowercase
  &amp;ldquo;k&amp;rdquo; letterform.
&lt;/p&gt;

&lt;p&gt;
  Finally, I tweaked the homepage layout to be single column, as I felt the old
  two columns were too claustrophobic and it felt nice to simplify.
&lt;/p&gt;

&lt;p&gt;
  I still need to do up the darn &lt;a href=&quot;/tags.html&quot;&gt;tags page&lt;/a&gt;, which
  I&amp;rsquo;d never touched to begin with since moving to Jekyll. Also, after
  spending &lt;a href=&quot;/2012/12/04/trust-in-styleguide&quot;&gt;an entire blog
    post preaching about it&lt;/a&gt;, I need to do a styleguide
  for this site.
&lt;/p&gt;

&lt;p&gt;
  But, this redesign-ish work has gotten my juices flowing. Maybe I&amp;rsquo;ll
  actually start posting more regularly!
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>April Had Some Great Dev Culture Content</title>
      <link>http://marcocarag.com/2013/05/01/april-had-some-great-dev-culture-content/</link>
      <pubDate>Wed, 01 May 2013 13:00:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/05/01/april-had-some-great-dev-culture-content/</guid>
      <author></author>
      <description>&lt;p&gt;Don&amp;rsquo;t know what it is about April, but there were a lot of great posts
and presentations about development team culture that really struck a chord
in me. Here are a few faves; take a look if you haven&amp;rsquo;t already.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;dl&gt;
  &lt;dt&gt;
    &lt;a href=&quot;http://minifesto.org/&quot; target=&quot;_blank&quot;&gt;
      Manifesto for Minimalist Software Engineers
    &lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    I noticed this &amp;ldquo;minifesto&amp;rdquo; by New York software developer,
    &lt;a href=&quot;http://pabloguevara.com/&quot; target=&quot;_blank&quot;&gt;Pablo Guevara&lt;/a&gt;, when
    it got Twitter buzz sometime in the early half of April, and have been
    mentally repeating parts of it in my head as a mantra ever since.
    &amp;ldquo;First do it, then do it right, then do it better.&amp;rdquo;
    &amp;ldquo;Fail fast, learn soon.&amp;rdquo; &amp;ldquo;Techincal Skill is the mastery
    of complexity, while &lt;em&gt;Creativity&lt;/em&gt; is the master of simplicity.&amp;rdquo;
  &lt;/dd&gt;
  &lt;dt&gt;
    &lt;a href=&quot;https://vimeo.com/64683454&quot; target=&quot;_blank&quot;&gt;
      Bacon is Bad For You
    &lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    This is a presentation done by the amazing Austin-based frontend developer,
    &lt;a href=&quot;http://www.garann.com/&quot; target=&quot;_blank&quot;&gt;Garann Means&lt;/a&gt;, for
    &lt;a href=&quot;http://devslovebacon.com/&quot; target=&quot;_blank&quot;&gt;BACON conference&lt;/a&gt; in
    which she voices her concerns about developer monoculture, and how it can
    deter people. Truly hit home for me as someone who&amp;rsquo;s felt alienated
    on certain dev teams, and who&amp;rsquo;s probably done his share of alienating
    on others. &lt;a href=&quot;https://speakerdeck.com/garann/bacon-is-bad-for-you&quot;
      _target=&quot;blank&quot;&gt;The slides&lt;/a&gt; speak terrifically for themselves if you
    can&amp;rsquo;t spare the full half hour for the video. Especially love the
    comparison between the &amp;ldquo;standard&amp;rdquo; working professional, versus
    the professional developer.
  &lt;/dd&gt;
  &lt;dt&gt;
    &lt;a href=&quot;https://medium.com/about/e2f5bfcf0434&quot; target=&quot;_blank&quot;&gt;
      Cultural Confusion
    &lt;/a&gt;
  &lt;/dt&gt;
  &lt;dd&gt;
    This is a post by Jason Stirman (Medium, Twitter) for
    &lt;a href=&quot;http://www.medium.com&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt; (a new-ish and
    beautiful kind-of-collaborative sort-of-blog&amp;hellip;It&amp;rsquo;s tricky to
    describe) in which he basically &lt;em&gt;nails it&lt;/em&gt; in terms of what&amp;rsquo;s
    important in forming a healthy culture: the people! There are a couple of
    great points he touches on: having a diversity of opinion, humility, making
    sure you actually &lt;em&gt;get along&lt;/em&gt; with the candidates you&amp;rsquo;re
    considering. It&amp;rsquo;s easy to ignore how important personality is when
    staring down a list of awesome work history and accomplishments on
    someone&amp;rsquo;s resum&amp;#233;. Love his &amp;ldquo;airport test&amp;rdquo; idea. And
    this:

    &lt;blockquote class=&quot;big quotation&quot;&gt;
      &amp;ldquo;The damage a bad culture fit can cause isn’t worth the productivity
      they can provide.&amp;rdquo;
    &lt;/blockquote&gt;
  &lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;
  I&amp;rsquo;ve been learning lately the sorts of things that matter to me in a
  work environment, and I realize I can distill it down to this: don&amp;rsquo;t
  hire or be a jerk. Be humble. Solicit feedback. Trust others, and work
  together.
&lt;/p&gt;

&lt;p&gt;
  Just like any community of people, it&amp;rsquo;s hard sometimes to remember that
  you&amp;rsquo;re all on the same team. Being individual is important, but be
  careful to avoid selfishness. It&amp;rsquo;s crazy how often I have to remind
  myself of that.
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>NY &amp;hearts; Boston</title>
      <link>http://marcocarag.com/2013/04/18/ny-hearts-boston/</link>
      <pubDate>Thu, 18 Apr 2013 14:19:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/04/18/ny-hearts-boston/</guid>
      <author></author>
      <description>&lt;figure&gt;
  &lt;a href=&quot;https://github.com/jazzcrazed/ny-hearts-boston&quot;&gt;
    &lt;svg width=&quot;292px&quot; height=&quot;306px&quot; viewBox=&quot;0 0 292 306&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; xmlns:sketch=&quot;http://www.bohemiancoding.com/sketch/ns&quot;&gt;
        &lt;title&gt;NY Hearts Boston &lt;/title&gt;
        &lt;description&gt;Created with Sketch (http://www.bohemiancoding.com/sketch)&lt;/description&gt;
        &lt;defs&gt;&lt;/defs&gt;
        &lt;g id=&quot;Page 1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
            &lt;g id=&quot;Group&quot; transform=&quot;translate(3.000000, -137.000000)&quot;&gt;
                &lt;path d=&quot;M271.718527,325.785328 C268.110231,329.193061 266.228147,337.355966 264.193212,343.785923 C262.158277,350.215881 257.687413,355.638502 253.498106,358.584188 C256.528627,360.730534 258.508156,362.958393 261.474432,367.479406 C264.440707,372.000419 266.839986,385.698593 271.547782,391.534613 C263.630312,397.799384 262.583416,403.789565 259.412548,412.354842 C256.241679,420.920119 245.230737,433.772251 229.470822,433.772251 C213.710907,433.772254 205.701381,424.231637 205.701381,424.231637 C204.620854,426.586845 199.50301,433.772251 189.989758,433.772251 C180.476506,433.772253 174.334188,426.063826 173.343561,419.793001 C177.353714,421.719675 182.8428,422.426691 188.570327,419.29117 C194.297854,416.15565 197.596135,409.23424 197.59247,402.384181 C197.59247,402.384181 197.596135,382.99766 197.59247,377.587086 C197.596135,368.845223 191.70433,361.477982 187.531624,358.727321 C193.985251,354.017121 197.817328,345.794974 197.596135,339.468799 C197.374941,333.142623 197.596135,320.126602 197.596135,313.83437 C197.596135,307.284382 193.011765,300.029678 187.078458,297.263161 C182.752801,295.246241 177.645858,295.372108 173.392284,297.616236 C174.742296,288.970961 182.791706,283.620987 189.764684,283.638716 C196.737663,283.656446 202.484808,287.110448 205.745577,293.084412 C212.430315,286.271325 221.101049,283.620987 228.886148,283.620987 C236.671246,283.620987 243.877707,285.717388 251.676388,293.227113 C259.475068,300.736838 260.441981,309.07574 262.383782,313.439783 C264.325583,317.803826 267.394478,322.724617 271.718527,325.785328 Z M228.263777,299.153876 C224.091443,299.153876 214.62083,301.057757 210.622496,308.592412 L210.622496,343.823555 C212.499713,346.75481 218.389675,353.001226 227.489059,353.001226 C231.824855,353.001226 237.196259,351.88581 240.974137,348.764341 C242.753493,347.446755 247.649357,342.480752 247.649357,335.910211 C247.649357,333.102215 246.882167,328.461424 244.764705,326.251678 C245.621153,324.925179 247.90143,320.566557 247.90143,316.481409 C247.90143,309.403485 240.974137,299.438436 228.263777,299.153876 Z M228.263777,364.392012 C224.091443,364.392012 214.62083,366.295892 210.622496,373.830547 L210.622496,409.061691 C212.499713,411.992945 218.389675,418.239361 227.489059,418.239361 C231.824855,418.239361 237.196259,417.123946 240.974137,414.002477 C242.753493,412.68489 247.649357,407.718887 247.649357,401.148346 C247.649357,398.34035 246.882167,393.699559 244.764705,391.489814 C245.621153,390.163315 247.90143,385.804693 247.90143,381.719544 C247.90143,374.641621 240.974137,364.676572 228.263777,364.392012 Z M228.263777,364.392012&quot; id=&quot;Path 1&quot; fill=&quot;#000000&quot;&gt;&lt;/path&gt;
                &lt;path d=&quot;M180.25611,414.957815 C186.81968,414.957826 191.036608,409.669609 191.152864,402.266611 C191.153382,401.458703 191.1539,401.033996 191.154705,400.551825 C191.157006,399.174479 191.161146,397.612712 191.167587,395.896799 C191.185988,390.99436 191.21911,385.838784 191.270637,380.672157 C191.373788,370.329129 186.807034,364.446698 176.520364,360.313206 L173.071084,358.927182 L176.481049,357.447071 C187.52639,352.652789 191.152864,347.093476 191.152863,337.181386 L191.152864,336.46252 L191.152864,334.382624 C191.152865,327.277195 191.152865,327.277195 191.152863,314.753745 C191.152861,302.196185 177.153595,297.548393 170.764958,308.814876 L169.088475,311.771386 L167.950196,308.568907 C164.201596,298.022444 168.185087,287.638981 175.953053,281.94581 C184.624256,275.590654 196.06007,275.118782 206.447813,284.103999 C216.704774,276.545471 230.970541,274.920687 242.849604,279.679073 C253.149352,283.804835 259.66367,290.475588 264.333851,299.721874 C264.991097,301.023125 265.534378,302.397186 266.281267,304.535562 C268.537976,310.996622 268.969825,312.086683 270.627201,314.790217 C272.928983,318.544915 276.074468,321.52492 280.60629,323.880104 L283.163387,325.209025 L280.647516,326.614431 C277.853192,328.175385 275.731833,331.031741 273.992922,335.214837 C273.293084,336.898357 272.674081,338.736509 272.007607,341.022535 C271.708899,342.047113 270.669917,345.815073 270.428951,346.639637 C269.816247,348.736258 269.302341,350.177404 268.712129,351.324611 C268.034746,352.641254 267.261542,353.855107 266.41044,354.96886 C265.260934,356.473107 264.027054,357.724857 262.787472,358.739086 C263.947613,359.797375 265.10481,361.03546 266.186239,362.44783 C268.209425,365.090155 269.73441,368.036265 270.55164,371.268899 C273.341815,382.305707 276.078503,388.228656 280.658092,390.834062 L283.053846,392.197047 L280.647062,393.540459 C275.41559,396.460549 270.508487,401.267169 268.791873,406.021104 C268.453098,406.959297 268.341825,407.281202 267.586688,409.487261 C265.276583,416.236004 263.722668,419.66462 260.426894,424.25311 C253.342413,434.116368 241.714891,440.613275 228.885169,440.613281 C222.775134,440.613285 217.067127,439.113458 211.91458,436.616301 C210.111649,435.742519 208.504379,434.805272 207.110724,433.86524 C206.879305,433.709146 206.666633,433.56192 206.473082,433.424783 C205.186121,434.578262 204.020444,435.480923 202.713947,436.323808 C198.953593,438.749794 194.792122,440.213401 190.340545,440.213398 C183.215819,440.213391 175.492122,436.858685 170.928421,430.593004 C166.574937,424.615938 165.136541,416.085075 167.955186,408.528078 L169.40543,404.639866 L170.864634,408.524725 C170.926293,408.688877 171.07926,409.026621 171.330581,409.478669 C171.759279,410.249763 172.30081,411.023114 172.959244,411.741414 C174.812765,413.763457 177.199968,414.957811 180.25611,414.957815 Z M201.029811,433.713345 C202.192778,432.963059 203.231441,432.158753 204.128723,431.356852 C204.439962,431.078697 204.710138,430.822028 204.937227,430.593975 C205.067798,430.46285 206.190102,429.224757 206.190102,429.224757 L207.337235,430.186988 C207.38993,430.231189 207.51109,430.328098 207.698205,430.470216 C208.021215,430.715549 208.405292,430.991227 208.847899,431.28977 C210.12388,432.150429 211.604585,433.013872 213.269438,433.820735 C218.024857,436.125427 223.281702,437.506707 228.885167,437.506703 C240.670639,437.506698 251.380654,431.52245 257.903731,422.440798 C260.983133,418.15355 262.427705,414.966192 264.647532,408.481184 C265.409671,406.25467 265.52268,405.927743 265.869952,404.966018 C267.63802,400.069589 272.041772,395.372241 277.036581,392.098625 C272.733173,388.552863 270.145353,382.336763 267.539816,372.030307 C266.833788,369.237544 265.501259,366.663238 263.719669,364.336443 C262.751678,363.072225 261.713454,361.962619 260.677824,361.0196 C260.318172,360.692109 259.98611,360.409943 259.690851,360.174447 C259.520568,360.038631 259.405241,359.951859 259.3541,359.915404 L257.377081,358.506081 L259.485297,357.301829 C259.528785,357.276988 259.639623,357.208226 259.808187,357.094183 C260.106663,356.892246 260.443994,356.642154 260.810635,356.342604 C261.873743,355.474031 262.942346,354.390842 263.942072,353.082598 C264.683614,352.112214 265.358034,351.053444 265.949702,349.903406 C266.426768,348.976124 266.885909,347.688554 267.447092,345.768236 C267.679282,344.973702 268.717912,341.207014 269.025193,340.153034 C269.720957,337.766542 270.37394,335.827485 271.124328,334.022364 C272.674089,330.294283 274.552673,327.406738 276.974088,325.388314 C273.071675,322.970462 270.176507,319.99897 267.97869,316.413861 C266.155953,313.440588 265.691498,312.268221 263.348438,305.559935 C262.643271,303.541011 262.141501,302.271939 261.560909,301.122452 C257.208761,292.505825 251.228484,286.381938 241.694435,282.562892 C230.424199,278.048383 216.765096,279.804736 207.340108,287.334385 L206.294168,288.16999 L205.313372,287.258802 C195.848542,278.465705 185.60964,278.720052 177.78947,284.451483 C171.825765,288.822304 168.440049,296.385563 170.025219,304.435601 C178.715152,294.067636 194.259438,300.309472 194.259441,314.753744 L194.259442,334.382625 L194.259442,336.462521 L194.259441,336.999273 C194.259442,347.323471 190.651399,353.768346 180.823174,358.831169 C190.077808,363.407354 194.482613,370.119233 194.37706,380.703138 C194.325603,385.862814 194.292521,391.012081 194.274143,395.908459 C194.267711,397.622149 194.263576,399.181766 194.261279,400.557014 C194.260475,401.038262 194.259958,401.46206 194.259671,401.824623 C194.118422,411.273471 188.703197,418.064407 180.256104,418.064393 C176.267682,418.064387 173.078249,416.468666 170.669207,413.840593 C170.407671,413.555278 170.164942,413.269967 169.940357,412.987469 C168.919697,418.604973 170.314342,424.473335 173.439518,428.76401 C177.372594,434.163883 184.148244,437.106814 190.340548,437.10682 C194.130545,437.106823 197.734547,435.83928 201.029811,433.713345 Z M201.029811,433.713345&quot; id=&quot;Path&quot; fill=&quot;#000000&quot;&gt;&lt;/path&gt;
                &lt;path d=&quot;M215.442156,308.034106 C216.103533,307.259518 216.928269,306.501549 217.929806,305.805774 C220.666634,303.904477 224.237306,302.787345 228.657195,302.787345 C237.731337,302.787345 244.014161,309.785041 244.093692,316.600136 C244.071668,320.688381 242.657544,323.831835 240.279051,325.977613 C242.62053,328.519591 244.051632,331.665452 244.051632,335.374748 C244.051632,340.757594 241.369105,344.701438 237.013864,347.097987 C234.156028,348.670562 230.662779,349.471718 228.230846,349.471718 C224.185243,349.471718 220.802459,348.424066 218.097617,346.657363 C217.122435,346.02041 216.299356,345.329576 215.620201,344.625818 C215.180166,344.169842 214.867865,343.781087 214.674058,343.496936 L214.132959,342.703599 L214.132851,341.742344 L214.129384,310.826675 L214.129293,310.012 L214.527608,309.30204 C214.7098,308.977298 215.009258,308.541106 215.442156,308.034106 Z M228.230846,346.363844 C230.715316,346.363844 240.953482,344.71835 240.953482,335.374748 C240.953482,328.662267 234.737264,325.495462 234.737264,325.495462 C234.737264,325.495462 240.953482,324.399057 240.995587,316.583341 C240.953482,312.995932 237.320316,305.895219 228.657195,305.895219 C219.994073,305.895219 217.227535,310.826325 217.227535,310.826325 L217.231001,341.741995 C217.231001,341.741995 220.383359,346.363844 228.230846,346.363844 Z M215.442156,373.299457 C216.103533,372.524869 216.928269,371.766901 217.929806,371.071125 C220.666634,369.169828 224.237306,368.052696 228.657195,368.052696 C237.731337,368.052696 244.014161,375.050392 244.093692,381.865487 C244.071668,385.953732 242.657544,389.097187 240.279051,391.242964 C242.62053,393.784942 244.051632,396.930803 244.051632,400.6401 C244.051632,406.022946 241.369105,409.966789 237.013864,412.363338 C234.156028,413.935913 230.662779,414.737069 228.230846,414.737069 C224.185243,414.737069 220.802459,413.689418 218.097617,411.922714 C217.122435,411.285761 216.299356,410.594928 215.620201,409.89117 C215.180166,409.435193 214.867865,409.046439 214.674058,408.762287 L214.132959,407.968951 L214.132851,407.007696 L214.129384,376.092027 L214.129293,375.277352 L214.527608,374.567392 C214.7098,374.24265 215.009258,373.806457 215.442156,373.299457 Z M228.230846,411.629196 C230.715316,411.629196 240.953482,409.983702 240.953482,400.6401 C240.953482,393.927618 234.737264,390.760814 234.737264,390.760814 C234.737264,390.760814 240.953482,389.664408 240.995587,381.848692 C240.953482,378.261283 237.320316,371.16057 228.657195,371.16057 C219.994073,371.16057 217.227535,376.091677 217.227535,376.091677 L217.231001,407.007346 C217.231001,407.007346 220.383359,411.629196 228.230846,411.629196 Z M228.230846,411.629196&quot; id=&quot;Path 14&quot; fill=&quot;#000000&quot;&gt;&lt;/path&gt;
                &lt;path d=&quot;M54.8201919,417.183477 C55.5201919,416.793435 57.7601919,415.441292 58.3481919,414.921237 C59.0481919,414.271168 63.9201919,410.448763 64.8721918,409.20063 C65.3481918,408.602567 69.9961918,402.985972 69.9961918,402.985972 C69.9961918,402.985972 74.4201917,407.692471 75.2041917,408.498556 C76.5481917,409.824697 77.8081917,410.682788 78.7881917,411.410865 C81.6441917,413.569094 84.5561917,415.493298 87.8321916,417.365496 C90.1281916,418.691637 94.0761916,419.913766 96.1761915,420.199797 C96.7641915,420.277805 98.3321915,420.485827 99.0321915,420.589838 C107.012191,421.733959 117.344191,418.509617 123.196191,415.129259 C129.664191,411.410865 134.116191,405.924283 137.560191,399.059555 C138.316191,397.525393 140.052191,393.44296 140.388191,392.428852 C142.208191,386.994276 142.628191,380.129548 142.096191,373.342829 C141.284191,362.785709 136.748191,351.94256 131.904191,345.389865 C130.924191,344.089727 128.684191,340.293325 125.968191,337.016977 C116.924191,326.199831 103.540191,312.730402 90.0721916,304.201498 C86.2921916,301.809245 71.8161918,293.878404 71.8161918,293.878404 C71.8161918,293.878404 56.7241919,302.303297 54.3161919,303.785454 C39.0561921,313.250458 22.2001923,326.66788 12.7921924,341.827487 C9.51619238,347.106047 5.73619242,352.436612 3.58019244,358.885296 C2.57219245,361.84961 1.67619246,364.39788 0.976192466,367.70023 C-0.675807517,375.475055 -0.171807522,384.628025 2.04019246,391.882794 C3.02019245,395.107136 4.47619243,398.565503 5.87619242,401.321795 C10.9441924,411.17684 20.3521923,417.651526 32.7281922,420.173794 C34.6881921,420.563835 36.5641921,420.849865 38.3841921,420.953877 C44.236192,421.343918 49.528192,420.199797 54.8201919,417.183477 Z M54.8201919,417.183477&quot; id=&quot;heart&quot; fill=&quot;#EE2722&quot; transform=&quot;translate(71.155121, 357.452986) scale(1, -1) translate(-71.155121, -357.452986) &quot;&gt;&lt;/path&gt;
                &lt;path d=&quot;M199.64206,120.464531 C188.30206,119.32041 176.68206,120.568542 165.00606,119.970478 C161.14206,119.788459 156.97006,120.906578 153.022061,120.282512 C151.146061,119.996481 149.214061,119.684448 147.870061,118.696343 C144.706061,116.408101 144.034061,110.27145 146.358061,106.68307 C150.054061,100.988466 159.40606,104.576846 166.57406,103.068687 C168.19806,102.730651 169.79406,101.742546 171.02606,100.93646 C171.86606,100.390403 172.95806,99.8443447 173.71406,99.0382592 C174.55406,97.8681351 175.14206,97.1920635 175.75806,96.2559642 C177.85806,92.9536141 179.73406,89.3652336 182.05806,86.3229111 C184.29806,83.3845996 185.92206,79.9002301 187.88206,76.7798993 C191.66206,70.7732625 195.55406,64.8966394 199.05406,58.629975 C200.95806,55.1976111 203.50606,52.0252748 205.43806,48.5149026 C205.97006,47.5528006 206.86606,46.7207124 207.17406,45.5245856 C207.48206,44.3544615 207.25806,42.9763154 207.17406,41.7281831 C206.92206,38.4258329 207.20206,34.7074387 206.95006,31.249072 C206.61406,26.9846199 207.25806,22.9541926 204.85006,20.6919528 C202.47006,18.4557157 197.68206,18.3517046 193.62206,18.8717598 C186.87406,19.7298508 180.82606,14.8413325 183.37406,8.1326212 C183.76606,7.04050541 184.21406,5.66235929 185.13806,5.09029864 C185.53006,4.83027107 185.72606,4.41422697 186.09006,4.12819664 C187.09806,3.27010566 188.80606,2.38601193 190.40206,2.17798987 C194.35006,1.68393749 200.09006,2.41201469 203.67406,2.85406155 C206.02606,3.16609464 208.23806,2.80205604 210.42206,2.95807258 C219.15806,3.6081415 228.53806,2.98407534 237.13406,2.17798987 C238.47806,2.07397885 241.72606,2.2820009 244.07806,2.4640202 C245.39406,2.85406155 246.90606,3.58213875 247.88606,4.67425453 C250.85406,7.9506019 251.91806,14.0872525 247.83006,17.1555778 C246.12206,18.4297129 243.57406,19.3138066 240.66206,19.3138066 C236.68606,19.3398094 230.16206,17.5716219 227.53006,20.4059224 C226.74606,21.2640134 225.99006,22.8501816 225.79406,24.2283277 C225.15006,28.8568184 225.76606,33.4333036 225.85006,38.1918081 C225.90606,40.6880728 225.45806,44.3804643 226.15806,46.4346821 C226.60606,47.7608227 227.64206,48.8269357 228.28606,49.971057 C228.59406,50.5171149 232.43006,56.3417324 233.77406,58.7339861 C239.34606,68.5630281 245.75806,77.9500234 251.49806,87.6490517 C253.99006,91.8094928 256.70606,97.8681351 260.542059,100.572422 C261.270059,101.092477 262.838059,101.794551 263.762059,101.976571 C264.294059,102.106584 265.330059,102.210596 265.330059,102.210596 C272.190059,104.004786 280.842059,100.390403 285.154059,105.772973 C285.294059,105.954993 286.862059,109.23134 286.974059,110.713497 C287.142059,113.027742 286.694059,115.185971 285.686059,116.616123 C284.538059,118.280299 282.410059,119.684448 279.946059,119.970478 C273.562059,120.698556 267.990059,119.372415 261.746059,119.346412 C255.78206,119.32041 248.61406,119.398418 242.11806,119.294407 C236.63006,119.216399 230.63806,120.750561 225.54206,119.398418 C223.38606,118.826357 221.48206,116.668128 220.81006,114.587908 C219.01806,109.049321 222.40606,103.900775 227.47406,103.1987 C228.81806,103.016681 230.94606,102.600637 232.29006,102.782656 C233.38206,102.964675 235.09006,103.302711 236.46206,103.068687 C238.14206,102.782656 238.87006,101.950568 238.03006,100.234386 C237.83406,99.8183419 237.63806,99.2462812 237.33006,98.9862537 C237.07806,98.8042344 233.21406,91.9915121 232.96206,91.4194514 C231.81406,88.793173 230.24606,86.4529249 228.84606,84.0606712 C225.48606,78.3400647 222.12606,72.6974665 218.85006,67.0288655 C218.54206,66.4828076 216.30206,63.3884795 216.30206,63.3884795 C216.30206,63.3884795 215.93806,63.5704988 215.29406,64.7406229 C210.42206,73.5295547 205.35406,82.2144755 200.31406,90.9514018 C198.91406,93.4216637 195.33006,99.168273 195.19006,99.3502923 C194.57406,100.234386 194.51806,101.248494 194.68606,101.924565 C194.74206,102.210596 195.38606,102.860664 195.41406,102.886667 C197.12206,103.822766 199.27806,102.756653 200.95806,103.016681 C202.13406,103.1987 204.01006,103.146695 205.29806,103.510733 C208.96606,104.550844 212.27006,108.087219 211.34606,113.027742 C210.78606,115.992057 209.77806,118.150285 207.53806,119.398418 C205.69006,120.386523 202.21806,120.724558 199.64206,120.464531 Z M18.0620618,121.374627 C16.8860618,121.270616 15.5140619,121.322622 14.2540619,120.93258 C10.7260619,119.814462 6.80606194,116.330093 7.84206193,111.181547 C8.20606193,109.465365 9.24206192,108.269238 9.88606191,106.9691 C13.1620619,100.390403 29.1780617,107.593166 31.1100617,100.988466 C31.6140617,99.2202785 31.2500617,97.2960745 31.4740617,95.2678594 C31.9500617,91.0034073 31.5300617,86.5309331 31.5300617,82.2404783 C31.5300617,82.2404783 31.4740617,81.200368 31.5300617,80.7063156 C31.6700617,78.5740895 31.4180617,76.4418635 31.5580617,74.1796236 C31.9500617,67.9649647 30.9420617,61.8543169 31.4180617,55.4056332 C31.6420617,52.6233382 31.3900617,49.8150404 31.3620617,44.2244477 C31.3620617,43.2883485 31.5580617,39.8819873 31.4740617,38.8158743 C31.1660617,34.8634553 31.8100617,30.8070252 31.3060617,26.9326144 C31.0540617,25.268438 31.2500617,24.0463084 30.6900617,22.8501816 C29.3740617,20.0418838 24.7260618,19.0017736 20.4980618,19.3138066 C19.0420618,19.4438204 17.6420618,20.0158811 16.0180619,19.8338618 C13.5540619,19.5218287 11.2020619,18.8977625 9.71806192,17.5976247 C8.54206193,16.5835172 8.12206193,15.3353848 7.47806194,13.7492167 C6.24606195,10.6548886 7.61806194,7.14451644 9.07406192,5.16830691 C12.5460619,0.487810679 21.4220618,3.76415804 27.3580617,3.08808637 C28.6740617,2.93206982 30.0740617,3.29610842 31.4180617,3.32211118 C35.1700617,3.34811393 38.3340616,3.37411669 42.1420616,3.40011945 C46.1460616,3.45212496 49.7580615,3.40011945 53.4260615,2.85406155 C55.4700615,2.56803123 57.2900615,2.8280588 59.0820614,2.49002296 C60.2020614,2.30800366 61.7700614,2.69804501 62.8900614,2.59403398 C65.1300614,2.38601193 67.8180613,2.67204226 69.6100613,3.45212496 C73.0540613,4.96028486 75.4900613,10.4988721 73.0820613,14.8413325 C68.1820613,23.7082726 56.5340615,15.8034345 51.2420615,21.6800575 C51.1020615,21.8360741 51.0740615,22.0440961 50.9620615,22.2261154 C48.6660615,26.2045372 50.1780615,33.5633174 49.9820615,38.9198853 C49.5340615,49.7110294 49.7580615,59.0200164 49.9820615,69.7071494 C50.0660615,75.0897201 49.7580615,81.7724286 50.0940615,87.2330076 C50.2900615,89.9892998 49.3100615,93.7336968 50.1500615,96.5679973 C51.3540615,96.1519532 55.6660615,84.3467016 56.6460615,82.2924838 C58.4380614,78.522084 59.8380614,74.569665 61.5460614,70.5912432 C63.2540614,66.5608159 65.1020614,62.6604023 66.6980614,58.4479557 C67.2860614,56.9397958 68.3220613,55.3016221 68.9380613,53.7414567 C71.6820613,46.4346821 75.2100613,39.5179487 78.0380612,32.3411878 C81.2020612,24.2803332 84.6180612,15.1273628 88.7340611,7.84659087 C90.5260611,4.64825178 93.8300611,1.76194577 97.7220611,0.695832734 C102.930061,-0.760321651 108.782061,0.14977484 112.030061,2.67204226 C114.298061,4.44022972 116.342061,6.75447508 117.126061,9.92681142 C117.294061,10.6028831 117.378061,11.2269493 117.630061,11.8770182 C118.974061,15.4393959 117.910061,22.9281899 118.078061,27.2186447 C118.274061,32.4972044 117.882061,38.2958192 118.302061,43.8864119 C118.498061,46.5386931 118.022061,48.5669081 118.218061,51.1151783 C118.442061,54.1835036 118.638061,58.2919392 118.442061,61.308259 C118.134061,65.4687001 118.750061,69.4731246 118.442061,73.607563 C118.274061,75.6877835 118.498061,83.6186244 118.442061,84.7887484 C118.274061,88.039093 118.778061,90.821388 118.582061,93.6296858 C118.470061,95.0338346 118.162061,97.5821048 118.666061,99.0382592 C118.946061,99.8183419 119.506061,100.910458 120.122061,101.430513 C124.322061,105.070899 134.374061,101.222491 139.022061,104.550844 C142.382061,106.995103 144.594061,110.583483 142.382061,115.940051 C141.402061,118.254297 138.882061,120.230506 136.082061,120.698556 C131.210061,121.504641 126.254061,120.698556 121.466061,120.204503 C119.534061,119.996481 114.578061,120.256509 114.046061,120.152498 C112.814061,119.944476 110.966061,119.736454 109.902061,119.840465 C106.822061,120.152498 103.266061,119.710451 100.074061,120.100492 C98.4220611,120.308514 96.2380611,120.776564 94.5300611,120.516536 C94.5300611,120.516536 94.1100611,120.64655 93.9140611,120.698556 C92.3460611,121.036591 90.8900611,120.750561 89.1820611,120.880575 C80.5020612,121.530644 73.6420613,118.280299 75.6300613,109.283345 C75.9100613,108.035213 76.9460613,107.047108 77.8420613,106.371037 C79.8020612,104.940885 81.9580612,103.848769 85.1500612,103.614744 C90.2180611,103.224703 96.2100611,105.096902 98.898061,101.430513 C99.598061,100.468411 100.074061,98.9082454 100.214061,97.5821048 C100.438061,95.0858401 100.102061,92.2515396 100.298061,89.7812777 C100.326061,89.5992584 100.634061,77.559982 100.214061,73.0875078 C99.962061,70.5132349 100.158061,66.9248545 100.298061,64.3505815 C100.466061,61.308259 100.130061,57.9539033 100.158061,54.781567 C100.186061,51.3492031 100.382061,47.8648337 100.130061,44.302456 C99.822061,40.4800507 99.626061,37.3077144 99.738061,33.4333036 C99.794061,32.2111741 99.878061,28.1287412 99.878061,28.1287412 C99.878061,28.1287412 93.7180611,41.5461638 92.9060611,43.7043926 C91.9540611,46.22666 90.4700611,48.8789412 89.4060611,51.3752059 C87.3060612,56.4457434 85.3460612,61.41227 83.1060612,66.4828076 C82.2660612,68.3810088 80.8940612,70.5652404 80.3060612,72.5154472 C78.3740612,78.8861226 75.0140613,84.6587346 72.6340613,90.6913742 C71.2060613,94.3057574 69.5820613,97.6861158 68.0700613,101.066474 C64.7940614,108.321243 62.8060614,115.680024 56.1420615,119.528432 C51.4380615,122.258721 38.0260616,120.776564 31.6420617,120.984586 C27.8900617,121.088597 23.8020618,121.192608 19.8260618,121.166605 C19.2380618,121.140603 18.7900618,121.452636 18.0620618,121.374627 Z M18.0620618,121.374627&quot; id=&quot;NY&quot; fill=&quot;#000000&quot; transform=&quot;translate(215.987533, 131.020074) scale(1, -1) translate(-215.987533, -131.020074) &quot;&gt;&lt;/path&gt;
            &lt;/g&gt;
        &lt;/g&gt;
    &lt;/svg&gt;
  &lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;
  Did this quick logo mash-up in SVG (exported to PNG and WebP) to express
  support for Boston during these
  &lt;a href=&quot;http://en.wikipedia.org/wiki/2013_Boston_Marathon_bombings&quot;&gt;
    trying times&lt;/a&gt;. Stay strong, Boston!
&lt;/p&gt;
&lt;p&gt;
  &lt;a href=&quot;https://github.com/jazzcrazed/ny-hearts-boston&quot;&gt;Please take, use, and change as you see fit!&lt;/a&gt;
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Self Hack: Take any train at 23rd Street and 8th Avenue</title>
      <link>http://marcocarag.com/2013/01/15/self-hack-take-any-train-at-23rd-street-and-8th-avenue/</link>
      <pubDate>Tue, 15 Jan 2013 18:13:00 -0500</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2013/01/15/self-hack-take-any-train-at-23rd-street-and-8th-avenue/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-fqXhMSLbto8/UPXi3PtVgTI/AAAAAAAALcA/rjeYY-KgEHM/s1438/P1068094_1.jpg?align=fullWidth&quot; alt=&quot;Platform for the C or E trains at 23rd Street and 8th Avenue, Manhattan&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5833818331065712946&quot;&gt;&lt;/p&gt;
&lt;p&gt;
  One of my New Year&amp;rsquo;s Resolutions (really, the only one with a specific
  action) is to write a blog post at least once a week. The idea is that
  I&amp;rsquo;ll get better at writing with frequency. As you can tell, I&amp;rsquo;m
  already behind, but here&amp;rsquo;s to catching up!
&lt;/p&gt;

&lt;p&gt;
  Part of fulfilling my quantity-for-better-quality strategy means smaller,
  sillier posts (as if my prior posts bore any heft) like this one, in which I
  simply write a tip to myself whenever I find myself on the local-only
  downtown platform of the 23rd Street and 8th Avenue subway stop.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  The tip?
&lt;/p&gt;

&lt;blockquote class=&quot;big quotation&quot;&gt;
  When going to Brooklyn, take &lt;i&gt;&lt;em&gt;any&lt;/em&gt;&lt;/i&gt; train that arrives.
&lt;/blockquote&gt;

&lt;p&gt;
  Why give myself this sort of advice? Because I&amp;rsquo;m a little obsessed about
  minimizing trips on NYC public transit (I &amp;ldquo;pre-walk&amp;rdquo; &amp;mdash;
  move to the part of a platform or train where the door is closest to the
  exit at the destination &amp;mdash; nearly 100% of the time, for instance), and
  recently I made the mistake of not getting on board a downtown-bound E train
  (which terminates in downtown Manhattan, and doesn&amp;rsquo;t reach my ultimate
  transfer to the G in Brooklyn) that arrived at 23rd street in anticipation
  of riding a C train all the way to Brooklyn.
&lt;/p&gt;

&lt;p&gt;
  The fact is, either train would have taken me to the next stop, 14th street,
  where I could have transferred either to an A from a C, if one happened to be
  arriving then, or from an E to either an A or a C &amp;mdash; whichever came
  first. At worst, I would have ended up waiting for the very same C train,
  and at best (which ended up being the reality that I passed up on), I would
  have caught an arriving A and been well on my way to Brooklyn well before a
  C finally arrived.
&lt;/p&gt;

&lt;p&gt;
  I was thinking I would have been more comfortable taking the C all the way
  (the quite viable &amp;ldquo;reduce transfers&amp;rdquo; strategy), but even in the
  worst case, I&amp;rsquo;d at least be waiting at 14th street for the C, which,
  with its numerous benches and lovely
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Life_Underground&quot;&gt;Tom Otterness&lt;/a&gt;
  sculptures, is far more comfortable a waiting place than 23rd, where passing
  A express trains just serve to aggravate standing passengers-to-be.
&lt;/p&gt;

&lt;p&gt;
  So, note to self: always board any local train that arrives at
  the 23rd street downtown/Brooklyn bound platform. And also try not to obsess
  about transit so much.
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Trust In Styleguide</title>
      <link>http://marcocarag.com/2012/12/04/trust-in-styleguide/</link>
      <pubDate>Tue, 04 Dec 2012 18:09:00 -0500</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/12/04/trust-in-styleguide/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/couples-styleguide-1.png?align=fullWidth&quot; alt=&quot;The &amp;lt;a href=\&amp;quot;/demos/couples-styleguide/index.html\&amp;quot; target=\&amp;quot;_blank\&amp;quot;&amp;gt;styleguide&amp;lt;/a&amp;gt; for &amp;lt;a href=\&amp;quot;http://couples.howaboutwe.com\&amp;quot; target=\&amp;quot;_blank\&amp;quot;&amp;gt;HowAboutWe for Couples&amp;lt;/a&amp;gt;.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Increasingly, web designers of today also are developers &amp;mdash; which is awesome.
However, in my experience, most I&amp;rsquo;ve worked with have never touched
code, and none expect to as a part of their day-to-day. For this and many
other reasons, coded styleguides are a must.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  The styleguide conversation&amp;rsquo;s not a new one &amp;mdash;
  &lt;a href=&quot;http://maban.co.uk/&quot; target=&quot;_blank&quot;&gt;Anna Debenham&lt;/a&gt;, for instance,
  &lt;a href=&quot;http://24ways.org/2011/front-end-style-guides/&quot; target=&quot;_blank&quot;&gt;wrote
    about it last year for 24 Ways&lt;/a&gt;. I&amp;rsquo;m going to avoid trodden ground
  as best I can. Instead, I wanted to show how styleguides have helped
  myself and my coding and designing coworkers at
  &lt;a href=&quot;http://howaboutwe.com&quot; target=&quot;_blank&quot;&gt;HowAboutWe&lt;/a&gt;, and hopefully
  convince others to adopt them.
&lt;/p&gt;

&lt;h2&gt;Styleguide as a Proof-of-Concept&lt;/h2&gt;
&lt;p&gt;
  My last project at
  &lt;a href=&quot;http://www.howaboutwe.com&quot; target=&quot;_blank&quot;&gt;HowAboutWe&lt;/a&gt; was the
  two-month inception of the &lt;a href=&quot;http://couples.howaboutwe.com&quot;
    target=&quot;_blank&quot;&gt;HowAboutWe for Couples&lt;/a&gt; minimum-viable-product. By that
  point, we&amp;rsquo;d just started to build out an internal team of designers.
&lt;/p&gt;

&lt;blockquote class=&quot;big right quotation&quot;&gt;
  She was certain many headers and buttons would have to be cut images. It would
  be rocky between us if I couldn&amp;rsquo;t convince her of otherwise.
&lt;/blockquote&gt;

&lt;p&gt;
  The designer in charge of Couples had a mixed relationship with developers
  in the past. She didn&amp;rsquo;t trust in the capabilities of modern browsers,
  especially with regards to rendering drop shadows and web fonts, despite
  leaning on both in her designs. She was certain many headers and buttons would
  have to be cut images. It would be rocky between us if I couldn&amp;rsquo;t
  convince her of otherwise.
&lt;/p&gt;

&lt;p&gt;
  So on the engineering side, we set out to prove her wrong by incepting the
  &lt;a href=&quot;/demos/couples-styleguide/index.html&quot;
    target=&quot;_blank&quot;&gt;HowAboutWe for Couples Styleguide&lt;/a&gt;, starting with
  &lt;a href=&quot;/demos/couples-styleguide/ui.html#buttons&quot;
    target=&quot;_blank&quot;&gt;buttons&lt;/a&gt;. And she was convinced.
&lt;/p&gt;

&lt;p&gt;
  Another fun thing I managed to convince her of that had even me a little
  suspicious was using a
  &lt;a href=&quot;/2012/06/12/futzing-around-with-icon-fonts-and-svg/&quot;&gt;web font for
  all icons&lt;/a&gt;.
  And that&amp;rsquo;s the other useful thing about a styleguide &amp;mdash; it&amp;rsquo;s
  a place, isolated from the other complex layers of implementation, to prove
  out ideas and hunches. A lab where things can be tried, evolve and change
  without too much difficulty. It could have been that the maintenance cost for
  a font icon or all-CSS buttons would have been too high; a styleguide is the
  place for figuring that out. &lt;small&gt;(Spoiler:
  &lt;a href=&quot;/demos/couples-styleguide/ui.html#icons&quot;
    target=&quot;_blank&quot;&gt;Both succeeded&lt;/a&gt;.)&lt;/small&gt;
&lt;/p&gt;

&lt;h2&gt;For Onramping and Implementation Speed&lt;/h2&gt;
&lt;p&gt;
  Designers weren&amp;rsquo;t the only new folks at work. We&amp;rsquo;d also been
  recruiting developers at a fast clip. For these folks, our styleguide was also
  a crucial on-ramping tool. They could quickly grasp most all of our internal
  HTML and CSS coding and naming conventions, and could be prepared much sooner
  to contribute real work.
&lt;/p&gt;

&lt;p&gt;
  And delivering work is itself simplified. With modularized styles and markup
  centralized, organized, and presented in one place, the frontend for new
  features becomes a much simpler process. It can also be parallel-ized with
  confidence when developers have a styleguide to consult.
&lt;/p&gt;

&lt;h2&gt;For Coding and Designing Authority&lt;/h2&gt;
&lt;p&gt;
  The styleguide should have the rule of law. If some design concept isn&amp;rsquo;t
  there, whether it&amp;rsquo;s at a high level like paginated navigation or much
  more granular like a font size, there should be a good reason to add it in
  &amp;mdash; otherwise, whatever&amp;rsquo;s already in the styleguide should be used,
  instead, or the styleguide should be updated to the new design.
&lt;/p&gt;

&lt;p&gt;
  Clearly, it requires a special kind of discipline to enforce the styleguide
  so strictly &amp;mdash; but in my experience, this level of tension between design
  and styleguide is important. On frontend teams with more than a few
  developers, nonchalance about (or complete lack of) a styleguide leads
  inevitably to massive bloat and redundant implementations.
&lt;/p&gt;

&lt;blockquote class=&quot;big right quotation&quot;&gt;
  &amp;hellip;aggressive iteration without proper styleguide discipline (by both
  developers and designers) lead to a stylesheet so large that IE8 couldn&amp;rsquo;t
  parse it completely&amp;hellip;
&lt;/blockquote&gt;

&lt;p&gt;
  This was a lesson learned the hard way in the HowAboutWe
  &lt;a href=&quot;http://www.howaboutwe.com&quot; target=&quot;_blank&quot;&gt;dating site&lt;/a&gt;, where
  aggressive iteration without proper styleguide discipline (by both developers
  and designers) lead to a stylesheet so large that IE8 couldn&amp;rsquo;t parse it
  completely (though, that wasn&amp;rsquo;t the only symptom; inefficient use of
  &lt;a href=&quot;http://www.sass-lang.com&quot; target=&quot;_blank&quot;&gt;sass&lt;/a&gt; also played a big
  role). Disciplined styleguide usage makes maintenance far easier, which
  increases developers&amp;rsquo; and designers&amp;rsquo; happiness.
&lt;/p&gt;

&lt;figure class=&quot;left&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;/demos/couples-styleguide/ui.html&quot;&gt;
      &lt;img src=&quot;/images/couples-css-buttons.png&quot;
        alt=&quot;Couples CSS buttons in styleguide&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;CSS buttons in Couples styleguide.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;To Help Finalize Design&lt;/h2&gt;

&lt;p&gt;
  No web designer of today should consider a design that only exists in
  Photoshop as final. Things &lt;i&gt;will&lt;/i&gt; look different in browsers, and
  designers &lt;i&gt;will&lt;/i&gt; want to tweak accordingly &amp;mdash; slightly increasing
  &lt;code&gt;line-height&lt;/code&gt;, adjusting a &lt;code&gt;color&lt;/code&gt;, or changing a
  &lt;code&gt;margin&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
  Additionally, few designers I&amp;rsquo;ve met have worked out user interactions
  in Photoshop. It&amp;rsquo;s something that needs to be seen in a browser before
  being settled. In HowAboutWe for Couples, the
  &lt;a href=&quot;/demos/couples-styleguide/ui.html#buttons&quot;
    target=&quot;_blank&quot;&gt;aforementioned buttons&lt;/a&gt;&amp;rsquo; initial state was designed
  in a PSD, but interactive states like loading weren&amp;rsquo;t. Coding the
  styleguide was instrumental in working out those interactions, and many other
  kinks. Which leads cleanly to the next benefit&amp;hellip;
&lt;/p&gt;

&lt;p&gt;&lt;h2 class=&quot;cleared&quot;&gt;For Easier Redesign&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
  Having a styleguide in place means the broad UI concepts of the respective
  website have been worked out. And in turn, that makes the inevitable redesign
  much easier.
&lt;/p&gt;

&lt;p&gt;
  Naturally, not all concepts in a styleguide will survive a redesign. This
  could be an indication that those concepts were too specific and high-level
  in retrospect. But, in reality, the balance of what&amp;rsquo;s too high-level for
  the styleguide and what&amp;rsquo;s not depends on a lot of things. If the
  implementation of a particular component is reused often enough in designs,
  even if it&amp;rsquo;s fairly complex, then it deserves to be in the styleguide for
  developer ease.  It&amp;rsquo;s one of the reasons the Couples styleguide has a
  &lt;a href=&quot;/demos/couples-styleguide/boilerplate.html&quot;
    target=&quot;_blank&quot;&gt;boilerplate section&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;h2&gt;Coupling to the App&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;
  One last departing bit on where the styleguide lives compared to the
  site(s) it&amp;rsquo;s for. I think it&amp;rsquo;s useful to have the styleguide
  point to the very same stylesheets of its corresponding site(s), which is what
  we did at HowAboutWe. By doing so, the app&amp;rsquo;s stylesheets are implemented
  with the styleguide. And in future maintenance, updates in one force
  developers to keep the other current, as well.
&lt;/p&gt;

&lt;p&gt;
  Conversely, it makes little sense to share HTML directly, since it&amp;rsquo;s
  hard to separate HTML from content that isn&amp;rsquo;t relevant. Instead, denote
  the relevant markup blocks in the styleguide somehow &amp;mdash; we used HTML
  comments in the Couples styleguide, only because we were too lazy to get
  &lt;code&gt;textarea&lt;/code&gt;s with the relevant markup in them implemented.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;12/13 Update &amp;mdash;&lt;/strong&gt;
  &lt;a href=&quot;https://twitter.com/lsirivong&quot;&gt;Lenny Sirivong&lt;/a&gt; commented below
  about a
  &lt;a href=&quot;http://codepen.io/davatron5000/pen/tzJKh&quot;&gt;bit of simple jQuery&lt;/a&gt; by
  &lt;a href=&quot;https://twitter.com/davatron5000&quot;&gt;Dave Rupert&lt;/a&gt; that parses
  for &lt;code&gt;data-codeblock&lt;/code&gt; attributes and presents them as a pretty
  string that can be easily copied. Good quick way to get code blocks from your
  code demos!
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;http://middlemanapp.com&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;/images/middlemanapp-screenshot.png&quot; alt=&quot;Middleman Static Site
        Generator&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    &lt;a href=&quot;http://middlemanapp.com&quot; target=&quot;_blank&quot;&gt;Middleman&lt;/a&gt; for maximum
    frontend enjoyment!
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  In case you were wondering&amp;hellip;
  The HowAboutWe styleguides are implemented via the awesome static site
  generator, &lt;a href=&quot;http://middlemanapp.com&quot; target=&quot;_blank&quot;&gt;Middleman&lt;/a&gt;,
  which is like &lt;a href=&quot;/2012/04/05/i-love-jekyll-and-github/&quot;&gt;Jekyll&lt;/a&gt;,
  but supports &lt;a href=&quot;http://haml.info/&quot; target=&quot;_blank&quot;&gt;Haml&lt;/a&gt; for HTML,
  &lt;a href=&quot;http://compass-style.org&quot; target=&quot;_blank&quot;&gt;Compass&lt;/a&gt; for CSS, and
  &lt;a href=&quot;http://coffeescript.org/&quot; target=&quot;_blank&quot;&gt;CoffeeScript&lt;/a&gt; for JS.
  They lived in subfolders within their respective Rails applications, and
  spit out the compiled pages into &lt;code&gt;/public&lt;/code&gt; to get served up outside
  of the Rails stack.
&lt;/p&gt;

&lt;p&gt;
  In typical &amp;ldquo;me&amp;rdquo; fashion, this endorsement has been a long-winded,
  and I thank you for reading this far. I&amp;rsquo;d love to hear if and how
  styleguides have helped or hurt your own work, so please comment your thoughts!
&lt;/p&gt;

&lt;p&gt;
  Merry frontend-ing!
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Thanks, HowAboutWe! Hello, Bonobos!</title>
      <link>http://marcocarag.com/2012/11/19/thanks-howaboutwe-hello-bonobos/</link>
      <pubDate>Mon, 19 Nov 2012 18:26:00 -0500</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/11/19/thanks-howaboutwe-hello-bonobos/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;div class=&quot;bonobosLogo&quot;&gt;
  &lt;a href=&quot;http://bonobos.com&quot; class=&quot;bonobos block&quot; target=&quot;_blank&quot;&gt;Bonobos&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;
  Bittersweet post here, to announce that I&amp;rsquo;ve left
  &lt;a href=&quot;http://howaboutwe.com&quot; target=&quot;_blank&quot;&gt;HowAboutWe&lt;/a&gt; to do frontend development
  for &lt;a href=&quot;http://bonobos.com&quot; target=&quot;_blank&quot;&gt;Bonobos&lt;/a&gt;&amp;rsquo; New York Office.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  It&amp;rsquo;s bitter because the HowAboutWe team is the best I&amp;rsquo;ve
  ever worked with. Not surprising, because the standard and
  culture there was cultivated by my good friend, the brilliant
  &lt;a href=&quot;http://tx.pignata.com/&quot;&gt;John Pignata&lt;/a&gt; (now at Groupme), who as CTO
  two years ago lured me into the startup world as employee five (or
  thereabouts). It was a flat and flexible team, with no frontend or backend
  divisions &amp;mdash; just web developers, achieving the singular goal of a
  successful web product.
&lt;/p&gt;

&lt;p&gt;
  Their growth (and my growth) over the past two years has been astounding, and
  I can&amp;rsquo;t be grateful enough for that, and being allowed to help shape it,
  too. If you&amp;rsquo;re looking to work with one of the best teams in New York,
  and are up to a challenge that&amp;rsquo;s far more than just coding, then
  &lt;a href=&quot;http://www.howaboutwe.com/jobs&quot; target=&quot;_blank&quot;&gt;drop them a
  resum&amp;#233;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  Now the sweet stuff. When thinking about what&amp;rsquo;s next after two years
  of the amazing HowAboutWe, one of the options that came to mind, literally,
  was Bonobos. As you &lt;a href=&quot;/2012-05-19-trying-out-knit-ties&quot;&gt;may&lt;/a&gt;
  &lt;a href=&quot;/2012/05/20/gh-bass-brockton&quot;&gt;have&lt;/a&gt;
  &lt;a href=&quot;/2012/07/01/ratio-clothing-review&quot;&gt;noticed&lt;/a&gt;, I&amp;rsquo;m
  &lt;a href=&quot;/2012/06/10/online-made-to-measure-for-the-shorted&quot;&gt;into
  menswear&lt;/a&gt;. Bonobos, as a producer of quality menswear that started out
  online, would be perfect, &lt;em&gt;if only they had a New York technology team&lt;/em&gt;,
  I thought. (It&amp;rsquo;d be a good fit, if you will. You won&amp;rsquo;t? Okay&amp;hellip;)
&lt;/p&gt;

&lt;p&gt;
  Cut to today when they&amp;rsquo;ve cleared a space for me as their first New
  York-based frontend developer, with machinations of fleshing out a larger tech
  team here at their headquarters in my favorite city, and it&amp;rsquo;s as if they
  read my mind. I&amp;rsquo;ve joined at somewhat a hectic time, with Cyber Monday
  looming large in their Chelsea office. But I don&amp;rsquo;t mind hitting the
  ground running and I&amp;rsquo;m excited to apply my HowAboutWe growth at Bonobos
  (which, by the way, has a frontend in desperate need of help). And as another
  plus, I get to occasionally get out of town to visit their Palo Alto office.
&lt;/p&gt;

&lt;p&gt;
  So, hello, Bonobos! And thanks, HowAboutWe! And I guess, expect some Bonobos
  product reviews on this blog soon. :)
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5806327925969395537?authkey=CKfk24vNl9OXMQ&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-1a2laYkeAdQ/UJQ5Hu52rXI/AAAAAAAAKcY/GE81Yy2ppW8/s992/PA248905.jpg&quot;
        alt=&quot;HowAboutWe team on a sailboat&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The best team I&amp;rsquo;ve ever worked with on a boat in NY Harbor. I&amp;rsquo;ll miss you guys!
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>NATO-Style Straps Rock</title>
      <link>http://marcocarag.com/2012/07/29/nato-style-straps-rock/</link>
      <pubDate>Sun, 29 Jul 2012 17:33:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/07/29/nato-style-straps-rock/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-bKnrl_TXQSw/UBWve5_GOwI/AAAAAAAAI6M/9302xnN_5ZI/s852/P7297695.jpg?align=fullWidth&quot; alt=&quot;Various NATO-style straps of nylon and leather.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5770711443041565442&quot;&gt;&lt;/p&gt;
&lt;p&gt;“It &lt;a href=\&quot;/2012/05/22/my-new-favorite-watch-is-my-old-one/\&quot;&gt;bears
repeating &lt;/a&gt; that NATO-style straps do wondrous things. Like otherwise
dull clothing, watches transform with some accessorization &amp;mdash; making them
something like the Russian nesting doll of accessories. Plus, NATO-style
straps are so cheap and mindless to deal with, it&amp;rsquo;s a fun transformation
to make.”&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  That said, I&amp;rsquo;ve gravitated towards certain combinations. You can do no
  wrong combining caramel-colored brown and black, and I found this
  &lt;a href=&quot;http://myworld.ebay.com/sectime&quot;&gt;particularly beautiful sample on
    eBay&lt;/a&gt; to marry with my &lt;a href=&quot;/2012/04/23/parnis-manual-wind-watches/&quot;&gt;
    Parnis&lt;/a&gt;:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5770711456790397858&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-dbNLAmJer3k/UBWvftNEw6I/AAAAAAAAI6U/ljaHlC1Zi7E/s852/P7297710.jpg&quot;
        alt=&quot;Parnis black pilot watch with a light-brown leather strap from eBay&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Parnis black pilot watch with a light-brown leather strap from eBay.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Leather&amp;rsquo;s tricky, because there&amp;rsquo;s a minimum thickness to it (if
  it&amp;rsquo;s quality leather). This combination with the Parnis actually
  requires me to remove the springbars to install; slipping it on the standard
  way would scrape the leather up somethin&amp;rsquo; fierce. But I don&amp;rsquo;t see
  myself swapping this strap off very often.
&lt;/p&gt;

&lt;p&gt;
  And best of all, thanks to the ever-steadfast combination of khaki and navy,
  I&amp;rsquo;ve reincarnated my old Hamilton with the khaki-colored nylon:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5770711473994822418&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-wyCD9njsHhc/UBWvgtS7cxI/AAAAAAAAI6c/wopZk3T2190/s852/P7297711.jpg&quot;
        alt=&quot;Hamilton Khaki Navy GMT with khaki-colored nylon strap&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Can&amp;rsquo;t go wrong with Navy and Khaki.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  I guess it helps that the Hamilton &lt;a href=&quot;http://watches.zsebehazy.com/navy_gmt.htm&quot;&gt;
    has both the words &amp;ldquo;Khaki&amp;rdquo; and &amp;ldquo;Navy&amp;rdquo; in its name&lt;/a&gt;.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5770711503042367522&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-4Wd7bqsP8tM/UBWviZgZ0CI/AAAAAAAAI68/2V-MDdLDHRI/s916/P7297712.jpg&quot;
        alt=&quot;Hamilton Khaki Navy GMT with khaki-colored nylon strap&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    My new daily beater.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>I&amp;rsquo;ve upgraded to an Olympus E-P3</title>
      <link>http://marcocarag.com/2012/07/25/i-rsquo-ve-upgraded-to-an-olympus-e-p3/</link>
      <pubDate>Wed, 25 Jul 2012 23:37:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/07/25/i-rsquo-ve-upgraded-to-an-olympus-e-p3/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-CVGYvEViYlk/UA9nFNXSJ0I/AAAAAAAAI2w/LtF6TUpvVKw/s888/P7247685.jpg?align=fullWidth&quot; alt=&quot;Olympus E-P3 with &amp;lt;a href=&amp;quot;http://www.mir.com.my/rb/photography/companies/canon/fdresources/fdlenses/earlyfdlenses/50mmfd.htm&amp;quot;&amp;gt; Canon FD 50mm f1.4 S.S.C&amp;lt;/a&amp;gt; and a leather half-case (taken with my E-P1 with &amp;lt;a href=&amp;quot;http://panasonic.net/avc/lumix/systemcamera/gms/lens/g_20.html&amp;quot;&amp;gt; Panasonic 20mm f1.7&amp;lt;/a&amp;gt;)&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5768942986869221186&quot;&gt;&lt;/p&gt;
&lt;p&gt;And I admittedly feel a bit of separation anxiety.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  I upgraded today from my
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Olympus_PEN_E-P1&quot;&gt;Olympus E-P1&lt;/a&gt; to the
  far more convenient
  &lt;a href=&quot;http://www.olympusamerica.com/cpg_section/product.asp?product=1573&quot;&gt;E-P3&lt;/a&gt;.
  It&amp;rsquo;s everything the E-P1 was, plus all that it should have been,
  including such basics as an orange focus assist light and a built in flash,
  and such advanced features as the ability to support an
  &lt;a href=&quot;http://www.adorama.com/IOMVF2.html&quot;&gt;electronic viewfinder&lt;/a&gt; and
  a &lt;a href=&quot;http://www.amazon.com/Olympus-MCG-2-BLK-Camera-Black/dp/B005LT1XP6&quot;&gt;swappable hand grip&lt;/a&gt;.
  It will make my shooting life faster and easier, and I&amp;rsquo;m excited about
  the countless brain cells that will be saved going forward.
&lt;/p&gt;

&lt;p&gt;
  Perhaps best of all, I got the near-new body with a gorgeous leather case for
  $425 via Craigslist &amp;mdash; significantly cheaper than retail, and even
  undercutting the current average on Ebay, if you count shipping.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;http://a7.sphotos.ak.fbcdn.net/hphotos-ak-snc6/259784_735841296377_5825568_o.jpg&quot;&gt;
      &lt;img src=&quot;http://a7.sphotos.ak.fbcdn.net/hphotos-ak-snc6/259784_735841296377_5825568_o.jpg&quot;
        alt=&quot;Me and my E-P1 and Metz flash, by another photographer&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    A professional photographer notices my ever-present E-P1 at a party, and
    wants a picture of it. My Dad&amp;rsquo;s old
    &lt;a href=&quot;http://www.rokkorfiles.com/28mmf28.htm&quot;&gt;Minolta MD Rokkor-X 28mm f2.8&lt;/a&gt; is
    affixed, along with a Metz 36 AF-4 Mecablitz flash.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  And yet, I&amp;rsquo;m feeling a little bittersweet about it. Not because of the
  idea of using the E-P3, but because of the idea of retiring my E-P1. I got the
  E-P1 two winters ago, also used (far more used, in fact), and have grown as
  an amateur wannabe-photographer significantly through that time. Though I
  never used every feature of the camera, what I did use has become programmed
  reflex in my mind and hands. I just &lt;em&gt;know&lt;/em&gt; what to do with the camera,
  and I &lt;em&gt;know&lt;/em&gt; what it will give me in return, and that level of comfort
  is surprisingly profound. In the few dozen minutes I&amp;rsquo;ve spent so far
  with the E-P3, I feel like I&amp;rsquo;m using someone else&amp;rsquo;s machine; the
  shot I took of it above using the E-P1 (with my workhorse
  &lt;a href=&quot;http://panasonic.net/avc/lumix/systemcamera/gms/lens/g_20.html&quot;&gt;
    Panasonic 20mm f1.7&lt;/a&gt;) felt like returning home after a tiring business
  trip.
&lt;/p&gt;

&lt;p&gt;
  More than that, the E-P1 has gone places, and recorded some of my fiance&amp;#233;&amp;rsquo;s
  and my most important moments: my fiance&amp;#233;&amp;rsquo;s mom visiting,
  friend&amp;rsquo;s weddings, Christmases, Thanksgivings, hiking trips, a vacation
  in Thailand, our cats&amp;hellip; Thinking back, I don&amp;rsquo;t wish I had an E-P3,
  or any other &amp;ldquo;better&amp;rdquo; camera, that whole time. I&amp;rsquo;m thankful
  I had my E-P1 in my hands, the most trustworthy camera I&amp;rsquo;ve used yet.
  While the comfort level issue with the E-P3 is probably just a matter of
  software, and will be learned, I won&amp;rsquo;t soon forget all the moments the
  E-P1 has captured.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://lh4.googleusercontent.com/-FQBkhnSnjMI/TutLCzUNrAI/AAAAAAAABUU/xiVC_3vpytg/s888/PB062992.JPG&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-FQBkhnSnjMI/TutLCzUNrAI/AAAAAAAABUU/xiVC_3vpytg/s888/PB062992.JPG&quot;
        alt=&quot;Unintended self portrait&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    An unintentional self portrait as I quickly try to capture the room at a
    party via mirror.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  For sure, this sentimentality for a piece of consumer electronics is a
  decidedly First World Problem, and you won&amp;rsquo;t catch me whining after this
  about the E-P3. I will eventually be far faster at the E-P3 than I ever could
  have been with the E-P1, and taking much better photos. I&amp;rsquo;ve been pining
  for a replacement to the E-P1 for maybe half a year now, since probably just
  before the E-P3 launched. I use an array of manual lenses, and it&amp;rsquo;s
  annoying to use the rear LCD on the E-P1 to manually focus. The E-P3 can take
  a viewfinder that makes that process much easier, and it even boasts so high
  resolution of a rear LCD that I can nail focus easily without magnification.
  The E-P1 lacks a focus assist lamp, making autofocusing in low light
  challenging. The E-P3 not only has the assist lamp, but also a built-in flash.
&lt;/p&gt;

&lt;p&gt;
  But despite my pining, and near-daily browsing of
  &lt;a href=&quot;http://43rumors.com&quot;&gt;new micro 4/3rds developments&lt;/a&gt;, I never
  anticipated &lt;em&gt;missing&lt;/em&gt; the E-P1. I &lt;em&gt;never&lt;/em&gt; feel that way about
  electronics. I guess sometimes photography isn&amp;rsquo;t just about the photos.
&lt;/p&gt;

&lt;p&gt;Thanks for the thousands of shots, Olympus E-P1.&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5769080486248102802&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-f7jK9C7SgQY/UA_kIud0u5I/AAAAAAAAI3I/ncPmxPnvqfc/s999/P7257708.jpg&quot;
        alt=&quot;The E-P1 and Panasonic 20mm f1.7&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    My trustworthy E-P1 in its most common configuration this year, with a
    Panasonic Lumix 20mm f1.7 lens, taken with the E-P3 and the Canon 50mm.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Ratio Clothing Review</title>
      <link>http://marcocarag.com/2012/07/01/ratio-clothing-review/</link>
      <pubDate>Sun, 01 Jul 2012 09:27:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/07/01/ratio-clothing-review/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-RKFEALGghzY/T_BFERItqAI/AAAAAAAAIZk/XwD514iR3d0/s1221/P6096792.jpg?align=fullWidth&quot; alt=&quot;&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760179863028606978&quot;&gt;&lt;/p&gt;
&lt;p&gt;How about something made in the USA this American Independence Day weekend? Some weeks ago, I arrived at my apartment door to a hotly anticipated Fedex box. It was my first custom shirt from online made-to-measure shirtmaker, &lt;a href=&quot;http://www.ratioclothing.com&quot;&gt;Ratio Clothing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  Out of necessity because of my small frame, made-to-measure is basically the way I shop for shirts nowadays, amongst other things (I’ll soon enough post about suits and outerwear). While I really like Joe Hemrajani’s &lt;a href=&quot;/2012-06-10-online-made-to-measure-for-the-shorted.html&quot;&gt;MyTailor.com&lt;/a&gt;, there are &lt;em&gt;a lot&lt;/em&gt; of new players to the scene, and I’ve been keen to try them out. One of the noteworthy ones is &lt;a href=&quot;http://www.ratioclothing.com&quot;&gt;Ratio Clothing&lt;/a&gt;, which I heard about courtesy of the &lt;a href=&quot;http://www.indochino-review.com/2012/04/ratio-clothing-introduction-review.html&quot;&gt;Indochino Review blog&lt;/a&gt;.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760180015946707650&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-k_uAF0U9nZ8/T_BFNKzOssI/AAAAAAAAIaY/b4BcL4t8KqI/s1221/P6096802.jpg&quot;
        alt=&quot;Inside tag&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
  Ratio Clothing was started last year by Eric Powell in Colorado, and distinguishes itself from other made-to-measure online shops by doing all of its shirtmaking in the USA, while remaining competitive on price. Their most affordable fabrics clock in at $89 and scale up to around $150 or so. Their fabric selection is slim, but well curated, with a great array of basics and some patterns I haven’t seen elsewhere.
&lt;/p&gt;

&lt;p&gt;
  Their website is a little light on options, especially if you compare it to MyTailor.com (honestly, I shouldn’t make that comparison because MyTailor’s comprehensive to a fault). But again, good basics are there in terms of collars, cuffs, pleats, pockets, and plackets. Might be notable that there’s no point collar option; maybe things are trending to wider spreads? (In my mind, not a bad trend, if it is one.)
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760179984706036114&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-n_hznMntcZ0/T_BFLWa34ZI/AAAAAAAAIaM/PxMGWUq2lmw/s1221/P6096801.jpg&quot;
        alt=&quot;Ratio Clothing Ogden Plaid shirt&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Ratio packages their shirts well for shipping.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Ratio accepts a couple of methods of sizing you up. One is to specify five major measurements via a small form: neck, sleeve length, chest, shirt length, and “desired fit” (two subjective categories of “Classic” and “Ratio Slim”). The other is to send Ratio (either via e-mail, or as I did via the “Special Instructions” in the order cart) a far more detailed set of measurements using either yourself or your best fitting shirt as the basis. Since my last MyTailor shirt was measured by Joe in person, I used measurements off of that shirt with some tweaks.
&lt;/p&gt;

&lt;p&gt;
  Like with orders from other companies, I picked out a fabric that I didn’t already have &amp;mdash; a distinctive plaid called “Ogden.” And some of my normal personalizations: English spread, no pleats or pockets, mitred cuffs, and a plain placket. Ratioclothing.com is rather minimal and straightforward to use, but if I really had to nitpick, they&amp;rsquo;re clearly missing photos. There’s a compelling “My Design Preview” tab presumably based on the customizations picked that I haven’t seen work yet at all. Ah well, spread collars are spread collars &amp;mdash; what could go wrong?
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://lh5.googleusercontent.com/-Rsq9TqU7Wz8/T_BFFpqEMeI/AAAAAAAAIZs/tBsLioJqsNU/s916/P6096793.jpg&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-Rsq9TqU7Wz8/T_BFFpqEMeI/AAAAAAAAIZs/tBsLioJqsNU/s916/P6096793.jpg&quot;
        alt=&quot;Opened Ratio Clothing box&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
  The order took somewhere over two weeks to completely manufacture, and thanks to fast interstate (as opposed to international) shipping (from North Carolina, interestingly enough), I had the shirt about two days later. Three weeks from order to shirt is none too shabby, I think; hopefully, they can keep that pace as orders scale.
&lt;/p&gt;

&lt;p&gt;
  Ratio sure packages their shirts with care &amp;mdash; again, an improvement over MyTailor in this department. The well-folded Ogden plaid shirt was wrapped carefully in plastic, wrapped again in tissue, closed with a branded sticker, and lain in a lovely branded cardboard box. A care instructions card is tucked underneath the shirt. Spoiler alert: Don&amp;rsquo;t use a drying machine!
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760179932870040866&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-5Rw0We9WFVU/T_BFIVUNXSI/AAAAAAAAIZ8/pXXm2cnNYlw/s1221/P6096799.jpg&quot;
        alt=&quot;Packaging belt and brand tag&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    More lovely packaging in the form of a cardboard belt.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  The shirt is made well, the plaid aligned well throughout. The Ogden plaid fabric is thin &amp;mdash; appropriate for summer. Fit-wise, it might be my favorite feeling shirt yet &amp;mdash; the closest to a second-skin like feel, without being restrictive. The light and non-stiff fabric likely helps here, too. Joe’s measurements held up well with my tweaks for the most part; but if I’d committed one mistake, it’s the collar, which I generously increased because I get futzy with too tight collars. Turns out I overestimated, and there’s a lot of space if I button all the way up. That said, I won’t button this casual shirt to the top very often.
&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760180076218718754&quot;&gt;
        &lt;img src=&quot;https://lh5.googleusercontent.com/-0YQFyjQynio/T_BFQrVMmiI/AAAAAAAAIaw/wW0KlV7_BlE/s460/P6096804.jpg&quot;
          alt=&quot;Front fit shot of Ratio Clothing Ogden Plaid shirt&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/figure&gt;

  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760180098359113954&quot;&gt;
        &lt;img src=&quot;https://lh6.googleusercontent.com/-rtFiC6PS7Us/T_BFR9z4OOI/AAAAAAAAIa4/808xfogaXbI/s460/P6096807.jpg&quot;
          alt=&quot;Shoulder fit shot of Ratio Clothing Ogden Plaid shirt&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      Fit is probably my favorite of the MTMshirts I&amp;rsquo;ve gotten yet.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;
  Speaking of collars, Ratio includes two stiff and weighty plastic collar stays. Not brass, but far better than the wilt-prone stays from off-the-rack.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760180121230165506&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-RfJoO4yRTiA/T_BFTTAwxgI/AAAAAAAAIbE/i0-sLs0yXUE/s916/P6096808.jpg&quot;
        alt=&quot;Rear fit shot of Ratio Clothing Ogden Plaid shirt&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
Like many made-to-measure vendors, Ratio offers generous sizing guarantees: you can return a shirt paying only for shipping to Ratio for free alterations (&lt;a href=&quot;#footnote&quot;&gt;&lt;strike&gt;not sure if they’ll remake completely&lt;/strike&gt;&lt;em&gt;&lt;/a&gt;) within thirty days. I might be more comfortable if they instead offered to pay for local alterations (like another favorite of mine, &lt;a href=&quot;http://www.indochino.com&quot;&gt;Indochino&lt;/a&gt;), but I presume Ratio would rather its product go under only their own needles and I’d be easily convinced to agree. Shipping within the US is relatively cheap, anyway, especially for a perfect fit. That said, I don’t feel a need to take advantage of the guarantee with this first shirt.
&lt;br /&gt;
&lt;small&gt;
  &lt;em&gt;
    &lt;a id=&quot;footnote&quot;&gt;
      &lt;/em&gt; Eric confirmed to me that they will remake a shirt if it&amp;rsquo;s
      that unsalvageable
    &lt;/a&gt;
  &lt;/em&gt;
&lt;/small&gt;
&lt;/p&gt;

&lt;p&gt;
  In a nice touch, about a month after ordering, Ratio’s Eric Powell emailed me to follow up on my satisfaction. I shorted him on details pending this post, but it was thoughtful to reach out in such a personal way.
&lt;/p&gt;

&lt;blockquote class=&quot;quotation&quot;&gt;
  &lt;p&gt;Marco,&lt;/p&gt;

  &lt;p&gt;I saw that your shirt was delivered, and wanted to see how the measurements we discussed turned out. If you have any fit issues at all, please let us know. We’re pretty serious about getting you in a perfect-fitting shirt, and sometimes (though not often) it takes a round of alterations to get to that point.&lt;/p&gt;

  &lt;p&gt;Just let us know, and thank you for becoming a Ratio customer!&lt;/p&gt;

  &lt;p&gt;
    Best,&lt;br /&gt;
    Eric
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  This definitely won’t be my last order with Ratio, and since getting my first shirt, I’m excited to see that they’ve added a host of new fabric options. I look forward to what’s to come to &lt;a href=&quot;http://www.ratioclothing.com&quot;&gt;Ratio Clothing&lt;/a&gt;.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5760179839650239585/5760180153179860546&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-BODk9WQiPA0/T_BFVKCKbkI/AAAAAAAAIbM/B8LgBUq0WBw/s1221/P6096811.jpg&quot;
        alt=&quot;Cuff shot of Ratio Clothing Ogden Plaid shirt&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Chino Pons and Grupo Irék</title>
      <link>http://marcocarag.com/2012/06/19/chino-pons-and-grupo-irek/</link>
      <pubDate>Tue, 19 Jun 2012 18:15:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/06/19/chino-pons-and-grupo-irek/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/-0nH84_b6Lvg/T-D44EMomSI/AAAAAAAAIPA/1qOExDzEfHo/s888/P6096824_1.jpg?align=fullWidth&quot; alt=&quot;&amp;lt;a href=&amp;quot;http://www.grupoirek.com&amp;quot;&amp;gt;Grupo Irék&amp;lt;/a&amp;gt; bandleader and my old friend, Chino Pons&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5755873965862590754&quot;&gt;&lt;/p&gt;
&lt;p&gt;Around five years ago, I first met Chino, Eddie, Hensy, and Tosso when they
were part of a traditional Cuban band named Conjunto Guantanamo. They
performed regularly at one of my favorite bars near my work in DUMBO.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5755873896546930690&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-lKU5JJ9anh8/T-D40B-fkAI/AAAAAAAAIOw/jCrc5ykGZL0/s757/P6096817.jpg&quot;
        alt=&quot;Bongosero Eddie Valentin smiling, with Hensy on bass, Chino, and Tosso on tres guitar&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The ever-smiling, and fiery handed Eddie Valentin, probably the nicest
    bongosero you&amp;rsquo;ll ever meet. Hensy is on bass next to him, then Chino,
    and Tosso on tres guitar.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Chino and I became close friends shortly after, giving me tips on everything
  from the &lt;a href=&quot;http://en.wikipedia.org/wiki/Clave_(rhythm)&quot;&gt;clave&lt;/a&gt;,
  to West Village pizza joints and jam sessions,
  to seeking shelter during penniless times under the Manhattan Bridge (some
  tips more useful than others, but all memorable). And by introducing
  me to New York&amp;rsquo;s incredible Latin music scene, he helped pry open an
  unexpected chapter of my life: as a passably decent amateur musician. In my
  craziest times, I pulled my violin out as often as five nights a week with a
  variety of Cuban and salsa bands in the city and met dozens of awesome
  musicians and dancers, before exhaustion caught up with me and I realized I
  couldn&amp;rsquo;t do that anymore while I still had a day job.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5755874025918818146&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-xIOxc-5sePk/T-D47j7J52I/AAAAAAAAIPQ/YDYxpCBaz4U/s757/P6106838.jpg&quot;
        alt=&quot;Grupo Irek leads a dance charge at Pane e Vino&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Grupo Ir&amp;#233;k excels at drawing a dancing crowd.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  A terrific singer and spectacular dancer from Cuba, he now leads his friends in
  a band named &lt;a href=&quot;http://www.grupoirek.com&quot;&gt;Grupo Ir&amp;#233;k&lt;/a&gt;, which for
  years now has performed Saturday nights in Carroll Gardens at a restaurant
  named &lt;a href=&quot;http://www.paneevinony.com&quot;&gt;Pane e Vino&lt;/a&gt;. It&amp;rsquo;s a great
  night of music that draws many awesome dancers, and I highly recommend it if
  you&amp;rsquo;re in the area and looking for something to do on Saturday night.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5755873880671326818&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-X6MqJRDwFXk/T-D4zG1dEmI/AAAAAAAAIOo/cYjqFS-wttQ/s757/P6096816.jpg&quot;
        alt=&quot;Chino and his wife&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Chino and his beautiful wife &amp;mdash; whom he met, unsurprisingly, via the
    salsa dancing scene. They just got married about a couple of months ago!
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Performing a mix of &lt;a href=&quot;http://www.amazon.com/Yo-Se-Que-Te-Gusta/dp/B0018PXBAW/ref=sr_1_2?ie=UTF8&amp;qid=1340154673&amp;sr=8-2&amp;keywords=grupo+irek&quot;&gt;originals&lt;/a&gt;,
  classic Salsa tracks from the likes of &lt;a href=&quot;http://en.wikipedia.org/wiki/H%C3%A9ctor_Lavoe&quot;&gt;H&amp;#233;ctor Lavoe&lt;/a&gt;
  and &lt;a href=&quot;http://en.wikipedia.org/wiki/Ruben_Blades&quot;&gt;Rúben Blades&lt;/a&gt;, and
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Buena_Vista_Social_Club_(album)&quot;&gt;Buena
    Vista Social Club&lt;/a&gt; standards,
  they also gig at the &lt;a href=&quot;http://www.yelp.com/biz/top-of-the-standard-new-york&quot;&gt;
    Boom Boom Room&lt;/a&gt; at the top of the near impossibly swanky
  &lt;a href=&quot;http://www.standardhotels.com&quot;&gt;Standard Hotel&lt;/a&gt; (Hensy, the bassist,
  recounted one guest putting down $4,000 on a single bottle of champagne), and
  the chic &lt;a href=&quot;http://nymag.com/listings/bar/thoms_bar/&quot;&gt;Thom&amp;rsquo;s Bar&lt;/a&gt;
  in SoHo. I haven&amp;rsquo;t seen them perform at either of those spots, but I think
  Grupo Ir&amp;#233;k is at their best with smooth-moving dancers filling the floor
  in front of them, and not as the background music to expensive martini sipping
  (though, I&amp;rsquo;d wager the latter pays better).
&lt;/p&gt;

&lt;figure class=&quot;right&quot; style=&quot;width: 375px;&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/me-and-conjunto-guantanamo.jpg&quot;
      alt=&quot;Me performing with Conjunto Guantanamo at the 2007 Art Under The Bridge
      festival&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    My first ever public performance in NYC, with Conjunto Guantanamo at the
    2007 &lt;a href=&quot;http://dumboartsfestival.com/&quot;&gt;Art Under The Bridge festival&lt;/a&gt;.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  I remember one gig maybe four years ago at the Upper East Side club &lt;a href=&quot;http://www.session73.com/&quot;&gt;
    Session 73&lt;/a&gt; at one of their Monday Salsa nights. The band was filled out
  with the incomparable trombonist &lt;a href=&quot;http://www.reutregev.com/&quot;&gt;Reut Regev&lt;/a&gt;,
  and a pianist, with barely enough room for me nestled behind the sound
  board to stand and await a solo, watching a hundred &lt;em&gt;excellent&lt;/em&gt;,
  &lt;em&gt;excellent&lt;/em&gt; dancers move like I&amp;rsquo;d never seen before. But then the
  &lt;em&gt;coro&lt;/em&gt; reached its end, the band stepped back, and I gulped and stepped
  forward. Terrifying, fun, exhilarating, and unforgettable.
&lt;/p&gt;

&lt;p&gt;
  Incidentally, years later, they sound better than ever. Please go
  &lt;a href=&quot;www.grupoirek.com/schedule.html&quot;&gt;check them out&lt;/a&gt;, as they are awesome!
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/Ar2gFHKx8kA&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Grupo Ir&amp;#233;k at Club LQ, with classic, dancing Chino. An amazing gig I
    regret missing.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Futzing Around with Icon Fonts and SVG</title>
      <link>http://marcocarag.com/2012/06/12/futzing-around-with-icon-fonts-and-svg/</link>
      <pubDate>Tue, 12 Jun 2012 17:50:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/06/12/futzing-around-with-icon-fonts-and-svg/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/inkscape-minefold-logo.png?align=fullWidth&quot; alt=&quot;Minefold logo being created in Inkscape&quot;&gt;&lt;/p&gt;
&lt;p&gt;Vector graphics are great. They deserve more of a place on websites than they get &amp;mdash; certainly compared to their rasterized cousins. Nowhere is this more true than with icon UI. I decided to dip my toes into two leading solutions to bringing vectors to webpages: icon fonts, and SVG.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  I won’t go too much into detail on either icon fonts or SVG, the former of
  which has seen terrific coverage by the likes of
  &lt;a href=&quot;http://css-tricks.com/html-for-icon-font-usage/&quot;&gt;CSS-Tricks&lt;/a&gt; and
  &lt;a href=&quot;http://www.webdesignerdepot.com/2012/01/how-to-make-your-own-icon-webfont/&quot;&gt;
  Web Designer Depot&lt;/a&gt;, and the latter of which &lt;a href=&quot;http://www.w3.org/Graphics/SVG/&quot;&gt;
  has been a web standard since 2001&lt;/a&gt;. I’ll summarize with the normal wins of
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Vector_graphics&quot;&gt;vector graphics&lt;/a&gt;:
  they are scalable and styleable, unlike raster graphics which need to be
  duplicated for every situation whether it’s a color or size change or both.
&lt;/p&gt;

&lt;h2&gt;Using Icon Fonts&lt;/h2&gt;

&lt;p&gt;
  I’m using icon fonts for some UI in my footer &amp;mdash; the links to my RSS feed,
  my Twitter page, and my Github repository for this blog. There were certain use
  cases that made icon fonts a good fit: specifically, I wanted to handle them
  with CSS-driven &lt;code&gt;text-shadows&lt;/code&gt; and &lt;code&gt;transitions&lt;/code&gt;, just
  like my plain-text links. CSS is a terrifically convenient layer at which to
  style font icons.
&lt;/p&gt;

&lt;p&gt;
The custom font I&amp;rsquo;m using comes courtesy of the awesome
&lt;a href=&quot;http://keyamoon.com/icomoon/#toHome&quot;&gt;Keyamoon’s IcoMoon&lt;/a&gt;, which
provides 300 free icons, and 622+ icons at the bargain price of $35. You can
also import custom SVG icons, if none of the free ones are usable, and you can
explicitly map your icons to Unicode characters. I let IcoMoon decide the
mappings for me, and soon enough had a perfectly usable stack of web fonts and
some nice CSS style definitions for using them, similar to the output of
&lt;a href=&quot;http://www.fontsquirrel.com/fontface/generator&quot;&gt;Font Squirrel’s
Font-Face Generator&lt;/a&gt;. For the most part, I used IcoMoon’s generated CSS with
few customizations. It creates some nice classes leveraging &lt;code&gt;:before&lt;/code&gt;
pseudo-elements:
&lt;/p&gt;

&lt;p&gt;
&lt;pre&gt;
/&lt;em&gt; Add the following classes to your stylesheet if you
   want to use data attributes for inserting your icons &lt;/em&gt;/
.iconb:before, .icona:after {
  font-family: ‘IcoMoon’;
  content: attr(data-icon);
}

/&lt;em&gt; Add the following CSS properties to your stylesheet
   if you want to have a class per icon &lt;/em&gt;/
[class^=”icon-“]:before, [class*=” icon-“]:before {
  font-family: ‘IcoMoon’;
  font-style: normal;
}
.icon-feed:before {
  content: “\0061”;
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;h2&gt;Some Gotchas&lt;/h2&gt;

&lt;p&gt;
  If you&amp;rsquo;re super anal about pixel perfection, then you probably should
  leave vectors behind right now and go back to your Photoshops. But if
  you&amp;rsquo;re still curious, a few things to note.
&lt;/p&gt;

&lt;p&gt;
  Firstly, icon fonts are text. And, as we all know, that means cross-browser,
  cross-operating-system rendering differences:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/octocat-font-icon-comparison.png&quot;
      alt=&quot;Comparison of Github's Octocat font icon in Chrome and Firefox&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The &lt;a href=&quot;http://www.github.com&quot;&gt;Github&lt;/a&gt; Octocat font icon as rendered
    (and zoomed in, rasterized) in (from left to right)&lt;br /&gt;Chrome OS X,
    Firefox OS X, Chrome Windows, and Chrome Ubuntu 12. Bottom row zoomed 200%.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Pixel peepers will note the extra definition of edges of the tentacles in the
  non-OS X operating systems, and differently sized eyes, amongst other tiny
  differences. As a user of icons, you shouldn&amp;rsquo;t get worked up about this
  (though, if I had to pick a favorite, it&amp;rsquo;s the Ubuntu version, which
  lacks jaggies but retains nice detail).
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/gridded-icon-design.png&quot; alt=&quot;Designing with a pixel grid in Inkscape&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Make sure to use a grid for the smallest pixel size you want to use, and
    don&amp;rsquo;t veer from it.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
  If you&amp;rsquo;re &lt;em&gt;creating&lt;/em&gt; these icons, then be aware of how browsers
  can smudge things away before you go to town on details. Pick a minimum pixel
  size you&amp;rsquo;re willing to accommodate, and make sure your details are
  chunky enough at that resolution; eg, hairlines should be thick enough to fill
  a single pixel at your minimum size; below that, they&amp;rsquo;ll get fuzzed away.
&lt;/p&gt;

&lt;p&gt;
  Next, be ready to tweak &lt;code&gt;font-size&lt;/code&gt; and &lt;code&gt;vertical-align&lt;/code&gt;
  to get your icons to orient properly &amp;mdash; especially when next to each
  other or next to text. Just like normal letterforms, font icons deserve some
  careful treatment so that their visual relationships (mostly size
  related) to each other work well. But barring that, you&amp;rsquo;ll spend some
  time tweaking specific alignment and sizes for each use case (note that the
  below is &lt;a href=&quot;http://sass-lang.com/&quot;&gt;SCSS&lt;/a&gt;):
&lt;/p&gt;

&lt;p&gt;
&lt;pre&gt;
.icon-feed {
  vertical-align: middle;

  .special-module &amp;gt; &amp;amp; {
    font-size: 1.7em;
    vertical-align: -.3em;
  }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/treated-icons.png&quot;
      alt=&quot;Font icons untreated, and treated with vertical-align and font-size&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption style=&quot;width: 437px;&quot;&gt;
    Some font icons at the same &lt;code&gt;font-size&lt;/code&gt; (white) and with tweaked
    &lt;code&gt;vertical-align&lt;/code&gt; and &lt;code&gt;font-size&lt;/code&gt; to achieve better
    proportions (red).
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Thanks to CSS, this isn&amp;rsquo;t a big deal. Naturally, this is more pronounced
  of an issue if your icons are inline with plain text, where most certainly
  you’ll need to shift &lt;code&gt;vertical-align&lt;/code&gt; explicitly for each icon
  depending on the situation; however, in fairness, all of this needs to happen
  with raster image icons, as well.
&lt;/p&gt;

&lt;p&gt;
  All of these gripes, in my opinion, are solidly overruled by the benefits of
  being able to &lt;code&gt;scale()&lt;/code&gt;, change &lt;code&gt;color&lt;/code&gt; and
  &lt;code&gt;opacity&lt;/code&gt;, &lt;code&gt;animate&lt;/code&gt;, and &lt;code&gt;transition&lt;/code&gt; using
  CSS &amp;mdash; none of which you can do with a single raster image icon (well,
  unless you don&amp;rsquo;t care about pixellation).
&lt;/p&gt;

&lt;h2&gt;SVG&lt;/h2&gt;

&lt;p&gt;
  SVG, or &lt;a href=&quot;http://www.w3.org/Graphics/SVG/&quot;&gt;Scalable Vector Graphics&lt;/a&gt;,
  is a really mature graphics standard that I have little experience with in a
  web context (though I have a lot of experience with vector drawing programs
  that happen to save as SVG). Because of the breadth of the standard, it’s well
  equipped for many things a vector in an icon font isn’t &amp;mdash; namely,
  full-blown vector illustrations with many colors, gradients, opacities,
  strokes, what-have-you. Most of those things don’t apply to icons. But if ever
  you need more than one color in your icon, fonts won’t cut it, and you’ll have
  to use something like SVG.
&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;img src=&quot;/images/rainbow-svg.png&quot;
        alt=&quot;Rainbow in SVG&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      A rainbow in SVG.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;img src=&quot;/images/rainbow-font-icon.png&quot;
        alt=&quot;Rainbow as a font icon&quot; /&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      A rainbow in an icon font.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;
  That was the case with the
  &lt;a href=&quot;https://minefold.com/marcocarag/jazzcrazedom&quot;&gt;Minefold&lt;/a&gt; logo that
  I wanted to add to my bottom links. There’s a second color that is fairly
  necessary for the identity. Perfect opportunity to try out SVG. So I cracked
  open Inkscape for the first time in years, traced out the logo, and saved it
  as “Plain SVG.”
&lt;/p&gt;

&lt;p&gt;
  The resulting SVG file is basically markup that I copied and pasted straight
  into my HTML. I shaved out a few assorted meta tags that Inkscape adds that
  aren’t necessary, but for the most part, it worked well:
&lt;/p&gt;

&lt;p&gt;
&lt;pre class=&quot;limitHeight&quot;&gt;
&amp;lt;svg
   xmlns:dc=”&lt;a href=&quot;http://purl.org/dc/elements/1.1/&quot;&gt;http://purl.org/dc/elements/1.1/&lt;/a&gt;“
   xmlns:cc=”&lt;a href=&quot;http://creativecommons.org/ns#&quot;&gt;http://creativecommons.org/ns#&lt;/a&gt;“
   xmlns:rdf=”&lt;a href=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&lt;/a&gt;“
   xmlns:svg=”&lt;a href=&quot;http://www.w3.org/2000/svg&quot;&gt;http://www.w3.org/2000/svg&lt;/a&gt;“
   xmlns=”&lt;a href=&quot;http://www.w3.org/2000/svg&quot;&gt;http://www.w3.org/2000/svg&lt;/a&gt;“
   version=”1.1” width=”71.25” height=”60.375” id=”svg3087”&amp;gt;
  &amp;lt;defs id=”defs3091”&amp;gt;
    &amp;lt;filter x=”-0.25” y=”-0.25” width=”1.5” height=”1.5”
       color-interpolation-filters=”sRGB” id=”filter4802”&amp;gt;
      &amp;lt;feGaussianBlur result=”blur” stdDeviation=”2.5” in=”SourceAlpha”
         id=”feGaussianBlur4804” /&amp;gt;
      &amp;lt;feColorMatrix
         values=”1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 “
         type=”matrix” result=”bluralpha” id=”feColorMatrix4806” /&amp;gt;
      &amp;lt;feOffset result=”offsetBlur” dy=”3” dx=”0” in=”bluralpha”
         id=”feOffset4808” /&amp;gt;
      &amp;lt;feMerge id=”feMerge4810”&amp;gt;
        &amp;lt;feMergeNode in=”offsetBlur” id=”feMergeNode4812” /&amp;gt;
        &amp;lt;feMergeNode in=”SourceGraphic” id=”feMergeNode4814” /&amp;gt;
      &amp;lt;/feMerge&amp;gt;
    &amp;lt;/filter&amp;gt;
  &amp;lt;/defs&amp;gt;
  &amp;lt;path
     d=”m 22.5,10.0625 -10.625,6.046875 0,34.203125 10.625,0 0,-21.609375 7.515625,8.890625 0.09375,0 11.03125,0 0.09375,0 7.53125,-8.9375 0,21.65625 10.609375,0 0,-34.203125 L 48.765625,10.0625 35.625,29.453125 22.5,10.0625 z”
     id=”path3969” class=”logo-face-shadow”
     style=”fill:#074676;fill-opacity:1;stroke:none;filter:url(#filter4802)” /&amp;gt;
  &amp;lt;path
     d=”m 48.758258,47.406249 10.617442,0 0,-34.198033 -10.617442,-6.049471 z”
     id=”path3867” class=”logo-face-dark”
     style=”fill-opacity:1;stroke:none” /&amp;gt;
  &amp;lt;path
     d=”m 22.501432,7.158745 18.642249,27.531268 -11.111274,0 L 11.91486,13.208216 z”
     id=”path4881” class=”logo-face-dark”
     style=”fill-opacity:1;stroke:none” /&amp;gt;
  &amp;lt;path
     d=”m 48.758258,7.158745 -18.642249,27.531268 11.111274,0 18.117547,-21.481797 z”
     id=”path3921” class=”logo-face-light”
     style=”fill-opacity:1;stroke:none” /&amp;gt;
  &amp;lt;path
     d=”m 22.492439,47.406249 -10.617439,0 0,-34.198033 10.617439,-6.049471 z”
     id=”path3915” class=”logo-face-light”
     style=”fill-opacity:1;stroke:none” /&amp;gt;
&amp;lt;/svg&amp;gt;
&lt;/pre&gt;
&lt;/p&gt;

&lt;h2&gt;Challenges and Benefits of SVG&lt;/h2&gt;

&lt;p&gt;
  First thing about SVG is that if you care about pre-IE9, then either forget
  about it, or learn an abstraction library of some kind. (I recommend
  &lt;a href=&quot;http://www.raphaeljs.com&quot;&gt;Raphael JS&lt;/a&gt;.) Barring that&amp;hellip;
&lt;/p&gt;

&lt;p&gt;
  SVG, as its name suggests, scales fairly well. However, it faces the same
  reduction issues as icon fonts. The solution is the same, though; don&amp;rsquo;t
  scale down an icon below its intended minimum size.
&lt;/p&gt;

&lt;p&gt;
  SVG does render much more consistently across browsers, at least so far as I
  can tell. Definitely a plus for the pixel OCD amongst us.
&lt;/p&gt;

&lt;p&gt;
  The main challenge is styling. CSS can’t be used in the same way that it is
  for icon fonts (which are just text). In my case, the shadows and the bevel
  effect, for instance, which are CSS &lt;code&gt;text-shadow&lt;/code&gt;s in the icon
  fonts, actually need to be baked right into the SVG itself. Fortunately,
  Inkscape has a pretty great “Drop Shadow” filter that makes creating the same
  shadow effect in SVG quite simple. And the bevel is simply another
  &lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt;.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/inkscape-drop-shadow.jpg&quot; alt=&quot;Drop shadow tool in Inkscape.&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Shadows can&amp;rsquo;t be applied with CSS, and need to be in your SVG. Still,
    in some cases, it&amp;rsquo;s nice to have this much control.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  If you are new to SVG drawing, though, this process isn’t very convenient.
  That’s one of the nice things about icon fonts &amp;mdash; that they’re text, and
  can be styled that way, and you don’t necessarily need any special skills in
  vector drawing to accomplish certain effects.
&lt;/p&gt;

&lt;p&gt;
Still, from a designer&amp;rsquo;s perspective, it&amp;rsquo;s great to have this level of explicit control. And obviously you can go much &lt;a href=&quot;http://www.croczilla.com/bits_and_pieces/svg/samples/butterfly/butterfly.svg&quot;&gt;further&lt;/a&gt; &lt;a href=&quot;http://www.croczilla.com/bits_and_pieces/svg/samples/invaders/invaders.svg&quot;&gt;than&lt;/a&gt; &lt;a href=&quot;http://emacsformacosx.com/&quot;&gt;just icons&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
That said, SVG is markup, and can be styled with CSS. Just note that the properties are different. For instance, SVG uses a different property for color: &lt;code&gt;fill&lt;/code&gt; (versus text’s kinda’ misleading-in-comparison &lt;code&gt;color&lt;/code&gt; property).
&lt;/p&gt;

&lt;p&gt;
In the case of my icon, I wanted a hover interaction, which is slightly complicated as my icon is actually four separate &lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt; elements; since I want the entire icon to change color, I need to target all of these nodes explicitly. To do so, I added some classes to the &lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt;s to be able to hit them in CSS:
&lt;/p&gt;

&lt;p&gt;
&lt;pre&gt;
&amp;lt;!— Markup —&amp;gt;
&amp;lt;path
   d=”m 48.758258,47.406249 10.617442,0 0,-34.198033 -10.617442,-6.049471 z”
   &lt;u&gt;class=”logo-face-dark”&lt;/u&gt;
   style=”fill-opacity:1;stroke:none” /&amp;gt;
&amp;lt;path
   d=”m 22.501432,7.158745 18.642249,27.531268 -11.111274,0 L 11.91486,13.208216 z”
   &lt;u&gt;class=”logo-face-dark”&lt;/u&gt;
   style=”fill-opacity:1;stroke:none” /&amp;gt;
&amp;lt;path
   d=”m 48.758258,7.158745 -18.642249,27.531268 11.111274,0 18.117547,-21.481797 z”
   &lt;u&gt;class=”logo-face-light”&lt;/u&gt;
   style=”fill-opacity:1;stroke:none” /&amp;gt;
&amp;lt;path
   d=”m 22.492439,47.406249 -10.617439,0 0,-34.198033 10.617439,-6.049471 z”
   &lt;u&gt;class=”logo-face-light”&lt;/u&gt;
   style=”fill-opacity:1;stroke:none” /&amp;gt;

/&lt;em&gt; CSS &lt;/em&gt;/
.logo-face-dark { fill: #0a66ae; }
.logo-face-light { fill: #1087e1; }
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
And since I want all four elements to change color when any of them are hovered, I actually need to target a parent; conveniently, the &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; element serves that purpose well (pardon the SCSS again):
&lt;/p&gt;

&lt;p&gt;
&lt;pre&gt;
svg:hover {
  .logo-face-dark { fill: #0a66ae + 100; }
  .logo-face-light { fill: #1087e1 + 100; }
}
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
One hiccup: I lose &lt;code&gt;transition&lt;/code&gt; when in Chrome. Not sure why. But also not a huge deal (&lt;code&gt;transition&lt;/code&gt; is one of those CSS3 properties that we should all be okay with degrading away). Though, this is probably a good reason to use script instead of CSS for interaction purposes in SVG.
&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;
To start with the obvious, while I was happy to pursue the combination as an experiment in my footer, I don’t suggest that anyone mix and match SVG and fonts for icons; for the sake of consistency, do one or the other.
&lt;/p&gt;

&lt;p&gt;
I can see myself using SVG entirely at some point. I like the extra visual control and rendering consistency, and other simple things like, say, supporting more than one color at a time in a single drawing. I’ll need to spend some time digging into animating and transitioning interactions before I completely make the dive.
&lt;/p&gt;

&lt;p&gt;
But for the vast majority of simple icon UI, it’s hard to argue against icon fonts. It’s pretty huge that they take on the very same style properties as text. &lt;code&gt;@font-face&lt;/code&gt; is supported pretty widely at this point. There’s no question that they’re more convenient than rasterized icons and sprites, especially now that there’s great tools for creating them, like &lt;a href=&quot;http://keyamoon.com/icomoon/#toHome&quot;&gt;IcoMoon&lt;/a&gt;. For cross-browser, scalable, easily styled icons, they’re the way to go for now.
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Short Sighted: MyTailor.com&amp;rsquo;s Online Made-to-Measure</title>
      <link>http://marcocarag.com/2012/06/11/short-sighted-mytailor-com-rsquo-s-online-made-to-measure/</link>
      <pubDate>Mon, 11 Jun 2012 10:00:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/06/11/short-sighted-mytailor-com-rsquo-s-online-made-to-measure/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-xTp6cm2jkt4/T5x5Zvx4ZNI/AAAAAAAAHZY/SYnvwk2J0BQ/s888/P4286428.jpg?align=fullWidth&quot; alt=&quot;Tuxedo shirt by Joe Hemrajani from MyTailor.com&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736593508592542930&quot;&gt;&lt;/p&gt;
&lt;p&gt;I hate getting things altered. The effort usually involves toting clothes to work, making an extra subway stop on the way home, getting sized up and dropping the clothes off, and returning in a week with your fingers crossed that a second round of alterations won’t be needed. And that’s making the huge assumption that the off-the-rack clothes were salvageable to begin with &amp;mdash; an expensive rarity for my skinny, 5′ 2″ frame.&lt;/p&gt;
&lt;p&gt;Fortunately, the rise of online made-to-measure promises to make alterations the expensive rarity. Here’s my thoughts on my first made-to-measure experience &amp;mdash; Hong Kong-based MyTailor.com &amp;mdash; and why made-to-measure is a must for XS and down.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;
MyTailor.com is run by the warmly demeanored Joe Hemrajani, who is clearly more tailor than website designer. The experience on MyTailor.com is a bit clunky, and often overwhelming in choice. You start the shirt-making process with fabric selection, which is a massive navigational tree branching off into hundreds of grids of cloth types and brand names that only a true shirt geek would care for. I’m not one, or at least not &lt;i&gt;this&lt;/i&gt; much of one, so my first order ended up being the cheapest white fabric I could find.
&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;
The next step, involving collars, pockets, plackets, and other customizations, is much more intuitive and fun, but it’s still stuffed to the gills with options. There’s no less than fifteen different collar designs, nine cuff types, and four kinds of placket. You can even specify the length of the collar, which is a great level of customization. For my first shirt, I did an “English Cut-Away” collar, no pockets, and a plain front &amp;mdash; pretty much a combination I never find off-the-rack.
&lt;/p&gt;&lt;/p&gt;
&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736604241219189346&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-22d-DMbgi5Q/T5yDKd7eemI/AAAAAAAAHaI/xi0sN_w4VKU/s888/P4286445.jpg&quot;
        alt=&quot;Tuxedo shirt from MyTailor.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;
Finally, the next and most important step: measuring. MyTailor.com suggests four methods, but there’s really only one worth considering for the first run: getting a friend to measure you. The instructions provided are straightforward and easy to follow, and there are a lot of measurements to be taken, which is encouraging. After that’s done, the measurements are saved to your account, and you’re ready to pay and wait a month for the shirt to arrive.
&lt;/p&gt;
&lt;p&gt;
However, Joe does one-better if you happen to live in or near a major city in the US: he packs his bags full of swatchbooks and sets up shop in hotels for a few days to take measurements and orders in person. I did this for my third shirt from him &amp;mdash; a formal tuxedo shirt &amp;mdash; and it was by far the best way to place an order. First off, there are real live &lt;i&gt;swatch books&lt;/i&gt; &amp;mdash; hundreds of them. Seeing the fabric in person is infinitely easier than the awkward virtual catalog on the website. And not being a fabric geek, it’s good to have Joe there to guide me through his overwhelming selection.
&lt;/p&gt;
&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736604187545361138&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-knKVH31-vZ4/T5yDHV-o2vI/AAAAAAAAHZ4/377C-1zAhVM/s888/P4286443.jpg&quot;
        alt=&quot;Tuxedo shirt bib, for the most expensive lobster eating experience ever.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Tuxedo shirt bib, for the most expensive lobster eating
    experience ever.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Second, he notes details that are either difficult to convey online or that simply wouldn’t have occurred to me. Things like subtleties in my posture that would affect differences between my shoulders’ size and height, or even the extra girth needed on my left cuff to accommodate my watch.
&lt;/p&gt;
&lt;p&gt;
It takes around a month between placing an order and having the shirt in-hand; Joe admitted to somewhere over 20,000 customers worldwide, so it’s an understandable duration. And the product is terrific &amp;mdash; the first time around, downright revelatory. Things like accurately sized and positioned arm holes (incidentally, something that’s also extremely difficult if not impossible to alter, so getting it right is important), perfect sleeve lengths, narrow cuffs that don’t dwarf my hands (a big problem off-the-rack), minimal blousing around the waist… It’s great to have so much work and fit so well right out of the box. It’s even better to have the details that I’d never find at a retailer &amp;mdash; things like a cut-away collar (the rarity of which in off-the-rack I can’t explain), or angle-cut cuffs. He even provides free brass collar stays with each order &amp;mdash; a sight better than the plastic flimsies that most off-the-rack come with.
&lt;/p&gt;
&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736604162300831106&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-aUdHVwsHCFg/T5yDF3735YI/AAAAAAAAHZw/6i5Ib18nx28/s888/P4286436.jpg&quot;
        alt=&quot;Free brass stays with every shirt.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Free brass stays with every shirt.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
My first MyTailor.com shirt was around $75 shipped. The last, with substantially higher quality fabric, and fancier customizations (a textured pique front, collar, and cuffs, and removable buttons) was approximately $125. I’m not nearly nerdy enough about shirts to distinguish the finer details of manufacture, such as quality of stitching or the material of the buttons, but I will say that my first MyTailor.com shirt is four years old now, and is holding up great with nary even a loose button.
&lt;/p&gt;
&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736604217597208930&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-tuMFyaj0tBA/T5yDJF7jqWI/AAAAAAAAHaA/WJZGIKBus8g/s888/P4286444.jpg&quot;
        alt=&quot;Removable buttons for replacing with studs.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Removable buttons for replacing with studs.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Next to a quality off-the-rack shirt with alterations, the price is comparable &amp;mdash; in some cases, more affordable. Considering that the fit is great, and I don’t have to deal with dreaded alterations, the cost is well worth it. If you’re my size, or another proportion inconveniently ignored by off-the-rack designers, MyTailor.com for shirts, and online made-to-measure in general, is a must.
&lt;/p&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/u/0/photos/101625155591132408533/albums/5728262585017161025/5752966572225979746&quot;&gt;
        &lt;img src=&quot;https://lh4.googleusercontent.com/-GyXIzIvOPew/T9akne455WI/AAAAAAAAILo/HyX6IUY_oLU/s757/P6116846.jpg&quot;
          alt=&quot;All three MyTailor dress shirts in a row.&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      All creased and wrinkled from its international flight.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure class=&quot;halfColumn&quot;&gt;
    &lt;div class=&quot;curledShadow&quot;&gt;
      &lt;a href=&quot;https://plus.google.com/u/0/photos/101625155591132408533/albums/5728262585017161025/5752960386522683298&quot;&gt;
        &lt;img src=&quot;https://lh3.googleusercontent.com/-BBw1PQLRrSg/T9ae_bWUF6I/AAAAAAAAILE/axCAApsgT9c/s757/P6116848.jpg&quot;
          alt=&quot;All three MyTailor dress shirts in a row.&quot; /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;figcaption&gt;
      Off-the-rack shirts balloon like parade floats from this angle.
    &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;
&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5736593525812503746&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-VZ90F68r3qw/T5x5av7cJMI/AAAAAAAAHZg/fGJcNRzDtq0/s888/P4286432.jpg&quot;
        alt=&quot;All three MyTailor dress shirts in a row.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Minefold for Casual Minecrafting</title>
      <link>http://marcocarag.com/2012/06/08/minefold-for-casual-minecrafting/</link>
      <pubDate>Fri, 08 Jun 2012 21:19:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/06/08/minefold-for-casual-minecrafting/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/minefold-treehouse.jpg&quot; alt=&quot;&amp;lt;a href=&amp;quot;http://www.minefold.com&amp;quot;&amp;gt;Minefold&amp;#58;&amp;lt;/a&amp;gt; A perfect fit with Minecraft.&quot; title=&quot;https://minefold.com/marcocarag/jazzcrazedom&quot;&gt;&lt;/p&gt;
&lt;p&gt;The sandbox smash, &lt;a href=&quot;http://www.minecraft.net&quot;&gt;Minecraft&lt;/a&gt;, is really
fun. Setting up, port-forwarding to, and maintaining a multiplayer server, all
while moderating against and booting out &amp;ldquo;griefers&amp;rdquo; really sucks.
So, don&amp;rsquo;t do any of that, and use
&lt;a href=&quot;http://www.minefold.com&quot;&gt;Minefold&lt;/a&gt;, instead.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
I love &lt;a href=&quot;http://www.minecraft.net&quot;&gt;Minecraft&lt;/a&gt;. After my curiosity
was piqued by a random video of someone accidentally burning their blocky
house to the ground, I nabbed the alpha version, and have moved countless
blocks since. I love it especially because there’s no objectives, no missions,
no timers; I can do whatever I want, at whatever pace I want. A true sandbox.
&lt;/p&gt;&lt;p&gt;
When it comes to sharing Minecraft worlds, options are slightly limited. There’s
Minecraft server software that can be run on a machine for sharing on a local
network. Or the wider Internet with the right port-forwarding router setup. I’d
rather pay a bit to have all that hardware and setup handled for me.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/minefold-create-world.png&quot;
      alt=&quot;Creating a new world in Minefold&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Upload your locally created worlds, or create a new one with a dead-simple
    interface.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
Amazing, then, what the hosting service &lt;a href=&quot;http://minefold.com&quot;&gt;Minefold&lt;/a&gt;
offers for free: ten hours of play a month on an unlimited number of Minecraft
worlds. It turns out ten hours a month is way beyond ample for my casual playing
needs. If somehow it’s ever not enough, there are unlimited play “Pro” options
starting at $15 for three months, and getting cheaper with six- and twelve-month
commitments. After a brainless signup (designer Chris Lloyd did an amazing job
with Minefold’s elegant design), you can upload your existing locally-created
worlds, or easily start a new one. At its most basic, it’s the perfect way to
cloud-store your worlds. But there&amp;rsquo;s more to it than just the basics.
&lt;/p&gt;&lt;p&gt;
Minefold has two major strokes of genius, both setting it apart from other
competitors that I considered back when I was looking. The first is that you’re
charged for play time &amp;mdash; not for the servers. What this means is that you don’t
need to worry about capacity costs or anything of the sort; if you have a dozen
other players participating, however much they play is their own problem and
their own bill, just the same as with your own participation. And on that note,
allowing other players in is akin to adding them as a friend on Facebook; they
put in a request, and you approve it. There’s no other way about it, which
makes preventing “griefers” (in the “speak”) an easy thing to do, if you keep
approvals close to your chest.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/minefold-world-profile.jpg&quot;
      alt=&quot;Profile page for a Minefold world&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Minecraft worlds get brilliant presentation in Minefold.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
The second stroke of genius is how worlds are shared. To start, your world and
the literally thousands of other worlds created by other users have wonderful
“profile” pages, centering around a truly awesome Google Maps-driven
isometric pan-able and zoom-able view of the world as it’s so far been explored.
This is actually an incredibly useful feature; not only have I spent countless
minutes panning and zooming around finding things in this map of my world that
I didn’t notice when actually wandering in Minecraft, but I’ve often kept it
open to use as a real map while I played the game simultaneously.
&lt;/p&gt;
&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://minefold.com/worlds?page=148&quot;&gt;
      &lt;img src=&quot;/images/minefold-explore.png&quot;
      alt=&quot;Exploring worlds in Minefold&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Exploring your own and other people&amp;rsquo;s worlds &amp;mdash; and cloning them
    &amp;mdash; is a downright pleasurable experience.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;
Obviously, it’s also a wonderful way to experience what others have created.
Thumbnails of these isometric maps can be browsed in an “Explore” page, and you
can click into any world’s “profile” page. And to top it off, you can clone any
world you come across to claim as your own. This means that you can experience
other people’s creations without having to trouble yourself with getting
approval as a participant in their exact original of that world. Seriously,
Minefold solves all the problems of safe and easy multiplayer Minecraft with its
browsing, cloning and approval system.
&lt;/p&gt;

&lt;p&gt;
Did I mention that all of this is free? You don’t pay a dime until you’ve
surpassed ten hours of play time in a given month. What a deal, especially for
the casual player. For making multiplayer Minecraft painless, brainless,
griefer-free, and just plain pleasurable to use &amp;mdash; even when not playing
&amp;mdash; &lt;a href=&quot;http://www.minefold.com&quot;&gt;Minefold&lt;/a&gt; is the way to go.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://minefold.com/theusian/city&quot;&gt;
      &lt;img src=&quot;/images/minefold-city.jpg&quot;
        alt=&quot;Theusian's City&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Some people are better at Minecraft than I.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>My new favorite watch is my old one</title>
      <link>http://marcocarag.com/2012/05/22/my-new-favorite-watch-is-my-old-one/</link>
      <pubDate>Tue, 22 May 2012 16:47:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/05/22/my-new-favorite-watch-is-my-old-one/</guid>
      <author></author>
      <description>&lt;p&gt;I just got a springbar tool from Amazon, and I think it&amp;rsquo;s the best nine bucks
I&amp;rsquo;ve spent in a while. Why? Because it lets me do this:&lt;/p&gt;
&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745444214311080386&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-J2VfGXPgd3w/T7vrEn7V0cI/AAAAAAAAH_8/eRTNaiV_bRA/s888/P5216660.jpg&quot;
        alt=&quot;My Parnis pilot watch on a beige NATO strap.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    My Parnis pilot watch on a
    &lt;a href=&quot;http://www.amazon.com/gp/product/B005DF0ZKW/ref=oh_details_o00_s00_i00&quot;&gt;beige NATO strap&lt;/a&gt;.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  That’s a light-brown nylon NATO strap on the very same Parnis pilot watch that
  I reviewed a while back. If you’ll remember (or as you’ll see, if you never
  knew to begin with and proceed to
  &lt;a href=&quot;/2012/04/23/parnis-manual-wind-watches&quot;&gt;read my review of it&lt;/a&gt;),
  one of my least favorite things about the watch was the strap. It so happens
  that’s exceedingly easy to remedy, thanks to this cheap tool.
&lt;/p&gt;

&lt;p&gt;
  Crucially for me, it’s allowed me to do this:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745444304664173810&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-qoIRg_WPzf0/T7vrJ4hMnPI/AAAAAAAAIAM/f_s55X_kAxI/s888/P5216663.jpg&quot;
        alt=&quot;My Parnis watch with my old broken Garton's strap.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Match made in wrist heaven: my Parnis watch with my old broken Garton&amp;rsquo;s strap.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  That’s the ruddy brown strap from my broken Garton pilot, which I think is an
  amazing match for this watch. The reddish color plays well with the tiny red
  “60” in the seconds sub-dial, and the stainless steel rivets make it look even
  more classic — not to mention that it’s a softer and more comfortable strap
  than the stiff affair that came with the Parnis originally.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745444091992052018&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-HnyftHrW6Vk/T7vq9gQNkTI/AAAAAAAAH_0/57pQ4zbHtu0/s888/P5216659.jpg&quot;
        alt=&quot;Watch springbar tool.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    My new favorite thing: a &lt;a href=&quot;http://www.amazon.com/gp/product/B005ZEWGSA/ref=oh_details_o06_s00_i00&quot;&gt;watch springbar tool&lt;/a&gt;.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  But most importantly, I’ve increased the versatility of my watch with this
  tool. I can dress it up with leather, or make it more breathable with a nylon
  or canvas. And I never have to worry about the strap not matching my belt and
  shoes (yes…I do worry about that a little).
&lt;/p&gt;

&lt;p&gt;
  &lt;a href=&quot;http://www.youtube.com/results?search_query=spring+bar+tool&amp;oq=spring+bar+tool&amp;aq=f&amp;aqi=g1g-m2&amp;aql=&amp;gs_l=youtube-reduced.3..0j0i5l2.23106.24306.0.24470.15.11.0.3.3.0.125.910.10j1.11.0...0.0.YnivTHJbteI&quot;&gt;
  Instructions abound on Youtube&lt;/a&gt; on using springbar tools, but honestly
  there’s not much to figure out, anyway. Just don’t store it where you’d be
  reaching for it blindly; some of the tips are pin-sharp.
&lt;/p&gt;

&lt;p&gt;
  By the way&amp;hellip;on the topic of straps, the aforementioned NATO strap, from
  a company called Clockwork Synergy, is great,
  &lt;a href=&quot;http://www.amazon.com/s/ref=bl_sr_watches?_encoding=UTF8&amp;node=377110011&amp;field-brandtextbin=Clockwork%20Synergy%2C%20LLC&quot;&gt;
    and comes in more colors than the rainbow&lt;/a&gt;. I was concerned that I&amp;rsquo;d
  have to
  &lt;a href=&quot;http://www.pmwf.com/Watches/WatchSchool/WS 13 How to add additional holes to Nylon straps/WS 13 How to make nice additional holes into Nylon straps.htm&quot;&gt;
    melt holes in it&lt;/a&gt; because these straps are notoriously long (probably
  to accommodate James Bond&amp;rsquo;s massive Soviet-choking wrists), but &amp;mdash;
  unlike its leather cousins &amp;mdash; this one didn&amp;rsquo;t need any modification.
  I recommend them.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745444263238220226&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-mnWk93-h0M0/T7vrHeMeucI/AAAAAAAAIAE/ijt2EYWPMKk/s886/P5216662.jpg&quot;
        alt=&quot;Parnis on beige NATO straps&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The NATO strap &amp;mdash; a cheap way to bring variety to your watch.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Blue Nubuck Shoes by Bass</title>
      <link>http://marcocarag.com/2012/05/20/blue-nubuck-shoes-by-bass/</link>
      <pubDate>Sun, 20 May 2012 09:45:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/05/20/blue-nubuck-shoes-by-bass/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-nszPicW0Bec/T7rpjgAtHMI/AAAAAAAAH_Q/wlsDRoWzM1c/s888/P5206653.jpg?align=fullWidth&quot; alt=&quot;A &amp;lt;strike&amp;gt;tree&amp;lt;/strike&amp;gt; shoe &amp;lt;strike&amp;gt;grows&amp;lt;/strike&amp;gt; stares out a window in Brooklyn. The denim-blue &amp;ldquo;Brockton&amp;rdquo; by &amp;lt;a href=&amp;quot;https://bassshoes.harborghb.com/&amp;quot;&amp;gt;Bass&amp;lt;/a&amp;gt;&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745161070762073282&quot;&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got a thing for navy shoes in the warmer months &amp;mdash;
they&amp;rsquo;re versatile like brown shoes, but bring a more vibrant
contrast to already brown-hued khaki pants. My fiancee recently turned
me to &lt;a href=&quot;http://bassshoes.harborghb.com&quot;&gt;Bass&lt;/a&gt;, a 136-year-old
Maine-based company I&amp;rsquo;d known solely for the loafers of my parent&amp;rsquo;s
generation, as an affordable source for this shoe. After getting these,
it&amp;rsquo;s clear that I didn&amp;rsquo;t pay enough attention to the company over
the years.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  Got a pair of their &amp;ldquo;Brockton&amp;rdquo; model in &amp;ldquo;Denim Blue&amp;rdquo; nubuck off of
  &lt;a href=&quot;http://www.zappos.com/bass-brockton-denim?zlfid=111&amp;recoName=zap_pdp_sub&amp;zfcTest=fw:0&quot;&gt;Zappos&lt;/a&gt;
  for the relatively bargain price of $65. They also produce the more expensive
  but very similar-looking &lt;a href=&quot;http://www.zappos.com/bass-buckingham-navy?zlfid=111&amp;recoName=zap_pdp_sub&amp;zfcTest=fw:0&quot;&gt;Buckingham&lt;/a&gt;
  model, boasting white contrast laces and stitching and what looks to be finer
  grained and darker navy nubuck. I likely would have preferred the darker color,
  but as this was my first pair of Bass, I wanted to scout the fit of the brand.
  I&amp;rsquo;m a difficult size almost never found in stores &amp;mdash; 6.5 wide
  &amp;mdash; so scouting means using sites like Zappos with excellent return policies.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745161113709877490&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-No8ue3zxb7M/T7rpmAAQmPI/AAAAAAAAH_Y/4jtgh7rn7-A/s888/P5206654.jpg&quot;
        alt=&quot;Bass' Brocktons&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The Brocktons are soft, pliable, and comfortable out of the box. I&amp;rsquo;ve
    stuffed them with &lt;a href=&quot;http://www.powersteps.com/&quot;&gt;Powerstep&lt;/a&gt; insoles
    for additional comfort, and to bring the size 7 shoes down to my level.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Fortunately, I&amp;rsquo;ve got no reason to return them, despite Zappos not
  stocking them in 6.5 wide; most shoe producers have 7 as their bottom size.
  In 7 medium, they are clearly on the long side, but a nice third-party insole
  makes them comfortably snug. I&amp;rsquo;ve also gotten cheated by 6.5 wide shoes
  that are too small (Sebago, I&amp;rsquo;m looking at you), and that&amp;rsquo;s much
  more difficult to rectify, so being able to use insoles to make 7 wearable is
  a welcome option.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://lh5.googleusercontent.com/-QwWj4yS8E6c/T7jyS4_Z0qI/AAAAAAAAH-8/ETTxnWtLGXc/s888/P5206641.jpg&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-QwWj4yS8E6c/T7jyS4_Z0qI/AAAAAAAAH-8/ETTxnWtLGXc/s888/P5206641.jpg&quot;
        alt=&quot;The Brocktons under some dull khakis.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    I like navy shoes underneath otherwise dull khakis.
  &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;
  The nubuck is really soft, and the rubber sole is quite pliable, making them
  comfortable to walk in right off the bat &amp;mdash; more like a sneaker than
  leather-soled dress shoes. And they also come in a bunch of other colors,
  like the classic seersucker-and-mint-julep-ready,
  can&amp;rsquo;t-wait-until-Memorial-Day
  &lt;a href=&quot;http://www.onlineshoes.com/mens-bass-brockton-white-nubuck-p_id183220&quot;&gt;
    white nubuck over red sole&lt;/a&gt; that my fiancee constantly convinces me I
  don&amp;rsquo;t need. They don&amp;rsquo;t have my size anymore, anyway, so whatever.
  But if they have yours, I heartily recommend them!
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5745161140046031826&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-_KuD3NddS3Y/T7rpniHSa9I/AAAAAAAAH_g/00Ce47z7Z8o/s888/P5206655.jpg&quot;
        alt=&quot;The Bass logo on the white rubber sole&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    I wish I&amp;rsquo;d looked at Bass shoes sooner!
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Trying Out Knit Ties</title>
      <link>http://marcocarag.com/2012/05/19/trying-out-knit-ties/</link>
      <pubDate>Sat, 19 May 2012 00:10:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/05/19/trying-out-knit-ties/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-lLu9udZIRBc/T7fAlmj-7LI/AAAAAAAAH6M/g11q5BJQOZE/s888/P5096540.jpg?align=fullWidth&quot; alt=&quot;Burma Bibas silk knit tie, found at Century 21&quot; title=&quot;https://plus.google.com/u/0/photos/101625155591132408533/albums/5728262585017161025/5744271601973521586&quot;&gt;&lt;/p&gt;
&lt;p&gt;
  Been yearning to do neckwear outside of the usual business, formal, and
  Halloween situations, and I finally decided to give it an earnest shot this
  Spring starting with my very first silk knit ties. I bought two from one of my
  favorite sources for accessory experimentation:
  &lt;a href=&quot;https://www.c21stores.com&quot;&gt;Century 21&lt;/a&gt; in the Financial District.
&lt;/p&gt;

&lt;p&gt;
  Seemingly always overrun by tourists, Century 21 can be overwhelming and
  is often hit-or-miss. But it&amp;rsquo;s great for cheap experiments in
  accessorizing, such as for ties and pocket squares. The one I&amp;rsquo;m trying
  here is by a company I&amp;rsquo;d never heard of before called Burma Bibas, and
  costed around $10. I also got a black and purple (goth colors, my fiancee
  notes) horizontal striped Ralph Lauren for around $17.
&lt;/p&gt;

&lt;p&gt;
  Since this was during one of the more precipitous days in recent weeks (April
  flowers brought May showers in NYC), I&amp;rsquo;m also donning a
  &lt;a href=&quot;http://www.uniqlo.com&quot;&gt;Uniqlo&lt;/a&gt;
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Mackintosh&quot;&gt;mac&lt;/a&gt; coat and my favorite
  rain boots from
  &lt;a href=&quot;http://www.llbean.com/llb/shop/31180?feat=506697-CL2&quot;&gt;L.L. Bean&lt;/a&gt;:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/u/0/photos/101625155591132408533/albums/5728262585017161025/5744271641034577698&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-Te2gZt3aAPc/T7fAn4E3VyI/AAAAAAAAH6U/xVE7vxJtfZo/s888/P5096542.jpg&quot;
        alt=&quot;L.L. Bean Boots&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    &lt;a href=&quot;http://www.llbean.com/llb/shop/31180?feat=506697-CL2&quot;&gt;Bean Boots&lt;/a&gt;
    by L.L. Bean.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Parnis Pilot&amp;rsquo;s Watch</title>
      <link>http://marcocarag.com/2012/04/23/parnis-pilot-rsquo-s-watch/</link>
      <pubDate>Mon, 23 Apr 2012 00:06:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/04/23/parnis-pilot-rsquo-s-watch/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-IQx6IpATghk/T5R6hTzQtYI/AAAAAAAAHWs/0zaJsPZ00-0/s888/P4206377.jpg?align=fullWidth&quot; alt=&quot;Parnis &amp;ldquo;Special@9&amp;rdquo; 44mm manual hand-winding watch.&quot; title=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734342938219033986&quot;&gt;&lt;/p&gt;
&lt;p&gt;Parnis is a Chinese mechanical watch maker specializing in homages to popular
styles. The ones that drew my attention are their &amp;ldquo;pilot&amp;rdquo;-styled
hand-winding watches. I just recently got one &amp;mdash; unbranded, with the
seconds subdial at the 9-o-clock &amp;mdash; and it&amp;rsquo;s pretty great.&lt;/p&gt;
&lt;p&gt;
  I love mechanical watches. Despite being significantly less accurate than
  pretty much every other watch technology since the 1950s (like quartz),
  there&amp;rsquo;s something beautiful and elegant in the tiny gears and springs of
  mechanical movements, which also never need batteries. My first mechanical
  watch is a diver: the
  &lt;a href=&quot;http://www.hamiltonwatch.com/en/gents/khaki/navy/navy-gmt/H77615133&quot;&gt;
    Hamilton Khaki Navy GMT&lt;/a&gt;. It&amp;rsquo;s an automatic with screw-down crowns
  &amp;mdash; robust, heavy, beautiful, and complicated with several rotating
  bezels. In looking for a second watch, I wanted something simpler and more
  elegant.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734428130284003634&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-zEByHf1OM_U/T5TIAI-V4TI/AAAAAAAAHYc/CsFlyrPpXSg/s888/P4226402.jpg&quot;
        alt=&quot;Parnis &amp;ldquo;Special@9&amp;rdquo; 44mm Pilot Watch&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
  I&amp;rsquo;m drawn to pilot watches for the same reasons early 20th-century
  pilots found them appealing: because of the legibility of the heavy white
  sans-serif numerals on large black dials. And in making my rounds of watch
  forums and blogs, I came across Chinese watchmakers like Parnis doing them on
  the cheap.
&lt;/p&gt;

&lt;p&gt;
  This is actually my second Chinese hand-wound watch. I previously bought a
  Garton pilot watch that I also really loved. But one day, I made the poor
  decision of letting it get near-soaking wet. The dial casement popped off not
  long after, and then the movement just plain stopped working. I could have
  gotten it repaired, but it would have costed better than 50% of the original
  sub-$100 cost. These are not water-resistant watches, which is definitely
  worth keeping in mind.
&lt;/p&gt;

&lt;p&gt;
  Finally, months after the Garton broke, I ordered the
  &amp;ldquo;&lt;a href=&quot;http://manbushijie.com/productshow-341-6.html&quot;&gt;44mm Black Dial
    Special@9 White Number Asian 6497&lt;/a&gt;,&amp;rdquo; (whew) which I picked
  mostly because I loved the typography and the red &amp;ldquo;60&amp;rdquo;
  on the seconds subdial. &lt;a href=&quot;http://manbushijie.com&quot;&gt;Manbushijie.com&lt;/a&gt;
  (heavily endorsed by forums as one of the most reliable Chinese watch sources)
  lists it at $86, but once I registered, prices all across the site dropped by
  about a quarter, and I was able to nab this one at $69 including shipping from
  China. A little weird, since I&amp;rsquo;m pretty sure registration is required to
  order anything. Anyway, about three weeks later, the watch arrived flat in a
  padded envelope and swathed in bubble wrap.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734343482578175122&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-HZTjqEmryx8/T5R7A_smBJI/AAAAAAAAHXI/wrBHuol-1ZU/s888/P4096167.jpg&quot;
        alt=&quot;Sitting next to my old gunmetal-colored Garton. Note the lighter
        weight numerals and markings on the Special@9.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Sitting next to my old Garton, which has a gunmetal &amp;ldquo;PVD&amp;rdquo;
    case. Note the lighter weight numerals and markings on the Special@9.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  The first thing I noticed after I unwrapped the &amp;ldquo;Special@9&amp;rdquo;
  is how large the dial seems. It&amp;rsquo;s the same 44mm as the Garton I got
  before it, but the numbers and minute markers are a hair lighter weight. Also,
  the markers are about a millimeter shorter, placing the numerals at a wider
  radius. Combined with the lack of any branding, there&amp;rsquo;s a lot more
  whitespace (or blackspace) than the Garton. This also makes the dial feel
  cleaner and more elegant, but it feels a tad oversized on my sub-7” wrist. If
  everything were drawn in by around two millimeters, it would be perfect.
&lt;/p&gt;

&lt;p&gt;
  That said, the numerals are clean and lovely, and I&amp;rsquo;m particularly fond
  of the seconds subdial. It&amp;rsquo;s got radial ridges, like a vinyl record,
  that give it a sort of metallic gleam when light hits it. The seconds numerals
  are set in the same typeface as the minutes (unlike the Garton, which used a
  serif face and looked a bit awkward), and the subdial itself feels cleanly
  placed, cropping the 10 and 8 at the 9-o-clock position.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734343122564986162&quot;&gt;
      &lt;img src=&quot;https://lh5.googleusercontent.com/-mH1vrRLahkk/T5R6sCiwtTI/AAAAAAAAHW0/C2FLF3KEtG8/s888/P4096163.jpg&quot;
      alt=&quot;The Parnis Special@9 Pilot Watch&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/figure&gt;

&lt;p&gt;
  The case is simple stainless steel, polished on top and
  bottom, and brushed along the sides. On the 9-o-clock side of the
  case, opposite the crown, its got a simple art-deco-ish ornamentation that on
  the one hand is completely inoffensive but on the other sort of breaks the
  minimalism of the dead-simple case. It&amp;rsquo;s also got a transparent glass
  caseback that displays the movement &amp;mdash; a pretty 6497 clone with some
  blue screws, pink rubies, and engraved metal.
&lt;/p&gt;

&lt;p&gt;
  Like many pilot watches (and the Garton before it), the Special@9 has a huge
  diamond-shaped crown that winds the power spring when turned clockwise.
  Pull the crown out, and the time can be set by turning in either direction.
  The seconds do not stop when the crown is pulled (a concept known as
  &amp;ldquo;hacking,&amp;rdquo; making it easier synchronize); usually, I try to hold
  the minute hand exactly on a minute marker before pushing the crown back to
  help ensure the hands are in sync.
&lt;/p&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734360683352554946&quot;&gt;
      &lt;img src=&quot;https://lh6.googleusercontent.com/-7gnjzOo6Ejs/T5SKqNkx_cI/AAAAAAAAHYI/haUUaDtD8AY/s895/P4096170.jpg&quot;
      alt=&quot;Transparent caseback showing off a 6497-like movement with regulator
      at the top throttled fully slow. It still runs a tad fast.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Transparent caseback showing off a 6497-like movement with regulator
    at the top throttled fully slow. It still runs a tad fast.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  One thing of note, which is also common amongst these Chinese mechanicals,
  is that the movement is quite loud. Imagine the signature sound of the
  &lt;em&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=TFjt_fV8hPU&quot;&gt;60 Minutes&lt;/a&gt;&lt;/em&gt;
  clock audible from a foot away in relative quiet. I actually like the noise,
  but my fiance&amp;#233; isn&amp;rsquo;t into it; if we&amp;rsquo;re sitting next to each
  other, and I&amp;rsquo;m leaning my head in my left hand (not an unusual posture
  for anyone), then she can hear and is quite distracted by the sound of the
  rotor in action. Whereas for me, after regular wear for the past few weeks,
  the ticking has become pleasant white noise.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734343304757231746&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-t11-F3y_hI8/T5R62pQxwII/AAAAAAAAHW8/FgGUoGeYJEA/s903/P4096164.jpg&quot;
      alt=&quot;Comparison of lume between Hamilton Khaki Navy GMT, the Parnis, and
      the Garton.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Comparison of lume between Hamilton Khaki Navy GMT, the Parnis, and the
    Garton after a 30-second shot of a 20-watt halogen lightbulb.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Also like many pilot watches, the numerals, hands, and markers are coated
  in luminous paint. It&amp;rsquo;s a standard green, like that used on my Hamilton,
  but not as immediately bright. For me, the important part of lume is duration,
  and the Garton excelled at this; I would be able to read the watch late into
  a two-hour movie at a theater, which is far longer than the Hamilton. This
  Parnis, however, doesn&amp;rsquo;t seem to have the same duration as the Garton.
  The Garton also uses blue lume, as opposed to the green on the Hamilton and
  Parnis, which could be a factor. I suppose I just need to watch more
  interesting movies when wearing the Special@9.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734343862685199538&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-RE9q4oFeXos/T5R7XHtK7LI/AAAAAAAAHXg/DXxLqoB68Bo/s903/P4096173.jpg&quot;
        alt=&quot;Lume after about half an hour. Tried to keep exposure the same as
        the prior shot.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Lume after about half an hour. Tried to keep exposure the same as the prior
    shot.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734343574441758962&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-6oos-v_0sP4/T5R7GV6lEPI/AAAAAAAAHXQ/92kMo1TKa-w/s888/P4096169.jpg&quot;
        alt=&quot;The exceedingly cheap-feeling &amp;ldquo;genuine leather&amp;rdquo; strap.
        I felt okay about grinding a hole through it with a razor for my short
        wrist.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    The exceedingly cheap-feeling &amp;ldquo;genuine leather&amp;rdquo; strap. I felt
    okay about grinding a hole through it with a razor for my narrow wrist.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  One of the unsurprising downsides of cheap watches like those from Parnis and
  Garton is the strap, which is wholly unremarkable, stiff leather. I actually
  prefer the strap of the Garton, which is thinner and more pliable than the
  Special@9. It&amp;rsquo;s also a nice color &amp;mdash; a reddish brown that contrasts
  well with the charcoal colored Garton case. At a distance, the thick and dark
  brown strap of the Special@9, with its white contrast stitching, seems fine
  next to the polished stainless steel case &amp;mdash; it actually looks rather
  classic. Spending a minute to look closer, though, and it looks and feels
  plasticky. Still, with regular wearing, the strap becomes softer, and
  I&amp;rsquo;ve warmed to it enough that I&amp;rsquo;m not clamoring to replace it with
  something nicer. Also, since it&amp;rsquo;s so cheap, I didn&amp;rsquo;t feel the least
  bit squeamish about taking a razor to it to dig out a new hole to accommodate
  my thin wrist (which I also did with the Garton, which has an even longer
  strap).
&lt;/p&gt;

&lt;p&gt;
  After about a month of wearing, the watch has become a comfortable wrist
  presence. I didn&amp;rsquo;t realize how much I&amp;rsquo;d missed cranking a manual
  movement, and like the Garton before it, I never let the spring run out.
  The movement runs fast &amp;mdash; I didn&amp;rsquo;t measure the divergence precisely
  since I never cared for ultra-precise timekeeping (if I did, I wouldn&amp;rsquo;t
  be into mechanical watches), but it&amp;rsquo;s maybe something like a minute
  gained a week. Thanks to the simplicity of the watch, it&amp;rsquo;s no problem
  readjusting once a week or so. In fact, it&amp;rsquo;s probably indirectly helped
  me be early to appointments.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734360968346995730&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-_sBtOgs1fUI/T5SK6zQwDBI/AAAAAAAAHYQ/ToXO-Pvai8g/s888/P4166364.jpg&quot;
        alt=&quot;Condensation built up inside the case on a particularly humid morning.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    Condensation built up inside the case on a particularly humid morning.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Something I was harshly reminded of one morning is the lack of weatherproofing.
  On a particularly humid day recently, I awoke to condensation on the inside
  of the watch. The lack of any kind of gasket-like seal means that moisture
  can easily sneak in, and if not removed promptly can cause corrosion of the
  tiny metal parts. Normally, this means a trip to the watch repairer; but,
  since the Special@9 isn&amp;rsquo;t very sealed, I pulled out the crown, put it
  in a bag with uncooked rice overnight, and the next morning the condensation
  was gone.
&lt;/p&gt;

&lt;p&gt;
  I have several nitpicks with the Special@9 compared to the Garton that
  preceded it &amp;mdash; the lighter weight numerals and markers and lack of
  branding make the dial seemed oversized, and the lume is unimpressive, as is
  the strap. But it&amp;rsquo;s readable and cleanly designed &amp;mdash; exemplary of
  the pilot watch style. It&amp;rsquo;s accurate enough for my tastes, the movement
  is beautiful and fun to wind, and at $70 shipped, it&amp;rsquo;s a great value.
  I think I&amp;rsquo;ll dress it up in the future with new hands and a strap, but
  even in its out-of-the-envelope state, it&amp;rsquo;s totally fine.  I&amp;rsquo;ll be
  shopping Parnis again in the future, for sure.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5734351029104609874&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-701cGV6KwaU/T5SB4QstClI/AAAAAAAAHX0/jRxxKMlo5j8/s888/P4206380.jpg&quot;
        alt=&quot;A watch well worth $70.&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    A watch well worth $70.
  &lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>I Love Jekyll and Github</title>
      <link>http://marcocarag.com/2012/04/05/i-love-jekyll-and-github/</link>
      <pubDate>Thu, 05 Apr 2012 20:37:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2012/04/05/i-love-jekyll-and-github/</guid>
      <author></author>
      <description>&lt;p&gt;I love &lt;a href='http://jekyllbootstrap.com'&gt;Jekyll Bootstrap&lt;/a&gt; and
&lt;a href='http://pages.github.com'&gt;GitHub&lt;/a&gt; as a blog platform &amp;mdash; so much so
that I&amp;rsquo;m sure I&amp;rsquo;ll write posts more often than once a year. Really.
As a frontend developer and pixel-pusher, it might be the most pleasurable way to
blog that I&amp;rsquo;ve tried yet. Not that I&amp;rsquo;ve tried much, but hear me out.&lt;/p&gt;
&lt;h2&gt;The Tools&lt;/h2&gt;

&lt;p&gt;
  A month after my last blog post in late 2010, I got a new job with a dating
  startup named &lt;a href=&quot;http://www.howaboutwe.com&quot;&gt;HowAboutWe&lt;/a&gt;. It&amp;rsquo;s
  been an incredible and intense experience so far that &amp;mdash; in addition to partly
  yanking me away from paying any attention to this blog &amp;mdash; has introduced
  me to many things. Chief among those with regards to this post are
  &lt;a href=&quot;http://github.com&quot;&gt;Github&lt;/a&gt; for source control, &lt;a href=&quot;http://vim.org&quot;&gt;
  Vim&lt;/a&gt; for code editing (and writing text in general), and &lt;a href=&quot;http://compass-style.org&quot;&gt;
  Compass&lt;/a&gt; and &lt;a href=&quot;http://sass-lang.com&quot;&gt;Sass&lt;/a&gt; for writing CSS.
&lt;/p&gt;

&lt;figure class=&quot;right&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5728262600833254258&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-goxxb-nwgBM/T37gfF7SQ3I/AAAAAAAAGRE/lMUqVoHdLN8/s757/P1163394.JPG&quot;
        alt=&quot;Photo of auto parts from Bangkok's Chinatown&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;Wordpress theme components. Or&amp;hellip;auto parts from Bangkok’s Chinatown.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  I now have a flow at work that is a cinch to me. When the scales finally tipped,
  oh, maybe a year ago, and I set out to redesign this blog, it made sense to
  incorporate as much of this new beloved workflow as I could. It started with a new
  theme for my original &lt;a href=&quot;http://www.wordpress.org&quot;&gt;Wordpress&lt;/a&gt; install.
  I worked on converting the stylesheets into &lt;a href=&quot;http://sass-lang.com/docs/yardoc/file.SASS_CHANGELOG.html#3-0-0&quot;&gt;
  *.scss&lt;/a&gt; partials for use with &lt;a href=&quot;http://compass-style.org&quot;&gt;Compass&lt;/a&gt;.
  Vim was the editor, and I kept all my changes on Github. But it still didn&amp;rsquo;t
  sit completely right with me. Free time was short, and the once humble task of
  Wordpress theming and uploading via ftp to my web host felt intimidating.
&lt;/p&gt;

&lt;h2&gt;Blogs are static beasts.&lt;/h2&gt;

&lt;p&gt;
  HowAboutWe used to have ad modules for third-party sites that would make
  complex queries to conjure seemingly timely and location-relevant content.
  In retrospect, this was silly for a couple of reasons &amp;mdash; not the least of
  which being that trusting user-generated content for the purpose of
  advertising is extremely risky. (One that always brought smiles
  involved a user suggesting that he and his date join OkCupid rather
  than pay for our site.)
&lt;/p&gt;

&lt;p&gt;
  Instead, it made complete sense to curate the content, and just serve up quick
  and fast static HTML that would be browser cached practically to infinity. A day later,
  we replaced nearly all of these ads with the static content, and the elegance of the
  solution had big payoffs in both performance, and code maintenance. It was silly
  we didn&amp;rsquo;t do it that way from the start.
&lt;/p&gt;

&lt;figure class=&quot;midParagraph&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5728269955431190658&quot;&gt;
      &lt;img src=&quot;https://lh3.googleusercontent.com/-NOW4NhzORck/T37nLL8E0II/AAAAAAAAGRU/W48f9ivEqVs/s727/truck-in-chiang-mai.jpg&quot;
        alt=&quot;Photo of a truck at a highway stop in Chiang Mai Province&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;Keep it simple!&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  It wasn&amp;rsquo;t much of a leap to reach the same conclusions about blogs.
  I&amp;rsquo;d heard of static site generators like
  &lt;a href=&quot;https://github.com/mojombo/jekyll&quot;&gt;Jekyll&lt;/a&gt; before &amp;mdash; years ago,
  in fact &amp;mdash; but I never considered them useful for a blog. The thought of
  static HTML that I&amp;rsquo;d have to compile and upload after every post&amp;hellip;
  It just sounded cumbersome. And then I realized that I wasn&amp;rsquo;t exactly
  producing a daily newspaper&amp;rsquo;s worth of content. Also, there are times when
  I&amp;rsquo;d want to do a good bit of custom layout for a given post. So, my post
  content would be peppered with HTML.
&lt;/p&gt;

&lt;p&gt;
  Writing HTML into Wordpress &lt;code&gt;textarea&lt;/code&gt;s always felt awkward to me.
  I would tend to hash out the layout in a text editor and separate HTML file
  before pasting it in to Wordpress.
&lt;/p&gt;

&lt;p&gt;
  &lt;a href=&quot;https://github.com/mojombo/jekyll&quot;&gt;Jekyll&lt;/a&gt;, and more specifically
  &lt;a href=&quot;http://jekyllbootstrap.com/&quot;&gt; Jekyll Bootstrap&lt;/a&gt;, solve this problem.
  Jekyll works by pointing it to some template HTML, writing your content as either
  &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; (*.md files)
  or HTML, and then running it. It mashes the content to the template and spits out
  a fully rendered website that you can then upload. And
  &lt;a href=&quot;http://jekyllbootstrap.com/&quot;&gt;Jekyll Bootstrap&lt;/a&gt; adds some nice
  config setup, themes, and other great stuff that make blogging with Jekyll a
  near no-brainer.
&lt;/p&gt;

&lt;p&gt;
  So, using Jekyll, my posts &lt;em&gt;are&lt;/em&gt; HTML files. And I could use Vim once
  again to author all of my content. When you install Jekyll Bootstrap (which
  installs Jekyll), it provides a server that you can run that will listen to
  a &lt;code&gt;_posts&lt;/code&gt; folder for updates. The instant you save something in
  there, it does its template compilation, and your new content is instantly
  viewable at &lt;code&gt;&lt;a href=&quot;http://localhost:4000&quot;&gt;http://localhost:4000&lt;/a&gt;&lt;/code&gt;. Really awesome.
&lt;/p&gt;

&lt;h2&gt;Deployment&lt;/h2&gt;

&lt;p&gt;
  I&amp;rsquo;d learned a while back that people use &lt;a href=&quot;http://pages.github.com/&quot;&gt;
  Github Pages&lt;/a&gt; &amp;mdash; basically, a Github repo that will automatically
  be served to YOURNAME.github.com &amp;mdash; for blogging. I&amp;rsquo;d also learned, much
  more recently, that it supports Jekyll. Since I was already accustomed to
  source-controlling my work and some of my personal stuff with Github,
  deploying my blog simply by committing to a specific repo as normal sounded
  beyond perfect. Code, push, deploy became simply code and push.
&lt;/p&gt;

&lt;p&gt;
  I was concerned at first that I wouldn&amp;rsquo;t be able to push up drafts of
  posts without them being published automatically, until I had the &amp;ldquo;duh&amp;rdquo;
  realization that I could cut a branch (&lt;code&gt;$ git checkout -b “2012-04-06-my-post.html”&lt;/code&gt;),
  write my post and push it in draft state to my hearts content. I could publish
  it when ready by merging the branch to master. Another fairly exact mirror of
  my normal workflow, and it feels great.
&lt;/p&gt;

&lt;p&gt;
  Github Pages is really what seals the deal with Jekyll. Ftp is out of my life
  now, and it&amp;rsquo;s bliss. Another important step was pointing my domain,
  marcocarag.com, to jazzcrazed.github.com. Hopefully, your registrar gives you
  this capability, but it&amp;rsquo;s simply a matter of pointing an A record and
  a CNAME record to Github; the &lt;a href=&quot;http://help.github.com/pages/&quot;&gt;Github
  Pages Help&lt;/a&gt; instructions are pretty accurate in this regard.
&lt;/p&gt;

&lt;h2&gt;Resiliency&lt;/h2&gt;

&lt;p&gt;
  I think it&amp;rsquo;s hard to overstate the awesomeness of removing the overhead
  of something as complex as Wordpress. I&amp;rsquo;ve been considering moving away
  from my current web host, but the idea of deciding on a new host,
  going through a new Wordpress install on that host, and putting my old blog
  data in its MySQL database almost makes me sick to my stomach.
&lt;/p&gt;

&lt;p&gt;
  The sites generated by Jekyll are not married whatsoever to any particular
  host and the services they provide. It doesn&amp;rsquo;t matter if my web host
  has a PHP server, .NET, Rails, or Node.js, or whether it uses MySQL, Postgres,
  or a document database. The end product is static HTML. If Github crashed and burned,
  I could upload that HTML anywhere else with hardly any setup needed.
&lt;/p&gt;

&lt;p&gt;
  And as awesome the admin areas of Wordpress are, in no way does its
  &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; compare to Vim in my view. I&amp;rsquo;m sure you&amp;rsquo;d
  feel the same with your text editor of choice. The short of it: If you&amp;rsquo;re
  a web developer intending to blog about code (or even not about code, if you&amp;rsquo;re
  as bad with Vim commands outside of Vim as I am), Jekyll and Github Pages is
  likely the best way to go about it.
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;a href=&quot;https://plus.google.com/photos/101625155591132408533/albums/5728262585017161025/5728272140646561698&quot;&gt;
      &lt;img src=&quot;https://lh4.googleusercontent.com/-2C8s7WGIyZ8/T37pKYgBN6I/AAAAAAAAGRc/5cYNRbKJc9w/s757/P2235687.jpg&quot;
        alt=&quot;Photo of a doll strapped to the front grill of a construction truck in DUMBO&quot; /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;Happy Blogging!&lt;/figcaption&gt;
&lt;/figure&gt;
</description>
    </item>
    <item>
      <title>Regressive Enhancement at SXSWi 2011!</title>
      <link>http://marcocarag.com/2010/10/27/regressive-enhancement-at-sxswi-2011/</link>
      <pubDate>Wed, 27 Oct 2010 19:57:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2010/10/27/regressive-enhancement-at-sxswi-2011/</guid>
      <author></author>
      <description>&lt;p&gt;
  Just a quick one here, urging you to vote for the
  &lt;a href=&quot;http://panelpicker.sxsw.com/ideas/view/6769&quot;&gt;Regressive Enhancement,
  or Use HTML5 Today!&lt;/a&gt; panel for &lt;a href=&quot;http://sxsw.com/interactive&quot;&gt;SXSWi
  2011&lt;/a&gt;. Because I can find no better reason to go than to see a couple of
  friends of mine on stage. (Maybe the BBQ.) Also congrats to
  &lt;a href=&quot;http://miketaylr.com&quot;&gt;Mike Taylor&lt;/a&gt;, one of the speakers, for his
  brand spanking new gig at &lt;a href=&quot;http://www.opera.com&quot;&gt;Opera&lt;/a&gt;!
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>First impressions from Santo Domingo</title>
      <link>http://marcocarag.com/2010/09/05/first-impressions-from-santo-domingo/</link>
      <pubDate>Sun, 05 Sep 2010 18:31:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2010/09/05/first-impressions-from-santo-domingo/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/IMG_1644_sml.png?align=fullWidth&quot; alt=&quot;A flowered tree outside Isa&amp;#039;s parents&amp;#039; apartment&quot;&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve settled in to my fiancee&amp;rsquo;s parents&amp;rsquo;
apartment here in the Dominican Republic, and so far I feel very far away from
home. Which is indeed awesome.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  I am disgustingly ill-traveled. The last time I was out of the country was to
  play a wedding in Turks and Caicos, and I barely went outside the hotel. I
  haven’t taken a vacation for longer than a few days in nearly my entire working
  life — and never much further than my hometown in Virginia. And so this
  ten-day vacation to the Dominican Republic to visit my fiancee’s home, friends,
  and family should be a well overdue shock to this travel-noob’s nerves. Here’s
  a few of my first impressions:
&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;
      The airport thirty miles outside of downtown Santo Domingo
      is pretty much like every airport I’ve been to. If I didn’t pay attention
      to the language on the signs (or in some cases even if I did), I could
      easily mistake it for La Guardia.
    &lt;/p&gt;

    &lt;p&gt;
      The area just outside the airport is starkly different. Driving west down DR-3
      (towards downtown), the expressway is lined to the south by the ocean, and to
      the north by blocks of dessicated structures of cinderblock and wood. Occasional
      smatterings of scaffolding and construction machinery make it hard to distinguish
      whether it’s new development or decay at times; but large pyramids of trash and
      debris make me lean towards the latter.
    &lt;/p&gt;

    &lt;p&gt;
      On the six-lane DR-3, vehicles and people alike share the pavement. Cars, vans,
      and trucks whipped past men and women leaning on the narrow median and sauntering
      along the lane lines as if they were built into the roads themselves. I consider
      them crazy not for crossing a trafficked six-lane expressway, but for trusting
      the drivers on it with their lives.
    &lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;
      Traveling from the airport and through downtown Santo Domingo
      affirmed my general distaste for driving. Some disclosure, I hate getting behind
      the wheel even in the safest, quietest, and widest roads of well-paved suburbs
      (and honestly, you should probably question anew your travel options if you
      find me at the wheel of the car you’re in). But Jason Bourne himself would find
      driving here a trial.
    &lt;/p&gt;

    &lt;p&gt;
      The Dominican traffic I’ve been exposed to so far is most notably comprised of
      rusted out Toyota Corollas (the vast majority so far) and other compacts,
      Japanese SUVs, occasional BMWs, the only Chevy Nova I’ve ever seen in person,
      tiny Daihatsu trucks, motorcycles, and small buses called guaguas.
    &lt;/p&gt;

    &lt;p&gt;
      Simply put, Dominican guaguas are buses and vans owned and run by private
      owners or labor unions in areas lacking sufficient municipal transit. They
      resemble in concept the dollar vans of Brooklyn — Ford Econolines and Chevy
      Astros that honk to make their presence known to potential passengers as they
      stream up and down Flatbush Avenue. The guaguas here, too, make random pickups
      and stops, and are, according to Isa, more present than the state-run OMSA
      buses. However, they look like this:
    &lt;/p&gt;

    &lt;figure class=&quot;fullWidth&quot;&gt;
      &lt;div class=&quot;curledShadow&quot;&gt;
        &lt;a href=&quot;/images/sto-domingo-guagua.jpg&quot;&gt;
          &lt;img src=&quot;/images/sto-domingo-guagua.jpg&quot;
            alt=&quot;A guagua in Santo Domingo&quot; title=&quot;sto-domingo-guagua&quot; width=&quot;550&quot;
            height=&quot;394&quot; /&gt;
        &lt;/a&gt;
      &lt;/div&gt;
      &lt;figcaption&gt;Photo from &lt;a href=&quot;http://envalu.blogspot.com/&quot;&gt;here&lt;/a&gt;&lt;/figcaption&gt;
    &lt;/figure&gt;

    &lt;p&gt;
      The off-roader style fenders are quite literally a sort of traffic sweeper.
      It’s a fair expectation for drivers here that they will bump into things —
      and, in the case of guaguas, with intent. Dings and scars, and in one case a
      mattress affixed artfully to the rear of one guagua with packing tape, told a
      story of jockeying as the driving norm on Santo Domingo streets.
    &lt;/p&gt;

    &lt;p&gt;
      I’ve noticed that honking one’s horn here is more a sort of courtesy than an
      expression of anger or irritation — a “hello! I’m here in your blind spot!”
      kind of greeting. It’s a useful hail at times; more than just guaguas are
      worse for wear here, and in cases where tail lights are busted, a quick wave
      of a hand out a driver’s window is sometimes all that precedes an abrupt merge.
      My future father-in-law braked, swerved, and gunned around all of this chaos
      with relative aplomb.
    &lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;
      The neighborhood of Isa’s childhood and where her parents
      still reside is called Arroyo Hondo, which means “deep stream.” It’s a wealthy
      area set on steep, picturesque hills just outside of Santo Domingo Este. Windy
      streets are lined with incredibly lush vegetation, and the houses are
      magnificent and immensely gated.
    &lt;/p&gt;

    &lt;p&gt;
      Isa’s parents’ apartment is in a community called Isabel Villas, named for the
      nearby Rio Isabel (Isabel River — no relation to Isa, though everyone apparently
      asks). There’s a golf course nearby, and a guardhouse sits at its entrance.
      Across the narrow road in a dusty lot is a band of motoconchos — taxis
      comprised of small and ratty motorcycles whose drivers await the servants of
      the community to finish their days’ duties and seek out a ride back down the
      winding streets into downtown.
    &lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;
      One piece of advice from Isa and her fellow medical school
      graduate DR expats that’s resounded since long before we arrived is this: Don’t
      drink the tap water. It’s not potable, according to them, and my gastro-intestinal
      system raised on a sterile Virginian diet is especially too tender for what runs
      through Dominican plumbing. So I take from standard water-cooler-style jugs of
      filtered water, poised in a clever metal rack that tilts to angle the spout
      into the drinking implement of choice.
    &lt;/p&gt;

    &lt;p&gt;
      Another reminder that I’m a long way from New York is right next to the jugs
      of filtered water. Three rows of car batteries line the walls, and are rigged
      into an inverter, ready and waiting for inevitable brownouts.
    &lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;
      So far, since arriving at the airport until now, nearly two
      full days into my stay, I’ve not heard barely more than a whisper of distant
      merengue or bachata, or much of any music in general. Washington Heights, with
      its idling SUVs blaring La Mega, this most certainly is not, but Isa assures
      me that this won’t be the case for long. She does, after all, hate the music
      for a reason. What I have heard plenty of, however, are roosters, somewhere at
      a nearby neighbor’s house. They cock-a-doodle-do reliably in the morning; though,
      one sings well into the afternoon. Various birds and insects crow and chirp
      through the day, and I couldn’t be happier about it.
    &lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;
      The orange soda I’ve had so far here is Fanta, procured from
      a nearby Super Mercado Nacional. It’s as sweet as snow-cone syrup, and around
      600 calories per serving, and takes me about as long to finish a single twenty
      ounce bottle as it does a dram of neat whiskey. Definitely a sippers’ soda, to
      be taken on the rocks or not to be taken at all.
    &lt;/p&gt;

    &lt;figure class=&quot;fullWidth&quot;&gt;
      &lt;div class=&quot;curledShadow&quot;&gt;
        &lt;a href=&quot;/images/IMG_1372_sml-640x480.png&quot;
          rel=&quot;attachment wp-att-104&quot;&gt;
          &lt;img src=&quot;/images/IMG_1372_sml-640x480.png&quot;
            alt=&quot;Photo of a 20oz bottle of Fanta from Super Mercado Nacional&quot;
            title=&quot;IMG_1372_sml&quot; width=&quot;640&quot; height=&quot;480&quot; /&gt;
        &lt;/a&gt;
      &lt;/div&gt;
      &lt;figcaption&gt;Drink responsibly.&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
  Overall, it’s humid, but breezy, beautiful and relaxing here. The only way I
  really noticed the humidity, actually, was when I noticed after a day that the
  corners of my passport were curling up all on their own. Unlike my passport, I
  find it really comfortable here — infinitely better than the climate in our
  Brooklyn apartment. I’m utterly grateful that Isa chose this for our vacation,
  and that her parents are graciously hosting us, and I’m certain already that
  it’ll be hard to head back at the end of our ten days here.
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>CSS Transparency and Overlapping Glyphs</title>
      <link>http://marcocarag.com/2010/08/23/css-transparency-and-overlapping-glyphs/</link>
      <pubDate>Mon, 23  Aug 2010 18:46:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2010/08/23/css-transparency-and-overlapping-glyphs/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/a17d19ac55f1f16b3029cf026823e47d-300x134.png&quot; alt=&quot;Example of overlapping glyphs using CSS rgba()&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rgba()&lt;/code&gt; is a supremely useful CSS value. But I noticed, while
working on the footer of this site down below, that operating systems render
typography using this value in interesting ways.&lt;/p&gt;
&lt;h2&gt;About CSS transparency&lt;/h2&gt;

&lt;p&gt;
  To start, a quick overview. &lt;code&gt;rgba()&lt;/code&gt; is a CSS property value
  specified in the &lt;a href=&quot;http://www.w3.org/TR/css3-color/#rgba-color&quot;&gt;CSS3
  color module&lt;/a&gt; that allows one to set in single value the traditional
  red/green/blue color sub-values, as well as a fourth sub-value for
  &lt;a href=&quot;http://en.wikipedia.org/wiki/Alpha_compositing&quot;&gt;alpha transparency&lt;/a&gt;.
  The syntax is pretty straightforward: &lt;code&gt;rgba(red,green,blue,alpha)&lt;/code&gt;,
  where red, green, and blue are specified either as a percentage (0 to 100%) or
  as a number from 0 to 255, and alpha is specified as a decimal value — “1”
  translating to 100% opaque, “.5” is 50% transparent, “0” is completely
  transparent, etc.
&lt;/p&gt;

&lt;p&gt;
  The awesomeness of this idea is that with &lt;code&gt;rgba()&lt;/code&gt; as a value, it
  can be applied on any CSS property where color values are accepted, such as
  &lt;code&gt;color&lt;/code&gt;, &lt;code&gt;background-color&lt;/code&gt;, &lt;code&gt;text-shadow&lt;/code&gt;,
  what-have-you. The end result is the ability to apply individual levels of
  transparency to a single CSS selector for different properties — for instance,
  you can set your background to one transparency, and your text to another.
  Contrast this with the older &lt;code&gt;opacity&lt;/code&gt; CSS property, which applies
  an alpha transparency value (in the same 0 to 1 decimal scale) to the entire
  selector — meaning, the selected element and any of its children would all
  get the same opacity, background, text, and all.
&lt;/p&gt;

&lt;h2&gt;Rendering issues with overlapping glyphs&lt;/h2&gt;

&lt;p&gt;
  While tooling around with my footer down below, I noticed &lt;code&gt;rgba()&lt;/code&gt;
  being even more granular than I wanted it to be with regards to typefaces that
  naturally had overlapping glyphs. I had my footer set to something like this:
&lt;/p&gt;

&lt;p&gt;
  &lt;pre&gt;
  .myFooter {
    font-family: DeftoneStylusRegular;
    color: rgba(255,255,255,.2);
  }
  &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
  Via &lt;code&gt;@font-face&lt;/code&gt;, I’m using &lt;a href=&quot;http://www.larabiefonts.com&quot;&gt;
  Ray Larabie’s&lt;/a&gt; &lt;a href=&quot;http://www.fontsquirrel.com/fonts/Deftone-Stylus&quot;&gt;
  Deftone Stylus&lt;/a&gt;, which is a retro styled script font that’s intentionally
  kerned so that there’s overlap for the glyph connectors, as are most script
  fonts. The above CSS would set the text’s color to be white with 20% opacity.
  And the result looked like this:
&lt;/p&gt;

&lt;figure class=&quot;fullWidth&quot;&gt;
  &lt;div class=&quot;curledShadow&quot;&gt;
    &lt;img src=&quot;/images/a17d19ac55f1f16b3029cf026823e47d-300x134.png&quot;
      alt=&quot;Example of overlapping glyphs using CSS rgba()&quot; /&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;Example of overlapping glyphs using CSS rgba()&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
  Where the glyphs’ serifs overlap to act as connectors, the opacity is multiplied.
  I created a simple little test to try to isolate what the issue was:
&lt;/p&gt;

&lt;p&gt;
  &lt;pre&gt;
    &amp;lt;style&amp;gt;
    .test{
      font: bold 5em sans-serif;
      color:(0,0,0,.25);
      letter-spacing: -.2em;
    }
    &amp;lt;/style&amp;gt;

    &amp;lt;p class=”test”&amp;gt;This is a test using rgba.&amp;lt;/p&amp;gt;
  &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
  This uses the browser’s standard sans-serif typeface, sets it to black at 25%
  opacity via &lt;code&gt;rgba()&lt;/code&gt;, and condenses the glyphs via negative &lt;code&gt;
  letter-spacing&lt;/code&gt; to get overlap. It looks like this in Firefox 3.6 and
  Chrome 5 in OS X:
&lt;/p&gt;

&lt;p&gt;
  &lt;img src=&quot;http://files.droplr.com.s3.amazonaws.com/files/24522365/1Az9cg.Screen%20shot%202010-08-23%20at%2013:37:52.png&quot;
    alt=&quot;OS X screengrab of standard sans-serif font condensed via negative
    letter-spacing and set at 20% opacity via rgba()&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
  As you can see, it appears as if each character is being targeted for
  transparency, and when they overlap they are treated as independent layers&amp;hellip;
  in OS X, that is. Take a look at the same in Windows Firefox and Chrome:
&lt;/p&gt;

&lt;p&gt;
  &lt;img src=&quot;http://gyazo.com/8e193b94ebb9668356b341ab64892f0d.png&quot;
    alt=&quot;Windows screengrab of standard sans-serif font condensed via negative
    letter-spacing and set at 20% opacity via rgba()&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
  In Windows, in either browser, it looks like it renders all the glyphs as a
  single vector object before then applying the transparency uniformly on the
  whole shebang. So my best guess is that browsers use OS-level compositing here,
  and there are discrepencies between operating systems. Most unfortunate, if
  you’re aiming for semi-transparent typography that has intentional glyph
  overlap. However, there’s a way out via opacity:
&lt;/p&gt;

&lt;p&gt;
  &lt;pre&gt;
    &amp;lt;style&amp;gt;
    .test{
      font: bold 5em sans-serif;
      color: #000;
      letter-spacing: -.2em;
      opacity: .25;
    }
    &amp;lt;/style&amp;gt;

    &amp;lt;p class=”test”&amp;gt;This is a test using opacity.&amp;lt;/p&amp;gt;
  &lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
  This should actually look exactly the same as the first example — and that
  much is true in Windows. However, in OS X:
&lt;/p&gt;

&lt;p&gt;
  &lt;img src=&quot;http://files.droplr.com.s3.amazonaws.com/files/24522365/1AAw76.Screen%20shot%202010-08-23%20at%2014%3A34%3A44.png&quot;
    alt=&quot;OS X screengrab of standard sans-serif font condensed via negative
    letter-spacing and set at 20% opacity via opacity&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
  It looks just like Windows does — and actually, it looks the way I had
  originally intended. And this makes sense, since according to
  &lt;a href=&quot;http://www.w3.org/TR/css3-color/#transparency&quot;&gt;the spec regarding CSS
  transparency&lt;/a&gt;, “&lt;em&gt;…after the element (including its descendants) is
  rendered into an RGBA offscreen image, the opacity setting specifies how to
  blend the offscreen rendering into the current composite rendering.&lt;/em&gt;“ In
  otherwords, render the elements at full opacity, and then crank the opacity
  down post-rendering based on the &lt;code&gt;opacity&lt;/code&gt; property value before
  finally rendering on screen. Conceivably, &lt;code&gt;rgba()&lt;/code&gt; is the same
  thing, only with multiple layers nested across multiple properties — but
  turns out OS X takes it a step further with text by isolating each glyph.
&lt;/p&gt;

&lt;p&gt;
  Check out &lt;a href=&quot;/demos/alphafonts/index.html&quot;&gt;this test page&lt;/a&gt; for the
  above examples (make sure to view in both Windows and OS X).
&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;
  Honestly, this shouldn’t make a big difference in the vast majority of
  situations where traditional sans-serif or serif fonts are in use, as their
  glyphs don’t usually overlap. But think twice about it if you’re thinking
  about applying transparency to text set using a font with intentional character
  overlap — which includes just about all script fonts. Here’s an example of
  just a few, including Deftone Stylus which I used in my footer — these are
  at their default kerning, with no forced condensing via &lt;code&gt;letter-spacing&lt;/code&gt;:
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
  &lt;a href=&quot;/demos/alphafonts/naturally-overlapping-type.html&quot;&gt;
    Demo of fonts with intentional glyph overlap.
  &lt;/a&gt;
&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
  If I wanted to apply transparency to text using any of the fonts in the above
  demo, I’d have to forego &lt;code&gt;rgba()&lt;/code&gt; in favor of wrapping the text in
  its own element, and then targeting that element with &lt;code&gt;opacity&lt;/code&gt;,
  instead. That’s exactly what I ended up doing for my footer, by the way. It
  means extra DOM elements, but at least it works!
&lt;/p&gt;&lt;/p&gt;
&lt;h2&gt;Note about Opera in Windows&lt;/h2&gt;

&lt;p&gt;
  In OS X, Opera 10.61 looks much the same as Firefox and Chrome. But in Windows,
  it has some issues with certain typefaces when transparency is used in any form:
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
  &lt;img src=&quot;http://gyazo.com/28451d7da372597d7b1aedb4599a3a81.png&quot;
    alt=&quot;Screengrab of Opera 10.61 in Windows cutting off glyphs on certain fonts
    when transparency is applied&quot; /&gt;
&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;
  As you can see, it’s cutting off certain glyphs along the vertical. Not sure
  what the issue is, but I haven’t hunted around much for answers, either, so
  I’ll update this if I find anything.
&lt;/p&gt;

&lt;h2&gt;Credits&lt;/h2&gt;

&lt;p&gt;
  Thanks to the wonderful &lt;a href=&quot;http://www.fontsquirrel.com&quot;&gt;Font Squirrel&lt;/a&gt;
  and all of its participating typographers, for their wonderful collection of
  type, and handy @font-face kits!
&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Trying this out again&amp;hellip;</title>
      <link>http://marcocarag.com/2010/08/17/trying-this-out-again-hellip/</link>
      <pubDate>Tue, 17  Aug 2010 02:02:00 -0400</pubDate>
      <guid isPermaLink="true">http://marcocarag.com/2010/08/17/trying-this-out-again-hellip/</guid>
      <author></author>
      <description>&lt;p&gt;&lt;img src=&quot;http://marcocarag.com/images/IMG_1578_web-300x252.jpg&quot; alt=&quot;Me, with a hat and sunglasses.&quot;&gt;&lt;/p&gt;
&lt;p&gt;I’m going to give blogging a shot again. I used to do this quite a bit, but that was about seven years ago. I lost my appetite for it not long after that, out of some combination of laziness and general lack of writing ability. I’m thinking by now I’ve gotten over the lazy bit.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;more&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
  My older blog I used to call my “everything website” — describing its handy
  utility as a general dumping grounds for my brain. After nearly a decade, it
  turns out I’ve still got stuff to dump somewhere, and it wouldn’t be fair lump
  it all on my beautiful and wonderful fianceé, whose brain neither runs regular
  backups nor has a handy search function.
&lt;/p&gt;

&lt;p&gt;
  Actually, this site doesn’t have a handy search function, either, (and actually
  my fianceé does have strikingly good memory). And that’s the next reason I put
  this up — to exercise my Web development and design chops which for the past
  two years have been running the hamster tubes of my
  &lt;a href=&quot;http://www.theknot.com&quot;&gt;full-time job&lt;/a&gt; with little room to stretch.
&lt;/p&gt;

&lt;p&gt;
  In summary, this is where you’ll get to see me do a lot of things that I
  haven’t done in quite a while, or haven’t quite tried at all in the past. So
  mind my stumbling!
&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>