<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title></title>
        <description></description>
        <link>http://davidgillhespy.com</link>
        <atom:link href="http://davidgillhespy.com/feed.xml" rel="self" type="application/rss+xml" />
        
            <item>
                <title>Making an important message accessible</title>
                <description>&lt;p&gt;With all of the recent hurricanes, wildfires, and other natural disasters, you’ve probably noticed a proliferation of prominent messages at the top of websites directing impacted users to emergency resources. These messages are important and we want our users to be draw to them quickly when they visit our site.&lt;/p&gt;

&lt;p&gt;Drawing a user’s attention without annoying them (no alerts, modals, etc.) is fairly simple. We can use large fonts, bold colors, icons, and white space to visually separate the message from the rest of the page and make it noticeable. Unfortunately, this doesn’t apply to users with a vision impairment who browse the web with a screen reader.&lt;/p&gt;

&lt;p&gt;So how do we make a message stand out for someone who can’t see all of our smart design decisions? This question came up recently at work when my teammate &lt;a href=&quot;https://medium.com/@roblcopeland&quot;&gt;Rob&lt;/a&gt; asked me if there was an Aria role for an important message.&lt;/p&gt;

&lt;h2 id=&quot;first-things-first&quot;&gt;First things, first&lt;/h2&gt;
&lt;p&gt;Screen readers, like browsers, don’t always follow the spec perfectly and might behave differently. For this reason, ordering content in a meaningful way and using semantic markup should be your first concern. This ensures that a user can move through your document in a way that makes sense, even if an accessibility feature isn’t functioning as expected.&lt;/p&gt;

&lt;h2 id=&quot;aria-alert&quot;&gt;Aria “alert”?&lt;/h2&gt;

&lt;p&gt;Back to the problem of making an important message accessible, my first thought was to use “&lt;a href=&quot;https://www.w3.org/TR/wai-aria/roles#alert&quot;&gt;alert&lt;/a&gt;”, which is meant to be used on “a message with important, and usually time-sensitive, information” or “&lt;a href=&quot;https://www.w3.org/TR/wai-aria/roles#status&quot;&gt;status&lt;/a&gt;”, which is similar to “alert”, but less assertive.&lt;/p&gt;

&lt;p&gt;Unfortunately, according to &lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices/&quot;&gt;WAI-ARIA Authoring Practices 1.1&lt;/a&gt;, “It is important to note that, at this time, screen readers do not inform users of alerts that are present on the page before page load completes.”&lt;/p&gt;

&lt;p&gt;This means we could only use “alert” or “status” if the message is dynamically added to the page after it finishes loading. This feels like too much overhead for a message that we really just want in the page from the start.&lt;/p&gt;

&lt;h2 id=&quot;landmark-roles&quot;&gt;Landmark roles&lt;/h2&gt;

&lt;p&gt;The next idea I had, and the solution we ended up using, was a less common landmark role called  “region”.&lt;/p&gt;

&lt;p&gt;Landmark roles are used to identify the structure of a web page. Screen readers create a menu out of landmark roles which the user can utilize to quickly jump to major sections of the page.&lt;/p&gt;

&lt;p&gt;The “&lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices/examples/landmarks/region.html&quot;&gt;region&lt;/a&gt;” landmark is used to contain content that is “relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page.”&lt;/p&gt;

&lt;p&gt;We can use the “region” landmark on our important message along with “aria-label” to provide the text that will show up in the landmark menu. Now, if our user is navigating the page with landmarks they will see that there is something important for them to read. On a Mac using VoiceOver it looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/posts/landmark.png&quot; alt=&quot;A screenshot of the landmark navigation menu on a Mac using VoiceOver&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here is a sample of the code you could use:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;role=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;region&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;aria-label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Important Information&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  This is important information!
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;best-solution&quot;&gt;Best solution?&lt;/h2&gt;

&lt;p&gt;I like this solution, but it’s not perfect. I would rather be able to use “alert” which is supposed to read the contents right after it reads the page title, but the lack of support means I need something else.&lt;/p&gt;

&lt;p&gt;This solution makes it easily available without being annoying. If you can think of another solution, I’d love to hear about it!&lt;/p&gt;

&lt;p&gt;This article was cross-posted to &lt;a href=&quot;https://medium.com/@yodasw16/making-an-important-message-accessible-f21b45e6c7e8&quot;&gt;Medium.com&lt;/a&gt;. Leave me a comment over there.&lt;/p&gt;
</description>
                <pubDate>Tue, 10 Oct 2017 16:30:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2017/10/10/making-an-important-message-accessible.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2017/10/10/making-an-important-message-accessible.html</guid>
            </item>
        
            <item>
                <title>Blog recovery, finally</title>
                <description>&lt;p&gt;I mentioned in &lt;a href=&quot;/2013/12/07/a-simple-new-blog.html&quot;&gt;this post&lt;/a&gt; that I would eventually move all of the old posts that I thought I had lost from my original blog to this one. Well, 4 years later I finally did it!&lt;/p&gt;

&lt;p&gt;It was a pain in the ass, but there are now 63 posts dating back to &lt;a href=&quot;/2006/09/06/a-smart-president-who-wants-that.html&quot;&gt;September 6, 2006&lt;/a&gt;. So, if you’re in the mood for a bunch of posts about hating George W Bush, feel free to dig in!&lt;/p&gt;

