<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Jeremy Thomas</title>
 <link href="http://jgthms.com/atom.xml" rel="self"/>
 <link href="http://jgthms.com/"/>
 <updated>2024-01-11T22:26:40+00:00</updated>
 <id>http://jgthms.com/</id>
 <author>
   <name>JT</name>
   <email>bbxdesign@gmail.com</email>
 </author>

 
 <entry>
   <title>Tap a little higher on Windows Phone</title>
   <link href="http://jgthms.com/tap-a-little-higher-on-windows-phone.html"/>
   <updated>2013-07-23T00:00:00+01:00</updated>
   <id>http://jgthms.com/tap-a-little-higher-on-windows-phone</id>
   <content type="html">&lt;p&gt;I recently purchased a &lt;a href=&quot;http://www.nokia.com/global/products/phone/lumia620/&quot;&gt;Nokia Lumia 620&lt;/a&gt;. I owned an iPhone some years ago, but when it got stolen, I didn’t feel the need to have a permanent internet access anymore. But recently I figured that owning a smartphone is ultimately benefitial, as long as you prevent yourself from installing any casual game or aimlessly browsing the web.&lt;/p&gt;

&lt;p&gt;Anyway, I’m still very familiar with iOS. After I lost my iPhone, I purchased an iPad 1, an iPod Touch, and recently an iPad Mini. I still consider iOS the best mobile OS available, in terms of responsiveness, usability, and global appeal.&lt;/p&gt;

&lt;p&gt;Like anything new though, I am pleased with my Windows Phone. Great hardware, live tiles, predictive typing, decent default apps (especially the Nokia GPS), iTunes-free administration… Apart from the radically different design approach, the recurrent issue I still encounter with my Windows Phone is to &lt;strong&gt;tap too low&lt;/strong&gt;. If I want to tap on a link, I usually end up taping the one right below. I figured that WP’s taping area is calibrated &lt;em&gt;exactly&lt;/em&gt; on its location, meaning that, in order to tap on a link, my thumb has to cover it completely. On iOS, the calibration is slightly different: you need to tap a little below the link, which actually prevents your thumb from hiding the link you’re trying to interact with.&lt;/p&gt;

&lt;p&gt;I don’t know which approach is the best but switching from one device to the other still yields some unexpected behavior.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Designing a single page with CSS animations, keyframes and a full-size background cover</title>
   <link href="http://jgthms.com/designing-a-single-page-with-css-animations-keyframes-and-a-full-size-background-cover.html"/>
   <updated>2013-07-11T00:00:00+01:00</updated>
   <id>http://jgthms.com/designing-a-single-page-with-css-animations-keyframes-and-a-full-size-background-cover</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://jt.ms&quot;&gt;&lt;img src=&quot;/i/jtms.jpg&quot; alt=&quot;JT.ms&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For almost a year now, I’ve had this 4-letter domain: &lt;a href=&quot;http://jt.ms&quot;&gt;jt.ms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve only recently started using it as quick URL shortener so that, if anyone asked me (in real life) the address of my blog or my SoundCloud profile, I’d tell them “jt.ms/blog” or “jt.ms/music”, rather than a slightly longer URL. But I also wanted this domain to act as a tiny portal to some of my websites and as a simple profile for my musical aspirations.&lt;/p&gt;

&lt;p&gt;So I decided to quickly design one, and use the opportunity to have fun with some new CSS features.&lt;/p&gt;

&lt;h2 id=&quot;css-background-cover&quot;&gt;CSS background cover&lt;/h2&gt;

&lt;p&gt;I remember when I had to settle for jQuery to fill a webpage’s background with a full-size image. Luckily enough, CSS 3 implementation has come a long way and the &lt;code&gt;background-size&lt;/code&gt; property is nowadays &lt;a href=&quot;http://caniuse.com/#feat=background-img-opts&quot;&gt;pretty well supported&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I just had to figure what image to put. And that’s what actually triggered the whole redesign process. I had an instant vision of what picture to take: an overview of my desktop setup. I guess it’s a designer’s thing to showcase his working desktop (the same way a developer would sometimes list his Vim/Emac plugins or discuss his favorite coding practices…). Anyway, I felt it was an appealing way to convey what I do as an aspiring music producer.&lt;/p&gt;

&lt;p&gt;So I semi-randomly placed my gear, opened Ableton Live and launched a fake recording session to light up the whole thing. I took a few pictures, and the last one looked good enough. I launched Photoshop and applied a script I had saved some time ago and it turned out &lt;a href=&quot;http://jt.ms/jt.jpg&quot;&gt;pretty well&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;background-size&lt;/code&gt; property is incredibly easy to implement:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;html { 
  background: #0c031e url(jt.jpg) no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The browser will take care of the redimensioning and make sure that the whole background is always covered by the image, while maintaining its aspect ratio, especially if it doesn’t match the browser’s window one.&lt;/p&gt;

&lt;h2 id=&quot;css-animations-on-hover-effects&quot;&gt;CSS animations on hover effects&lt;/h2&gt;

&lt;p&gt;I only had 4 links to insert on my page:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;my personal blog: &lt;a href=&quot;http://jthom.as&quot;&gt;jthom.as&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;my SoundCloud profile: &lt;a href=&quot;https://soundcloud.com/jgthms&quot;&gt;soundcloud.com/jgthms&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;this blog about design: &lt;a href=&quot;http://jgthms.com&quot;&gt;jgthms.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;a JavaScript-generated mailto contact link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 3 websites’ main color turned out surprisingly complementary.&lt;/p&gt;

&lt;figure&gt;
  &lt;img alt=&quot;JT.ms links&quot; src=&quot;/i/jtms-links.jpg&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;I quickly settled for simple circles. For the hover event, I recalled &lt;a href=&quot;http://svbtle.com/&quot;&gt;Svbtle’s Kudos button&lt;/a&gt; and its animation when submitting a vote. I discovered a &lt;a href=&quot;https://github.com/masukomi/kudos&quot;&gt;GitHub repo&lt;/a&gt; that implemented this functionality. I took only some part of the client-side code, especially the &lt;a href=&quot;https://github.com/masukomi/kudos/blob/master/kudos.css&quot;&gt;CSS transitions&lt;/a&gt;. The jQuery code came down to a adding/removing a class.&lt;/p&gt;

&lt;p&gt;CSS animations are great, but &lt;a href=&quot;http://stackoverflow.com/questions/10090582/can-i-use-hover-to-trigger-a-css3-animation-or-transition-which-keeps-running&quot;&gt;you can’t trigger them on a :hover event&lt;/a&gt;. So you need to use jQuery to add/remove a CSS class on the element you want to trigger a different animation on, and define this new animation within a new CSS block that refers to that new CSS class.&lt;/p&gt;

&lt;p&gt;Ok, let’s use an example. Here’s the HTML code of my links:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;a&amp;gt;
  &amp;lt;strong&amp;gt;music&amp;lt;/strong&amp;gt;
  &amp;lt;em&amp;gt;&amp;lt;/em&amp;gt;
  &amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;The &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; is the container&lt;/li&gt;
  &lt;li&gt;The &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; holds the text (and doesn’t move)&lt;/li&gt;
  &lt;li&gt;The &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; is the bordered circle that shrinks down on hover&lt;/li&gt;
  &lt;li&gt;The &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; is the full colored disc that expands on hover&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only the &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; and the &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; are actually animated.&lt;/p&gt;

&lt;h3 id=&quot;the-bordered-circle&quot;&gt;The bordered circle&lt;/h3&gt;

&lt;p&gt;Here’s the code for the &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; taken from the &lt;a href=&quot;https://github.com/masukomi/kudos/blob/master/kudos.css&quot;&gt;GitHub repo&lt;/a&gt; I mentioned above (and for the sake of readibility, I removed all vendor-prefixed CSS properties, but you should use them in production):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;a em {
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 50%;
  height: 94px;
  left: 50%;
  margin-left: -48px;
  margin-top: -48px;
  position: absolute;
  top: 50%;
  width: 94px;

  transform: scale(1);
  transition-duration: 500ms;
  transition-property: transform, background-color;
  transition-timing-function: ease-out;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ok so the first 9 lines are purely for styling and positioning (I especially like the &lt;code&gt;border-radius: 50%&lt;/code&gt;, a nice find).&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;transform&lt;/code&gt; property defines the &lt;strong&gt;initial&lt;/strong&gt; state of the &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;transition&lt;/code&gt; prefixed properties define &lt;strong&gt;how&lt;/strong&gt; we’re going from the initial state to the final state (which I’ll write later):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;duration&lt;/code&gt;: how long does it take to go from the initial state to the final state (and vice-versa)&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;property&lt;/code&gt;: what CSS properties will be animated. The default value is &lt;code&gt;all&lt;/code&gt;. I don’t think defining only the ones you want is for performance reasons, but rather to prevent animating properties that don’t &lt;em&gt;animate&lt;/em&gt; well, or that you don’t want to animate (font-size, margins, positions…).&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;timing-function&lt;/code&gt;: the easing of the animation. The default is linear, but the ease-out is more interesting. Here’s a &lt;a href=&quot;http://easings.net/&quot;&gt;easing cheat sheet&lt;/a&gt; to visualize how the different functions look (though in CSS, only a subset of them are available).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;the-full-colored-disc&quot;&gt;The full colored disc&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; element is hidden at first, and expands when hovering the link.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;a span {
  background: #D4C4C2;
  border-radius: 50%;
  height: 96px;
  left: 50%;
  margin-left: -48px;
  margin-top: -48px;
  position: absolute;
  top: 50%;
  width: 96px;

  transform: scale(0);
  transition-property: transform, background-color;
  transition-duration: 500ms;
  transition-timing-function: ease-out;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The code is almost the same (I deliberately posted both CSS blocks in their entirety for the sake of this article, but feel free to refactor your CSS in production, as I did myself). There are 2 differences:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the styling (a disc instead of a thin circle)&lt;/li&gt;
  &lt;li&gt;the initial state (the &lt;code&gt;scale&lt;/code&gt; is set to 0 instead of 1)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;no-hover-event-for-animations&quot;&gt;No hover event for animations&lt;/h3&gt;

&lt;p&gt;As I said earlier, you can’t trigger animations on a hover event. So you need to modify the DOM to trigger a new CSS block in which you’ll set the final state of the animation. The easiest way is to add a CSS class to the hovered element. In jQuery, it’s as easy as:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$(&apos;a&apos;).hover(
  function() {
    $(this).addClass(&apos;active&apos;);
  },
  function() {
    $(this).removeClass(&apos;active&apos;);
  }
);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nothing complicated. We now need to write the new CSS block related to this new selector we’ve been given.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;.active em{
  transform: scale(0);
}