&lt;p&gt;If you really want to get weird, I restored all of the posts I could recover from my old Xanga blog into a wordpress site.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://yodasw16xanga.wordpress.com/&quot;&gt;https://yodasw16xanga.wordpress.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;

&lt;p&gt;This article was cross-posted to &lt;a href=&quot;https://medium.com/@yodasw16/blog-recovery-finally-b6ff50d61a95&quot;&gt;Medium.com&lt;/a&gt;. Leave me a comment over there.&lt;/p&gt;
</description>
                <pubDate>Mon, 24 Jul 2017 21:20:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2017/07/24/blog-recovery-finally.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2017/07/24/blog-recovery-finally.html</guid>
            </item>
        
            <item>
                <title>To Fork or Not to Fork?</title>
                <description>&lt;p&gt;In 2013 I wrote a CSS framework called &lt;a href=&quot;http://scalescss.com&quot;&gt;Scales&lt;/a&gt;. At the time Scales was heavy influenced by another CSS framework called &lt;a href=&quot;https://github.com/inuitcss&quot;&gt;inuit.css&lt;/a&gt; by CSS Wizard &lt;a href=&quot;http://csswizardry.com/&quot;&gt;Harry Roberts&lt;/a&gt;. I initially intended to use inuit.css for a project at work, but some of the patterns didn’t work the way I expected or wanted. So, like many unfortunate and misguided souls before me, I decided to create my own framework that worked the way I wanted. Since I really liked the way inuit.css worked in a lot of ways, Scales ended up “borrowing” a few of the patterns. I cleared this with Harry over email and added the appropriate attribution to the files that were either based on or outright copies of inuit.css.&lt;/p&gt;

&lt;p&gt;A little over a year later, after using Scales in several projects at work, I began writing version 2.0. One of the biggest issues keeping people from adopting Scales was that it was a single codebase. You either used all of Scales or none of it. For version 2.0 I decided to split each piece into its own Git repository so that the whole thing could be pulled in to a project, or individual patterns could be used.&lt;/p&gt;

&lt;p&gt;Around the same time I noticed that Harry was doing the same thing with inuit.css. Since there were still a few patterns that I would be breaking out into their own repo that were copies of what were now their own repo in inuit.css, I decided to just fork those into the Scales org. Since some of the naming conventions and code style were different between the projects, I made the those changes and pushed those repos up as a part of Scales. This seemed like the appropriate thing to do. I figured I wouldn’t really need any specific attribution anymore, because you could see right in the repo that it was forked and linked directly back to the original.&lt;/p&gt;

&lt;p&gt;A few weeks ago I had a contribution to a Scales pattern that wasn’t showing up on the person’s contribution graph on Github. While looking into why, I found this rule from Github about &lt;a href=&quot;https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/&quot;&gt;what counts as a contribution&lt;/a&gt;:&lt;/p&gt;

&lt;figure class=&quot;quote&quot;&gt;
    &lt;blockquote&gt;
        &lt;p&gt;The commits were made in a standalone repository, not a fork.&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;figcaption class=&quot;source&quot;&gt;&lt;cite&gt;&lt;a href=&quot;https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/&quot;&gt;Github.com&lt;/a&gt;&lt;/cite&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This means that if you fork a repo and make any changes to it, you don’t get any credit for it in your contribution graph or in your contribution history. Learning this made me question the strategy of forking a repo for anything other than contributing pull requests back to the original.&lt;/p&gt;

&lt;p&gt;What if a project is abandoned and the owner is unresponsive, but you want to take over the project and keep it going? Until I learned this I would have said to just fork it. I always assumed that was the best practice for those kinds of situations. Now, I would want to start a new repo, copy the old project over, and put a note of attribution in my readme.&lt;/p&gt;

&lt;p&gt;Another problem I noticed with this rule relates to an open source project by a former co-worker, &lt;a href=&quot;https://github.com/jewlofthelotus&quot;&gt;Julie Cameron&lt;/a&gt;. She is the creator of a pretty popular jQuery plugin called  &lt;a href=&quot;https://github.com/jewlofthelotus/SlickQuiz&quot;&gt;SlickQuiz&lt;/a&gt;. When she moved on to a new company, she forked her repo from the official company Github org and has made 58 commits to that fork. The most recent commit was on April 8, but as you can see, she gets &lt;a href=&quot;https://github.com/jewlofthelotus?tab=overview&amp;amp;from=2016-04-08&quot;&gt;no credit for it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While this says something about changes that my work should consider making to how we treat projects that are maintained solely by someone who has left the company, it also makes me question how Github counts contributions to forks. It’s clear that forking is not only used as a way to contribute pull requests back to the main repo.&lt;/p&gt;

&lt;p&gt;Should Github have another process in the UI that is like a fork, but meant to mean “this is mine now and I don’t intend to contribute back”? Should I just not fork things as a way of showing attribution and start standalone repos instead? Am I the only one who thought forking in these ways made sense?&lt;/p&gt;

&lt;p&gt;This article was cross-posted to &lt;a href=&quot;https://medium.com/@yodasw16/to-fork-or-not-to-fork-1b733de24181#.igewosl4p&quot;&gt;Medium.com&lt;/a&gt;. Leave me a comment over there.&lt;/p&gt;
</description>
                <pubDate>Tue, 07 Jun 2016 21:00:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2016/06/07/to-fork-or-not-to-fork.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2016/06/07/to-fork-or-not-to-fork.html</guid>
            </item>
        
            <item>
                <title>This BEM Mistake Has Me Bummed</title>
                <description>&lt;p&gt;A lot of people have jumped on the BEM bandwagon in the last few years. I was initially dismissive of BEM because of the rather ugly style, which uses double underscores (&lt;code class=&quot;highlighter-rouge&quot;&gt;__&lt;/code&gt;) and double dashes (&lt;code class=&quot;highlighter-rouge&quot;&gt;--&lt;/code&gt;) to separate the different parts of the class name. It looks like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.block&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.block__element&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.block--modifier&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After giving BEM a fair chance a couple years ago, I became a convert and really enjoy it now. Unfortunately, at work, in articles, and while looking at open source projects, I see BEM used in a way that makes the code less modular and harder to maintain.&lt;/p&gt;

&lt;p&gt;BEM started as a methodology for building web applications created by &lt;a href=&quot;https://en.bem.info/&quot;&gt;Yandex&lt;/a&gt;, but most people who use BEM focus on its CSS class selector naming convention that was popularized by articles from &lt;a href=&quot;http://nicolasgallagher.com/about-html-semantics-front-end-architecture/&quot;&gt;Nicolas Gallagher&lt;/a&gt; and &lt;a href=&quot;http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/&quot;&gt;Harry Roberts&lt;/a&gt;. If you are unfamiliar or want to dig deeper, &lt;a href=&quot;https://css-tricks.com/bem-101/&quot;&gt;CSS Tricks&lt;/a&gt; has a pretty good BEM 101 article.&lt;/p&gt;

&lt;h2 id=&quot;how-youre-doing-it-wrong&quot;&gt;How You’re Doing it Wrong&lt;/h2&gt;

&lt;p&gt;I read an article a few months back that inspired me to add this post to my list of “I need to start blogging again” ideas. The article, &lt;a href=&quot;https://medium.com/fed-or-dead/battling-bem-5-common-problems-and-how-to-avoid-them-5bbd23dee319#.z78in2cls&quot;&gt;Battling BEM: 5 common problems and how to avoid them&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/davislurve&quot;&gt;David Berner&lt;/a&gt;, had the goal of pointing out some mistakes people make using BEM, but seemed to miss what I believe is the most common mistake. It even included the mistake in its example of “The right way”. Take a look:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__header&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;h2&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__title&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Title text here&lt;span class=&quot;nt&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__body&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__img&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;some-img.png&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Adipiscing elit.
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/somelink.html&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__link&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Pellentesque amet&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Do you see anything wrong here? Let me explain.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/stubbornella/oocss/wiki&quot;&gt;OOCSS&lt;/a&gt; changed the way I write CSS forever. For me, BEM simply gives me a better way of naming my OOCSS patterns. The problem I have with the example above is that it violates one of the 2 principles of OOCSS: Separate container and content.&lt;/p&gt;

&lt;p&gt;This principle was originally described like this:&lt;/p&gt;

&lt;figure class=&quot;quote&quot;&gt;
    &lt;blockquote&gt;
        &lt;p&gt;An object should look the same no matter where you put it. So instead of styling a specific &lt;code class=&quot;inline-code&quot;&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; with &lt;code class=&quot;inline-code&quot;&gt;.myObject h2 {...}&lt;/code&gt;, create and apply a class that describes the &lt;code class=&quot;inline-code&quot;&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; in question, like &lt;code class=&quot;inline-code&quot;&gt;&amp;lt;h2 class=&quot;category&quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;figcaption class=&quot;source&quot;&gt;&lt;cite&gt;&lt;a href=&quot;https://github.com/stubbornella/oocss/wiki#separate-container-and-content&quot;&gt;Object Oriented CSS&lt;/a&gt;&lt;/cite&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Taking this a step further, you still have to be careful not to write the selector as &lt;code class=&quot;highlighter-rouge&quot;&gt;.myObject .category {...}&lt;/code&gt;. This ties the content, &lt;code class=&quot;highlighter-rouge&quot;&gt;.category&lt;/code&gt;, to the container, &lt;code class=&quot;highlighter-rouge&quot;&gt;.myObject&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Content should almost never be location dependent. If I like the look of the heading style in my cards and I want to use the same style in a product list, I should be able to do it without writing any new CSS. I should be able to just drop the same class on the heading in my product list and have the same style. Unfortunately, giving BEM style names to our content (in the example above: &lt;code class=&quot;highlighter-rouge&quot;&gt;h2&lt;/code&gt;,&lt;code class=&quot;highlighter-rouge&quot;&gt;a&lt;/code&gt;,&lt;code class=&quot;highlighter-rouge&quot;&gt;p&lt;/code&gt;,&lt;code class=&quot;highlighter-rouge&quot;&gt;img&lt;/code&gt;) ties it to this component. This connection may only be symbolic since you could easily use the same class inside another component (as long as you keep your selectors flat), but if you do, you are losing one of the biggest benefits of BEM.&lt;/p&gt;