.active span{
  transform: scale(1.125);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And that’s it! The thing circle (&lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;) will disappear, and the colored disc (&lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;) will expand to 112.5% its size. You can set that value to whatever you want, but making it bigger than the circle is a nice effect.&lt;/p&gt;

&lt;h2 id=&quot;positioning-elements-on-the-background-cover&quot;&gt;Positioning elements on the background cover&lt;/h2&gt;

&lt;p&gt;Ok, my page was actually finished, but looked quite empty, and rightfully so, because that’s how I meant it. But I wanted to add &lt;em&gt;something else&lt;/em&gt;: &lt;strong&gt;tooltips across the image&lt;/strong&gt;. Shouldn’t be too difficult, right?&lt;/p&gt;

&lt;p&gt;The thing is, my image is not an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag with well-defined dimensions, but rather a background-image that’s resized according to the window’s dimensions, but &lt;em&gt;not exactly&lt;/em&gt;. What I mean is that, in order for the image to &lt;strong&gt;completely&lt;/strong&gt; cover the background &lt;em&gt;while&lt;/em&gt; maintaining the image’s ratio, it needs to follow the window’s resizing according to a &lt;strong&gt;function&lt;/strong&gt;. What function is that? Well, I found the answer on StackOverflow: &lt;a href=&quot;http://stackoverflow.com/questions/10285134/whats-the-math-behind-csss-background-sizecover&quot;&gt;‘What’s the math behind CSS’s background-size:cover’&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How it works: you calculate the window’s ratio and compare it to the image’s ratio (mine is 3/2). According to the result, the height &lt;em&gt;or&lt;/em&gt; the width of the image is set to the window’s, and the other value (width &lt;em&gt;or&lt;/em&gt; height) is calculated to keep the image’s ratio.&lt;/p&gt;

&lt;p&gt;So I set up a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; that has the exact dimensions of, and is exactly positioned as the background-image. I resized my window a few times to understand how the browser actually redimensionned the background-image and figured out how it worked.&lt;/p&gt;

&lt;p&gt;Here’s the function I quicky wrote:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var a = $(&apos;div&apos;);

Position = function() {
  windowHeight = $(window).height();
  windowWidth = $(window).width();
  windowRatio = windowWidth / windowHeight;
  if (windowRatio &amp;gt; 1.5) {
    a.css(&apos;top&apos;, (windowHeight / 2) - ((windowWidth / 1.5) / 2));
    a.css(&apos;left&apos;, 0);
    a.css(&apos;height&apos;, windowWidth / 1.5);
    a.css(&apos;width&apos;, windowWidth);
  } else {
    a.css(&apos;top&apos;, 0);
    a.css(&apos;left&apos;, (windowWidth / 2) - ((windowHeight * 1.5) / 2));
    a.css(&apos;height&apos;, windowHeight);
    a.css(&apos;width&apos;, windowHeight * 1.5);
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Depending on the window’s ratio, the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; is resized and positioned to exactly cover the background-image. Of course, most of the time, the window’s ratio is not equal to the image’s one, so the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; will be either wider or taller than the window, and that’s what we want.&lt;/p&gt;

&lt;h3 id=&quot;positioning-the-tooltips&quot;&gt;Positioning the tooltips&lt;/h3&gt;

&lt;p&gt;Because the background-image (and thus the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; as well) keep their aspect ratio no matter what, I just had to position all my tooltips using &lt;strong&gt;percent values&lt;/strong&gt; and &lt;a href=&quot;http://jt.ms/&quot;&gt;&lt;em&gt;voilà&lt;/em&gt;&lt;/a&gt;! I styled them like the other links (because they’re links as well) and made the text fade in on hover. It’s funny to see these tooltips disappear beyond the viewport when resizing the window because it’s not common for an HTML element to &lt;em&gt;not&lt;/em&gt; appear in the viewport.&lt;/p&gt;

&lt;h2 id=&quot;css-keyframes&quot;&gt;CSS keyframes&lt;/h2&gt;

&lt;p&gt;I also added some introduction animations using keyframes. For example, here’s how the 3 main links “introduce” themselves:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;a {
  animation-duration: 1000ms;
  animation-fill-mode: both;
  animation-name: one;
  animation-timing-function: ease-out;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Looks exactly like the &lt;code&gt;transition&lt;/code&gt; prefixed properties, with 2 new important properties: fill-mode and name.&lt;/p&gt;

&lt;h3 id=&quot;animation-name-explained&quot;&gt;animation-name explained&lt;/h3&gt;

&lt;p&gt;This property lets you define the &lt;strong&gt;name&lt;/strong&gt; of the keyframe function that will be called. You need to write this function separately. Here’s the one I use for my main links:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@keyframes one {
  0% { opacity: 0; transform: translateY(-24px);}
  100% { opacity: 0.29; transform: translateY(0);}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So my 3 circles go from hidden (opacity: 0) to semi-visible (opacity: 0.29), and also move up 24px. 0% is the initial state, and 100% the final one. You can add more keyframes if you want.&lt;/p&gt;

&lt;p&gt;But what happens &lt;em&gt;before&lt;/em&gt; and &lt;em&gt;after&lt;/em&gt; the animation?&lt;/p&gt;

&lt;h3 id=&quot;animation-fill-mode-explained&quot;&gt;animation-fill-mode explained&lt;/h3&gt;

&lt;p&gt;To understand this property, you need to understand how a keyframe animation works. There are &lt;em&gt;3 states&lt;/em&gt; in an animation: before, during, and after. The “during” state is the easiest to understand because that’s the animation. That’s what the keyframe function is for.&lt;/p&gt;

&lt;p&gt;So what style is applied before and after the animation? Well the &lt;strong&gt;default&lt;/strong&gt; style is applied. And here, my links have a default opacity of 0.29. But let’s set that to 1 for demonstration purposes.&lt;/p&gt;

&lt;p&gt;So the &lt;strong&gt;full&lt;/strong&gt; animation goes like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;before&lt;/strong&gt;: opacity = 1&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;animation start&lt;/strong&gt;: opacity = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;animation end&lt;/strong&gt;: opacity = 0.29&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;after&lt;/strong&gt;: opacity = 1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not a problem if the animation starts &lt;strong&gt;directly&lt;/strong&gt;. But I actually set up a delay on the 2nd and 3rd of my main links. So they start visible, then disappear, then fade in slowly.&lt;/p&gt;

&lt;p&gt;That’s where the value of &lt;code&gt;animation-fill-mode&lt;/code&gt; comes in:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;none&lt;/code&gt; (default): the before and after states have the default style applied (1 here)&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;forwards&lt;/code&gt;: the after state has the animation end value (0.29 here)&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;backwards&lt;/code&gt;: the before states has the animation start value (0)&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;both&lt;/code&gt;: it’s forwards and backwards combined&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So if you put “both” (and that’s what I recommend), it means that the styles you’ll define in the keyframes will be applied before the animation starts &lt;em&gt;and&lt;/em&gt; after it ends.&lt;/p&gt;

&lt;p&gt;So the &lt;strong&gt;corrected&lt;/strong&gt; animation goes like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;before&lt;/strong&gt;: opacity = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;animation start&lt;/strong&gt;: opacity = 0&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;animation end&lt;/strong&gt;: opacity = 0.29&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;after&lt;/strong&gt;: opacity = 0.29&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way, you’re sure that the animation will run smoothly, no matter what delay you’ve put &lt;em&gt;before&lt;/em&gt;, and no matter what default style would have been applied &lt;em&gt;after&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;animation-delay&quot;&gt;animation-delay&lt;/h3&gt;

&lt;p&gt;Here’s the delay property I was talking about:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#life { animation-delay: 0;}
#music { animation-delay: 500ms;}
#design { animation-delay: 1000ms;}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So the first link starts its animation right as the page is loaded (so there’s technically no “before” state). The following links start theirs half a second after the previous one.&lt;/p&gt;

&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;

&lt;p&gt;CSS animations are really easy to implement and rather well supported across the different browsers. For this single page, it makes sense to make use of them because:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;it’s a single page&lt;/li&gt;
  &lt;li&gt;there isn’t much content&lt;/li&gt;
  &lt;li&gt;it’s more a showcase than an actual website&lt;/li&gt;
  &lt;li&gt;it’s rather unobtrusive because there’s almost no interaction possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So be aware to use these CSS animations sparingly.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How iOS 7 can still end up looking</title>
   <link href="http://jgthms.com/how-ios-7-can-still-end-up-looking.html"/>
   <updated>2013-06-13T00:00:00+01:00</updated>
   <id>http://jgthms.com/how-ios-7-can-still-end-up-looking</id>
   <content type="html">&lt;p&gt;The new iOS 7 icons made most (if not all) designers cringe. They don’t criticize the decision to head for a flatter (but not completely flat) layout but rather the execution. The acid unpleasant visual result is probably due to the fact that &lt;a href=&quot;http://www.macrumors.com/2013/06/12/jony-ive-put-apples-marketing-team-in-charge-of-ios-7-icon-design/&quot;&gt;Jony Ive put Apple’s marketing team in charge of iOS 7 icon design&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each team in a large company has a different &lt;em&gt;single&lt;/em&gt; goal. Marketing needs to sell, developers need to make things work, designers to make things beautiful and usable. If 2 of these goals are assigned to the same team, there is a purpose conflict. You can not refine one aspect of your work without the fear of damaging the other. So you end up in a gray area where none of your 2 goals is completely fulfilled.&lt;/p&gt;

&lt;p&gt;iOS 7 is still in beta, so there’s still time to polish the shipped product, and it’ll probably happen:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The look and feel of the icons and other new UI bits are likely to change significantly as the iOS 7 beta proceeds.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After Apple unveiled the new iOS 7 design, I headed for &lt;a href=&quot;http://dribbble.com/tags/ios7&quot;&gt;Dribbble&lt;/a&gt; because I &lt;em&gt;knew&lt;/em&gt; designers would rapidly come up with dozens of alternatives, which ultimately turn out as more than decent solutions to a real issue.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dribbble.com/shots/1111319-I-know-I-know&quot;&gt;&lt;img src=&quot;/i/ios7-safari-icon.jpg&quot; alt=&quot;iOS 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dribbble.com/shots/1112950-iTunes-iOS7&quot;&gt;&lt;img src=&quot;/i/ios7-itunes-icon.jpg&quot; alt=&quot;iOS 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dribbble.com/shots/1112094-iOS-7&quot;&gt;&lt;img src=&quot;/i/ios7-redesign.png&quot; alt=&quot;iOS 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dribbble.com/shots/1111638-iOS7-Reimagined&quot;&gt;&lt;img src=&quot;/i/ios7-reimagined.png&quot; alt=&quot;iOS 7&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iOS 7 is a big disruption in Apple’s interface history. It can be a big leap forward as long as refinements are made. We weren’t used to Apple shipping a half-baked product. Luckily there’s still time to polish it and respond to the collective roar of the design community, though historically large companies seldom alter their decision based on people’s discontent (Xbox One?).&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>iOS 7, gradients, and usability</title>
   <link href="http://jgthms.com/ios-7-gradients-and-usability.html"/>
   <updated>2013-06-11T00:00:00+01:00</updated>
   <id>http://jgthms.com/ios-7-gradients-and-usability</id>
   <content type="html">&lt;p&gt;I must say, I was &lt;em&gt;very&lt;/em&gt; surprised by Apple’s iOS 7 unveiling. I’m a designer (though not a great one) so I’m usually first concerned about how it looks and my first thought was “It looks terrible.” And apparently, &lt;a href=&quot;http://designerscomplaining.tumblr.com/&quot;&gt;I’m not the only one&lt;/a&gt;. Of course it’s hard to have a complete valid judgment without having held an iPhone with iOS 7 in your own hands. But I remember being delighted by the first iOS’s screenshots back in 2007. It was a great start and a solid base to increment on, hence the light changes in a span of 6 years.&lt;/p&gt;

&lt;figure&gt;
  &lt;img alt=&quot;iOS from 2007 to 2013&quot; src=&quot;/i/ios-2007-2013.png&quot; /&gt;&lt;br /&gt;
  &lt;figcaption&gt;iOS from 2007 to 2013 (source: &lt;a href=&quot;http://thetechblock.com/why-ios-7-is-important/&quot;&gt;thetechblock.com&lt;/a&gt;)&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;gradients&quot;&gt;Gradients&lt;/h2&gt;

&lt;p&gt;I’m more concerned about the &lt;strong&gt;gradients&lt;/strong&gt;. iOS 7 isn’t exactly “flat”. The icon gradients yield a subtle sense of depth. But they look clumsy. I once wrote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Nowadays, I tend to avoid gradients because it’s so easy to mess it up. It’s not only about choosing 2 colors, it’s about eveything that happens &lt;strong&gt;in between&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can obtain decent looking gradients with only &lt;strong&gt;2 color stops&lt;/strong&gt; (one on top, one on bottom), but designers usually mix &lt;em&gt;several&lt;/em&gt; gradients or create more complex ones to achieve a much better result.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/ios7-gradients.png&quot; alt=&quot;iOS 7 gradients&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If I were to copy the Spotify icon, I’d start with a simple 2-stop gradient. But the result wouldn’t be as appealing, because there’s &lt;em&gt;more&lt;/em&gt; involved: a light glare on top, some inner shadow, and probably other subtle elements. Even the embedded shapes have gradients and inner shadows applied to them. That’s what it takes to make a good icon.&lt;/p&gt;

&lt;p&gt;Settling for simple (and probably easy) highly saturated gradients has seriously harmed the visual appeal of iOS 7.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Maybe going “full flat”, with just solid colors, would have been a better choice (as I said, it’s easy to mess up gradients).&lt;/li&gt;
  &lt;li&gt;Maybe if the white icons that cover these gradients had been incredibly designed, these gradients wouldn’t have mattered. But the icons as well look as first draft mockups. I know it because I’m very bad at designing icons and they usually end up like that.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;usability&quot;&gt;Usability&lt;/h2&gt;

&lt;p&gt;But who cares how it looks as long as it’s easy to use?&lt;/p&gt;

&lt;p&gt;Apart from these icon gradients, most of iOS 7 is completely &lt;strong&gt;flat&lt;/strong&gt;. There’s been much (rightful) criticism towards the flat design trend that’s spreading across the web, notably for its usability issues. iOS, like the web, is &lt;strong&gt;interactive&lt;/strong&gt;. So any hindrance to a user’s interaction is a usability issue. Flat elements are known to lack &lt;strong&gt;affordance&lt;/strong&gt;: they fail to imply any functionality. The problem is that &lt;strong&gt;all&lt;/strong&gt; elements only rely on solid colors and basic shapes to convey several (and usually not complementary) informations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;importance (a title, a secondary element, a label, a paragraph)&lt;/li&gt;
  &lt;li&gt;state (on/off, active/disabled, in progress…)&lt;/li&gt;
  &lt;li&gt;capability (is it a button? a notification? an ornament?)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you restrict yourself to only 3 simple elements (color, size, shape) to convey all information for &lt;em&gt;each&lt;/em&gt; element of your interface, you’ll face many &lt;strong&gt;graphic crossovers&lt;/strong&gt; and lack differenciation.&lt;/p&gt;

&lt;p&gt;There’s also been some concern about the use of a thin font (Helvetica Neue Light) and its readibility. I think there isn’t much to discuss about right now because it will greatly depend on the screen’s resolution.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/ios7-weather-app.png&quot; alt=&quot;iOS 7 Weather app&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But what people are most concerned about in terms of usability is the &lt;strong&gt;Control Center&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/ios7-control-center.png&quot; alt=&quot;iOS 7 Control Center&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Many lines, no gradients, light shadows on the slider handles. What is interactive? What’s not?&lt;/p&gt;

&lt;p&gt;The 5 top buttons remind me of my post about &lt;a href=&quot;/the-2-options-toggle-button.html&quot;&gt;the 2 options toggle button&lt;/a&gt;: it’s either on or off. But does the button actually display the &lt;strong&gt;current state&lt;/strong&gt; (on or off) or the &lt;strong&gt;possible action&lt;/strong&gt; (&lt;em&gt;turn&lt;/em&gt; on or &lt;em&gt;turn&lt;/em&gt; off)? Well, the answer is within the sliders: the white part shows the &lt;strong&gt;current&lt;/strong&gt; level of the lightness or volume. So I guess a top button being white means it’s on because it’s its &lt;strong&gt;current&lt;/strong&gt; state.&lt;/p&gt;

&lt;p&gt;There also may be concerns about the heavy use of thin lines to represent both progess bars, area dividers and icon borders. But I guess such a heavily used feature as the Control Center will only require a few minutes to get accustomed to.&lt;/p&gt;

&lt;h2 id=&quot;you-know-good-design-when-you-use-it&quot;&gt;You know good design when you use it&lt;/h2&gt;

&lt;p&gt;There’ll be many posts like mine, discussing a not yet available OS, criticizing its aspect and speculating on its usability, only to end up uttering some rapid conclusions about a software a multi-billion dollar company developed. But Apple says it best on its iOS 7 page: &lt;a href=&quot;http://www.apple.com/ios/ios7/design/#functional&quot;&gt;&lt;em&gt;“You know good design when you use it”&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Oh well, it’s just a phone.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Target blank is for laptop and Mac users</title>
   <link href="http://jgthms.com/target-blank-is-for-laptop-and-mac-users.html"/>
   <updated>2013-06-04T00:00:00+01:00</updated>
   <id>http://jgthms.com/target-blank-is-for-laptop-and-mac-users</id>
   <content type="html">&lt;p&gt;For more than a decade, my main computer has been a regular PC tower. Alongside Windows XP as my default OS, I’ve become well acquainted with the 3-buttons mouse. Whether for gaming, text editing, or just browsing, the middle click has supplanted the right one as my second most used button.&lt;/p&gt;

&lt;p&gt;Due to my job as a web designer, I spent most of my time switching between Photoshop, Notepad++ and Firefox. For the latter (as for any browser), the middle-click became such a natural habit in my browsing process that I feel impaired by its lack.&lt;/p&gt;

&lt;p&gt;When I purchased an iMac for my music production needs, I decided to hang on to its unusual Magic mouse. Although clumsy with it at first, I considered it required some adaptation that would eventually lessen my frustration over time. I felt using this mouse validated my decision to follow the “Apple way of things”, but I still enabled the quite uncanny right-click.&lt;/p&gt;

&lt;p&gt;The lack of middle-click was hard to get accustomed to. Opening a link in a new tab required either Cmd + click or Right click + navigating the menu. I couldn’t browse the web like I used to: solely with my right hand, leaving my left one free for drinking, eating, or smoking.&lt;/p&gt;

&lt;p&gt;Browsing Hacker News or any link-filled aggregator required some more involvement from my side. It’s not exactly a burden, but rather a small inconvenience. The only website that actually became &lt;em&gt;easier&lt;/em&gt; to browse is &lt;a href=&quot;https://news.layervault.com/&quot;&gt;&lt;strong&gt;Designer News&lt;/strong&gt;&lt;/a&gt;. As a front-end developer and heavy web user, I loathe the target blank feature. I’ve always been an advocate of a tolerant user experience by avoiding any unwanted disruption, no matter how small.&lt;/p&gt;

&lt;p&gt;But with a Magic mouse, or with any regular laptop trackpad really, the target blank feature becomes less an annoyance and more a satisfaction. And considering how, &lt;em&gt;allegedly&lt;/em&gt;, most designers use a Mac (and especially a MBP), I wonder if that’s the reason why a site like Designer News has implemented the target blank.&lt;/p&gt;

&lt;p&gt;Although I tend to use my Mac more, and have started to make some web design work with it, I still wouldn’t impose any kind of browsing interference on my users.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Adobe Kuler's analytics make it unusable</title>
   <link href="http://jgthms.com/adobe-kuler-analytics-make-it-unusable.html"/>
   <updated>2013-05-30T00:00:00+01:00</updated>
   <id>http://jgthms.com/adobe-kuler-analytics-make-it-unusable</id>
   <content type="html">&lt;p&gt;Adobe just released a new version of their color tool &lt;a href=&quot;https://kuler.adobe.com&quot;&gt;Kuler&lt;/a&gt;. I was surprised though to stumble upon an empty page:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/adobe-kuler-unusable.png&quot; alt=&quot;Adobe Kuler&apos;s homepage&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I tried to disable Adblock Plus, but what finally did the trick was to enable &lt;strong&gt;Omniture&lt;/strong&gt;, which is basically Adobe’s own analytics. Ghostery rightfully blocked this script because it’s nothing more than yet another useless plugin.&lt;/p&gt;

&lt;p&gt;It’s the first time I visit a website that becomes unusable because of a blocked analytics script. Well, I guess I won’t be visiting Kuler anytime soon.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>I just want to visit your website</title>
   <link href="http://jgthms.com/i-just-want-to-visit-your-website.html"/>
   <updated>2013-05-20T00:00:00+01:00</updated>
   <id>http://jgthms.com/i-just-want-to-visit-your-website</id>
   <content type="html">&lt;p&gt;Alongside Adblock Plus, I use to run the &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/noscript/&quot;&gt;NoScript&lt;/a&gt; Firefox add-on to prevent malicious sites from messing with my browser but mostly to prevent any useless social or analytics script to load. It was until I found out about &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/ghostery/&quot;&gt;Ghostery&lt;/a&gt; which is less restrictive (and maybe less secure) but gets the job done: maintain some kind of privacy while browsing the web.&lt;/p&gt;

&lt;p&gt;For any website visited, Ghostery displays a temporary window that lists the different trackers blocked. I’m amazed by the number of scripts some sites try to load.&lt;/p&gt;

&lt;p&gt;Here’s &lt;a href=&quot;http://www.theverge.com/&quot;&gt;The Verge&lt;/a&gt; tracking results:&lt;/p&gt;

&lt;figure&gt;
&lt;img alt=&quot;Ghostery results for The Verge&quot; src=&quot;/i/ghostery-the-verge.png&quot; /&gt;&lt;br /&gt;
&lt;figcaption&gt;Ghostery results for The Verge&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Apart from SoundCloud and Typekit, I block all external sites. I’ve always considered the web to be about &lt;strong&gt;content&lt;/strong&gt;: read articles, look at images, watch videos, etc. Nothing else.&lt;/p&gt;

&lt;p&gt;If I’m browsing your website, any sharing feature or analytics script might seem useful to you, but it won’t make me visit you more often, or even less either. I’ll come back if your content is worth it. Ultimately, what I want is just to load &lt;em&gt;your&lt;/em&gt; website because that’s all I’m interested in.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Path is destined to grow slowly</title>
   <link href="http://jgthms.com/path-is-destined-to-grow-slowly.html"/>
   <updated>2013-05-03T00:00:00+01:00</updated>
   <id>http://jgthms.com/path-is-destined-to-grow-slowly</id>
   <content type="html">&lt;p&gt;Like millions of people, I’ve had a Facebook account for years. I don’t remember how many “Friends” I have, but it’s obviously many more than its true state. In the last year and a half, I’ve only logged in twice to my account (once to post my &lt;a href=&quot;http://reachthethrone.com/&quot;&gt;album&lt;/a&gt;, once to post a &lt;a href=&quot;https://soundcloud.com/jgthms/daft-punk-random-access-memories-jthomas-remix&quot;&gt;Daft Punk remix&lt;/a&gt;). But apart from that, I haven’t had any activity or even read &lt;em&gt;any&lt;/em&gt; story from my news feed. I also deleted hundreds of pictures, dozens of “Liked” pages, and unnecessary profile informations (including my birthday). I eventually changed my password to a 100 characters-long random string to prevent myself from logging in back too easily.&lt;/p&gt;

&lt;p&gt;Why such apparently drastic measures?&lt;/p&gt;

&lt;p&gt;For one thing, I browsed Facebook far too often. I used to always keep it open in a tab and checked it regularly on both my iPod and iPad. Logging myself off only kept me away for a few hours. It felt, as it probably does for a significant percentage of its users as well, as a fierce and resilient addiction, a giant sucking hole destined to waste my somewhat precious time and ravage my already fainting productivity.&lt;/p&gt;

&lt;p&gt;But on a more substantial note, I wasn’t eager to remain stuck in the persistent circle jerk, fueled by self-centered and shallow interactions, to which I heavily contributed and for which I have myself to blame as well.&lt;/p&gt;

&lt;p&gt;It may seem like an overkill to completely shut myself out of a popular social experience that I could have approached differently and kept in my control. But this digital lockdown has easily succeeded in its single goal: keep me away from Facebook.&lt;/p&gt;

&lt;h2 id=&quot;facebook-the-ultimate-gathering&quot;&gt;Facebook: the ultimate gathering&lt;/h2&gt;

&lt;p&gt;Apart from my close friends, my Facebook contacts also included my extended family, former work colleagues, long lost schoolmates, various encounters from foreign countries, short-lived relationships, as well as a wide network of mutual friends.&lt;/p&gt;

&lt;p&gt;This diversity of &lt;strong&gt;channels&lt;/strong&gt; is mainly due to Facebook having become the &lt;em&gt;de facto&lt;/em&gt; corner stone of a web-based identity and ultimately the personal v-card commonly held by any 13-40 years-old connected being, and especially anyone I’ve been familiar with.&lt;/p&gt;

&lt;h2 id=&quot;a-new-facebook-account&quot;&gt;A new Facebook account?&lt;/h2&gt;

&lt;p&gt;Creating a secondary Facebook account, to selectively include a few “designated” friends and family members whom I’m keen to be informed about, has crossed my mind but I’ve dismissed this decision as an unworkable option. It would have led to some confusion, displeasure, and probably questions from “excluded” friends about why they’re not part of my newly-created network. Plus, a Facebook account is nowadays part of a whole “social” package that is sometimes hard to avoid misusing.&lt;/p&gt;

&lt;p&gt;It would have eventually resulted in a &lt;strong&gt;one-sided&lt;/strong&gt; experience, where I’d read everyone’s stories but not contribute any or to any. Not a dreadful option, but not what I was looking for.&lt;/p&gt;

&lt;h2 id=&quot;path-a-potential-alternative&quot;&gt;Path: a potential alternative&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://path.com/&quot;&gt;Path&lt;/a&gt; has been on my radar for quite a while. An almost private social network, for just friends and family? A well-branded iOS app with a clean intuitive interface? Sounds good.&lt;/p&gt;

&lt;p&gt;The UI element was an important factor because I’d have to convince my mostly non tech-savvy friends and family members to use Path alongside their usual Facebook account.&lt;/p&gt;

&lt;p&gt;Path embodied exactly what I envisioned in a post-Facebook social experience, focused on quality and intimacy. I personified the perfect target market, as I was probably in a similar state of mind as Path’s founders when they imagined their product, looking to fill the following need: “A Facebook-like experience without its inconveniences”.&lt;/p&gt;

&lt;p&gt;Why I never actually subscribed to Path isn’t related to the multiple privacy concerns it spawned among its users (because I was unaware of them) but to the “internet socialization” needs I lacked since I quit Facebook.&lt;/p&gt;

&lt;h2 id=&quot;path-and-its-users-2-conflicting-objectives&quot;&gt;Path and its users: 2 conflicting objectives&lt;/h2&gt;

&lt;p&gt;I’m convinced that those who ultimately choose Path as their primary social network consider it as a &lt;strong&gt;reboot&lt;/strong&gt; of their digital interactions. They wish to escape the Facebook tangle they’ve generated and rejoice in a brand-new healthy network they could control.&lt;/p&gt;

&lt;p&gt;The best (and maybe only) method to fulfill that goal is to &lt;strong&gt;limit&lt;/strong&gt; yourself to a small number of contacts. Path itself provides a 150 contacts limit but I’d argue that 30 is well enough for such a network. I myself intended to have only 10 contacts.&lt;/p&gt;

&lt;p&gt;But how would Path grow if every user followed such a behavior? It’s not really a chicken and egg problem: people (like me) wouldn’t wait for a significant amount of users to have subscribed before subscribing themselves because you don’t care about how many users Path has. You’re not here to meet new people. Quite the opposite really: you’re here to interact with people you already know and are especially close to. You only need a few of your friends and family members to join, and you can tell them &lt;em&gt;directly&lt;/em&gt;. A quick email, a phone call, or just while chatting in person. &lt;em&gt;“Hey, there’s this cool service, for just you and me. We should join.”&lt;/em&gt; I know I would have used Path intensively even with 2 or 3 friends only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path is meant to grow very slowly&lt;/strong&gt;. It’s like trying to fill a pool by filling it up with drops of water, but that’s how Path is &lt;em&gt;designed&lt;/em&gt; to grow. If you position yourself as &lt;strong&gt;the&lt;/strong&gt; private social network for family and close friends, you can’t expect people to gather new users by the dozen because it’s the exact opposite that led them to join your service in the first place.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Why HN doesn't need a redesign</title>
   <link href="http://jgthms.com/why-hn-doesnt-need-a-redesign.html"/>
   <updated>2013-03-07T00:00:00+00:00</updated>
   <id>http://jgthms.com/why-hn-doesnt-need-a-redesign</id>
   <content type="html">&lt;p&gt;I don’t exactly remember how I discovered Hacker News. &lt;a href=&quot;http://news.ycombinator.com/user?id=bbx&quot;&gt;My account&lt;/a&gt; is 1295 days old, which means I subscribed on August 20, 2009. HN’s homepage on &lt;a href=&quot;http://web.archive.org/web/20090820010834/http://news.ycombinator.com/&quot;&gt;that particular date&lt;/a&gt; was filled with stories about _why’s disappearance which, in retrospect, is probably the event that led me to HN in the first place, considering I was learning Ruby at that time.&lt;/p&gt;

&lt;p&gt;Anyway, I eventually created an account and stuck around. I first wondered why it was called &lt;em&gt;Hacker&lt;/em&gt; News because at that time, the word still wrongly carried a negative connotation for me. Reading through pg’s articles, I understood what &lt;em&gt;Hacker&lt;/em&gt; actually meant.&lt;/p&gt;

&lt;p&gt;Visually, the site’s design felt slightly austere but it didn’t bother me. I loved its straightforward approach: only links and text. That’s hypertext at its core. No avatars, no background-image, no rich color palette, no custom font, no &lt;em&gt;stylish&lt;/em&gt; elements. But most of all: a &lt;strong&gt;high density of information&lt;/strong&gt;. I’ve always been more comfortable with having everything layed down before me, whether it’s a digital interface or objects on my desk.&lt;/p&gt;

&lt;h2 id=&quot;a-functional-focus&quot;&gt;A functional focus&lt;/h2&gt;

&lt;p&gt;Two days ago, the &lt;a href=&quot;http://hnwishlist.com/&quot;&gt;HN Wishlist&lt;/a&gt; appeared on HN’s front page. It unsurprisingly spawned some discussion about HN’s design. The 3rd most upvoted wish is &lt;a href=&quot;http://hnwishlist.com/posts/87d7524a-a2c5-47c1-8d5b-91cd0dca882b&quot;&gt;&lt;em&gt;Refresh the visual design&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As a designer, I can understand such a desire. But it misses the point: the web is about content, and HN is one of the few websites that has remained entirely focused on this notion.&lt;/p&gt;

&lt;p&gt;A user browsing a news aggregator is here for 2 things: clicking links and reading/writing comments. Skimming through dozens of news on HN proves to be very efficient considering the links density and the lack of futile elements.&lt;/p&gt;

&lt;h2 id=&quot;a-community-filter&quot;&gt;A community filter&lt;/h2&gt;

&lt;p&gt;Maintaining what most people consider an &lt;em&gt;antique&lt;/em&gt; layout actually prevents newcomers who can’t see past the surface from deciding to join the community. The design also de-emphasizes the value of a user’s profile. I believe both features have indirectly helped HN’s community develop what it is often praised for: &lt;strong&gt;high quality discussions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On a related note, the ability to collapse/expand comment threads is something some people wish for. But I fear it would give too much weight to top-level comments, and diminish the core of a thread: the discussion it generates, in which counterarguments and additional details prove to be equally or more important than the comment they’re replying to.&lt;/p&gt;

&lt;p&gt;As a side effect, whenever I decide to contribute to an HN thread, I find myself wondering for a few minutes if what I’m about to write is adding any value to the discussion. If so, I mull over the idea I’m about to develop, carefully construct my sentences (looking through dictionaries and French/English translation sites) and avoid posting too radical statements.&lt;/p&gt;

&lt;h2 id=&quot;the-big-picture&quot;&gt;The big picture&lt;/h2&gt;

&lt;p&gt;It may sound far-fetched to say that HN’s design &lt;em&gt;directly&lt;/em&gt; impacts how users will contribute to the site but it’s actually all related. The orange header, the light yellow-grey background, the small font-size, the lack of graphics… They all amount to a bigger scheme that reflects both the mind of the site’s author and the profile of its community members.&lt;/p&gt;

&lt;p&gt;A design is more than a visual signature: it carries the &lt;em&gt;raison d’être&lt;/em&gt; of a website. And I’d be sceptical if HN’s design suddenly changed because it’d necessarily imply a deeper mutation.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>The 3-states follow button</title>
   <link href="http://jgthms.com/the-3-states-follow-button.html"/>
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://jgthms.com/the-3-states-follow-button</id>
   <content type="html">&lt;p&gt;After having discussed the &lt;a href=&quot;/the-2-options-toggle-button.html&quot;&gt;2-options toggle button&lt;/a&gt;, I started thinking about another multiple options button: the follow button.&lt;/p&gt;

&lt;p&gt;One of the most famous ones is the Twitter one:&lt;/p&gt;

&lt;figure&gt;
  &lt;img alt=&quot;Twitter follow button states&quot; src=&quot;/i/twitter-follow-button.png&quot; /&gt;&lt;br /&gt;
  &lt;figcaption&gt;From left to right: not following, following, following:hover&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;What’s interesting is that, by default, when you’re &lt;em&gt;not&lt;/em&gt; following the person, the button shows the &lt;strong&gt;possible action&lt;/strong&gt;: ‘Follow’. But becoming a follower will subsequently cause the &lt;em&gt;same&lt;/em&gt; button to hold the &lt;strong&gt;current state&lt;/strong&gt; (‘Following’), and only unveil the new possible action (‘Unfollow’) if you hover it.&lt;/p&gt;

&lt;p&gt;GitHub makes use of a similar button to watch repositories:&lt;/p&gt;

&lt;figure&gt;
  &lt;img alt=&quot;GitHub follow watch states&quot; src=&quot;/i/github-watch-button.png&quot; /&gt;&lt;br /&gt;
  &lt;figcaption&gt;From left to right: not watching, watching, watching:hover&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The implementation is different because the button &lt;em&gt;always&lt;/em&gt; displays the possible action, never the current state. It’s both:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;less obvious: you need to understand that seeing ‘Unwatch’ means you &lt;em&gt;are&lt;/em&gt; watching the repo.&lt;/li&gt;
  &lt;li&gt;less visually communicative and appealing: the same grey layout is used for both watched and unwatched states, defining no distinction between the two.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think Twitter’s execution, by mixing both action &lt;em&gt;and&lt;/em&gt; state, is more intelligible.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The 2-options toggle button</title>
   <link href="http://jgthms.com/the-2-options-toggle-button.html"/>
   <updated>2013-02-25T00:00:00+00:00</updated>
   <id>http://jgthms.com/the-2-options-toggle-button</id>
   <content type="html">&lt;p&gt;I’m always confused by these kinds of switch buttons:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/toggle-button.png&quot; alt=&quot;2-options toggle button&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It takes me a couple of seconds to figure out if the button is displaying the &lt;strong&gt;current state&lt;/strong&gt; (‘On’) or the &lt;strong&gt;possible action&lt;/strong&gt; (&lt;em&gt;switching to&lt;/em&gt; ‘On’). In this case, it’s meant to show the current state.&lt;/p&gt;

&lt;p&gt;The use of such a toggle button requires:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;having 2 options only&lt;/li&gt;
  &lt;li&gt;the 2 options to be mutually exclusive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best known implementation of this button is actually the Play/Pause button:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/play-pause-button.png&quot; alt=&quot;Play/Pause button&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It actually works in the exact opposite way: the button displays the &lt;strong&gt;possible action&lt;/strong&gt;. Because we’re so well acquainted with this play/pause action, we’re always aware of its implied current state.&lt;/p&gt;

&lt;p&gt;As a matter of fact, it makes sense because Play/Pause are &lt;strong&gt;actions&lt;/strong&gt;, not states. The triangle and two-bars icons are read as ‘Play’ and ‘Pause’, not ‘Playing’ and ‘Pausing’.&lt;/p&gt;

&lt;p&gt;That’s why the On/Off toggle switches display the current state: they are &lt;em&gt;meant&lt;/em&gt; to be read as ‘It’s currently On’ and ‘It’s currently Off’, not ‘Switch to On’ and ‘Switch to Off’.&lt;/p&gt;

&lt;p&gt;But it’s still unclear and not obvious. If you’re designing a web app, just use checkboxes. Or even better: Yes/No radio buttons.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Don't use dropdowns for a few items only</title>
   <link href="http://jgthms.com/dont-use-dropdowns-for-a-few-items-only.html"/>
   <updated>2013-02-23T00:00:00+00:00</updated>
   <id>http://jgthms.com/dont-use-dropdowns-for-a-few-items-only</id>
   <content type="html">&lt;p&gt;Dropdowns (or select boxes) are an easy way to implement a considerable list of options in a small amount of space. A typical use would be a list of countries, or a list of years.&lt;/p&gt;

&lt;p&gt;But using a dropdown for fewer than 5 items seems an &lt;strong&gt;overkill&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Consider this interface element in iTunes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/itunes-dropdown.png&quot; alt=&quot;iTunes dropdown&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using a dropdown requires clicking the dropdown &lt;em&gt;and&lt;/em&gt; navigating in a defined (and sometimes narrow) area. It also &lt;strong&gt;hides&lt;/strong&gt; the options from the user until he actually clicks it.&lt;/p&gt;

&lt;p&gt;Considering the amount of space surrounding the dropdown, and the few number of options available, I’d suggest using that space to display the 3 options directly.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/itunes-dropdown-space.png&quot; alt=&quot;iTunes dropdown space&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firefox also makes use of a dropdown in a 2-options context:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/firefox-dropdown.png&quot; alt=&quot;Firefox dropdown&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This implementation is actually more prone to errors: you can accidentally restart your browser while trying not to. Some Windows security or antivirus updates often make the same mistake (and unwillingly restarting your computer is much more infuriating than just your browser).&lt;/p&gt;

&lt;p&gt;I guess Firefox could have used the dialog box space to display the &lt;em&gt;‘Not now’&lt;/em&gt; option:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/firefox-dropdown-space.png&quot; alt=&quot;Firefox dropdown space&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It doesn’t look like a big issue after all, but it’s the kind of small details of UX that tend to be overlooked (or overthought) and could be easily fixed for the sake of clarity (in terms of information and usability).&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>SoundCloud's UX is confusing</title>
   <link href="http://jgthms.com/soundcloud-ux-is-confusing.html"/>
   <updated>2013-02-17T00:00:00+00:00</updated>
   <id>http://jgthms.com/soundcloud-ux-is-confusing</id>
   <content type="html">&lt;p&gt;I’m going to copy/paste what I’ve said about SoundCloud in a &lt;a href=&quot;http://news.ycombinator.com/item?id=4871076&quot;&gt;previous comment&lt;/a&gt;:&lt;br /&gt;
I love SoundCloud.&lt;/p&gt;

&lt;p&gt;I remember how it was difficult for people like me to upload their music on the web in order to share it. The only viable option was the MySpace music section (which required a different MySpace account). Even renowned artists used it. But the music player was just a single feature among the whole MySpace package, and the resulting experience for both the uploader and the viewer was unconvincing.&lt;/p&gt;

&lt;p&gt;SoundCloud filled a need: upload your music easily, and doing just that. The uploading experience is fluid. The player is great, easy to share, with a nice sound quality.&lt;/p&gt;

&lt;p&gt;But their UI is confusing. Here’s a simple question: what is this?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/soundcloud-ui.png&quot; alt=&quot;SoundCloud UI&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hard to tell isn’t it? It’s actually the waveform of the track currently playing in SoundCloud. And although waveforms are prominent in SoundCloud’s interface, this tiny version makes little sense until it starts to fill itself up and you notice a progress in time. But it’s still hard to understand it’s clickable and brings you back to the currently playing track.&lt;/p&gt;

&lt;h2 id=&quot;lost-in-context&quot;&gt;Lost in context&lt;/h2&gt;

&lt;p&gt;Ever since SoundCloud launched its latest version, it acts like some kind of &lt;strong&gt;radio&lt;/strong&gt;: tracks will play endlessly. The choice of tracks though, is defined by &lt;em&gt;where&lt;/em&gt; you launched the first track from. It can be the home stream, a set, the dedicated track page… You need to remember where you began because the &lt;strong&gt;context&lt;/strong&gt; will define your &lt;strong&gt;playlist&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I usually navigate through 4 contexts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the Home (it’s the main Stream which aggregates tracks from people you follow)&lt;/li&gt;
  &lt;li&gt;a Profile (a user’s page)&lt;/li&gt;
  &lt;li&gt;a Set (a user-defined collection of tracks)&lt;/li&gt;
  &lt;li&gt;the Dedicated page (which also lists related tracks)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on the context in which you’re launching your first track, your playlist will be different. What isn’t obvious though, is what happens after you’ve listened to the &lt;em&gt;last&lt;/em&gt; track. Because SoundCloud wants you to listen endlessly to their tracks, it will continue to play &lt;em&gt;something&lt;/em&gt; even after having reached the last track of a set for example. But that &lt;em&gt;something&lt;/em&gt; is hard to guess. I’ve told them about it: when I send people a set of mine to listen to, I don’t want them to hear anything &lt;em&gt;but&lt;/em&gt; that set. But after having reached the end of my set, SoundCloud will play a track I’ve liked, or a related track, or something else, which might confuse people into thinking it’s part of my set and thus a track I’ve made as well (although it’s not).&lt;/p&gt;

&lt;p&gt;What I’m trying to explain might sound confusing, but that’s because it &lt;em&gt;is&lt;/em&gt; confusing. Even I, with some knowledge of how the site works, don’t know for sure what my current playlist looks like, and why this particular track is currently playing.&lt;/p&gt;

&lt;p&gt;Because you can navigate through the website without interrupting the track currently playing (thanks to the HTML5 History API), you can end up on a page where you see your track playing but in a different &lt;strong&gt;context&lt;/strong&gt;. For example, you can start a track on the homepage, navigate through a set containing that track, and still see it playing. It’s totally normal: it’s the &lt;em&gt;same&lt;/em&gt; track, but in a different context. But this can misguide you into thinking the next track will be the one right below in the set, whereas it will actually be the following one in the homepage where you launched your first track.&lt;/p&gt;

&lt;p&gt;The only way to know in which context your track is playing is to click the waveform icon in the top right corner. But it won’t necessarily tell you what’s coming up next.&lt;/p&gt;

&lt;h2 id=&quot;theres-a-track-playing&quot;&gt;‘There’s a track playing??’&lt;/h2&gt;

&lt;p&gt;The main problem with SoundCloud comes down to this fact: &lt;strong&gt;people don’t know that a track is currently playing in their browser&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I’ve had a couple of friends complain about not figuring out how to stop the music coming from their browser because they didn’t understand that tracks kept playing endlessly in SoundCloud. I had actually sent them a link to a track of mine, and they rightfully thought that pushing the Play button would only play the track once, and &lt;em&gt;only&lt;/em&gt; this track. So they switched back to another tab and were confused as to hear &lt;em&gt;something&lt;/em&gt; coming out of their speaker after a few minutes, without knowing where it came from. It’s reminiscent of Flash-powered websites which auto-start music upon visiting their page. Clearly: it’s a bad thing.&lt;/p&gt;

&lt;p&gt;I understand it’s hard to ask SoundCloud to stop them from playing tracks indefinitely (although it shouldn’t be the expected behavior of a Set or a Dedicated track page). But they should at least notify the visitor about it.&lt;/p&gt;

&lt;p&gt;When navigating back to your SoundCloud tab, unless you clearly see a “Pause” button displayed prominently, it’s impossible to know that the sound is coming from this tab. The tiny waveform in the header is clearly not helping, and finding the “Pause” button among the other numerous orange buttons of the page can be tricky (and requires that you’re currently on a page where the track is displayed!).&lt;/p&gt;

&lt;p&gt;Yes, there’s a “Play” icon in the title bar, but being not interactive and not obvious either, it’s quite helpless.&lt;/p&gt;

&lt;figure&gt;
  &lt;a href=&quot;https://soundcloud.com/jgthms/see-you-at-the-lights&quot;&gt;&lt;img alt=&quot;SoundCloud Title UI&quot; src=&quot;/i/soundcloud-title-ui.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;lack-of-controls&quot;&gt;Lack of controls&lt;/h2&gt;

&lt;p&gt;Because SoundCloud acts like a radio (or a media player), it should display the regular controls you’d expect from such a setup: Play/Pause, Forward, Backward, list of tracks.&lt;/p&gt;

&lt;p&gt;The Play/Pause is visually only available by navigating to a page where you can &lt;em&gt;see&lt;/em&gt; the track playing. Of course, the little waveform in the header is the quickest way to reach such a page, but as I said, it’s not an obvious control. You can also use the spacebar, but playing/pausing a track is not a spacebar’s expected behavior in the context of a browser.&lt;/p&gt;

&lt;p&gt;Forward/Backward controls are the ones I miss the most.&lt;br /&gt;
The Backward button can be useful to navigate back to a track you want to play again, or to know which one you’ve just listened to. There is currently no way to know this.&lt;br /&gt;
If you’re listening to a track, the only way to skip it is to manually choose another one. Sometimes, I just want to hear the following track but it requires navigating back to the context and launching the next track. It’s not much of a trouble, but could be easily avoided by displaying a forward button in the header. As a matter of fact, a playlist exists &lt;em&gt;somewhere&lt;/em&gt; in memory. Why not displaying it and/or making it interactive by implementing Forward/Backward buttons?&lt;/p&gt;

&lt;p&gt;SoundCloud acts like a media player but doesn’t provide the interface that should come with it, and this gap leaves me, and probably many visitors, confused.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Mega should have a confirm password field</title>
   <link href="http://jgthms.com/mega-should-have-a-confirm-password-field.html"/>
   <updated>2013-01-20T00:00:00+00:00</updated>
   <id>http://jgthms.com/mega-should-have-a-confirm-password-field</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://mega.co.nz&quot;&gt;Mega&lt;/a&gt; launched yesterday. I actually had to send a 30Mb file to a friend, but he told me that Dropbox was slow for him. Plus, my Dropbox was still uploading 25Gb of pictures that I had added the day before.&lt;/p&gt;

&lt;p&gt;Anyway, it was the opportunity to try out Mega’s cloud storage system. So I decided to sign up:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/mega-sign-up.png&quot; alt=&quot;Mega&apos;s sign up page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I filled the fields quickly, but then realized 2 things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Is the “&lt;em&gt;Your name&lt;/em&gt;” field actually your username as well? Just in case, I changed it.&lt;/li&gt;
  &lt;li&gt;There was no “&lt;em&gt;Confirm password&lt;/em&gt;” field. So I cleared that field, and retyped my password &lt;em&gt;carefully&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upon receiving my confirmation email (establishing the fact that I had typed it correctly), I tried to login, but was prompted with the message “&lt;em&gt;Invalid password&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;I looked for the usually available “&lt;em&gt;Forgot password?&lt;/em&gt;” link but it wasn’t present. So I went to the help section and found the paragraph “&lt;em&gt;I have forgotten my password. Can I reset it?&lt;/em&gt;”:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Unfortunately, your MEGA password is not just a password - it is the master encryption key to all of your data. If you lose it, you lose access to all of your files that are not in a shared folder and that you have no previously exported file or folder key for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I learned 2 things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It’s not a password, it’s an &lt;em&gt;encryption key&lt;/em&gt; (which may have led me to choose a different pass)&lt;/li&gt;
  &lt;li&gt;It can’t be changed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule here is that, if a password isn’t modifiable (or resettable), &lt;strong&gt;make the user confirm it&lt;/strong&gt;. I’m now left with an account (linked to a specific username and email) that I can’t use.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>I18N and keyboard shortcuts</title>
   <link href="http://jgthms.com/i18N-and-keyboard-shortcuts.html"/>
   <updated>2013-01-05T00:00:00+00:00</updated>
   <id>http://jgthms.com/i18N-and-keyboard-shortcuts</id>
   <content type="html">&lt;p&gt;Although I’m French, I usually install the English version of every software I use, the main reason being that it’s almost always the latest version available, which includes the latest features and bug fixes. Plus, looking for help online usually results in answers in English.&lt;/p&gt;

&lt;p&gt;The only issue I have is with keyboard shortcuts. I use an AZERTY keyboard. The differences with a QWERTY one aren’t exclusively about keys position. For example, all numbers require using the Shift button to type them. It’s not much if I’m editing a text, but it becomes an issue with keyboard shortcuts.&lt;/p&gt;

&lt;p&gt;To zoom in with Firefox, you need to type ‘Command +’. It’s probably easy on a QWERTY but it’s impossible with an AZERTY: the ‘+’ sign requires pressing the Shift button. So if I try typing ‘Command Shift +’ or ‘Command =’ (which is the sign below the ‘+’ one), it doesn’t work (and might even trigger another event).&lt;/p&gt;

&lt;p&gt;I haven’t tried the French version of Firefox, and I guess it’s more suited for AZERTY keyboards. But I believe that choosing a software’s language shouldn’t be related to one’s keyboard layout.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>There are 3 levels of administration</title>
   <link href="http://jgthms.com/there-are-3-levels-of-administration.html"/>
   <updated>2013-01-04T00:00:00+00:00</updated>
   <id>http://jgthms.com/there-are-3-levels-of-administration</id>
   <content type="html">&lt;p&gt;For every web application, there is an administration to design. Its complexity and ease of use depends on who is meant to interact with it.&lt;/p&gt;

&lt;h2 id=&quot;the-creators-administration&quot;&gt;The creator’s administration&lt;/h2&gt;

&lt;p&gt;If you’re a developer running your own blog, chances are you have thought about creating your own little engine to publish articles. It may not be easy or convenient way to use, but as &lt;em&gt;you&lt;/em&gt; are the engine’s creator, you’ve established a system that suits &lt;em&gt;you&lt;/em&gt; and nobody else. James Hague’s &lt;a href=&quot;http://prog21.dadgum.com/77.html&quot;&gt;6838 bytes Perl script&lt;/a&gt; is probably not suitable for anything else than his website, but it’s not an issue because that’s the script’s sole purpose. I myself have developed a static website generator in PHP. The code is terrible but it does exactly what I intend to, and any issue I’d encounter with it would be my own fault.&lt;/p&gt;

&lt;h2 id=&quot;the-insiders-administration&quot;&gt;The insider’s administration&lt;/h2&gt;

&lt;p&gt;There’s a learning curve with those kinds of admin. It can either be an admin developed by someone you know, or one that is not exactly user friendly.&lt;/p&gt;

&lt;p&gt;For example, let’s imagine I own a clothes store and ask you to develop my shopping website. The admin can be anything you want, as long as I know how to use it. The key here is that I’m in contact with you, so even if the admin isn’t obvious to interact with, you can teach me. Plus, you can adjust some design elements for my convenience. Anyone else trying to use my admin would feel slightly lost, but that’s not a problem because the admin was meant for me and I was taught how to use it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mojombo/jekyll&quot;&gt;Jekyll&lt;/a&gt;’s administraion can also be considered an insider’s one. It’s not used by non-developers because it requires some computer knowledge. You either need to know Ruby if you host your blog on your own server, or know Git if you’re using the GitHub pages. Designing your own layout isn’t easy either. But if you take some time to go through the docs and learn how to achieve what you want, you’ll end up with a system that suits you well.&lt;/p&gt;

&lt;h2 id=&quot;the-public-administration&quot;&gt;The public administration&lt;/h2&gt;

&lt;p&gt;It’s everybody else’s admin, for the non tech-savvy users.&lt;/p&gt;

&lt;p&gt;The best example is &lt;a href=&quot;http://wordpress.com&quot;&gt;WordPress.com&lt;/a&gt; which hosts around 60 million sites. Most of its users are probably non-technical people who chose to subscribe to WordPress.com because it offered an easy and free way to host their blog, and they wouldn’t know how to do it otherwise.&lt;/p&gt;

&lt;p&gt;For a long time, WordPress.com provided the same admin as WordPress.org, but they’ve updated it for the general public.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/wordpress-easy-admin.png&quot; alt=&quot;WordPress.com easy admin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It’s the most difficult administration to design, because it is used by millions of people who have to figure it out on their own. The publishing experience needs to be seamless, and you have to take into account your users’ unexpected behaviour and the common mistakes they can make.&lt;/p&gt;

&lt;p&gt;The real key is to test profusely and receive feedback from common users. But in the end, you’ll still have to cut short and take some design decisions on your own.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Update bookmark</title>
   <link href="http://jgthms.com/update-bookmark.html"/>
   <updated>2012-12-31T00:00:00+00:00</updated>
   <id>http://jgthms.com/update-bookmark</id>
   <content type="html">&lt;p&gt;A web bookmark is a kind of skeuomorphic element where a physical object is used in a digital context to elumate the same function. But whereas a web bookmark saves a &lt;em&gt;location&lt;/em&gt;, a physical bookmark saves a &lt;em&gt;progress&lt;/em&gt;. Both aren’t exactly used the same way, because you rarely change the URI of a web bookmark, whereas you constantly update the location of your thin marker while reading a book, only to remove it when you’ve reached the end.&lt;/p&gt;

&lt;p&gt;I wish there was a way to update your web bookmarks. For example, I’ve started watching online the &lt;a href=&quot;http://www.1channel.ch/watch-5207-Seinfeld&quot;&gt;Seinfeld episodes&lt;/a&gt; from the start, and to keep track of my progress, I need to write a note about which episode I’ve watched last. I’ve also been reading &lt;a href=&quot;http://learnpythonthehardway.org/book/&quot;&gt;Learn Python The Hard Way&lt;/a&gt;, and I need to write down which lesson I’m at. I could keep track of my progress by relying on the color of visited links, but most websites don’t implement the &lt;code&gt;a:visited&lt;/code&gt; CSS feature. And although I could use Firebug or the WebInspector to set a color for those links, it’s still a debious way to save a progress.&lt;/p&gt;

&lt;p&gt;There is a &lt;a href=&quot;https://addons.mozilla.org/en-us/firefox/addon/update-bookmark/&quot;&gt;Firefox add-on&lt;/a&gt; called &lt;em&gt;Update Bookmark&lt;/em&gt; which seems to implement that feature, but it hasn’t been updated since 2008 and doesn’t work with the latest Firefox.&lt;/p&gt;

&lt;p&gt;It wouldn’t be hard to develop such a feature (as an add-on or natively in the browser) but I wonder if I’m the only one considering updating my bookmarks from time to time.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Quick Bootstrap Design</title>
   <link href="http://jgthms.com/quick-bootstrap-design.html"/>
   <updated>2012-12-21T00:00:00+00:00</updated>
   <id>http://jgthms.com/quick-bootstrap-design</id>
   <content type="html">&lt;figure&gt;
  &lt;a href=&quot;/h/solarized.html&quot;&gt;&lt;img alt=&quot;Bootstrap Solarized&quot; src=&quot;/i/bootstrap-solarized.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;There was a recent post on 24ways.org that explained &lt;a href=&quot;http://24ways.org/2012/how-to-make-your-site-look-half-decent/&quot;&gt;How to Make Your Site Look Half-Decent in Half an Hour&lt;/a&gt;. It was made by a programmer and aimed towards programmers. The final result wasn’t universally well received because it probably didn’t meet most programmer’s expectations. I’m a designer, and the final result didn’t appeal much to me. But still: the article wasn’t about the end result, it was about the &lt;strong&gt;process&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I used to work with a very talented programmer. He was comfortable with numerous languages, could build both web and desktop applications, automate tasks across different types of databases, manage our homemade servers, work on AI algorithms… It probably wasn’t that difficult for him, but he did things my mind couldn’t grasp. One day, he had to design a small interface for a tiny web app that monitored our servers. The whole point of the app was to be usable, not even good-looking. But still: he didn’t know how to design it. He asked for my help and so I threw up a quick web interface. He liked it and thanked me. I told him that it really wasn’t much and that he probably could have figured it out himself. But then he said to me: “I don’t understand graphic design. I don’t understand how you designers can come up with something so quickly. I could spend days on designing an interface and not even come close to what you did. I just don’t get your craft.” That’s when I understood how honest he was, and that he really couldn’t envision an interface, even a simple one. And that’s probably what most programmers go through.&lt;/p&gt;

&lt;p&gt;Anyway, here’s my take on designing a site, and it’s aimed at programmers.&lt;/p&gt;

&lt;h2 id=&quot;bootstrap-of-course&quot;&gt;Bootstrap of course&lt;/h2&gt;

&lt;p&gt;It’s not a surprise that Anna Powell-Smith used Bootstrap as a foundation for her design. It’s solid, and provides interesting examples to begin with. But the real key is that &lt;strong&gt;it’s just code&lt;/strong&gt;. As I’ve &lt;a href=&quot;/bootstrap-is-for-programmers.html&quot;&gt;said before&lt;/a&gt;, Bootstrap defines much of its design in the HTML code. And though it doesn’t keep the dichotomy clear between HTML and CSS (one for content, one for layout), it’s easier for programmers to play around with HTML code than CSS code.&lt;/p&gt;

&lt;p&gt;So let’s use &lt;a href=&quot;http://twitter.github.com/bootstrap/examples/hero.html&quot;&gt;this example&lt;/a&gt; as a start and tweak it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/bootstrap-hero.png&quot; alt=&quot;Boostrap Hero&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;colors-be-consistent&quot;&gt;Colors: be consistent&lt;/h2&gt;

&lt;p&gt;Probably the hardest part for programmers in designing a website is to choose colors. Although they don’t &lt;em&gt;choose&lt;/em&gt; colors, they use them on a daily basis in their IDE, and some color schemes are &lt;a href=&quot;https://github.com/daylerees/colour-schemes&quot;&gt;really gorgeous&lt;/a&gt;. Actually, it’s a good resource to choose colors from because IDE colors schemes provide consistent palettes with different tints that go well together. And because programmers probably don’t use Photoshop, we’d better choose a color palette and try to stick to it.&lt;/p&gt;

&lt;p&gt;You could browse the thousands of palettes on &lt;a href=&quot;http://www.colourlovers.com/&quot;&gt;ColourLovers&lt;/a&gt; or &lt;a href=&quot;https://kuler.adobe.com/&quot;&gt;Adobe’s Kuler&lt;/a&gt; but even I get overwhelmed by the quantity available. So I often stick to one of them: &lt;a href=&quot;http://ethanschoonover.com/solarized&quot;&gt;Solarized&lt;/a&gt;. This blog uses its colors, and I’ve really learned to like it because it prevents me from looking to long for decent colors. Solarized is like a designer’s Bootstrap: it’s a solid base you can use as start, and modify along the way if you want (I rarely do).&lt;/p&gt;

&lt;p&gt;If you don’t like Solarized, try to use your favorite IDE color scheme. Or steal a color palette from a website or app you like. For example, 53’s app &lt;a href=&quot;http://www.fiftythree.com/paper&quot;&gt;Paper&lt;/a&gt; has 4 default palettes to play around with. I particularly like the first one:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/paper-colors.png&quot; alt=&quot;Paper colors&quot; /&gt;&lt;/p&gt;

&lt;p&gt;2 dark colors, 2 light colors, 2 ‘fresh’ colors, and black. Add white to it and you have 8 colors to use for different purposes.&lt;/p&gt;

&lt;p&gt;Here, apart from the white background, I’ll use the Solarized color palette &lt;em&gt;only&lt;/em&gt;. What’s especially useful are the 6 different tints of grey, which aren’t &lt;em&gt;exactly&lt;/em&gt; grey but slightly blue. It’s a common design trick to use these blueish grey tints, because they’re not as boring as grey without being to prominent.&lt;/p&gt;

&lt;h2 id=&quot;positioning-the-holy-grid&quot;&gt;Positioning: the Holy grid&lt;/h2&gt;

&lt;p&gt;The &lt;a href=&quot;http://960.gs/&quot;&gt;960 grid system&lt;/a&gt; is well-known among web designers. It’s supposed to provide a framework for quick prototyping, by establishing some dimension rules in a 960 pixels-wide layout. Although there now also is a &lt;a href=&quot;http://cssgrid.net/&quot;&gt;1140 grid system&lt;/a&gt;, the 960 one is still very relevant. And for a programmer, it can be really easy to use because it’s based around &lt;strong&gt;numbers&lt;/strong&gt;. You can divide the 960 width into 12 or 16 columns, with a 20 pixels gutter. Furthermore, Bootstrap provides HTML code for a &lt;a href=&quot;http://twitter.github.com/bootstrap/scaffolding.html#gridSystem&quot;&gt;12-columns grid system&lt;/a&gt;. You just need to add some classes to your divs.&lt;/p&gt;

&lt;p&gt;For the sake of this article, I’ll leave out the responsive 1170px-wide container and stick to the 940px-wide one. One reason for that is that making your site extensible to 1170px requires to adjust some elements along the way (spacing, background images, font size) because the content will stretch out horizontally instead of vertically, and this will disturb the balance of your layout.&lt;/p&gt;

&lt;h2 id=&quot;size-its-hierarchy&quot;&gt;Size: it’s hierarchy&lt;/h2&gt;

&lt;p&gt;I like Jason Fried’s way of saying it: &lt;a href=&quot;http://37signals.com/svn/posts/3047-the-obvious-the-easy-and-the-possible&quot;&gt;The Obvious, the Easy, and the Possible&lt;/a&gt;. Some elements should be ‘Obvious’ and stand out: the titles. They provide a quick map of the page, by defining the part they’re the heading of. Then there’s the ‘Easy’, like subtitles, navigation, forms or call-to-actions. It’s things people will read or use, but not always. Finally, there’s the ‘Possible’: all the rest, like reading the full description of a feature, or using the footer links.&lt;/p&gt;

&lt;p&gt;For example, the logo shouldn’t be ‘Obvious’, but ‘Easy’ or even ‘Possible’ because it’s present on all pages and people know how to use it. It’s a common mistake to make the logo too big.&lt;/p&gt;

&lt;p&gt;Colors are also meant to provide visual hierarchy, but getting the size right is 3/4 of the job. Boostrap offers 6 heading levels, plus a Hero unit for showcasing key content, and a Page header for extra emphasis.&lt;/p&gt;

&lt;p&gt;The Hero unit used as example is already well furnished in terms of hierarchy. I’ll just tweak some font-sizes.&lt;/p&gt;

&lt;h2 id=&quot;fonts-not-that-important&quot;&gt;Fonts: not that important&lt;/h2&gt;

&lt;p&gt;I love Arial and Georgia. A sans-serif and a serif font, both considered ‘web-safe’. A programmer trying to find a nice font would be as helpless as when trying to find nice colors. Even designers like me often spend too much time in Photoshop scrolling through the hundreds of fonts they’ve installed, just to end up less certain than before.&lt;/p&gt;

&lt;p&gt;But like with colors, you can stick to a font you’ve already seen somewhere and particularly like. If you really want a different font for your headings (and only for your headings), try &lt;a href=&quot;http://www.google.com/webfonts&quot;&gt;Google Web Fonts’&lt;/a&gt; most popular: Open Sans or Droid Sans, which are different but not outstanding.&lt;/p&gt;

&lt;p&gt;Here I’ll just Arial. If you get it right with Arial, it’ll be easier to use a different font in the future.&lt;/p&gt;

&lt;h2 id=&quot;images-a-great-feature&quot;&gt;Images: a great feature&lt;/h2&gt;

&lt;p&gt;If you’re building a website for your app, try to include images. Even screenshots provide a nice touch. They disrupt the ordinary visual flow that a full-text website has. For example, if you’ve hired a designer to design your logo, take the opportunity to make it stand out. Or if you’re selling an iPhone app, just use an iPhone with a screenshot.&lt;/p&gt;

&lt;p&gt;I’ll use the Firefox logo as an example. It’s big, colorful and highly detailed. It’ll add depth to the page.&lt;/p&gt;

&lt;h2 id=&quot;gradients-and-shadows-avoid-them&quot;&gt;Gradients and shadows: avoid them&lt;/h2&gt;

&lt;p&gt;Gradients are very hard to handle. A designer can spend hours messing around with colors just to get a gradient right. The thing is, a 2-color gradient isn’t about choosing 2 colors, it’s also about &lt;em&gt;everything in between&lt;/em&gt;. If you add the fact that there are millions colors to choose from, the possibilities of a gradient are endless and a programmer would probably not be able to settle for one.&lt;/p&gt;

&lt;p&gt;Shadows are quite similar. It’s mostly a 1-color gradient from opaque to transparent. The common error is to make shadows too prominent. They should provide depth without being noticable, and that’s not an easy task. It’s like adding reverb to a mix: add some until you notice it, and then lower it down.&lt;/p&gt;

&lt;p&gt;Anyway, that’s why I don’t have gradients or shadows on this blog. I’m tired of spending hours in Photoshop just to come up with something half-decent.&lt;/p&gt;

&lt;p&gt;In my example, I stripped out the shadows and gradients of Boostrap’s default design by overriding some background and box-shadow proprerties.&lt;/p&gt;

&lt;h2 id=&quot;secret-be-subtle&quot;&gt;Secret: be subtle&lt;/h2&gt;

&lt;p&gt;So, if you don’t use gradients, shadows or original fonts, what’s left? Here are some details you can work on:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Rounded corners: the border-radius CSS property is well adopted and it provides seperation between elements. It also increases the affordance on buttons (that’s why I don’t like Metro’s buttons).&lt;/li&gt;
  &lt;li&gt;Line-height: it’s one of the details that can quickly make your website look cheap if used wrong, especially too small line-heights. But slightly too big isn’t much better. That’s why I don’t like readings Posterous blogs: the line-height is 20px for 12px size text, so the ratio is 1.66. For content, just use 1.5. For headings, 1.1 is fine. It’s easy to forget setting the heading’s line-height because they oftent have only one line of text.&lt;/li&gt;
  &lt;li&gt;Text-shadow: this might be the only kind of shadow that can be used without too much difficulty. But still, use it scarcely. Every browser which supports text-shadow also supports rgba. So instead of putting a full white text-shadow, try to use 0 1px 0 rgba(255, 255, 255, 0.5). For dark shadows, 0 1px 2px rgba(0, 0, 0, 0.25) looks decent. Also, don’t use a dark shadow if the text it’s set upon is darker than the background. Use a light one instead (and vice-versa when the text is lighter than its background). It’s you’re not sure, don’t use it. In my example, I actually removed them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;iterate&quot;&gt;Iterate&lt;/h2&gt;

&lt;p&gt;Even a designer won’t come up with a perfect design the first time. I’ve readjusted the design of this blog multiple times, going from a rough layout to a more consistent one. Just finish your website and consider it ‘Version 1.0’ and get some sleep. The next day you’ll notice some subtle adjustments you can make: that title is slightly too big, the spacing here isn’t right, that button lacks contrast…&lt;/p&gt;

&lt;h2 id=&quot;examples&quot;&gt;Examples&lt;/h2&gt;

&lt;p&gt;I played with &lt;a href=&quot;http://twitter.github.com/bootstrap/examples/hero.html&quot;&gt;Bootstrap’s Hero example&lt;/a&gt; and added my custom CSS. The only image used is the Firefox logo. All colors were taken from Solarized’s color palette. You can click the image to see the live demo.&lt;/p&gt;

&lt;figure&gt;
&lt;a href=&quot;/h/solarized.html&quot;&gt;&lt;img alt=&quot;Bootstrap Solarized&quot; src=&quot;/i/bootstrap-solarized.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;figcaption&gt;Bootstrap Solarized&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The same Solarized colors can be used to design a dark layout. Programmers are mostly familiar with this kind of color use in their IDE. It’s also a nice way to make your website stand out.&lt;/p&gt;

&lt;figure&gt;
&lt;a href=&quot;/h/solarized-dark.html&quot;&gt;&lt;img alt=&quot;Bootstrap Solarized Dark&quot; src=&quot;/i/bootstrap-solarized-dark.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;figcaption&gt;Bootstrap Solarized Dark&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I talked about the app Paper and how it provided lovely color palettes too. The app is meant to draw sketches so the colors aren’t exactly supposed to fit together in terms of contrast and text readibility but still, it’s fun to play around with. I used the red color as the main background. It’s a bold decision, especially for a programmer, to use such a saturated color as the dominant color, but I like &lt;a href=&quot;/the-grey-period.html&quot;&gt;websites with a well-defined identity&lt;/a&gt;.&lt;/p&gt;

&lt;figure&gt;
&lt;a href=&quot;/h/paper.html&quot;&gt;&lt;img alt=&quot;Bootstrap Paper&quot; src=&quot;/i/bootstrap-paper.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;figcaption&gt;Bootstrap Paper&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;As I said earlier, if there’s a color palette you like, try to use it. There was this &lt;a href=&quot;/i/nike-ad.jpg&quot;&gt;Nike ad&lt;/a&gt; that I really liked. It’s full of different colors and gradients, but I just picked a few of them and created a 8-color palette out of it.&lt;/p&gt;

&lt;figure&gt;
&lt;a href=&quot;/h/nike.html&quot;&gt;&lt;img alt=&quot;Bootstrap Nike&quot; src=&quot;/i/bootstrap-nike.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;figcaption&gt;Bootstrap Nike&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;a-designers-take-at-a-programmers-problem&quot;&gt;A designer’s take at a programmer’s problem&lt;/h2&gt;

&lt;p&gt;I’m not a programmer but I tried to think like one in writing this article. I wanted to point out how easy it was to come up with a decent website just by quickly tweaking a Bootstrap template. I’ve often come across articles about programming that were aimed at designers, so I tried to do the opposite. If you have any question or remark, feel free to contact me. Any kind of feedback is appreciated.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Organized Gmail Inbox</title>
   <link href="http://jgthms.com/organized-gmail-inbox.html"/>
   <updated>2012-12-10T00:00:00+00:00</updated>
   <id>http://jgthms.com/organized-gmail-inbox</id>
   <content type="html">&lt;p&gt;I’ve often read about how email was broken. Maybe it’s because I only receive about 10 mails per day or because GMail’s interface with some plugins suits me well, but I’m actually very happy with it. But when Google forced me to switch to their latest interface, my labels’ colors became a bit messed up and I decided to use the opportunity to reorganize my inbox flow.&lt;/p&gt;

&lt;p&gt;I set up a simple rule to follow:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Every incoming mail must hold one of the predefined labels.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first part of this rule states that &lt;em&gt;each&lt;/em&gt; mail should hold one label, and only one. It’s the least organization an inbox should provide, without cluttering it too much.&lt;/p&gt;

&lt;p&gt;The second part enforces a &lt;em&gt;fixed&lt;/em&gt; number of labels in order to avoid creating ones on the fly for each new mail. You can still create new ones, but not without making sure it’ll be heavily used in the future. Here’s my list:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/gmail-labels-organization.png&quot; alt=&quot;GMail labels organization&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Apart from the &lt;em&gt;Notes&lt;/em&gt; label (which synchronizes with iOS’ Notes app), the 7 other labels, along with sub-labels, should be able to organize &lt;strong&gt;every&lt;/strong&gt; incoming email.&lt;/p&gt;

&lt;h2 id=&quot;2do&quot;&gt;2do&lt;/h2&gt;

&lt;p&gt;The &lt;em&gt;2do&lt;/em&gt; label is a meta one. I use it to tag mails that are currently important and require further actions. I use the GMail ‘Multiple Inboxes’ feature to have a second inbox above the regular one, filtered with only &lt;em&gt;2do&lt;/em&gt; mails. These are for example mails I need to respond to, a shipping process to keep track off, a due payment…&lt;/p&gt;

&lt;p&gt;Using keyboard shortcuts, it only takes a few strokes to make a mail show up in that special inbox: j/k-o-l-2 and ‘Enter’.&lt;/p&gt;

&lt;h2 id=&quot;admin&quot;&gt;Admin&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/label-admin.png&quot; alt=&quot;Admin label&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This one is for administration stuff: bank, health insurance, taxes, (un)employment processes, various subscriptions… Actually, there is a sub-label called &lt;em&gt;Inscription&lt;/em&gt; (Subscription) with which I tag every new membership mail, the ones where they send you a welcome message along with your login information (and sometimes even with your password in plain text…). Anyway, it helps me keeping track of any service, real or online, to which I’ve subscribed. Sometimes, I wonder &lt;em&gt;“What was that website I’ve subscribed to again?”&lt;/em&gt; or &lt;em&gt;“What’s my login again?”&lt;/em&gt;, and this sub-label helps me answering these questions.&lt;/p&gt;

&lt;h2 id=&quot;e-commerce&quot;&gt;E-commerce&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/label-e-commerce.png&quot; alt=&quot;E-commerce label&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This label is for anything &lt;strong&gt;shopping&lt;/strong&gt;-related. The 3 most important sub-labels here are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Commande&lt;/em&gt; (Order): whenever I order something online, the mail goes here. It’s usually a mail stating that my order was successfully processed.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Livraison&lt;/em&gt; (Shipping): right after receiving an order confirmation mail, I often get a second one dealing with the shipping details. I then apply a &lt;em&gt;2do&lt;/em&gt; label to it until the product has arrived at home.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Facture&lt;/em&gt; (Receipt): this sub-label holds all transaction receipts. It is different from the &lt;em&gt;Commande&lt;/em&gt; one as it’s usually receipts of digital purchases: Steam games, phone bills, domain renewals…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;em&gt;Apple&lt;/em&gt; and &lt;em&gt;Voyages&lt;/em&gt; (Trips) sub-labels are more specific: iOS purchases and trip reservations.&lt;/p&gt;

&lt;h2 id=&quot;contact--friends&quot;&gt;Contact &amp;amp; Friends&lt;/h2&gt;

&lt;p&gt;These two go along as they work pretty much the same way. The way I use them depends on the sender’s &lt;strong&gt;identity&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Friends&lt;/em&gt;: it’s someone I know. I have sub-labels for specific friends or group of friends.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Contact&lt;/em&gt;: it’s someone I don’t know who contacted me via a webform. I also organize its sub-labels for clients of each of my web design projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;newsletter--notifications&quot;&gt;Newsletter &amp;amp; Notifications&lt;/h2&gt;

&lt;p&gt;These labels are used for mails sent from &lt;strong&gt;companies&lt;/strong&gt;.&lt;/p&gt;

&lt;table&gt;
  &lt;tr&gt;
    &lt;td class=&quot;empty&quot;&gt;&lt;/td&gt;
    &lt;th&gt;To me only (private)&lt;/th&gt;
    &lt;th&gt;To me among others (public)&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;From a company&lt;/th&gt;
    &lt;td&gt;Notification&lt;/td&gt;
    &lt;td&gt;Newsletter&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Newsletters are just what they are: informations mails to which I have subscribed and are sent to many people.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/label-notifications.png&quot; alt=&quot;Notifications label&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Notifications are &lt;em&gt;everything else&lt;/em&gt; sent by a company. It’s usually just a small mail telling me that I have received a private message, or that a credit card or domain is about to expire, or that someone responded to one of my comments.&lt;/p&gt;

&lt;p&gt;I keep seperate sub-labels for notifications from Dribbble, Facebook, Twitter…&lt;/p&gt;

&lt;h2 id=&quot;reminder&quot;&gt;Reminder&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/label-reminder.png&quot; alt=&quot;Reminder label&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have 2 kinds of reminders:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Calendar&lt;/em&gt;: these are notifications sent by Google Calendar. I use them for events, deadlines, and birthdays. For example, 3 days before each birthday I receive a mail about it, along with a ‘pop-up’ the day itself.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Self&lt;/em&gt;: these are the mails I send to myself. It’s a quick way to notify myself of something when I don’t have access to some other tool, or when I need to send myself a small file. I heavily use this feature on my iPad when I encounter a website I like.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;

&lt;p&gt;With this setup, and with the use of GMail filters, every email in my inbox holds a single label (except when I also add the &lt;em&gt;2do&lt;/em&gt; label but it’s just temporary).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/gmail-organized-inbox.png&quot; alt=&quot;GMail Organized Inbox&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For the several months during which I have used this organization, I haven’t felt the need to create new labels, nor to think too long about which one to apply. And I don’t know how it would scale up with much more mails to deal with, but I don’t think it’d be too difficult to handle.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The Grey Period</title>
   <link href="http://jgthms.com/the-grey-period.html"/>
   <updated>2012-12-08T00:00:00+00:00</updated>
   <id>http://jgthms.com/the-grey-period</id>
   <content type="html">&lt;p&gt;Ever since Google launched its redesign, I’ve been wanting to point out a design direction that many websites seem to take: killing colors.&lt;/p&gt;

&lt;h2 id=&quot;amazon&quot;&gt;Amazon&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/amazon-color.png&quot; alt=&quot;Amazon Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/amazon-grey.png&quot; alt=&quot;Amazon Grey&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;gmail&quot;&gt;GMail&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/gmail-color.png&quot; alt=&quot;GMail Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/gmail-grey.png&quot; alt=&quot;GMail Grey&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;gcalendar&quot;&gt;GCalendar&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/gcalendar-color.png&quot; alt=&quot;GCalendar Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/gcalendar-grey.png&quot; alt=&quot;GCalendar Grey&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;greader&quot;&gt;GReader&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/greader-color.png&quot; alt=&quot;GReader Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/greader-grey.png&quot; alt=&quot;GReader Grey&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;wordpress&quot;&gt;WordPress&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/wordpress-color.png&quot; alt=&quot;WordPress Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/wordpress-grey.png&quot; alt=&quot;WordPress Grey&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;digg&quot;&gt;Digg&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/i/digg-color.png&quot; alt=&quot;Digg Color&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/digg-grey.png&quot; alt=&quot;Digg Grey&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Are the newer versions prettier? That’s for you to decide. But overall, they seem to lack depth and hierarchy.&lt;/p&gt;

&lt;p&gt;I actually loved the Digg V3 design and it inspired some of my work. Many colors were involved but they were complementary and appealing, and the spacing was perfect. And I was able to recognize the website right away, and not take a second to wonder ‘Is this the good one?’.&lt;/p&gt;

&lt;p&gt;Concerning GMail, I don’t know if it’s the cheap-looking buttons (that really look like a web designer’s first encounter with CSS3 border-radius and gradients) or the lack of depth the page holds, but it really doesn’t captivate me much. I remember Doug Bowman’s work on &lt;a href=&quot;http://stopdesign.com/archive/2009/02/04/recreating-the-button.html&quot;&gt;recreating the GMail buttons&lt;/a&gt; in 2009. A lot of thought went in the process, and it showed. The buttons &lt;em&gt;felt&lt;/em&gt; like buttons. They were easy to read and easy to spot. (By the way, I loved &lt;a href=&quot;http://v3.stopdesign.com/&quot;&gt;Stop Design’s previous layout&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;A lot of the websites mentioned are actually apps. Maybe avoiding colors is a design’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Silent_protagonist&quot;&gt;silent protagonist&lt;/a&gt;: it helps the user identify itself with the website. No color, no obvious identity, just you and the app.&lt;/p&gt;

&lt;p&gt;But even Apple seems to be heading towards that direction.&lt;/p&gt;

&lt;figure&gt;
  &lt;img alt=&quot;Apple from color to grey&quot; src=&quot;/i/apple-from-color-to-grey.png&quot; /&gt;&lt;br /&gt;
  &lt;figcaption&gt;Left: Mac OS 10.6 Snow Leopard. Right: Mac OS 10.7 Lion&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Like gradients and shadows, it’s easier to mess up a color palette than sticking to greyscale. Compared to the 16,777,216 hexadecimal codes available, 256 shades of grey is quite fewer parameters to handle but you &lt;a href=&quot;http://gmailblog.blogspot.fr/2012/12/the-gmail-app-for-iphone-and-ipad.html&quot;&gt;can’t really do much with them&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Choosing grey is actually &lt;strong&gt;not&lt;/strong&gt; choosing.&lt;br /&gt;
Maybe it’s a fear of committing your design to a real identity.&lt;br /&gt;
Maybe it’s a well-thought decision to offer a clean layout.&lt;br /&gt;
Maybe it’s just easier.&lt;br /&gt;
Or maybe it’s just a trend. I honestly hope it is.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Firefox and the perfect address bar</title>
   <link href="http://jgthms.com/firefox-perfect-address-bar.html"/>
   <updated>2012-10-25T00:00:00+01:00</updated>
   <id>http://jgthms.com/firefox-perfect-address-bar</id>
   <content type="html">&lt;p&gt;Google Chrome has spread the concept of the &lt;em&gt;Omnibox&lt;/em&gt;: merging a browser’s URL bar with the search bar. Type anything, and it’ll access one of these 5 sources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Search Engine&lt;/li&gt;
  &lt;li&gt;Bookmarks&lt;/li&gt;
  &lt;li&gt;History&lt;/li&gt;
  &lt;li&gt;Apps&lt;/li&gt;
  &lt;li&gt;Related sites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It works as most address bars nowadays, and even adds 2 features:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;being a Google product, Chrome has the exclusivity of holding the Google Suggest feature directly in the address bar&lt;/li&gt;
  &lt;li&gt;Chrome “learns” new search engines. Repeatdly using a search field on a website gives it easy access by pressing Tab.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I still prefer the Firefox address bar. It already works as a search engine: any query will end up as a Google search.&lt;/p&gt;

&lt;p&gt;What about other search engines?
Firefox is shipped with a default search bar with Google, Yahoo, Amazon… But the address bar can work as a substitute considering the well-known feature “Add a Keyword for this Search”: right-click any search field and add a keyword for it to make it available in the address bar by typing &lt;code&gt;&amp;lt;keyword&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;lt;query&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Whereas Chrome’s search engines add themselves automatically after a few uses, it has to be done manually in Firefox. It can help defining really short keywords for any search engine. I’ve got &lt;code&gt;g&lt;/code&gt; for Google, &lt;code&gt;i&lt;/code&gt; for Google Images, &lt;code&gt;w&lt;/code&gt; for WikiPedia, &lt;code&gt;d&lt;/code&gt; for the Free Dictionary, &lt;code&gt;fr&lt;/code&gt; and &lt;code&gt;en&lt;/code&gt; to translate from/to French to/from English… It just takes some organization and memory to make full use of this feature.&lt;/p&gt;

&lt;p&gt;But what I love most about Firefox’s address bar is its &lt;strong&gt;incremental search&lt;/strong&gt;. It looks through the history and bookmarks (and bookmark tags) by using keywords separated by spaces:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;local&lt;/code&gt; + project name = access a project on the localhost&lt;/li&gt;
  &lt;li&gt;blog name + &lt;code&gt;admin&lt;/code&gt; = access the admin area of a remote website&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;tw&lt;/code&gt; + username = access a previously visited twitter profile&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;ny&lt;/code&gt; + &lt;code&gt;wri&lt;/code&gt; = access a NY Times article about writing you’ve already read but don’t remember the exact tile&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;iph&lt;/code&gt; + &lt;code&gt;desi&lt;/code&gt; = access all bookmarks tagged ‘iphone’ and ‘design’&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It really comes in handy when trying to find a page you’ve visited but only remember part of the title or the url. Type a few keywords (or even partial keywords) and the result list will narrow down rapidly.&lt;/p&gt;

&lt;p&gt;Chrome works slightly that way too but provides a maximum of 6 results, and favors the search too much over the bookmarks and history. But it shouldn’t be a surprise considering the identity of its author.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>When a designer programs</title>
   <link href="http://jgthms.com/when-a-designer-programs.html"/>
   <updated>2012-10-07T00:00:00+01:00</updated>
   <id>http://jgthms.com/when-a-designer-programs</id>
   <content type="html">&lt;p&gt;Launching a website requires mainly 3 parts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Graphic mockups&lt;/li&gt;
  &lt;li&gt;HTML/CSS static templates&lt;/li&gt;
  &lt;li&gt;Development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My work consisted of the first 2 parts exclusively. How did I call it? &lt;em&gt;Web Design&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But how do you call someone who does &lt;em&gt;only&lt;/em&gt; HTML/CSS?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In English, it seems to be mostly called &lt;em&gt;Front-End Developer&lt;/em&gt;, though it doesn’t involve any programming skill.&lt;/li&gt;
  &lt;li&gt;In French, we have a word for that though: &lt;em&gt;Intégrateur&lt;/em&gt;. It’s precisely the process of turning graphic mockups (PSD’s mainly) into HTML/CSS static templates, &lt;em&gt;nothing else&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, can I consider myself a &lt;em&gt;Developer&lt;/em&gt;? Absolutely not.&lt;/p&gt;

&lt;p&gt;What I love about CSS, and what made me good at it, is that my mind can encompass all the properties and values possible. There isn’t much theory to learn, so you’re left with only a small set of tools. It’s the multiplicity of their interactions that is powerful.&lt;/p&gt;

&lt;p&gt;But when looking at a programming language, I’m overwhelmed by the vast amount of documentation one has to acquire. All the functions, parameters, obligations, special cases, syntax considerations, possible errors, alternative directions…&lt;/p&gt;

&lt;p&gt;A designer’s first encounter of some &lt;em&gt;kind&lt;/em&gt; of programming is often jQuery plugins or PHP WordPress themes. How’s that for a bad start? It’s mainly just looking at unintelligible code and trying to figure out why it doesn’t act exactly as you wish and how you’d like to tweak it a little bit, only to end up breaking the whole thing.&lt;/p&gt;

&lt;p&gt;That’s how you end up with online forums bloated with unanswered questions following the pattern:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“I just downloaded X plugin but it doesn’t work and I don’t know why. Please provide me the full functioning code to copy/paste, without me having to actually understand the process.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve seen it, and I may have done it, but I wasn’t eager to stay in the fog forever. So I picked up some programming tutorials, about Ruby and Rails. I held a &lt;a href=&quot;http://29minparjour.bbxdesign.com/&quot;&gt;daily blog about my progress&lt;/a&gt;. Though it lasted for some months, I never got serious about it, probably because I never used it.&lt;/p&gt;

&lt;p&gt;Lately though, inspired by many readings about programming, I still wanted to build &lt;em&gt;stuff&lt;/em&gt;. Anything, for the sake of having crafted something. So I took up the programming language I’ve encountered most, PHP, and built:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;a html scraper that backups the pages I’ve liked with Instapaper (because I have doubts about their permanence)&lt;/li&gt;
  &lt;li&gt;a static site generator (inspired by James Hague’s &lt;a href=&quot;http://prog21.dadgum.com/77.html&quot;&gt;6838 bytes Perl script&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;a script to download all the images of an online presentation (that weren’t actually allowed to be downloaded)&lt;/li&gt;
  &lt;li&gt;a contact form for my personal page (easily spammable actually)&lt;/li&gt;
  &lt;li&gt;a filterable events viewer for the LondonOlympics, parsing a json I found at NBC.com&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My code is terrible. It’s mysterious variables entangled with non-DRY functions, waiting for an error to show up, and probably causing memory leaks everywhere. I often have trouble reading back my code and decide to restart from scratch. Still, it works(!) and I feel a sense of achievement that probably every programmer has encountered.&lt;/p&gt;

&lt;p&gt;But, I &lt;strong&gt;know&lt;/strong&gt; it’s &lt;strong&gt;terrible&lt;/strong&gt; code, and I know that making it work doesn’t make it good. I personally wouldn’t share any of my code (considering &lt;a href=&quot;http://thedailywtf.com/Articles/Code-Refuse.aspx&quot;&gt;&lt;em&gt;“The first rule of code reuse is that the code needs to be worth re-using.”&lt;/em&gt;&lt;/a&gt;) and wouldn’t charge any client for it either.&lt;/p&gt;

&lt;p&gt;And I believe the mere existence of bad programmers spawns from the lack of self-criticism concerning this kind of projects. As a result, I’ll remain publicly &lt;em&gt;not&lt;/em&gt; a programmer until I become a decent one.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Microsoft.com is not a website</title>
   <link href="http://jgthms.com/microsoft-com-not-a-website.html"/>
   <updated>2012-10-05T00:00:00+01:00</updated>
   <id>http://jgthms.com/microsoft-com-not-a-website</id>
   <content type="html">&lt;p&gt;The new &lt;a href=&quot;http://www.microsoft.com/en-us/default.aspx&quot;&gt;Microsoft.com&lt;/a&gt; is a success. There has been much praise about its responsiveness, its simplicity and its clarity. Well-deserved praise I must say, as the design led by Trent Walton’s agency &lt;a href=&quot;http://paravelinc.com/&quot;&gt;Paravel&lt;/a&gt; is very well-thought.&lt;/p&gt;

&lt;p&gt;Problem is: it’s not a website. It’s a portal.&lt;/p&gt;

&lt;p&gt;Considering it’s a single page (and I’ve done a &lt;a href=&quot;http://www.cambodiavietnam2010.com/&quot;&gt;couple&lt;/a&gt; &lt;a href=&quot;http://reachthethrone.com/&quot;&gt;myself&lt;/a&gt;), I can hardly call it a website. Wikipedia itself calls a website a &lt;em&gt;set of related web pages&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Definitions aside, I have yet to find a link on MS.com that ends up on a page using the &lt;em&gt;same&lt;/em&gt; layout. I’ve tried the navigation menu, the big slides, the footer links…
I wasn’t able to stay on the same website (which would have turned it in one actually).&lt;/p&gt;

&lt;p&gt;Clearly, the role of a navigation menu is to provide &lt;strong&gt;hierarchy&lt;/strong&gt;, offering a snapshot of the sitemap, but most of all act as a &lt;strong&gt;guide&lt;/strong&gt; to refer to throughout &lt;em&gt;our&lt;/em&gt; navigation. What’s the point in providing a menu when actually using it makes it suddenly disappear?&lt;/p&gt;

&lt;p&gt;Here are the 2 options:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;build a full-scale Microsoft website that is consistent throughout its products&lt;/li&gt;
  &lt;li&gt;make Microsoft.com look like what it really is: a portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obviously, the latter is &lt;em&gt;not&lt;/em&gt; recommended, considering how portals are outdated and not user-friendly, and considering the great design MS can now work with as a solid base.
So, I’ll wait for a complete rebuild of their website(s). And I secretly hope it’s already in the pipeline.&lt;/p&gt;

&lt;p&gt;The Microsoft.com redesign currently looks like a great step forward, but it’s not as long as it remains half-baked as it is. And providing a ‘Feedback’ button may be a hint of what &lt;em&gt;not&lt;/em&gt; to do.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>iA Writer's new document</title>
   <link href="http://jgthms.com/ia-writer-new-document.html"/>
   <updated>2012-03-16T00:00:00+00:00</updated>
   <id>http://jgthms.com/ia-writer-new-document</id>
   <content type="html">&lt;p&gt;iA Writer for iPhone &lt;a href=&quot;http://www.iawriter.com/&quot;&gt;just came out&lt;/a&gt;. 0,79€ for both iPhone &lt;em&gt;and&lt;/em&gt; iPad (that I plan on upgrading to iOS 5) apps? Instant download!&lt;/p&gt;

&lt;p&gt;I haven’t used it intensively yet but one thing that &lt;em&gt;really&lt;/em&gt; bothered me (or at least surprised me for its lack of common sense) is that taping the “+” icon to create new document does &lt;strong&gt;just&lt;/strong&gt; that. And I mean &lt;em&gt;only&lt;/em&gt; that: it adds a new .txt file called “Document” &lt;em&gt;but doesn’t open it&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;In what context would you want to create a document without the intent to actually begin writing in it ??&lt;/p&gt;

&lt;p&gt;I personaly don’t plan on filling my iCloud space with empty 0.1kb-sized documents.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>CopyPasteCharacter is unusable</title>
   <link href="http://jgthms.com/copypastecharacter-unusable.html"/>
   <updated>2012-03-12T00:00:00+00:00</updated>
   <id>http://jgthms.com/copypastecharacter-unusable</id>
   <content type="html">&lt;p&gt;I used to love &lt;a href=&quot;http://copypastecharacter.com/&quot;&gt;CopyPasteCharacter&lt;/a&gt; because it provided me special but useful characters that are hard to generate (especially since I mainly work on Windows).&lt;/p&gt;

&lt;p&gt;The ones I sometimes used were:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;→ right arrow&lt;/li&gt;
  &lt;li&gt;“ double quotes&lt;/li&gt;
  &lt;li&gt;♥ heart&lt;/li&gt;
  &lt;li&gt;♫ notes&lt;/li&gt;
  &lt;li&gt;≠ different&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;among others. But because I primarily write in French, my text contains a fair amount of accents: è, à, û, ô, î, and also ç, which are very common. My issue was with the capitalized version of these characters, even though a French keyboard (AZERTY), through its different layout (which modifies a dozen of keys) gives access to more &lt;em&gt;popular&lt;/em&gt; French characters.&lt;/p&gt;

&lt;p&gt;So, whenever I needed a À, Ç or É, I navigated to CopyPasteCharacter where these 3 characters (among others) were directly provided on the home page.&lt;/p&gt;

&lt;p&gt;The website’s new disposition has killed this workflow because the characters are now divided in sets. The problem is that the default set (called &lt;em&gt;Our favorite set&lt;/em&gt;), although nice-looking, consists of a lot of unnecessary characters. A pencil? A doubled male sign? A conical taper? An asterism???&lt;/p&gt;

&lt;p&gt;Anyway, I’ve got 3 options now:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;browse&lt;/strong&gt; for a character, but the “Alphabetical order” is &lt;em&gt;full&lt;/em&gt; of noise.
&lt;img src=&quot;/i/copypastecharacter-noise.png&quot; alt=&quot;CopyPasteCharacter noise&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;search&lt;/strong&gt; for a character, but it’s a slow process and usually results in the same amount of noise.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;create a set&lt;/strong&gt;. &lt;em&gt;Oh dear…&lt;/em&gt; &lt;a href=&quot;/remember-login-not-password.html&quot;&gt;Another login&lt;/a&gt;… And I often need those special characters when I’m &lt;em&gt;not&lt;/em&gt; at home.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe I’m the only one annoyed by this new setup. It’s just that I used to be only two clicks away from copying the character I needed, while now it has become a dreadful process.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Remember login, not password</title>
   <link href="http://jgthms.com/remember-login-not-password.html"/>
   <updated>2012-03-06T00:00:00+00:00</updated>
   <id>http://jgthms.com/remember-login-not-password</id>
   <content type="html">&lt;p&gt;I wish browsers would prompt me, not only to remember my password (which actually remember &lt;em&gt;both&lt;/em&gt; login and password), but also my login &lt;em&gt;only&lt;/em&gt;. The thing is, I don’t mind having my login stored in my browser (and consequentially giving other users potential access to) because it can be (and sometimes is) publically known.&lt;/p&gt;

&lt;p&gt;The problem I encounter is due to my quite common name: Jeremy Thomas. I’m French, but this name is not only common in France but in English-speaking countries too, which are more prone to hold early users of web apps, and thus early &lt;em&gt;subscribers&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So I have to fall back on one of my nicknames, based upon my first: boomshanka (which is also widely-adopted). These are boomy, boomybx, bbx…&lt;/p&gt;

&lt;p&gt;But again, username choice is often constrained by:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;availability (jthomas, jeremythomas, jeremyt… always taken)&lt;/li&gt;
  &lt;li&gt;character count (boomy, bbx or jt, is almost always too short)&lt;/li&gt;
  &lt;li&gt;special characters (spaces, underscores)&lt;/li&gt;
  &lt;li&gt;required characters (like numbers, rare though)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, among dozens of websites, I end up with a dozen of different logins which I would like my browser to remember, without compromising the security of having &lt;em&gt;also&lt;/em&gt; my passwords stored.&lt;/p&gt;

&lt;p&gt;Even the solution of forcing users to use their email as login isn’t viable because it’s terribly long to write.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Twitter OAuth 'See your password'</title>
   <link href="http://jgthms.com/twitter-oauth-see-your-password.html"/>
   <updated>2012-03-01T00:00:00+00:00</updated>
   <id>http://jgthms.com/twitter-oauth-see-your-password</id>
   <content type="html">&lt;p&gt;I love OAuth. I love it because I tend to register with many different usernames, many different passwords (and variations of them), many different emails (with GMail’s dot trick), so I end up spending more time logging in than actually signing up.&lt;/p&gt;

&lt;p&gt;To efficiently use OAuth, you need a service to which you’re constantly logged in. Twitter is one of them. And because it’s widely adopted among users, it’s widely adopted among developers setting up an authentification system for their web app.&lt;/p&gt;

&lt;p&gt;OAuth not only provides access to your account, but &lt;em&gt;different&lt;/em&gt; levels of access. And although OAuth seems more secure and rapid than an old-school sign up, I still read &lt;em&gt;what&lt;/em&gt; the application I’m granting access to can do with my Twitter account.&lt;/p&gt;

&lt;p&gt;What often strikes me when I authenticate via Twitter is what the third-party application &lt;em&gt;can’t&lt;/em&gt; do:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/i/twitter-see-your-password.png&quot; alt=&quot;Twitter OAuth &apos;See your Twitter password&apos;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I read these bullet points as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;things this application (bitly) can do&lt;/li&gt;
  &lt;li&gt;things this application can’t do &lt;em&gt;but could have asked permission to&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, is this ‘&lt;em&gt;See your Twitter password&lt;/em&gt;’ a global confirmation that no application could &lt;em&gt;ever&lt;/em&gt; see your Twitter password, or is it only this application’s authorization setting? The latter would feel terribly unsecure.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Tumblr and the source problem</title>
   <link href="http://jgthms.com/tumblr-source-problem.html"/>
   <updated>2012-02-28T00:00:00+00:00</updated>
   <id>http://jgthms.com/tumblr-source-problem</id>
   <content type="html">&lt;p&gt;Tumblr is more a community than a blogging engine.&lt;/p&gt;

&lt;p&gt;If you’re registered on WordPress.com, chances are you &lt;em&gt;write&lt;/em&gt; a blog. Whether you’re a literature fan, a passionate photographer or a technology enthousiast, you &lt;strong&gt;produce&lt;/strong&gt; content for others to read. And those readers aren’t necessarily (and probably aren’t) registered to WordPress.com because consuming this content doesn’t require to be. You either subscribe to the RSS feed or visit the blog daily. You’re a visitor.&lt;/p&gt;

&lt;p&gt;Tumblr holds the same features, but adds two new ones:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;the Dashboard&lt;/li&gt;
  &lt;li&gt;the Reblog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Dashboard is like a homemade RSS reader: you follow Tumblr blogs and find them aggregated on your Tumblr home page. It’s a &lt;strong&gt;consumer&lt;/strong&gt; feature. The only difference with a regular RSS reader is that you’re limited to Tumblr blogs. But because there is that second feature, users don’t feel the lack.&lt;/p&gt;

&lt;p&gt;The Reblog is quite particular: you produce content on your blog without producing &lt;em&gt;any&lt;/em&gt;. I considerer it a product because although your blog will publish it as a duplicate, any visitor of yours will probably only see this version and will consume it as though you were its creator. So Reblogging is &lt;em&gt;production after consumption&lt;/em&gt;: you’ve seen something on a Tumblr blog, you republish it on your own. It’s not a simple link: it’s a complete new post.&lt;/p&gt;

&lt;p&gt;The only difference with a &lt;em&gt;normal&lt;/em&gt; post is the presence of a source link (usually preceded by the word “Via”). This source link is the Tumblr post from which this Reblog comes from, but it’s not necessarily the &lt;strong&gt;original&lt;/strong&gt; post. And when, after having clicked half a dozen of “via” links you finally end up on the original post, you still don’t know the &lt;strong&gt;source&lt;/strong&gt;. Why? Because posting on Tumblr doesn’t require to. This attitude is emphasized by the use of the bookmarklet, which grabs any image of the current page and uploads it anonymously on Tumblr’s servers.&lt;/p&gt;

&lt;p&gt;So when I find a beautiful picture of which I want to find similar ones, and I finally reach the source, I still don’t know where it comes from, because the source according to Tumblr is the original post, not the content’s origin.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Solarized Jekyll Theme</title>
   <link href="http://jgthms.com/solarized-jekyll-theme.html"/>
   <updated>2012-02-24T00:00:00+00:00</updated>
   <id>http://jgthms.com/solarized-jekyll-theme</id>
   <content type="html">&lt;p&gt;As I’ve decided to design this blog without any image nor CSS 3 fancy feature (gradients &amp;amp; shadows particularly), I had to come up with a perfect color scheme, pleasing to read and visually balanced.&lt;/p&gt;

&lt;p&gt;There are &lt;em&gt;millions&lt;/em&gt; of predefined color &lt;a href=&quot;http://kuler.adobe.com/&quot;&gt;palettes&lt;/a&gt; &lt;a href=&quot;http://www.colourlovers.com/palettes&quot;&gt;available&lt;/a&gt; to download. And I’m bad at browsing and taking a quick decision with a whole world of options ahead of me.&lt;/p&gt;

&lt;p&gt;So I had to find that &lt;em&gt;one&lt;/em&gt; particular color theme that makes you forget all the others and regret not having found it before.&lt;/p&gt;

&lt;p&gt;When looking for a performant JavaScript syntax highlighter, I discovered the exceptional &lt;a href=&quot;http://softwaremaniacs.org/soft/highlight/en/&quot;&gt;highlight.js&lt;/a&gt; (auto-detects the language, needs only 2 files) which provides a handfull of color styles. And one of them instantly caught my eye: &lt;strong&gt;&lt;a href=&quot;http://ethanschoonover.com/solarized&quot;&gt;Solarized&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Its tagline reads as:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Precision colors for machines and people&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Precise, it is. Balanced, too. And gorgeous, hell yeah!
It’s a color palette meant for terminal and gui applications, and works incredibly well as a theme for IDEs &amp;amp; text editors.&lt;/p&gt;

&lt;p&gt;Why not make use for it in a &lt;em&gt;blog&lt;/em&gt; theme?&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bootstrap is for programmers</title>
   <link href="http://jgthms.com/bootstrap-is-for-programmers.html"/>
   <updated>2012-02-21T00:00:00+00:00</updated>
   <id>http://jgthms.com/bootstrap-is-for-programmers</id>
   <content type="html">&lt;p&gt;I am no programmer.&lt;/p&gt;

&lt;p&gt;My work as a web designer consisted of graphic design and HTML / CSS templates. I never used any framework or IDE: I wrote every line using Notepad++. This light setup forced me to be very efficient in my HTML markup and CSS syntax.&lt;/p&gt;

&lt;p&gt;In HTML, I used the fewest tags possible, or should I say, &lt;em&gt;necessary&lt;/em&gt;. Classes were used with parcimony, but provided enough flexibility for the programmer who would use my code. Names used for classes described the content, not the style applied.&lt;/p&gt;

&lt;p&gt;I was committed to follow the golden rule:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;HTML is for content&lt;/li&gt;
  &lt;li&gt;CSS is for layout&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frameworks such as &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Bootstrap&lt;/a&gt; fail at keeping this dichotomy clear. Some examples:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;.span4&lt;/code&gt; and &lt;code&gt;.offset4&lt;/code&gt; to define column widths and column margins&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;.navbar-fixed-top&lt;/code&gt; to apply an alternate style for the top bar&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;.table-bordered&lt;/code&gt; for a table with borders&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;.form-horizontal&lt;/code&gt; for a float left with right-alined labels&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;.tabs-left&lt;/code&gt; &lt;code&gt;.tabs-right&lt;/code&gt; &lt;code&gt;.tabs-below&lt;/code&gt; classes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All Bootstrap’s classes aren’t weighted with style instead of content description. Buttons are quite well implemented. Variations use function, not color:
&lt;code&gt;.btn-primary&lt;/code&gt; &lt;code&gt;.btn-info&lt;/code&gt; &lt;code&gt;.btn-warning&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Anyway, let’s not overlook the purpose of Bootstrap: quickly build a website, through HTML blocks and classes, &lt;em&gt;without&lt;/em&gt; having to write one line of CSS. &lt;strong&gt;Everything&lt;/strong&gt; is defined in the HTML. If you think about it, programmers merely generate HTML code, and never touch the CSS file. So providing full control, from content to style, through HTML &lt;em&gt;only&lt;/em&gt;, seems evident.&lt;/p&gt;

&lt;p&gt;If I had to launch a website rapidly, I could set it up quite quickly. But I’d still have to take some layout decisions: font, color, positioning, spacing, dimensions… And though I’ve done it more than a hundred times, it wouldn’t be straightforward.&lt;/p&gt;

&lt;p&gt;So I’d set aside my wish to keep content apart from layout and use Bootstrap, because it’s incredibly well designed.&lt;/p&gt;
</content>
 </entry>
 
 
</feed>