&lt;p&gt;You should be able to essentially work out the HTML structure of a component just by looking at the selectors in your CSS. By giving the content component specific classes you are tying them to that component and making it impossible to work out the structure of the HTML. The CSS for this component would look like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.card&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__header&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__title&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__body&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__img&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__text&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.card__link&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;When written out as selectors, you could assume that there is a parent with a class of “card” and 6 direct children. Since we have seen the actual HTML, we know that this is wrong. You could get weird and use classes like &lt;code class=&quot;highlighter-rouge&quot;&gt;.card__header__title&lt;/code&gt;, but this is the first common mistake that the article (correctly) points out.&lt;/p&gt;

&lt;h2 id=&quot;how-you-should-do-it&quot;&gt;How you should do it&lt;/h2&gt;

&lt;p&gt;When using BEM to name a component, I recommend only naming the structural elements and leaving the content within those elements alone. Define the pieces that are required for the pattern and allow the content inside to be flexible. Here is how I would mark up the card example from above:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__header&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;h2&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;heading-secondary&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Title text here&lt;span class=&quot;nt&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;card__body&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;some-img.png&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;caption&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;        
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;additional-info&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Adipiscing elit.
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;external-link&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/somelink.html&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Pellentesque amet&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Giving the content elements inside the component generic names makes it easy to apply the same styles inside any other component. Furthermore, using BEM naming for the structural elements of the component allows you to indicate what type of content belongs in them while still being flexible.&lt;/p&gt;

&lt;p&gt;BEM is awesome for creating more understandable, scalable, and developer-friendly names for your components. Don’t let this mistake make your components less portable and flexible.&lt;/p&gt;

&lt;p&gt;This article was cross-posted to &lt;a href=&quot;https://medium.com/@yodasw16/this-bem-mistake-has-me-bummed-da4a846bae94#.d5utzufhm&quot;&gt;Medium.com&lt;/a&gt;&lt;/p&gt;
</description>
                <pubDate>Tue, 08 Mar 2016 15:00:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2016/03/08/this-bem-mistake-has-me-bummed.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2016/03/08/this-bem-mistake-has-me-bummed.html</guid>
            </item>
        
            <item>
                <title>10 Years</title>
                <description>&lt;p&gt;What do you want to be when you grow up? This is a question kids always get asked, and when I was little there was one job I remember wanting. I’ve been told I wanted to be a barber and a clock maker, but the only job I actually remember wanting to do is Architecture. I wanted to design houses and buildings.&lt;/p&gt;

&lt;p&gt;I was listening to a recent &lt;a href=&quot;http://shoptalkshow.com/episodes/202-with-monika-piotrowicz-and-lara-hogan/&quot;&gt;Shop Talk Show&lt;/a&gt; with Monika Piotrowicz and Lara Hogan on the subject of career paths and I started thinking about mine. I realized after looking back on my resume that January 2016 marked my 10th year practicing web design and development professionally. I was inspired to get out the ol’ blogging pen and jot down how I got where I am today.&lt;/p&gt;

&lt;p&gt;My current title at Quicken Loans is Senior Web UI Engineer. This is not a title I would have ever dreamed of having in High School, or even wanted for that matter. I got my first computer and 5000 free AOL hours in 1995 as a freshman. I don’t remember why, but I taught myself HTML that school year in 1996 using notepad and tutorials I found on Geocities. I clearly remember friends and family members telling me that I should consider doing this as a career, but I always maintained that I would hate sitting in front of a computer all day. As far as I was concerned, this was just a hobby.&lt;/p&gt;

&lt;p&gt;This attitude continued through high school, where I was part of a small class that managed our school district’s websites, and college, where I was studying Mass Communication with an emphasis in TV/Video Production. I continued making personal websites for bands I was in and made a few sites for different academic departments at my school, but it was just fun for me.&lt;/p&gt;

&lt;p&gt;My final semester of college, in 2005, I got an internship with Detroit Public TV where I learned that TV production was not the best career to be entry level in with a newborn baby to take care of. I had started doing some freelance web design for extra cash while working at an oil change shop and interning and when the internship was over I kept looking for freelance work.&lt;/p&gt;

&lt;p&gt;Since I now had my degree, I began looking for jobs at TV stations in the area. Even though I knew that career was not the best idea, it seemed like my best option to get a better paying job than changing oil. While looking at the job postings for Detroit Public TV, I saw an opening for a “Web Master” position. I figured it was worth a shot and contacted my former boss. I started a job in January 2006 as “Online Communications Coordinator” for the classical and jazz radio station WRCJ 90.9, which DPTV operates.&lt;/p&gt;

&lt;p&gt;Now that I had my first real job practicing web design, it didn’t take long to realize that I wanted to do this work for the rest of my life. This job gave me the opportunity and freedom to learn as much as I could. I finally started to understand CSS and moved away from using tables for layout and on to using web standards. I ended up staying at DPTV for a little over 2 years before getting laid off.&lt;/p&gt;

&lt;p&gt;My next job, which I started in October 2008, was for a small agency specializing in websites for the industrial manufacturing industry. This was about as exciting as it sounds, but it gave me the opportunity to design new site regularly and try new things. Since it wasn’t a very busy shop, I had a lot of time to get even deeper into web standards and to try new techniques out on my various projects. This job paid very poorly so I was looking for other work when I was suddenly laid off after 9 months. While sitting out in the parking lot preparing to drive home I got a call from a recruiter at Quicken Loans and set up an interview.&lt;/p&gt;

&lt;p&gt;I started at Quicken Loans in July of 2009, which is when my career really took off. For the first time I was on a team with a bunch of really smart people who pushed me to learn even more and faster than I had before. From OOCSS to Responsive Web Design to web performance, being at a company that encourages innovation and execution has given me unlimited opportunity to grow as an engineer and a technical leader. I started at QL with the title “Web Developer”, which is basically an entry level position. If I had realized that at the time I might have been offended, but looking back at how much more I learned in my first year at QL compared to my previous 4 years, I really was a novice. The reason I didn’t realize it was an entry level position is because I was never treated that way. My ideas were heard and valued.&lt;/p&gt;

&lt;p&gt;Over the last 6.5 years I have moved from “Web Developer”, to “Software Engineer”, to “Senior Software Engineer”. Recently, I had the opportunity to create a new career path focused on the specific software challenges that front-end developers face. I titled the career path “Web UI Engineering” and I am currently a “Senior Web UI Engineer”.&lt;/p&gt;

&lt;p&gt;My next step is to get promoted to “Web UI Architect”. Soon I will be able to fulfill that childhood dream of being an Architect, only I will be designing and building scalable user interfaces and design systems instead of houses.&lt;/p&gt;

&lt;p&gt;This article was cross-posted to &lt;a href=&quot;https://medium.com/@yodasw16/10-years-68169e6b9baf#.os5fnzm5l&quot;&gt;Medium.com&lt;/a&gt;&lt;/p&gt;
</description>
                <pubDate>Fri, 12 Feb 2016 11:30:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2016/02/12/ten-years.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2016/02/12/ten-years.html</guid>
            </item>
        
            <item>
                <title>Using Unordered Lists for Forms</title>
                <description>&lt;p&gt;I like using unordered lists to mark up my forms. I’m not sure when I started doing it and I’ve never really thought hard about why. A couple weeks ago I got into a debate with a coworker who believes forms should never be lists. If the labels and inputs need anything to wrap them a &lt;span class=&quot;inline-code&quot;&gt;div&lt;/span&gt; is appropriate, not a list. That may be an oversimplification of his argument and I hope and encourage him to write a post explaining his position, as well.&lt;/p&gt;

&lt;p&gt;I love debating semantics, so I am glad we got into the discussion we did. It forced me to really think about why I use lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SPOILER:&lt;/strong&gt; I still like using lists.&lt;/p&gt;

&lt;h2 id=&quot;forms-are-a-list-of-questions&quot;&gt;Forms are a list of questions&lt;/h2&gt;

&lt;p&gt;My main reason is one of semantics. When we present a user with a form, we are asking them a list of questions. I’m not saying forms &lt;em&gt;have&lt;/em&gt; to be made up of lists; divs are also semantically fine since they have no semantic meaning. That said, I can’t think of a good reason not to add additional semantics to a document, as long as they are appropriate.&lt;/p&gt;

&lt;figure class=&quot;quote&quot;&gt;
    &lt;blockquote&gt;
        &lt;p&gt;The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document.&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;figcaption class=&quot;source&quot;&gt;&lt;cite&gt;&lt;a href=&quot;http://www.w3.org/TR/html5/grouping-content.html#the-ul-element&quot;&gt;W3C HTML5 - Grouping Content&lt;/a&gt;&lt;/cite&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The most important part here is “a list of items.” &lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; has a very open ended semantic meaning. A bunch of form elements &lt;em&gt;is&lt;/em&gt; a list of items. It is a list of &lt;span class=&quot;inline-code&quot;&gt;label&lt;/span&gt;/&lt;span class=&quot;inline-code&quot;&gt;input&lt;/span&gt; pairs. Where using a &lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; comes in handy over a semantically neutral &lt;span class=&quot;inline-code&quot;&gt;div&lt;/span&gt; is that it creates a relationship between the inputs. When a screen reader comes to a list, it tells a sightless user how many items are in the list. Since I can see, I don’t need this because I can count them. For a blind person, what harm is there in showing them how long the form is?&lt;/p&gt;

&lt;h2 id=&quot;ul-adds-useful-styling-hooks&quot;&gt;&lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; adds useful styling hooks&lt;/h2&gt;

&lt;p&gt;From a styling perspective, it means I don’t have to apply classes to all of the wrapping divs to target them for default styles. I can put one class on the &lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; and then add a bottom margin to every child &lt;span class=&quot;inline-code&quot;&gt;li&lt;/span&gt;. That is useful and makes styling easier.&lt;/p&gt;

&lt;h2 id=&quot;ul-creates-a-coding-standard&quot;&gt;&lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; creates a coding standard&lt;/h2&gt;

&lt;p&gt;Also, of lesser importance, it creates a consistent coding standard. It’s any easy markup pattern that everyone knows and doesn’t leave a bunch of ambiguity about where to put divs and how many and around what. Granted, this can be achieved through good project documentation of whatever elements are used.&lt;/p&gt;

&lt;h2 id=&quot;do-whatever-works-for-you&quot;&gt;Do whatever works for you&lt;/h2&gt;

&lt;p&gt;I certainly don’t believe using &lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; is the &lt;em&gt;One True Way&lt;/em&gt; to mark up a form, but I don’t believe you can argue that it is the &lt;em&gt;wrong&lt;/em&gt; way either. It adheres to the spec, adds additional meaning, aids in styling, and is a solid coding standard. Technically, you could probably argue that an entire web page is a list, but you need to draw a line somewhere. For me, it is the point where semantics and ease of use cross paths. When it comes to forms, using &lt;span class=&quot;inline-code&quot;&gt;ul&lt;/span&gt; makes my life easier without doing semantic harm. That’s enough for me.&lt;/p&gt;
</description>
                <pubDate>Wed, 19 Feb 2014 14:00:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2014/02/19/using-unordered-lists-for-forms.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2014/02/19/using-unordered-lists-for-forms.html</guid>
            </item>
        
            <item>
                <title>Silly (Personal) Issue Pushing Jekyll to Github Pages</title>
                <description>&lt;p&gt;When I was rebuilding this site to use Jekyll I ran into a really stupid issue when it came to deploying to Github Pages. I had the impression that the &lt;span class=&quot;inline-code&quot;&gt;master&lt;/span&gt; branch (this site is an organization page, not a regular Github page, so the site is deployed to the &lt;span class=&quot;inline-code&quot;&gt;master&lt;/span&gt; branch instead of the &lt;span class=&quot;inline-code&quot;&gt;gh-pages&lt;/span&gt; branch) should only get the code that is generated in the &lt;span class=&quot;inline-code&quot;&gt;_site&lt;/span&gt; directory and that the source should be put on some other development branch.&lt;/p&gt;

&lt;p&gt;I spent a good deal of time trying to figure out how to push only the contents of the &lt;span class=&quot;inline-code&quot;&gt;_site&lt;/span&gt; directory to &lt;span class=&quot;inline-code&quot;&gt;master&lt;/span&gt;. I didn’t understand how a popular tool like Jekyll would have nothing about how to do this.&lt;/p&gt;

&lt;p&gt;It turns out the issue was my own poor reading of the docs, rather than anything to do with Jekyll or Github. On the Github help page for working with Jekyll it reads:&lt;/p&gt;

&lt;figure class=&quot;quote&quot;&gt;
    &lt;blockquote&gt;
        &lt;p&gt;Every GitHub Page is run through Jekyll when you push content to a specially named branch within your repository...Simply start committing Jekyll formatted files, and you'll be using Jekyll in no time.&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;figcaption class=&quot;source&quot;&gt;&lt;cite&gt;&lt;a href=&quot;https://help.github.com/articles/using-jekyll-with-pages&quot;&gt;Using Jekyll with Pages&lt;/a&gt;&lt;/cite&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;All I ever needed to do was push my source files to &lt;span class=&quot;inline-code&quot;&gt;master&lt;/span&gt; and Github would automatically run them through Jekyll. It just works. I completely misunderstood this and wasted a lot of time on hacky and confusing workarounds like &lt;a href=&quot;https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging&quot;&gt;subtree merging&lt;/a&gt;. I might be the only person who has had this problem, but if not I hope this is helpful.&lt;/p&gt;
</description>
                <pubDate>Wed, 18 Dec 2013 09:46:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2013/12/18/pushing-jekyll-to-github-pages.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2013/12/18/pushing-jekyll-to-github-pages.html</guid>
            </item>
        
            <item>
                <title>How to be Extraordinary: Resources for the Discerning Front-end Developer</title>
                <description>&lt;p&gt;At work, I participate in a lot of candidate interviews for our open positions. If you do a lot of interviews, you know that the knowledge and skill level of candidates varies greatly. It’s hard to ever quantify exactly what you are looking for in a candidate, but from a technical perspective I think it’s useful to know what an extraordinary candidate would look like. Having this ideal in mind can help focus your questions and quickly determine the technical level of the candidate.&lt;/p&gt;

&lt;p&gt;I tend to categorize a candidate’s knowledge into four levels: never heard of it, heard of it, tried it, know it. With this in mind, I started putting together a list of skills that I would want an ideal front-end candidate to have so that I could properly judge their skills.&lt;/p&gt;

&lt;p&gt;In doing, I realized that I don’t even have all of these fine skills and I expect that probably no one on my team does either. In all likelihood, you don’t have all of these skills either. &lt;em&gt;This should bother you&lt;/em&gt;! You should want to be the best you can possibly be. It’s not about just knowing enough to get the job done. Our industry changes to fast too settle with what you know now.&lt;/p&gt;

&lt;p&gt;Take a look at this list of resources and make yourself better!&lt;/p&gt;

&lt;h2 id=&quot;articles-you-should-read&quot;&gt;Articles you should read&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/articles/dao/&quot;&gt;The Dao of Web Design&lt;/a&gt; - John Allsopp&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;Responsive Web Design&lt;/a&gt; - Ethan Marcotte&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.lukew.com/ff/entry.asp?933&quot;&gt;Mobile First&lt;/a&gt; - Luke Wroblewski&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://adactio.com/journal/1716/&quot;&gt;One Web&lt;/a&gt; - Jeremy Keith&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://adactio.com/journal/1696/&quot;&gt;A Responsive Mind&lt;/a&gt; - Jeremy Keith&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rmurphey.com/blog/2012/04/12/a-baseline-for-front-end-developers/&quot;&gt;A Baseline for Front-end Developers&lt;/a&gt; - Rebecca Murphey&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;books-you-should-read&quot;&gt;Books you should read&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.abookapart.com/products/responsive-web-design&quot;&gt;Responsive Web Design&lt;/a&gt; – Ethan Marcotte&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.abookapart.com/products/mobile-first&quot;&gt;Mobile First&lt;/a&gt; – Luke Wroblewski&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://hardboiledwebdesign.com/&quot;&gt;Harboiled Web Design&lt;/a&gt; – Andy Clarke&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://smacss.com/&quot;&gt;SMACSS&lt;/a&gt; – Jonathan Snook&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://domscripting.com/book/&quot;&gt;Dom Scripting&lt;/a&gt; – Jeremy Keith&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://shop.oreilly.com/product/9780596517748.do&quot;&gt;Javascript: The Good Parts&lt;/a&gt; – Douglas Crockford&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://shop.oreilly.com/product/9780596806767.do&quot;&gt;Javascript Patterns&lt;/a&gt; – Stoyan Stefanov&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://addyosmani.com/resources/essentialjsdesignpatterns/book/&quot;&gt;Learning Javascript Design Patterns&lt;/a&gt; - Addy Osmani&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.amazon.com/Designing-Web-Standards-3rd-Edition/dp/0321616952/ref=dp_ob_title_bk/191-8009941-3369117&quot;&gt;Designing with Web Standards&lt;/a&gt; – Jeffery Zeldman&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.abookapart.com/products/html5-for-web-designers&quot;&gt;HTML5 for Web Designers&lt;/a&gt; – Jeremy Keith&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.abookapart.com/products/css3-for-web-designers&quot;&gt;CSS3 for Web Designers&lt;/a&gt; – Dan Cederholm&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.abookapart.com/products/sass-for-web-designers&quot;&gt;Sass for Web Designers&lt;/a&gt; - Dan Cederholm&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;techniquestools-you-should-get-familiar-with&quot;&gt;Techniques/tools you should get familiar with&lt;/h2&gt;

&lt;h3 id=&quot;sasscompass&quot;&gt;Sass/Compass&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://thesassway.com/beginner/getting-started-with-sass-and-compass&quot;&gt;http://thesassway.com/beginner/getting-started-with-sass-and-compass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/articles/getting-started-with-sass/&quot;&gt;http://www.alistapart.com/articles/getting-started-with-sass/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sonspring.com/journal/sass-for-designers&quot;&gt;http://sonspring.com/journal/sass-for-designers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;mobile-first-responsive-web-design&quot;&gt;Mobile First, Responsive Web Design&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.html5rocks.com/en/mobile/responsivedesign/&quot;&gt;http://www.html5rocks.com/en/mobile/responsivedesign/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bradfrostweb.com/blog/mobile/anatomy-of-a-mobile-first-responsive-web-design/&quot;&gt;http://bradfrostweb.com/blog/mobile/anatomy-of-a-mobile-first-responsive-web-design/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://viljamis.com/blog/2012/responsive-workflow/&quot;&gt;http://viljamis.com/blog/2012/responsive-workflow/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;git-and-github&quot;&gt;Git and Github&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://gitimmersion.com/&quot;&gt;http://gitimmersion.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://help.github.com/&quot;&gt;https://help.github.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;object-oriented-css&quot;&gt;Object Oriented CSS&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.stubbornella.org/content/2009/03/23/object-oriented-css-video-on-ydn/&quot;&gt;http://www.stubbornella.org/content/2009/03/23/object-oriented-css-video-on-ydn/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/&quot;&gt;http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/&quot;&gt;http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ianstormtaylor.com/oocss-plus-sass-is-the-best-way-to-css/&quot;&gt;http://ianstormtaylor.com/oocss-plus-sass-is-the-best-way-to-css/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://24ways.org/2012/a-harder-working-class/&quot;&gt;http://24ways.org/2012/a-harder-working-class/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/stubbornella/oocss&quot;&gt;https://github.com/stubbornella/oocss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ScalesCSS/scales&quot;&gt;https://github.com/ScalesCSS/scales&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/csswizardry/inuit.css&quot;&gt;https://github.com/csswizardry/inuit.css&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;javasript-unit-testing&quot;&gt;Javasript Unit Testing&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://visionmedia.github.com/mocha/&quot;&gt;http://visionmedia.github.com/mocha/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/pivotal/jasmine/wiki&quot;&gt;https://github.com/pivotal/jasmine/wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;javascript-templating&quot;&gt;Javascript Templating&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://handlebarsjs.com/&quot;&gt;http://handlebarsjs.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mustache.github.com/&quot;&gt;http://mustache.github.com/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://embeddedjs.com/&quot;&gt;http://embeddedjs.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vertical-rhythm-and-modular-scale&quot;&gt;Vertical Rhythm and Modular Scale&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://atendesigngroup.com/blog/vertical-rhythm-compass&quot;&gt;http://atendesigngroup.com/blog/vertical-rhythm-compass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://compass-style.org/reference/compass/typography/vertical_rhythm/&quot;&gt;http://compass-style.org/reference/compass/typography/vertical_rhythm/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/articles/more-meaningful-typography/&quot;&gt;http://www.alistapart.com/articles/more-meaningful-typography/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://thesassway.com/projects/modular-scale&quot;&gt;http://thesassway.com/projects/modular-scale&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;advanced-css-selectors&quot;&gt;Advanced CSS Selectors&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.yourhtmlsource.com/stylesheets/advancedselectors.html&quot;&gt;http://www.yourhtmlsource.com/stylesheets/advancedselectors.html&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://coding.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/&quot;&gt;http://coding.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;bem-block-element-modifier&quot;&gt;BEM (Block, Element, Modifier)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/&quot;&gt;http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://css-tricks.com/bem-101/&quot;&gt;https://css-tricks.com/bem-101/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers/&quot;&gt;http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://stevesouders.com/hpws/rules.php&quot;&gt;http://stevesouders.com/hpws/rules.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;accessibility&quot;&gt;Accessibility&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Accessibility&quot;&gt;https://developer.mozilla.org/en-US/docs/Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.netmagazine.com/features/simple-introduction-web-accessibility&quot;&gt;http://www.netmagazine.com/features/simple-introduction-web-accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dev.opera.com/articles/view/introduction-to-wai-aria/&quot;&gt;http://dev.opera.com/articles/view/introduction-to-wai-aria/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://microformats.org/wiki/introduction&quot;&gt;http://microformats.org/wiki/introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/&quot;&gt;http://www.paciellogroup.com/blog/2013/02/using-wai-aria-landmarks-2013/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Mon, 16 Dec 2013 11:46:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2013/12/16/how-to-be-extraordinary.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2013/12/16/how-to-be-extraordinary.html</guid>
            </item>
        
            <item>
                <title>A simple new blog</title>
                <description>&lt;p&gt;Almost 2 years ago I lost my old blog to a terrible web host’s failure and my own stupidity for not backing anything up. Since then I managed to get around to putting up a new, much simpler site, but replacing the blog has seemed too daunting. With the help of the wonderfully easy &lt;a href=&quot;http://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; static site generator, I have finally decided to take on the task.&lt;/p&gt;

&lt;p&gt;I hope to primarily write about web development, but I’m sure some other stuff will sneak in. For now, I resurrected a couple old blog posts from Facebook (apparently I had some Wordpress plugin that posted everything to my Facebook notes section) so there would be something here while I work on new content and building an archive from old posts.&lt;/p&gt;

&lt;p&gt;I’m not going to go through the trouble of fixing broken links and images on old posts, so please forgive the mess. I just want to get them published for nostalgic reasons and focus on new writing.&lt;/p&gt;

&lt;p&gt;I hope you find something valuable here. See you soon!&lt;/p&gt;
</description>
                <pubDate>Sun, 08 Dec 2013 02:19:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2013/12/08/a-simple-new-blog.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2013/12/08/a-simple-new-blog.html</guid>
            </item>
        
            <item>
                <title>Who has the conn?</title>
                <description>&lt;p&gt;In a meeting, when the discussion about a topic comes to an end and there is some action to be taken, someone will often ask, “Who has the conn?” If you are like me you understand what it means (who is in charge of taking action after the meeting), but you wonder about the etymology of the word. Is it an abbreviation? An acronym? Slang? Or maybe it really is a word on its own? Well, I have an answer for you.&lt;/p&gt;

&lt;figure class=&quot;quote&quot;&gt;
    &lt;blockquote&gt;
        &lt;p&gt;“Conn,” meaning the power to metaphorically steer the course of an endeavor or enterprise, comes from the literal use of that power. When “conn” (in the form “cun”) first appeared in English in the 17th century as a verb, it meant “to direct the steering or course of a ship,” usually from the bridge of the ship or its equivalent. Obviously, the captain of a ship has the primary responsibility for “conning” the vessel, but often delegates the “conn” (the noun appeared in the early 19th century) to subordinate officers. Early battleships actually had elevated “conning towers,” armored to protect the captain, et al., but today the same functions are usually carried out from a “conning station” on the ship’s bridge.&lt;/p&gt;
        &lt;p&gt;For a term redolent of the high seas and naval battles of yore, “conn” has a remarkably tame origin. “Conn” apparently arose as a variant form of the verb “cond,” also meaning “to direct the steering of a ship,” which in turn derived from the obsolete verb “condue,” meaning “to conduct or guide.” As you might suspect, “condue” itself ultimately harks back to the Latin “conducere” (to lead or guide), which also gave us our modern English “conduct.”&lt;/p&gt;
    &lt;/blockquote&gt;
    &lt;figcaption class=&quot;source&quot;&gt;&lt;cite&gt;&lt;a href=&quot;http://www.word-detective.com/030107A.html#conn&quot;&gt;Word-Detective.com&lt;/a&gt;&lt;/cite&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
</description>
                <pubDate>Tue, 13 Sep 2011 13:24:00 +0000</pubDate>
                <link>http://davidgillhespy.com//2011/09/13/who-has-the-conn.html</link>
                <guid isPermaLink="true">http://davidgillhespy.com//2011/09/13/who-has-the-conn.html</guid>
            </item>
        
    </channel>
</rss>
