<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

    <title>Simon Pascal Klein</title>
    <link href="http://klepas.org/atom.xml" rel="self"/>
    <link href="http://klepas.org/"/>
    <updated>2016-05-16T10:02:00+00:00</updated>
    <id>http://klepas.org/</id>
    <author>
        <name>Simon Pascal Klein</name>
        <email>klepas@klepas.org</email>
    </author>
 
    
    <entry>
        <title>The Aussie security&amp;ndash;trade cock-off</title>
        <link href="http://klepas.org/aussie-security-trade-cock-off"/>
        <updated>2013-06-12T00:00:00+00:00</updated>
        <id>http://klepas.org/aussie-security-trade-cock-off</id>
        <content type="html">&lt;blockquote cite=&quot;Di-a&quot;&gt;
    &lt;p&gt;In this second image, then, Australia is a middle-power who&amp;rsquo;s economic interests are coming into conflict with its traditional security interests by virtue of the fact that its primary partners in security and trade are increasingly coming to see each other as strategic competitors in a contest over who has the largest and most gorgeous penis in all of the big blue Pacific ocean&amp;thinsp;&amp;mdash;&amp;thinsp;which is full of trash anyways. The winner of this giant inter-civilisational cock-off stands to win all of the rubbish in the ocean which it can then recycle into sparkly-jewel bits that their militaries can wear on their colour-co-ordinated uniforms&amp;thinsp;&amp;mdash;&amp;thinsp;which will make them really pop in that spring sunshine. That, or they could just use the literal islands of rubbish to Bedazzle their national junk. Either way, one dick will end up flaccid and the other will be using aluminum-decorated-pubic-hair to show the rest of the world just how glorious their national junk really looks when you get it in the right light. And won&amp;rsquo;t we all be so proud ourselves. (Seriously though, there&amp;rsquo;s a lot of shit in the ocean.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From a friend.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Top 10 dos and don&amp;rsquo;ts of Web Typography</title>
        <link href="http://klepas.org/top-10-does-and-donts-of-web-typography"/>
        <updated>2011-04-13T00:00:00+00:00</updated>
        <id>http://klepas.org/top-10-does-and-donts-of-web-typography</id>
        <content type="html">&lt;p&gt;As a designer setting type well is a common and important task. While &lt;a href=&quot;http://designfestival.com/setting-type-on-the-web-an-introduction/&quot; title=&quot;DesignFestival.com: Setting Type On the Web: An Introduction&quot;&gt;honoring the text we’re setting&lt;/a&gt; we need to ensure its &lt;a href=&quot;http://designfestival.com/achieving-good-legibility-and-readability-on-the-web/&quot; title=&quot;DesignFestival.com: Achieving Good Legibility and Readability on the Web&quot;&gt;legibility and readability&lt;/a&gt;. Further we ought to provide visual cues that highlight relationships between and amongst the text. In doing so we provide the text with a range of qualities encouraging and empowering a reader to either skim quickly to a specific snippet of information or to comfortably digest larger sections of the text.&lt;/p&gt;

&lt;h3 id=&quot;my-list&quot;&gt;My list&lt;/h3&gt;

&lt;p&gt;To a good designer setting text becomes second nature, but having a quick checklist to fly through in order to ensure the basics are covered can be useful, particularly for aspiring newcomers to the field. This is my list, used as a set of general guiding principles:&lt;/p&gt;

&lt;h4 id=&quot;apply-no-more-than-three-typefaces-per-design-or-page&quot;&gt;1. Apply no more than three typefaces per design (or page)&lt;/h4&gt;
&lt;p&gt;Setting no more than three typefaces (or digitally, fonts) per design is a great basic rule. Applying and setting text with a larger variety of typefaces (even if they are similar) creates a sense of disunity; readers are given the notion that related if not the same types of text (e.g. body paragraphs) are unrelated. Using a larger variety of similar typefaces might side-step this disunity but the reader will still note — even if subconsciously — an oddity. Even if they are unable to describe and source the disturbance the effect can remain.&lt;/p&gt;

&lt;p&gt;The reason “or page” is in this rule is to provide artistic freedom. &lt;a href=&quot;http://jasonsantamaria.com/articles/&quot; title=&quot;JasonSantaMaria.com: Articles Archive&quot;&gt;Jason Santa Maria’s web site&lt;/a&gt; illustrates this fittingly with his creatively diverse designs and styles that his blog posts express, while his site at large retains perfect unity.&lt;/p&gt;

&lt;h4 id=&quot;set-headlines-large-and-invitingly-at-the-top-of-the-page&quot;&gt;2. Set headlines large and invitingly, at the top of the page&lt;/h4&gt;
&lt;p&gt;There used to be this amazing fright of setting large text on the web. Body copy set at 10px (and even lower!) seemed rampant, and headings were rarely treated to anything beyond a slightly larger font size. Headings are some of the very first strings of text read by the eye when navigating to a new page, and vital to mark sections in passages. As such, grace headings with the size and styling they deserve to invite the reader and provide ample, but unobtrusive sign-postings for lower tier headings to guide the reader.&lt;/p&gt;

&lt;h4 id=&quot;size-body-copy-14px&quot;&gt;3. Size body copy 14px+&lt;/h4&gt;
&lt;p&gt;This is a related and perhaps the most important rule of thumb: give body copy the size it needs to be comfortably read on a screen. Of course a large range of other factors influence and legibility and readability of text and particularly more closely set body copy, but size remains critical.&lt;/p&gt;

&lt;p&gt;Remember that not many of us have 20–20 vision; a good default is 14 pixels.&lt;/p&gt;

&lt;h4 id=&quot;ensure-a-good-text-to-background-contrast&quot;&gt;4. Ensure a good text to background contrast&lt;/h4&gt;
&lt;p&gt;Upping the font size is a sure way of making your text more legible, but legibility (and as a result, readability) will be diminished by poor contrast between the text and the background on which it rests.&lt;/p&gt;

&lt;p&gt;The well-established standard is to place dark text on a light background, or vice versa. Absolutely avoid clashing colors or a barely visible grey on a white background.&lt;/p&gt;

&lt;p&gt;Special care needs to be applied to light text on a dark background because it doesn’t have the same contrast (even though it first may appear so) as it’s cousin opposite: increase the tracking, measures, and leading accordingly.&lt;/p&gt;

&lt;h4 id=&quot;apply-stress-and-emphasis-discreetly&quot;&gt;5. Apply stress and emphasis discreetly&lt;/h4&gt;
&lt;p&gt;This is partly and editorial principle, partly a typographic one: don’t litter text with superfluous underlines, bolding, and italics; apply emphasis and stresses sparingly exactly &lt;em&gt;for&lt;/em&gt; added and intentional emphasis.&lt;/p&gt;

&lt;p&gt;On a side note, avoid overly long hyperlinks with underlines, particularly on serifed typefaces and even more so at smaller sizes. The default &lt;code&gt;&lt;span class=&quot;property&quot;&gt;&lt;a title=&quot;SitePoint.com CSS Reference Guide: text-decoration property&quot; href=&quot;http://reference.sitepoint.com/css/text-decoration&quot;&gt;font-decoration&lt;/a&gt;&lt;/span&gt;: &lt;span class=&quot;attribute&quot;&gt;underline&lt;/span&gt;;&lt;/code&gt; will cut through glyphs with descenders (chiefly g, j, p, q, and y) and make them more difficult to discern. A handy solution is to set no text-decoration and instead use a &lt;code&gt;&lt;a title=&quot;SitePoint.com CSS Reference Guide: border-bottom property&quot; href=&quot;http://reference.sitepoint.com/css/border-bottom&quot;&gt;&lt;span class=&quot;property&quot;&gt;border-bottom&lt;/span&gt;&lt;/a&gt;: &lt;span class=&quot;attribute&quot;&gt;1px&lt;/span&gt;;&lt;/code&gt; or only on mouse hover (&lt;code&gt;&lt;span class=&quot;property&quot;&gt;a&lt;a title=&quot;SitePoint.com CSS Reference Guide: :hover pseudo-selector&quot; href=&quot;http://reference.sitepoint.com/css/pseudoclass-hover&quot;&gt;:hover&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;).&lt;/p&gt;

&lt;h4 id=&quot;do-not-set-continuous-text-in-full-capitals&quot;&gt;6. Do not set continuous text in full capitals&lt;/h4&gt;
&lt;p&gt;Ascenders and descenders exist for good reason: they allow us to easily identify words. A word that is set in upper- and lowercase is more recognizable than same word set entirely in uppercase due to the uniformity of the height and baseline of the word. For example, contrast:&lt;/p&gt;

&lt;blockquote cite=&quot;Hochuli, J. 2008, Detail in Typography, 3rd edition, Hyphen Press, London, p. 24.&quot;&gt;
    &lt;p&gt;&amp;lsquo;THE RESULTS OF LEGIBILITY ANALYSES CAN BE CONTRADICTORY, BUT ONE THING IS CLEAR: TEXT SET IN CAPITALS IS HARDER TO READ THAN TEXT SET IN UPPER- AND LOWERCASE. THIS MAY NOT BE PARTICULARLY IMPORTANT IN THE CASE OF INDIVIDUAL WORDS, BUT IT IS FOR LARGE AMOUNTS OF TEXT. THEN TOO, THERE IS ALSO A GREAT DIFFERENCE IN THE AMOUNTS OF SPACE.&amp;rsquo;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;with:&lt;/p&gt;

&lt;blockquote cite=&quot;Hochuli, J. 2008, Detail in Typography, 3rd edition, Hyphen Press, London, p. 24.&quot;&gt;
    &lt;p&gt;&amp;lsquo;The results of legibility analyses can be contradictory, but one thing is clear: text set in capitals is harder to read than text set in upper- and lowercase. This may not be particularly important in the case of individual words, but it is for large amounts of text. Then too, there is also a great difference in the amounts of space.&amp;rsquo;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you find yourself needing to set longer strings of text wholly in uppercase alongside regular body copy, consider setting them with a more ample leading in small capitals (&lt;code&gt;&lt;a title=&quot;SitePoint.com CSS Reference Guide: font-variant property&quot; href=&quot;http://reference.sitepoint.com/css/font-variant&quot;&gt;&lt;span class=&quot;property&quot;&gt;font-variant&lt;/span&gt;&lt;/a&gt;: &lt;span class=&quot;attribute&quot;&gt;small-caps&lt;/span&gt;;&lt;/code&gt;).&lt;/p&gt;

&lt;blockquote cite=&quot;Hochuli, J. 2008, Detail in Typography, 3rd edition, Hyphen Press, London, p. 24.&quot;&gt;
    &lt;p style=&quot;font-variant: small-caps;&quot;&gt;&amp;lsquo;The results of legibility analyses can be contradictory, but one thing is clear: text set in capitals is harder to read than text set in upper- and lowercase. This may not be particularly important in the case of individual words, but it is for large amounts of text. Then too, there is also a great difference in the amounts of space.&amp;rsquo;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;give-the-type-space-to-breathe-set-ample-measures-and-leading&quot;&gt;7. Give the type space to breathe; set ample measures and leading&lt;/h4&gt;
&lt;p&gt;Leading straight on (no pun intended) from the close of the last rule, ensure your text has enough room to breathe; give it the space it needs, both vertically and horizontally to ensure a good, crisp contrast for legibility and readability.&lt;/p&gt;

&lt;p&gt;Check that lines are not too short requiring jerky, quick dashes of the eye to trace to each following line, but also not too long to get lost when reaching the end of a line and then proceeding to the next. Going hand-in-hand with the line length is leading: provide enough space between lines, but not too much to rip the text apart.&lt;/p&gt;

&lt;h4 id=&quot;be-wary-of-fonts-not-designed-for-screen-use&quot;&gt;8. Be wary of fonts not designed for screen use&lt;/h4&gt;
&lt;p&gt;Extending beyond the core &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Web-safe_fonts#Web-safe_fonts&quot; title=&quot;Wikipedia (EN): Web typography&amp;thinsp;&amp;mdash;&amp;thinsp;Web-safe fonts&quot;&gt;web-safe fonts&lt;/a&gt; is an endevour deserving merit, but only select quality typefaces that match the medium you are working with. There is a fantastic abundance of fonts in the world, of which only a subset is good for setting body copy, and an even smaller subset of which has been optimized, or designed specifically for web use.&lt;/p&gt;

&lt;p&gt;Look out for good &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Font_hinting&quot; title=&quot;Wikipedia (EN): Font hinting&quot;&gt;hinting tables&lt;/a&gt; and test your font at smaller sizes (10px, 12px, 14px) on a variety of browsers and operating systems to gauge how well the various font rendering engines display the font.&lt;/p&gt;

&lt;h4 id=&quot;ensure-webfont-assets-are-subsetted-and-cached&quot;&gt;9. Ensure webfont assets are subsetted and cached&lt;/h4&gt;
&lt;p&gt;When using &lt;a title=&quot;SitePoint.com CSS Reference Guide: @font-face property&quot; href=&quot;http://reference.sitepoint.com/css/at-fontface&quot;&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; webfont assets the page size will increase — the user agent (chiefly the browser) will need to download the font for text to be rendered with it. One way to reduce this load size is to subset the font: remove unneeded glyphs for characters you won’t ever be using (e.g. an English web site has little to need for Cyrillic glyphs and visa versa). The second is suggest to user agents to cache the asset for a certain period of time such that subsequent visits don’t result in re-downloading the font.&lt;/p&gt;

&lt;h4 id=&quot;dont-use-comic-sans&quot;&gt;10. Don’t use Comic Sans&lt;/h4&gt;
&lt;p&gt;More of a personal note and frustration. But seriously, why would you use this overused and quite unattractive comic typeface when there are so many others to choose from, including freely licensed ones like &lt;a href=&quot;http://klepas.org/comic-jens/#notebook&quot; title=&quot;klepas.org: Comic Jens&amp;thinsp;&amp;mdash;&amp;thinsp;no more excuses&quot;&gt;Comic Jens&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;and-you&quot;&gt;And you?&lt;/h3&gt;

&lt;p&gt;That’s my list. What’s yours?&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;df-logo&quot; class=&quot;calloutRight&quot;&gt;&lt;img src=&quot;/files/images/design-festival-logo-motif.png&quot; alt=&quot;An image of the DesignFestival.com logo&quot; title=&quot;The DesignFestival.com logo&quot; width=&quot;39&quot; height=&quot;39&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This article was originally written by me for, and published on DesignFestival.com&amp;thinsp;&amp;mdash;&amp;thinsp;&lt;em&gt;&lt;a href=&quot;http://designfestival.com/top-10-dos-and-donts-of-web-typography&quot; title=&quot;DesignFestival.com: Top 10 dos and don&amp;rsquo;ts of Web Typography&quot;&gt;Top 10 dos and don&amp;rsquo;ts of Web Typography&lt;/a&gt;&lt;/em&gt;. It has been been republished here with permission.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Achieving good legibility and readability on the Web</title>
        <link href="http://klepas.org/achieving-good-legibility-and-readability-on-the-web"/>
        <updated>2011-03-22T00:00:00+00:00</updated>
        <id>http://klepas.org/achieving-good-legibility-and-readability-on-the-web</id>
        <content type="html">&lt;p class=&quot;prelude&quot;&gt;My last piece on web typography provided an exhaustive look at &lt;em&gt;&lt;a href=&quot;/getting-type-to-the-web/#notebook&quot; title=&quot;klepas.org: Getting type to the Web&quot;&gt;getting type to the Web&lt;/a&gt;&lt;/em&gt;, covering the ins and outs of the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; technology. Now that we can get the fonts we want rendered on the Web, let&amp;rsquo;s examine legibility and readability more closely by covering the elementary typographic factors that affect them.&lt;/p&gt;

&lt;p&gt;At first, typography can seem like an inherently dull field — dealing with fonts and sizes, bolding this, and italicising that could come across as rather arbitrary, or as difficult: where does one start?&lt;/p&gt;

&lt;h3 id=&quot;definition-and-purpose&quot;&gt;Definition and purpose&lt;/h3&gt;
&lt;p&gt;Definitions avoid confusion, and purpose gives us a light at the end of the tunnel. Quite simply, &lt;em&gt;typography is the art of creating and setting type with the purpose of honoring the text it sets&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You will have already made a “typographic” decision by selecting an adequate typeface (digitally, a font) for whatever project you have in mind. The next step is dealing with the headings, subheadings, paragraphs, lists, tables, excerpts, quotes, and their many siblings (the micro) by making choices about how they are organised on the page (the macro: grids, columns, and margins). Then we can highlight how they relate to each other (&lt;em&gt;&lt;a href=&quot;#typographic-hierarchy&quot; title=&quot;klepas.org: Achieving good legibility and readability on the Web &amp;sect; Highlight relationships and provide navigation&quot;&gt;§ Highlight relationships and provide navigation&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Typography exists everywhere where there is set type (i.e. &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Movable_type&quot; title=&quot;Wikipedia (EN): Movable Type&quot;&gt;movable type&lt;/a&gt;): it pertains to financial reports, the local newspaper, cereal cartons, the novels on our bedside tables, religious scriptures, and by extension, “movable type” on the web.&lt;/p&gt;

&lt;p&gt;Each of us probably has a good grasp of what we think constitutes good typography. Looking at the local newspaper, or cereal carton, or the books on the bookshelf, you’ll probably be able to list a range of properties that make it “good”.&lt;/p&gt;

&lt;p&gt;The merits of our typographic choices are immediately apparent, and two of the most important are a text’s legibility and its readability.&lt;/p&gt;

&lt;h4 id=&quot;legibility&quot;&gt;Legibility&lt;/h4&gt;

&lt;p&gt;Legibility refers to the recognizability of individual glyphs (the individual markings that signify the semantic character(s)). A range of factors influence a glyph’s legibility: stroke, width, angle (of the stroke), style (e.g. roman, full-​​capitals), slant (of the whole style), color (actual color and typographic color, i.e. contrast of the letterform to its background), background color, and more.&lt;/p&gt;

&lt;h4 id=&quot;readability&quot;&gt;Readability&lt;/h4&gt;

&lt;p&gt;Legibility is distinct from readability. Readability refers to the recognizability of whole words, sentences, paragraphs, tables, or whatever the text en masse constitutes. A range of macro factors affect readability: the measure (line length), the leading (line height or spacing), justification or alignment, the style of the typeface, the kerning and tracking, the size of the type, and more.&lt;/p&gt;

&lt;p&gt;Of course, both are interrelated; changes to the point size will impact the legibility of both the individual glyphs, and the words they compose.&lt;/p&gt;

&lt;h4 id=&quot;typographic-hierarchy&quot;&gt;Highlight relationships and provide navigation&lt;/h4&gt;

&lt;p&gt;Just like &lt;acronym title=&quot;Web Content Accessibility Guidelines&quot;&gt;WCAG&lt;/acronym&gt;’s (&lt;a href=&quot;http://www.w3.org/TR/WCAG20/#navigation-mechanisms&quot; title=&quot;w3.org: WCAG 2.0, &amp;sect; 2.4 Navigation Mechanisms&quot;&gt;&lt;acronym title=&quot;Web Content Accessibility Guidelines&quot;&gt;WCAG&lt;/acronym&gt; 2.0, § 2.4&lt;/a&gt;) accessibility guidelines on ensuring that hyperlinks can be understood out of context, typographic hierarchy gives the text a certain “skimmability”. Good typographic hierarchy allows the text as a whole to be navigated with ease, such that readers can find their places again, or skip superfluous introductory information and get straight to what they are browsing for.&lt;/p&gt;

&lt;p&gt;A good typographic hierarchy will provide visual cues to readers: headings are sized and styled in a way that makes them immediately identifiable as headings; paragraphs are uniform in styling, and their beginnings and ends are well marked out; quotations are recognizable, separate from the paragraphs they are enclosed by, and so forth.&lt;/p&gt;

&lt;p&gt;Such hierarchies will also highlight inherent relationships between elements on the page: labels are placed in proximity to graphs, charts, and graphics, and through their proximity, are identifiable as descriptive notations.&lt;/p&gt;

&lt;p&gt;In another example, imagine a more complex, two-​​color design. A table holding quarterly profit figures could feature a light-​​blue background, whereas the nearby table of detailing the quarterly loss could have a soft red background, and the aggregate of the two, superimposed on top of one another in a line graph, would have the profit line in a strong blue, and the line depicting losses in a hard red. Graph notations should provide a legend, but color can also be used to signify the relationships.&lt;/p&gt;

&lt;p&gt;Colour, font style, spacing, position, indentation, and a range of other stylistic variations can be used to signify a relationship between elements on the page or across pages — and over the entire website as a whole.&lt;/p&gt;

&lt;h4 id=&quot;earned-or-unearned-qualities&quot;&gt;Earned or unearned qualities&lt;/h4&gt;

&lt;p&gt;As noted earlier, we consciously (and subconsciously) judge the typography of texts. Look back to the newspaper, or pull out a book from the bookshelf, and describe what the text looks like. The newspaper might be bold and almost cheap looking, whereas a book on social psychology might be clean and organised, complete with footnotes and easily looked-​​up references.&lt;/p&gt;

&lt;p&gt;Typography imbues set text with qualities, or a certain interest. A text can appear inviting, graceful, serene, cartoony, dodgy, unbalanced, and/​or boring, and importantly these qualities can be both earned and unearned. A good typographer will humbly honor the text they are setting, in honor of the meaning of that text. Bad typography or a lack of care can discourage readers with a sense of boredom, inaccessibility, or cheapness.&lt;/p&gt;

&lt;h4 id=&quot;inducing-a-state-of-interest&quot;&gt;Inducing a state of interest&lt;/h4&gt;

&lt;p&gt;Finally, good typography can induce interest among potential readers. Simply, grace the text with the respect it deserves; if the text is good, and intended to be read and understood,  give it the typographic respect it is entitled to. In doing so you will induce a state of interest in browsing readers.&lt;/p&gt;

&lt;h3&gt;Achieving good legibility &lt;span class=&quot;amp&quot;&gt;&amp;amp;&lt;/span&gt; readability&lt;/h3&gt;

&lt;p&gt;Let’s now focus on achieving the first two core goals of good typography: legibility and readability. The basics of these are well understood given that typography is well over 400 years old in the world of print, but in a digital medium there are a few additional considerations to be made.&lt;/p&gt;

&lt;h4 id=&quot;typeface&quot;&gt;Typeface&lt;/h4&gt;
&lt;p&gt;As previously outlined typefaces have a significant impact on the virtue of the text they set. Selecting a good and applicable typeface that honors the copy and caters for its requirements (e.g. if you know you’ll be setting mathematical symbols ensure the typeface has glyphs for them) is paramount.&lt;/p&gt;

&lt;p&gt;Chances are you’re setting larger blocks of text. You will want to pick a good text font: faces that are designed for setting lengthier blocks of text. The best way to test a typeface as a text face is to set a paragraph of &lt;a href=&quot;http://lipsum.lipsum.com/&quot; title=&quot;Lorem Ipsum: a placeholder text&quot;&gt;Lorem Ipsum&lt;/a&gt; in the basic roman at size 12px to 14px with a leading of 1 to 1.5 (see &lt;em&gt;&lt;a href=&quot;#leading&quot; title=&quot;klepas.org: Achieving good legibility and readability on the Web &amp;sect; Leading&quot;&gt;§ Leading&lt;/a&gt;&lt;/em&gt; below) and see how it reads. Text faces can be both serif (e.g. Georgia) or sanserif (e.g. Arial).&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;Lorem Ipsum is a useful placeholder text when testing stylistic attributes. For testing actual readability it was pointed out to me that one should select a text that has meaning and is intended to be read. Stuck for something to use? Grab an article from Wikipedia or from &lt;a href=&quot;http://www.gutenberg.org/wiki/Main_Page&quot; title=&quot;Gutenberg.org&amp;thinsp;&amp;mdash;&amp;thinsp;A public, non-profit library of freely licensed cultural works&quot;&gt;Project Gutenberg&lt;/a&gt;. Thanks to &lt;a href=&quot;http://fineartdavid.com/about/david-owens&quot; title=&quot;fineartdavid.com: David Owens&amp;rsquo; personal website&quot;&gt;David Owens&lt;/a&gt; for this suggestion.&lt;/p&gt;

&lt;p&gt;Typefaces are declared in &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; with the &lt;a href=&quot;http://reference.sitepoint.com/css/font-family&quot; title=&quot;SitePoint.com CSS Reference Guide: font-family property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;font-family&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt; and take descriptive values, either a generic family or specific font family, for example, a &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/VOX-ATypI_classification#Transitional&quot; title=&quot;Wikipedia (EN): VOX-ATypI classification: Transitional&quot;&gt;transitional serif&lt;/a&gt; font stack:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;font-family:&lt;/span&gt;
        &lt;span class=&quot;attribute&quot;&gt;Baskerville,
        Times
        &#39;Times New Roman&#39;
        serif&lt;/span&gt;;
    }&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&quot;sizing&quot;&gt;Sizing&lt;/h4&gt;
&lt;p&gt;When setting type select a comfortable size: 14 pixels and up for most screen text fonts is a good rule of thumb. Not many of us have 20-20 vision and better a tad large than too small.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note:&lt;/strong&gt; JavaScript-powered text sizing widgets &amp;ne; accessibility.&lt;/p&gt;

&lt;p&gt;Don’t size text arbitrarily; try to stick to a scale:&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;classical-scale&quot; class=&quot;scale&quot;&gt;
    &lt;span class=&quot;scale-six&quot;&gt;6, &lt;/span&gt;
    &lt;span class=&quot;scale-seven&quot;&gt;7, &lt;/span&gt;
    &lt;span class=&quot;scale-eight&quot;&gt;8, &lt;/span&gt;
    &lt;span class=&quot;scale-nine&quot;&gt;9, &lt;/span&gt; 
    &lt;span class=&quot;scale-ten&quot;&gt;10, &lt;/span&gt;
    &lt;span class=&quot;scale-eleven&quot;&gt;11, &lt;/span&gt;
    &lt;span class=&quot;scale-twelve&quot;&gt;12, &lt;/span&gt;
    &lt;span class=&quot;scale-fourteen&quot;&gt;14, &lt;/span&gt;
    &lt;span class=&quot;scale-sixteen&quot;&gt;16, &lt;/span&gt;
    &lt;span class=&quot;scale-eighteen&quot;&gt;18, &lt;/span&gt;
    &lt;span class=&quot;scale-twenty-one&quot;&gt;21, &lt;/span&gt;
    &lt;span class=&quot;scale-twenty-four&quot;&gt;24, &lt;/span&gt;
    &lt;span class=&quot;scale-thirty-six&quot;&gt;36, &lt;/span&gt;
    &lt;span class=&quot;scale-forty-eight&quot;&gt;48, &lt;/span&gt;
    &lt;span class=&quot;scale-sixty&quot;&gt;60, &lt;/span&gt;
    &lt;span class=&quot;scale-seventy-two&quot;&gt;72.&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The &amp;ldquo;classical scale&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;another-scale&quot; class=&quot;scale&quot;&gt;
    &lt;span class=&quot;scale-nine&quot;&gt;9, &lt;/span&gt; 
    &lt;span class=&quot;scale-ten&quot;&gt;10, &lt;/span&gt;
    &lt;span class=&quot;scale-eleven&quot;&gt;11, &lt;/span&gt;
    &lt;span class=&quot;scale-twelve&quot;&gt;12, &lt;/span&gt;
    &lt;span class=&quot;scale-thirteen&quot;&gt;13, &lt;/span&gt;
    &lt;span class=&quot;scale-fourteen&quot;&gt;14, &lt;/span&gt;
    &lt;span class=&quot;scale-eighteen&quot;&gt;18, &lt;/span&gt;
    &lt;span class=&quot;scale-twenty-four&quot;&gt;24, &lt;/span&gt;
    &lt;span class=&quot;scale-thirty-six&quot;&gt;36, &lt;/span&gt;
    &lt;span class=&quot;scale-forty-eight&quot;&gt;48, &lt;/span&gt;
    &lt;span class=&quot;scale-sixty-four&quot;&gt;64, &lt;/span&gt;
    &lt;span class=&quot;scale-seventy-two&quot;&gt;72.&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Another scale.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;fibonacci-scale&quot; class=&quot;scale&quot;&gt;
    &lt;span class=&quot;scale-eight&quot;&gt;8, &lt;/span&gt;
    &lt;span class=&quot;scale-thirteen&quot;&gt;13, &lt;/span&gt;
    &lt;span class=&quot;scale-twenty-one&quot;&gt;21, &lt;/span&gt;
    &lt;span class=&quot;scale-thirty-four&quot;&gt;34, &lt;/span&gt;
    &lt;span class=&quot;scale-fifty-five&quot;&gt;55, &lt;/span&gt;
    &lt;span class=&quot;scale-eighty-nine&quot;&gt;89.&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;A scale based on the Fibonacci sequence.&lt;/p&gt;

&lt;p&gt;Type is best sized relatively using ems. An em is the distance horizontally equivalent to the type size in points (e.g. 1em of 12pt type is 12pt; 1em of 16pt type is 16pt). We can do this in the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; using the &lt;a href=&quot;http://reference.sitepoint.com/css/font-size&quot; title=&quot;SitePoint.com CSS Reference Guide: font-size property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;font-size&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;font-size:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;1.2em&lt;/span&gt;; }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Remember that font sizes are inherited within &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; from parents → children. This can make em sizing calculations for nested elements difficult. A good idea is to size everything in pixels first, and then convert over to ems. Pixels are easy to work with but fall short as a fixed unit, particularly when scaling a website (see &lt;em&gt;&lt;a href=&quot;#measure&quot; title=&quot;klepas.org: Achieving good legibility and readability on the Web &amp;sect; Measure&quot;&gt;§ Measure&lt;/a&gt;&lt;/em&gt; below).&lt;/p&gt;

&lt;p&gt;To calculate the desired value in ems, find what 1 pixel is in ems and then multiply by the desired font size (in pixels):&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;equation&quot;&gt;
    &lt;span class=&quot;value&quot;&gt;1&lt;/span&gt; 
    ÷ 
    &lt;span class=&quot;value&quot;&gt;parent font-size&lt;/span&gt; 
    × 
    &lt;span class=&quot;value&quot;&gt;desired pixel value&lt;/span&gt; 
    = 
    &lt;span class=&quot;result&quot;&gt;em value&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;For example, if the parent font size (as defined by say the body element) is 16 pixels, but we’d like to size a paragraph — which is a child of the body element — at 12 pixels, we calculate: 1 ÷ 16 × 12 which gives us 0.75em.&lt;/p&gt;

&lt;h5 id=&quot;the-625-trick&quot;&gt;The 62.5% trick&lt;/h5&gt;

&lt;p&gt;There is a neat trick to simplifying these calculations. Consider the following &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;font-size:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;80%&lt;/span&gt;; }
&lt;span class=&quot;element&quot;&gt;blockquote&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;font-size:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;80%&lt;/span&gt;; }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;which styles this markup:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;This is a short paragraph, followed by a quote:&amp;lt;/p&amp;gt;
&amp;lt;blockquote&amp;gt;
    &amp;lt;p&amp;gt;block quotes are blocks of quoted material, and can hold a range of 
       things, including paragraphs, lists, and even headings of course.&amp;lt;/p&amp;gt;
&amp;lt;/blockquote&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;80% of 16px is 12.8px, so &lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class=&quot;element&quot;&gt;blockquote&lt;/span&gt;&lt;/code&gt; elements will be that size, but what happens when we put a &lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt;&lt;/code&gt; element inside a &lt;code&gt;&lt;span class=&quot;element&quot;&gt;blockquote&lt;/span&gt;&lt;/code&gt; element? The parent (&lt;code&gt;&lt;span class=&quot;element&quot;&gt;blockquote&lt;/span&gt;&lt;/code&gt;) is 12.8px so the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt;&lt;/code&gt; will be rendered at 80% of that: 10.42px.&lt;/p&gt;

&lt;p&gt;Guh! Potentially quite confusing. Richard Rutter developed &lt;a href=&quot;http://www.alistapart.com/articles/howtosizetextincss/&quot; title=&quot;AListApart.com: How to Size Text in CSS&quot;&gt;a neat trick to simplifying the sizing calculations of nested elements&lt;/a&gt;. Consider:
* browsers have a common default size of 16px for text;
* set the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;body&lt;/span&gt;&lt;/code&gt; to a font-size of 62.5%, resetting everything to 10px.&lt;/p&gt;

&lt;p&gt;From here now the calculations are similar for &lt;em&gt;direct descendants&lt;/em&gt; of the body, for example 12px = 1.2em; 8px = 0.8em, and so forth. Deeper nested elements are (still) relative of course.&lt;/p&gt;

&lt;h4 id=&quot;measure&quot;&gt;Measure&lt;/h4&gt;
&lt;p&gt;The measure is the line-length. It’s important to keep lines at a comfortable length, not too long; not too short.&lt;/p&gt;

&lt;p&gt;The eye finds difficulty in going to the next line on measures that a too long. A grand and almost infamous example of a website that could do better in this regard is Wikipedia, where the measure is relative to the length of the browser window; expand the window to full-screen on a widescreen and notice how suddenly where there was a comfortable 40 characters per line expand to 100 or more.&lt;/p&gt;

&lt;p&gt;Conversely ensure lines aren’t too short that the eye has to drop lines every few words. There are some publication styles where short measures are popular, for example periodicals, but copy that’s set so short elsewhere begins to look cheap, as if once read it could be thrown away just like a newspaper.&lt;/p&gt;

&lt;p&gt;Measures are set in &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; with the &lt;a href=&quot;http://reference.sitepoint.com/css/width&quot; title=&quot;SitePoint.com CSS Reference Guide: width property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;width&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt;. Ideally &lt;a href=&quot;http://www.456bereastreet.com/archive/201101/only_use_ems_for_the_total_width_of_em-based_layouts/&quot; title=&quot;456bereastreet.com: Only use ems for the total width of em-based layouts&quot;&gt;set the design or total page width in ems and columns in percentages such that columns&lt;/a&gt;, the grid, the entire page design all scale proportionately. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;body&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;font-size:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;62.5%&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;width:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;96em&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;margin:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;0 auto 0 auto&lt;/span&gt;;
    }
    &lt;span class=&quot;element&quot;&gt;div#content&lt;/span&gt; {
        &lt;span class=&quot;property&quot;&gt;width:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;75%&lt;/span&gt;;
        &lt;span class=&quot;property&quot;&gt;float:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;left&lt;/span&gt;;
        }
    &lt;span class=&quot;element&quot;&gt;div#sidebar&lt;/span&gt; {
        &lt;span class=&quot;property&quot;&gt;width:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;25%&lt;/span&gt;;
        &lt;span class=&quot;property&quot;&gt;float:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;right&lt;/span&gt;;
        }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In this example we’ve used the 62.5% trick to reset the base font size to 10 pixels in the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;body&lt;/span&gt;&lt;/code&gt; and defined a total design width of 960 pixels which is centered. Meanwhile, we’ve defined two &lt;code&gt;&lt;span class=&quot;element&quot;&gt;div&lt;/span&gt;&lt;/code&gt; elements: one as a sidebar with a width of 240 pixels (25% of 960 = 240 pixels) and the other as a content container with width of 720 pixels (75% of 960 = 720 pixels). This design scales perfectly, even when only text-only zoom is available.&lt;/p&gt;

&lt;h4 id=&quot;leading&quot;&gt;Leading&lt;/h4&gt;
&lt;p&gt;It’s important to provide ample space between lines for the eye to read along and travel between lines with comfort and ease. A good rule is to give copy with short measures less leading, and longer measures more leading.&lt;/p&gt;

&lt;p&gt;Leading is controlled in &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; using the &lt;a href=&quot;http://reference.sitepoint.com/css/line-height&quot; title=&quot;SitePoint.com CSS Reference Guide: line-height property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;line-height&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt;, and can set unit-less number values (e.g. 1.5) whereby it acts as a multiplier of the font size:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;line-height:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;1.5&lt;/span&gt;; }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This means the leading will be one and a half times the size of the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;font-size&lt;/span&gt;&lt;/code&gt;. Unit-less values are easier too keep track of and work with when setting leading for descendent elements, and scale nicely.&lt;/p&gt;

&lt;h4 id=&quot;alignment&quot;&gt;Alignment&lt;/h4&gt;
&lt;p&gt;Alignment is the placement and arrangement of text. When setting blocks of copy align text to the left margin or “gutter”, and don’t be afraid of having a ragged edge (i.e. “left-aligned”, “flush-left”, or “ragged-right”). Justification is great if there is a sufficient measure to cater for the adjustment of the word-spacing and ideally if automatic hyphenation is accessible — avoid justification in narrow columns of text.&lt;/p&gt;

&lt;p&gt;Alignment is controlled in &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; using the &lt;a href=&quot;http://reference.sitepoint.com/css/text-align&quot; title=&quot;SitePoint.com CSS Reference Guide: text-align property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;text-align&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt;, and takes descriptive values, for example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;body&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;text-align:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;left&lt;/span&gt;; }
    &lt;span class=&quot;element&quot;&gt;div#content p&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;text-align:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;justify&lt;/span&gt;; }
    &lt;span class=&quot;element&quot;&gt;div#content p.verse&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;text-align:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;center&lt;/span&gt;; }&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&quot;the-culmination-contrast&quot;&gt;The culmination (contrast)&lt;/h4&gt;
&lt;p&gt;Legible and readable text has a &lt;a href=&quot;http://designfestival.com/use-contrasting-fonts-for-maximum-impact/&quot; title=&quot;DesignFestival.com: Use Contrasting Fonts for Maximum Impact&quot;&gt;high contrast with its surroundings&lt;/a&gt; without becoming an eye-sore. Good contrast is achieved by setting text with the above factors in mind, with the addition of the color of the type to the background it is placed on. A good guiding principle is dark on light or visa versa. Avoid clashing colours or a barely visible grey on a white background.&lt;/p&gt;

&lt;p&gt;In &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; the text color is controlled by the &lt;a href=&quot;http://reference.sitepoint.com/css/color&quot; title=&quot;SitePoint.com CSS Reference Guide: color property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;color&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt; while the background is controlled by the &lt;a href=&quot;http://reference.sitepoint.com/css/background-color&quot; title=&quot;SitePoint.com CSS Reference Guide: background-color property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;background-color&lt;/span&gt;&lt;/code&gt; property&lt;/a&gt; and takes numerical and descriptive values. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;div#content p&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;color:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;#111&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;background-color:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;white&lt;/span&gt;;
    }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/legible-and-readable-type-hero.jpg&quot; alt=&quot;Photo of the Black Estate Vineyard website as displayed by Google Chrome on an LCD screen&quot; title=&quot;The Black Estate Vineyard website&quot; width=&quot;624&quot; height=&quot;300&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pay attention to contrasts when working with light text on a dark background. Dark text on a light background generally has a higher contrast than light text on a dark background. Thus, when light text rests on a dark background check its contrast — increase leading and decrease &lt;a href=&quot;http://reference.sitepoint.com/css/font-weight&quot; title=&quot;SitePoint.com CSS Reference Guide: font-weight property&quot;&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;font-weight&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; as applicable.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;div#footer p&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;color:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;white&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;background-color:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;#333&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;line-height:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;1.8&lt;/span&gt;;
    &lt;span class=&quot;property&quot;&gt;font-weight:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;lighter&lt;/span&gt;;
    }&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&quot;closing&quot;&gt;Closing&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Robert_Bringhurst&quot; title=&quot;Wikipedia (EN): Robert Bringhurst&quot;&gt;Robert Bringhurst&lt;/a&gt; once articulated: ‘well-​​chosen words deserve well-​​chosen letters’. Good web typography should seek to invite readers by revealing the tenor and meaning the text, and highlight relationships through a uniform hierarchy for ease of navigation.&lt;/p&gt;

&lt;p&gt;In other words, web experiences that feature good typography are easier and more pleasurable to read and use. Applying these principles should provide your text with the first step towards this goal: elementary typographic goodness through better legibility and readability.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;df-logo&quot; class=&quot;calloutRight&quot;&gt;&lt;img src=&quot;/files/images/design-festival-logo-motif.png&quot; alt=&quot;An image of the DesignFestival.com logo&quot; title=&quot;The DesignFestival.com logo&quot; width=&quot;39&quot; height=&quot;39&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This article is a consolidation of two articles originally written by me for, and published on DesignFestival.com (&lt;em&gt;&lt;a href=&quot;http://designfestival.com/setting-type-on-the-web-an-introduction/&quot; title=&quot;DesignFestival.com: Setting Type On the Web: An Introduction&quot;&gt;Setting Type On the Web: An Introduction&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;http://designfestival.com/achieving-good-legibility-and-readability-on-the-web/&quot; title=&quot;DesignFestival.com: Achieving Good Legibility and Readability on the Web&quot;&gt;Achieving Good Legibility and Readability on the Web&lt;/a&gt;&lt;/em&gt;). They have been been republished here with permission.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Getting type to the Web</title>
        <link href="http://klepas.org/getting-type-to-the-web"/>
        <updated>2011-03-04T00:00:00+00:00</updated>
        <id>http://klepas.org/getting-type-to-the-web</id>
        <content type="html">&lt;p&gt;The last year and a half has seen a rekindling of the interest in web typography, marked by the popularity of sites like &lt;a href=&quot;http://ilovetypography.com&quot;&gt;ilovetypography.com&lt;/a&gt; (now trending on 67,000+ subscribers) and the growing number of typography articles pertaining to the subject across the web design and development community. Typography remains central to aesthetics, accessibility, and of course legibility. Those who master it and apply it to the Web have been admired for the ingenuity of their work, both stylistically and in their technical implementation.&lt;/p&gt;

&lt;p&gt;Typography brings aesthetic order to information, aiding reading and navigation. Typography differentiates; it is a core element of branding. The bottom line is that good typography when applied to the Web creates web experiences that are easier and more pleasurable to use. This renewed enthusiasm in the field has turned a new page in web typography, and can chiefly be attributed to the rise of web fonts and their growing availability across the browser range, permitting us to extend beyond the core ‘web safe’ fonts (Andale Mono, Arial, Courier, &lt;acronym title=&quot;Times New Roman&quot;&gt;TNR&lt;/acronym&gt;, Impact, Verdana, Georgia, and Trebuchet MS). Good typography begins with selecting typefaces appropriate to the text being set; the right typeface or group of faces for the right work. Setting a graphic horror novel in &lt;acronym title=&quot;Times New Roman&quot;&gt;TNR&lt;/acronym&gt; or Helvetica would be inappropriate to the genre of the book, and the graphical medium it utilises. However a good page-turner novel (for which a &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/VOX-ATypI_classification#Transitional&quot;&gt;transitional&lt;/a&gt; typeface like &lt;acronym title=&quot;Times New Roman&quot;&gt;TNR&lt;/acronym&gt; is far better suited) would be difficult to read if it were set in a script typeface.&lt;/p&gt;

&lt;blockquote cite=&quot;Robert Bringhurst&quot;&gt;
    &lt;p&gt;Typography exists to honor content&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Selecting good typefaces is one step and is perhaps made harder now that we have more than the core ‘web safe’ fonts to work with (or those that are next most likely to be installed). Implementing them for our web sites is another technical hurdle. This article highlights the options for getting type on the Web and then cover each method in detail while retaining a strong focus on web standards.&lt;/p&gt;

&lt;h3 id=&quot;options-for-bringing-fonts-to-the-web&quot;&gt;Options for bringing fonts to the Web&lt;/h3&gt;

&lt;p&gt;Browsers implement custom fonts in different ways. This disparity boils down to an open versus closed debate — locking down the methods to secure the font assets from easy download from the web site which uses them versus a more open model built on trust. To some degree this debate bears similarities to the one that raged when images were first available on the Web, and similarly, these differences in implementation have largely been settled as &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; &lt;a href=&quot;http://blogs.sitepoint.com/2010/08/17/w3c-backs-the-woff-webfont-standard/&quot;&gt;is hopefully finalised as a standard&lt;/a&gt; by the &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt;.&lt;/p&gt;

&lt;p&gt;There are a variety of methods available to us to bringing fonts to the Web for typesetting. They are, in loose historical order of availability:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;installed fonts (mostly web-safe);&lt;/li&gt;
  &lt;li&gt;Flash (e.g. &lt;acronym title=&quot;Scalable Inman Flash Replacement&quot;&gt;sIFR&lt;/acronym&gt;) and other &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; replacement techniques;&lt;/li&gt;
  &lt;li&gt;Cufón et al.;&lt;/li&gt;
  &lt;li&gt;webfonts: &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;/&lt;abbr&gt;EOT&lt;/abbr&gt; Lite via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;webfonts: &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;webfonts: &lt;acronym title=&quot;Scalable Vector Graphic&quot;&gt;SVG&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;webfonts: &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;and hosting &lt;span class=&quot;amp&quot;&gt;&amp;amp;&lt;/span&gt; licensing services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;installed-fonts&quot;&gt;Installed fonts&lt;/h4&gt;

&lt;p&gt;Calling upon installed fonts is the simplest and easiest method. Within our &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; stylesheets we simply call upon a list of fonts via the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;font-family&lt;/span&gt;&lt;/code&gt; property and order them as per:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;desired&lt;/li&gt;
  &lt;li&gt;fallbacks&lt;/li&gt;
  &lt;li&gt;generic (e.g. &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;serif&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;sans-serif&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;monospace&lt;/span&gt;&lt;/code&gt;,)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a transitional serif font stack:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;p&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;font-family:&lt;/span&gt;
        &lt;span class=&quot;attribute&quot;&gt;Baskerville,
        Times,
        &#39;Times New Roman&#39;,
        serif&lt;/span&gt;;
    }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And a neo-grotesque stack:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;h1, h2, h3, h4, h5, h6, h7&lt;/span&gt; {
    &lt;span class=&quot;property&quot;&gt;font-family:&lt;/span&gt;
        &lt;span class=&quot;attribute&quot;&gt;Univers,
        Helvetica,
        &#39;Helvetica Neue&#39;,
        Arial,
        sans-serif&lt;/span&gt;;
    }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If the first available font in the stack is not installed on the client machine it obviously cannot be used for rendering, so it skips to the next attribute in the list, and so on until an available font is found. &lt;a href=&quot;http://articles.sitepoint.com/article/eight-definitive-font-stacks&quot;&gt;Good font stacks&lt;/a&gt; reflect what is likely to be installed on the machines of our users by taking into account default font libraries for popular operating systems. This allows us to cautiously extend beyond the core ‘web-safe’ fonts by placing another preferred font in the list which still is quite popular.&lt;/p&gt;

&lt;h4 id=&quot;flash-replacement-techniques&quot;&gt;Flash replacement techniques&lt;/h4&gt;

&lt;p&gt;Flash replacement is a nifty method of replacing &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; text with Flash text with the help of a JavaScript file. The most popular technique is the &lt;a href=&quot;http://www.mikeindustries.com/blog/sifr/&quot; title=&quot;mikeindustries.com: sIFR 2.0&quot;&gt;Scalable Inman Flash Replacement&lt;/a&gt; (&lt;acronym title=&quot;Scalable Inman Flash Replacement&quot;&gt;sIFR&lt;/acronym&gt;).&lt;/p&gt;

&lt;p&gt;While it has support for sub-setting, it is not a feasible long-term solution to bringing truly custom fonts to the Web, particularly with its reliance on non-standard technologies and use of JavaScript. It is also performance demanding with a longer page load time (predominately due to the number of requests made for the required Flash, JavaScript, and &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; files). Its best uses are for setting a single heading or a small series of headings, but it is far from practical for setting body copy.&lt;/p&gt;

&lt;h4 id=&quot;cufoacuten-et-al&quot;&gt;Cufón et al.&lt;/h4&gt;

&lt;p&gt;A range of other JavaScript replacement options became available in an effort to get the job done without Flash. &lt;a href=&quot;http://cufon.shoqolate.com/generate/&quot; title=&quot;cufon.shoqolate.com: Cuf&amp;oacute;n&quot;&gt;Cufón&lt;/a&gt; is perhaps the most popular of these with an online front-end for easy conversion of the font data into JavaScript that provides good support for sub-setting with a range of other options on kerning, scaling, cross object resource sharing (&lt;acronym title=&quot;Cross Object Resource Sharing&quot;&gt;CORS&lt;/acronym&gt;) to limit use for a list of domains.&lt;/p&gt;

&lt;p&gt;Cufón converts fonts paths to &lt;acronym title=&quot;Vector Markup Language&quot;&gt;VML&lt;/acronym&gt; (now for the most part deprecated by &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt;) stored in &lt;acronym title=&quot;JavaScript Object Notation&quot;&gt;JSON&lt;/acronym&gt; and rendered by the JavaScript rendering engine within the user agent. While it has good browser support it also is not a viable long-term solution due to its poor accessibility.&lt;/p&gt;

&lt;h4 id=&quot;webfonts-acronym-titleembedded-opentypeeotacronymabbreotabbr-lite&quot;&gt;webfonts: &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;/&lt;abbr&gt;EOT&lt;/abbr&gt; Lite&lt;/h4&gt;

&lt;p&gt;Since the end of 1997 Internet Explorer 4 has supported Embedded OpenType (&lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;) for use through the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; element that was introduced in the &lt;abbr&gt;CSS2&lt;/abbr&gt; specification. Microsoft’s &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; permitted the download of custom font assets for use in rendering type on a web page (and has seen helped bring writing systems that are not supported by default to the Web) without making those assets useable on the desktop and abetting font copyright infringement.&lt;/p&gt;

&lt;p&gt;&lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; subsets, compresses, and finally encrypts TrueType font assets. &lt;acronym title=&quot;Cross Object Resource Sharing&quot;&gt;CORS&lt;/acronym&gt; is provided by way of a &amp;lsquo;trusted roots&amp;rsquo; list. Unsurprisingly with a proprietary compression method, a proprietary encryption/decryption process, and support only in Internet Explorer, &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; and even &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; Lite (which omits the proprietary &lt;acronym title=&quot;MicroType Express&quot;&gt;MTX&lt;/acronym&gt; compression and the &lt;acronym title=&quot;Cross Object Resource Sharing&quot;&gt;CORS&lt;/acronym&gt; trusted root listing) is a proprietary and non-standard solution as a webfont format.&lt;/p&gt;

&lt;p&gt;&lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; files can be created with Microsoft&amp;rsquo;s &lt;a href=&quot;https://www.microsoft.com/typography/weft.mspx&quot; title=&quot;Microsoft.com: Microsoft Typography&amp;thinsp;&amp;mdash;&amp;thinsp;WEFT&quot;&gt;&lt;acronym title=&quot;Web Embedding Fonts Tool&quot;&gt;WEFT&lt;/acronym&gt;&lt;/a&gt;, or through &lt;code&gt;ttf2eot&lt;/code&gt;, an open source implementation of the converter. &lt;acronym title=&quot;Web Embedding Fonts Tool&quot;&gt;WEFT&lt;/acronym&gt; is worth skipping because:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;it uses the &lt;acronym title=&quot;MicroType Express&quot;&gt;MTX&lt;/acronym&gt; compression method and is out-performed by other methods like gzip;&lt;/li&gt;
    &lt;li&gt;it only works on Windows and tends to perform unreliably under emulators (e.g. Parallels);&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;ttf2eot&lt;/code&gt; does not compress&amp;thinsp;&amp;mdash;&amp;thinsp;use server-side compression instead;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://fontsquirrel.com/fontface/generator&quot; title=&quot;FontSquirrel.com: Create your own @font-face kits&quot;&gt;Font Squirrel&amp;rsquo;s @font-face web front-end&lt;/a&gt; to &lt;code&gt;ttf2eot&lt;/code&gt; is simple and easy to use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;webfonts-acronym-titleopentypeotacronymacronym-titletruetypettacronym&quot;&gt;webfonts: &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt;&lt;/h4&gt;

&lt;p&gt;These work in a similar fashion to &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; webfonts in being referenced in the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; declaration to be downloaded and used directly to render type.&lt;/p&gt;

&lt;p&gt;OpenType/TrueType is a feasible, open method of providing webfonts with a fairly good browser support (Safari 3.1+, Firefox 3.5+, Opera 10+, Chrome 4+; &lt;abbr&gt;IE9&lt;/abbr&gt; beta, and Android 2.2+). Of course instantly apparent is that the font assets are not encrypted, bound to any trusted roots, or &lt;acronym title=&quot;Cross Object Resource Sharing&quot;&gt;CORS&lt;/acronym&gt; limitations and are available in a format readily usable on the desktop outside the browser environment (e.g. desktop publishing and word processing) once easily downloaded. Further, sub-setting and compression is not automatic and the responsibility font assets’ host.&lt;/p&gt;

&lt;h4 id=&quot;webfonts-acronym-titlescalable-vector-graphicssvgacronym&quot;&gt;webfonts: &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt;&lt;/h4&gt;

&lt;p&gt;These are also part of the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; webfonts specification, &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; are referenced in the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; declaration just like &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;, &lt;acronym title=&quot;OpenType Font&quot;&gt;OTF&lt;/acronym&gt;, or &lt;acronym title=&quot;TrueType Font&quot;&gt;TTF&lt;/acronym&gt; fonts.&lt;/p&gt;

&lt;p&gt;Again, &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; files are not obscured and thus easily available for download for use beyond the web page they are referenced in. Browser support is fairly widespread also (Firefox 3.5+ Chrome 0.3+, Opera 9+, Apple &lt;abbr&gt;iOS1&lt;/abbr&gt;+, and Safari 3.1+), and, as with &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; webfonts, sub-setting and compression comes down to the host.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; files can be gzip compressed into &lt;code&gt;.svgz&lt;/code&gt; files.&lt;/p&gt;

&lt;h4 id=&quot;webfonts-acronym-titleweb-open-font-formatwoffacronym&quot;&gt;webfonts: &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt;&lt;/h4&gt;

&lt;p&gt;Flash/JavaScript replacement techniques and then Cufón have shown web typographers and technologists that a dedicated, open, and standardised webfont format was required. Microsoft’s &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;, Ascender’s &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; Lite extension, &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; and &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; direct font linking all competed on the open ground of the Web in a popularity contest to see which would be adopted first with the most widespread use and browser support. This competition revived the discussion at the &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt; over an open, standardised webfont format. &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; seeks to fill this gap.&lt;/p&gt;

&lt;p&gt;Working with the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; declaration &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; combines compressed sfnt-font data (PostScript, TrueType, or OpenType) with a &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; meta-data bundle to create an open font file perfect for bringing fonts to the Web. &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; files are created with the open source &lt;code&gt;&lt;a href=&quot;https://people.mozilla.com/~jkew/woff/&quot; title=&quot;people.mozilla.com: ~jkew/woff&quot;&gt;sfnt2woff&lt;/a&gt;&lt;/code&gt;. Sub-setting comes down to the host. &lt;acronym title=&quot;Cross Object Resource Sharing&quot;&gt;CORS&lt;/acronym&gt; is available via &lt;acronym title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; response headers. Ultimately the font data can still be extracted, but, if sub-setted, de-packing a &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; font file to extract useful font data for external use requires effort and it’s likely the resulting font data will be limited (due to the sub-setting).&lt;/p&gt;

&lt;p&gt;Currently &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; is supported in Firefox 3.6+, WebKit, Chrome 5+, and the &lt;abbr&gt;IE9&lt;/abbr&gt; development beta.&lt;/p&gt;

&lt;h4 id=&quot;hosting-span-classampampspan-licensing-services&quot;&gt;Hosting &lt;span class=&quot;amp&quot;&gt;&amp;amp;&lt;/span&gt; licensing services&lt;/h4&gt;

&lt;p&gt;While the search for a good, open, and standardised webfont format was underway many foundries and a number of technologists began exploring their own ideas in bringing custom fonts to the Web. Since a number of web hosting and licensing services have sprung up offering a library of fonts at a variety of free and commercial plans: &lt;a href=&quot;http://typekit.com/&quot;&gt;TypeKit&lt;/a&gt;, &lt;a href=&quot;http://kernest.com/&quot;&gt;Kernest&lt;/a&gt;, &lt;a href=&quot;http://fontdeck.com/&quot;&gt;Fontdeck&lt;/a&gt;, &lt;a href=&quot;http://webfonts.fonts.com/&quot;&gt;Monotype’s webfonts.fonts.com&lt;/a&gt;, &lt;a href=&quot;http://www.typotheque.com/webfonts&quot;&gt;Typotheque’s webfont service&lt;/a&gt;, &amp;amp;c. Create an account, browse the library, select, pay, inject a few lines of code, refresh; done.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/fontdeck-homepage.png&quot; alt=&quot;Image: a screenshot of the http://fontdeck.com web site homepage taken December 2010.&quot; title=&quot;fontdeck-homepage.png&quot; width=&quot;624&quot; height=&quot;542&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The fontdeck.com homepage.&lt;/p&gt;

&lt;p&gt;On the technical side these services provide the right or best font (&lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;, &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt;, &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt;, and soon &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt;) to the right browsers — if a query is made by a user using Internet Explorer an &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; file would be served. Sub-setting is done by the providers, depending on which languages and features you are likely or wish to use, and compression is also handled service-side.&lt;/p&gt;

&lt;p&gt;The implementations are largely standards-based and provide very extensive browser support. The web front-ends are easy to use, and have an ample library of quality fonts up for selection between all of the services providers.&lt;/p&gt;

&lt;h3 id=&quot;finding-freely-licensed-fonts&quot;&gt;Finding freely-licensed fonts&lt;/h3&gt;

&lt;p&gt;Now that we can implement custom fonts on the Web using &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; you might wonder where to obtain freely-licensed and free of charge quality fonts for use on the Web (and elsewhere). Places worthy of your attention:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the &lt;a href=&quot;http://openfontlibrary.org/&quot;&gt;openfontlibrary.org&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://theleagueofmoveabletype.com/&quot;&gt;theleagueofmoveabletype.com&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.fontsquirrel.com/&quot;&gt;fontsquirrel.com&lt;/a&gt;, particularly &lt;a href=&quot;http://www.fontsquirrel.com/fontface&quot; title=&quot;FontSquirrel.com: Pre-generated @font-face kits&quot;&gt;the pre-generated &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; kits&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;the &lt;a href=&quot;http://webfonts.info/wiki/index.php?title=Fonts_available_for_%40font-face_embedding&quot;&gt;webfonts.info wiki listing&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;and &lt;a href=&quot;https://code.google.com/webfonts&quot;&gt;Google’s Font Directory&lt;/a&gt; available via their Font &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; directly for linking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;using-codefont-facecode&quot;&gt;Using &lt;code&gt;@font-face&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;If you choose not to use a hosting and licensing service and instead opt to host and reference font files using &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; yourself, creating the various font files and getting the syntax for the declaration correct might seem daunting. In reality using a bullet-proof syntax from to Paul Irish and Font Squirrel’s &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; web front-end it is a piece of cake.&lt;/p&gt;

&lt;h4 id=&quot;creating-codefont-facecode-webfont-files&quot;&gt;Creating &lt;code&gt;@font-face&lt;/code&gt; webfont files&lt;/h4&gt;

&lt;p&gt;If you have a font you want and can use on the web your font is likely to be an &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; or PostScript file, which you need to create compressed and sub-setted &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;, &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt;, &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt;, and &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; files for. The easiest way of meeting all these goals is to use &lt;a href=&quot;http://fontsquirrel.com/fontface/generator&quot; title=&quot;FontSquirrel.com: Create your own @font-face kits&quot;&gt;Font Squirrel’s @font-face web front-end&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/font-squirrel-webfont-generator-museo500-example.png&quot; alt=&quot;Image: a screenshot Font Squirrel&amp;rsquo;s @font-face Kit Generator.&quot; title=&quot;font-squirrel-webfont-generator-museo500-example.png&quot; width=&quot;624&quot; height=&quot;742&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The Font Squirrel &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; Kit Generator.&lt;/p&gt;

&lt;p&gt;Simply select and upload your font after which you can take the easy route and use default settings to let Font Squirrel to generate your kit for you to download, or you can take the ‘Expert’ path and fine tune just about every nuanced detail of the resulting font files. Accessing custom sub-setting allows precision control over sub-setting character types, sub-setting for languages, sub-setting via Unicode tables and ranges, as well as specific characters, presenting a list of all the characters that will be included in the resulting sub-setted font files.&lt;/p&gt;

&lt;p&gt;When you are done download your kit ready for deployment.&lt;/p&gt;

&lt;h4 id=&quot;bullet-proof-codefont-facecode-declarations&quot;&gt;‘Bullet-proof’ &lt;code&gt;@font-face&lt;/code&gt; declarations&lt;/h4&gt;

&lt;p&gt;Writing a bullet-proof &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; is not difficult, but there are some gotchas to watch out for. Let’s get to work.&lt;/p&gt;

&lt;p&gt;Basically we want to feed Internet Explorer an &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; file and feed other browsers &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; files while providing forward support for &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt;-supporting browsers. The order in which we list these files in the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; declarations is important because (surprise, surprise) Internet Explorer will otherwise needlessly download the other files even though it cannot handle them, wasting page load time on unnecessary additional connections and traffic. Thus, using Museo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt; {
  &lt;span class=&quot;property&quot;&gt;font-family:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;&#39;Museo 500&#39;&lt;/span&gt;;
  &lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt; url(&lt;span class=&quot;attribute&quot;&gt;&#39;Museo500.eot&#39;&lt;/span&gt;);
  &lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt; local(&lt;span class=&quot;attribute&quot;&gt;&#39;?&#39;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.woff&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;woff&quot;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.otf&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;opentype&quot;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.svg#museo&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;svg&quot;&lt;/span&gt;);
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dissecting this, we start by giving the font we want to link a name we can reference for font stacks. The attribute is arbitrary.&lt;/p&gt;

&lt;p&gt;Next comes the &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; file, first in the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; list as to avoid &lt;abbr&gt;IE&lt;/abbr&gt; having that aforementioned fit.&lt;/p&gt;

&lt;p&gt;Then the local &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; call, though we actually omit specifying a local &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; declaration, instead entering ‘?’. There are two main reasons for this. Firstly, it prevents the (although rather unlikely) chance that the user will have a font installed (which will be used instead, saving the download) that matches your local attribute but is not actually your desired font wrecking your font stack and possibly your design. It is very unlikely that a font installed will be named ‘?’, and under the &lt;a href=&quot;http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html#9.e&quot; title=&quot;adobe.com:OpenType Feature File Specification&amp;thinsp;&amp;mdash;&amp;thinsp;&amp;sect;9.e. name table&quot;&gt;OpenType specification&lt;/a&gt; any two-byte unicode characters will not work as a font name, excluding Macs entirely from this problem with this solution.&lt;/p&gt;

&lt;p&gt;Secondly, there a variety of bugs still evident in Webkit and Mac &lt;abbr&gt;OS X&lt;/abbr&gt; in handling local references. If you feel certain that there is a high likelihood that a user could have your desired font installed (e.g. it is a freely available and freely licensed popular typeface like &lt;a href=&quot;http://www.josbuivenga.demon.nl/museo.html&quot; title=&quot;josbuivenga.demon.nl: MUSEO, a free font from exljbris font foundry&quot;&gt;Museo&lt;/a&gt;) and it would be unlikely that there could be another font installed that bears the same local reference then making &lt;code&gt;local&lt;/code&gt; entries is quite OK — it comes to weighing up the likelihood of either instance.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;In case you do want to define a local &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; reference it might seem odd that you can write two slightly different entries for &lt;code&gt;local&lt;/code&gt; in &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt;, for example: &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt; local(&quot;&lt;span class=&quot;attribute&quot;&gt;Museo 500 Italic&lt;/span&gt;&quot;), local(&quot;&lt;span class=&quot;attribute&quot;&gt;Museo500-Italic&lt;/span&gt;&quot;),&lt;/code&gt;. Huh? This is because some browsers refer to local fonts via their PostScript names. To find the local names for a font under Mac &lt;abbr&gt;OS X&lt;/abbr&gt; open Font Book, select your font and select &lt;em&gt;Preview&lt;/em&gt; &amp;rarr; &lt;em&gt;Show Font Info&lt;/em&gt; (or &amp;#8984; + I). For Windows there is a downloadable &lt;a href=&quot;https://www.microsoft.com/typography/TrueTypeProperty21.mspx&quot; title=&quot;Microsoft.com: Microsoft Typography&amp;thinsp;&amp;mdash;&amp;thinsp;Font properties extension&quot;&gt;&lt;em&gt;Font properties extension&lt;/em&gt;&lt;/a&gt;. Once installed right-click and zip to &lt;em&gt;Properties&lt;/em&gt; on a font file and click on the &lt;em&gt;Names&lt;/em&gt; tab to see the name details.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/font-book-postscript-font-name-screenie.png&quot; alt=&quot;Image: Screenshot of Mac OS X Font Book demonstrating the Font Info view mode&quot; title=&quot;font-book-postscript-font-name-screenie.png&quot; width=&quot;606&quot; height=&quot;408&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Screenshot of Mac OS X&amp;rsquo;s Font Book demonstrating the Font Info view mode.&lt;/p&gt;

&lt;p&gt;Then come the &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; and &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TT&lt;/acronym&gt; &lt;code&gt;&lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt;&lt;/code&gt; definitions, followed by the &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; definition. Note the &lt;code&gt;#museo&lt;/code&gt; in &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.svg#museo&quot;&lt;/span&gt;&lt;/code&gt;. This is because &lt;acronym title=&quot;Scalable Vector Graphics&quot;&gt;SVG&lt;/acronym&gt; files are &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; files and thus we need to reference the starting &lt;code&gt;div&lt;/code&gt; (e.g. after the opening meta-data) that references the start of the font vector paths.&lt;/p&gt;

&lt;p&gt;That’s it; done. Credit and kudos goes to &lt;a href=&quot;http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/&quot; title=&quot;paulirish.com: Bulletproof @font-face syntax&quot;&gt;Paul Irish for revealing nitty-gritty details of writing bullet-proof &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; syntax definitions&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;problem-double-setting-styles-and-variants&quot;&gt;Problem: ‘double-setting’ styles and variants&lt;/h5&gt;

&lt;p&gt;When using &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;, we are likely to be dealing with separate font files of the same family for the various font styles, e.g., &lt;code&gt;foobar-regular.otf&lt;/code&gt;, &lt;code&gt;foobar-italic.otf&lt;/code&gt;, &lt;code&gt;foobar-bold.otf&lt;/code&gt;, &lt;code&gt;foobar-smallcaps.otf&lt;/code&gt;, and so forth.&lt;/p&gt;

&lt;p&gt;This can become an issue — consider elements such as &lt;code&gt;strong&lt;/code&gt; and &lt;code&gt;em&lt;/code&gt; which are styled with setting the face in a bold and italic respectively. If we declare the italic as we would normally in the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; (as we would to get the style into our design) what will happen is that the italic is digitally italicised (fake italics) by the font rendering engine. Result? Our italic font or bold font is taken and digitally italicised or boldened, creating ugly results.&lt;/p&gt;

&lt;p&gt;If we avoid or overwrite the various declarations (e.g. &lt;code&gt;&lt;span class=&quot;element&quot;&gt;em&lt;/span&gt; { &lt;span class=&quot;property&quot;&gt;font-style:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;normal&lt;/span&gt;; }&lt;/code&gt;) and for whatever reason our desired &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; font is not available, we rob other fonts in the font-stack of their styling. We overcome both these issues by setting the font styles within the &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; declaration, informing the user agent that we are in fact defining an italic or a bold already and that these should be left as is when used to set something that is declared via the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; to be italic or bold:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt; {
  &lt;span class=&quot;property&quot;&gt;font-family:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;&#39;Museo 500&#39;&lt;/span&gt;;
  &lt;span class=&quot;highlighted&quot;&gt;&lt;span class=&quot;property&quot;&gt;font-style:&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;italic&lt;/span&gt;;&lt;/span&gt;
  &lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt; url(&lt;span class=&quot;attribute&quot;&gt;&#39;Museo500.eot&#39;&lt;/span&gt;);
  &lt;span class=&quot;property&quot;&gt;src:&lt;/span&gt; local(&lt;span class=&quot;attribute&quot;&gt;&#39;?&#39;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.woff&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;woff&quot;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.otf&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;opentype&quot;&lt;/span&gt;),
       url(&lt;span class=&quot;attribute&quot;&gt;&quot;Museo500.svg#museo&quot;&lt;/span&gt;) format(&lt;span class=&quot;attribute&quot;&gt;&quot;svg&quot;&lt;/span&gt;);
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&quot;considerations&quot;&gt;Considerations&lt;/h4&gt;
&lt;p&gt;Caveats, drawbacks, and compromises exist in everything, and type setting is not excluded. There are a number of considerations that need to be made and kept in mind when putting type on the Web. Many of the compromises that are made in the print world do not apply to the web medium, but others take their place.&lt;/p&gt;

&lt;h5 id=&quot;more-ne-better&quot;&gt;More ≠ better&lt;/h5&gt;

&lt;p&gt;Corresponding to the growing availability of new fonts for the Web it is important to note that more fonts does not necessitate instant better typography. Fonts are assets. They may be thought of as a tool in the toolbox; a wallpaper in an interior designer’s arsenal. She might have access to a thousand different patterns and colours of wallpaper but if most of them are of a poor quality material or just lack the required pleasing grace that is required to open up and brighten (or darken as the situation merits) the space they are applied to then having another thousand more does little good.&lt;/p&gt;

&lt;h4 id=&quot;for-screen-or-print&quot;&gt;For screen or print?&lt;/h4&gt;

&lt;p&gt;In addition to artistic concerns, many typefaces available as fonts for the Web have not been designed for web (or more accurately screen) use. Type design and typography blossomed in the print industry. There are hundreds of exquisite professionally designed and cut typefaces and families available for all types of print work, but many of them have not been readied for use on a screen. Good fonts that were designed or have been carried across to the digital world have been carefully optimised to render perfectly on a pixel screen. This optimisation is known as &lt;em&gt;hinting&lt;/em&gt; and good web fonts subsequently have good &lt;em&gt;hinting tables&lt;/em&gt;.&lt;/p&gt;

&lt;h5 id=&quot;sub-setting&quot;&gt;Sub-setting&lt;/h5&gt;

&lt;p&gt;A digital font is data, and large fonts, i.e. ones that have a large glyph set covering a large character range will begin to become sizeable assets for the user agent to download for rendering. Two techniques are used here to reduce the size of font assets to make them smaller thus reducing network latency.&lt;/p&gt;

&lt;p&gt;The first technique is called sub-setting, and is a process of removing glyphs for characters from a font file that are not used. Imagine a great high-quality superfamily with fantastic language support that also boasts additional historical ligatures, various extra stylistic sets, swashes, small-capitals, and more. A single font for even just the roman of this family could exceed a 1024 kB. If none other than &lt;acronym title=&quot;American Standard Code for Information Interchange&quot;&gt;ASCII&lt;/acronym&gt;, Latin 1, Latin Extended-A, and Latin Extended-B is needed (which covers all Western European Languages with a bit of wiggle room) there are a lot of unused characters for which glyphs are downloaded superfluously.&lt;/p&gt;

&lt;p&gt;Sub-setting can be done in a font editor (such as &lt;a href=&quot;http://fontforge.sourceforge.net/&quot;&gt;FontForge&lt;/a&gt;, the free software font editor). Simply open your font, select unused character blocks and delete them; save — make sure you keep a copy of your original though.&lt;/p&gt;

&lt;h5 id=&quot;compression&quot;&gt;Compression&lt;/h5&gt;

&lt;p&gt;The second technique is compression. Compressing font asset is much like compressing files to reduce the size of email attachments. Through compressing font files we can further reduce latency and network traffic. This operation is done server-side, compressing various assets that the user agents requests which upon download are decompressed on the fly and used to render the web page.&lt;/p&gt;

&lt;p&gt;The two most popular methods are through external extension modules to the Apache web server; &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_deflate.html&quot;&gt;mod_deflate&lt;/a&gt; and &lt;a href=&quot;http://schroepl.net/projekte/mod_gzip/&quot;&gt;mod_gzip&lt;/a&gt;. It is likely that your web hosting service will provide support for at least one of these (if not it is a worthy request to make — after all lowering their latency and traffic is in their own operational interest).&lt;/p&gt;

&lt;p&gt;If you find yourself using Microsoft’s &lt;a href=&quot;http://technet.microsoft.com/en-us/library/cc771003%28WS.10%29.aspx&quot; title=&quot;Microsoft.com: IIS 7.0 Documentation&amp;thinsp;&amp;mdash;&amp;thinsp;Using HTTP Compression (IIS 7.0)&quot;&gt;&lt;acronym title=&quot;Internet Information Services&quot;&gt;IIS&lt;/acronym&gt; there is a &lt;acronym title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; Compression setting&lt;/a&gt; that can be enabled and tuned.&lt;/p&gt;

&lt;h6 id=&quot;configuring-moddeflate&quot;&gt;Configuring mod_deflate&lt;/h6&gt;

&lt;p&gt;Once installed and enabled we can configure mod_deflate in our &lt;code&gt;.htaccess&lt;/code&gt; file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Compression using deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

&amp;lt;FilesMatch &quot;\\.(js|css|html|htm|php|xml|txt|otf|ttf|eot|svg|woff)$&quot;&amp;gt;
    SetOutputFilter DEFLATE
&amp;lt;/FilesMatch&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In &lt;code&gt;FilesMatch&lt;/code&gt; list the file extensions for which files mod_deflate should compress.&lt;/p&gt;

&lt;h6 id=&quot;configuring-modgzip&quot;&gt;Configuring mod_gzip&lt;/h6&gt;

&lt;p&gt;Similarly mod_gzip can also be configured in the &lt;code&gt;.htaccess&lt;/code&gt; file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Gzips content if possible
&amp;lt;IfModule mod_gzip.c&amp;gt;
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl|otf|ttf|eot|svg|woff)$
    mod_gzip_item_include handler ^cgi-script$
    mod_gzip_item_include mime ^text\.*
    mod_gzip_item_include mime ^application/x-javascript$
    mod_gzip_item_include mime ^application/json$
    mod_gzip_item_include mime ^application/vnd.ms-fontobject$
# There is no content-type for OTF yet, so we can get away by just
# listing the extension in the mod_gzip_item include file listing.
# For the sake of being good I have added the vendor-specific
# IANA content-type for EOT.
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
    mod_gzip_send_vary On
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Just like mod_deflate’s &lt;code&gt;FilesMatch&lt;/code&gt; using &lt;code&gt;mod_gzip_item_include file&lt;/code&gt; we can list the file extensions for files that mod_gzip should seek to compress. The content types can also be listed via the &lt;code&gt;mod_gzip_item_include mime&lt;/code&gt; lines by notating the &lt;a href=&quot;http://www.iana.org/assignments/media-types/&quot;&gt;IANA media types&lt;/a&gt; as done for the vendor-specific &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; &lt;code&gt;&lt;a href=&quot;http://www.iana.org/assignments/media-types/application/vnd.ms-fontobject&quot; title=&quot;IANA.org&amp;thinsp;&amp;mdash;&amp;thinsp;vnd.ms-fontobject content-type&quot;&gt;vnd.ms-fontobject&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can test how well compression is performing through a variety of browser developer plugins or by using Mark Nottingham’s REDbot, a robot that checks &lt;acronym title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; resources for common problems and pitfalls. For example, when checking &lt;code&gt;&lt;a href=&quot;http://redbot.org/?uri=http%3A%2F%2Fsitepoint.com&quot; title=&quot;REDbot: sitepoint.com&quot;&gt;http://sitepoint.com&lt;/a&gt;&lt;/code&gt; REDbot notes via the &lt;code&gt;Content-Encoding&lt;/code&gt; that mod_gzip is in use. When &lt;a href=&quot;http://redbot.org/?descend=True&amp;amp;uri=http://sitepoint.com/&quot; title=&quot;REDbot: sitepoint.com &amp;thinsp;&amp;mdash;&amp;thinsp;checking assets&quot;&gt;checking the assets&lt;/a&gt; we can see that 84% of the original size of the page (when decompressed) is saved through the use of mod_gzip, with detailed figures for the various assets.&lt;/p&gt;

&lt;h5 id=&quot;caching&quot;&gt;Caching&lt;/h5&gt;

&lt;p&gt;FInally we can also cache our font files reducing both latency and network traffic. Caching allows us to inform the user agents that access our site and download our assets that some of the assets are unlikely to change in the foreseeable future, and as such downloading them again when accessing out site at a later stage will be a waste of time and data — just store (‘cache’) these assets in the user agent’s cache locally. Assets that would be unlikely to change would likely include stylesheets (&lt;code&gt;.css&lt;/code&gt; files), JavaScript files for site functionality (&lt;code&gt;.js&lt;/code&gt; script files) and of course font assets.&lt;/p&gt;

&lt;p&gt;We can cache various assets via the &lt;code&gt;.htaccess&lt;/code&gt; file by again selecting a range of content types with &lt;code&gt;FilesMatch&lt;/code&gt; and then setting a maximum time that these assets should be cached by user agents before downloading the asset again (to ensure cached copies remain updated). Note: the &lt;code&gt;max-age&lt;/code&gt; time is set in seconds (here 2592000 seconds = 43,200 minutes = 720 hours = 30 days).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Cache following file types for one month
&amp;lt;FilesMatch &quot;.(js|jpeg|jpg|...|otf|ttf||eot|svg|woff)$&quot;&amp;gt;
    Header set Cache-Control &quot;max-age=2592000&quot;
&amp;lt;/FilesMatch&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&quot;and-thats-it&quot;&gt;And that’s it!&lt;/h3&gt;

&lt;p&gt;Now empowered to apply custom fonts onto the Web either self-hosted or via a web font licensing and hosting service be sure to look out for the second article in the series on styling that freshly set type all pretty.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;df-logo&quot; class=&quot;calloutRight&quot;&gt;&lt;img src=&quot;/files/images/design-festival-logo-motif.png&quot; alt=&quot;An image of the DesignFestival.com logo&quot; title=&quot;The DesignFestival.com logo&quot; width=&quot;39&quot; height=&quot;39&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This article was originally written by me for, and published on DesignFestival.com&amp;thinsp;&amp;mdash;&amp;thinsp;&lt;em&gt;&lt;a href=&quot;http://designfestival.com/getting-type-to-the-web/&quot; title=&quot;DesignFestival.com: Getting Type to the Web&quot;&gt;Getting Type to the Web&lt;/a&gt;&lt;/em&gt;. It has been been republished here with permission.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Anti-procrastination wallpaper and some musings</title>
        <link href="http://klepas.org/anti-procrastination-wallpaper-and-musings"/>
        <updated>2011-02-26T00:00:00+00:00</updated>
        <id>http://klepas.org/anti-procrastination-wallpaper-and-musings</id>
        <content type="html">&lt;p&gt;I procrastinate. Just about everyone does. I do it chiefly when my tasks seems too hard or I can’t seem to summon the motivation to do it, and I just “quickly” dash off to check this (email), or that (my news reader), or the other (&lt;a href=&quot;http://www.todaysbigthing.com/2011/02/14&quot; title=&quot;TodaysBigThing.com: Explosive Ordnance Disposal Marine Gets Down&quot;&gt;a video of an explosive ordnance disposal marine dancing&lt;/a&gt;). To keep me in line (and because I was getting bored of my recent wallpapers) I quickly did up a motivational wallpaper.&lt;/p&gt;

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

&lt;p&gt;&lt;img src=&quot;/files/images/zaudern_small.jpg&quot; alt=&quot;Anti-procrastination wallpaper with motivational text on a grey background.&quot; title=&quot;Zaudern ist eine Verschwendung von deinem Potenzial; zur&amp;uuml;ck an die Arbeit.&quot; width=&quot;624&quot; height=&quot;390&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;German: &lt;em&gt;Zaudern ist eine Verschwendung von deinem Potenzial; zur&amp;uuml;ck an die Arbeit.&lt;/em&gt; (&amp;lsquo;Procrastination is a waste of your potential; get back to work.&amp;rsquo;). Feel free to grab &lt;a href=&quot;/files/images/zaudern.jpg&quot; title=&quot;Anti-procrastination wallpaper&quot;&gt;a full-sized version&lt;/a&gt; for yourself.&lt;/p&gt;

&lt;h3 id=&quot;two-realisations-on-procrastination&quot;&gt;Two realisations on procrastination&lt;/h3&gt;

&lt;p&gt;After musing over why I procrastinate (somewhat ironically I may have been procrastinating at the time) I came to two small epiphanies.&lt;/p&gt;

&lt;h4 id=&quot;dealing-with-hard-tasks&quot;&gt;Dealing with hard tasks&lt;/h4&gt;

&lt;p&gt;The first concerned to-dos that seem too hard or complicated; I feel like I don’t know where to begin? Classic examples for me have been writing an essay, writing an article for this website, or getting that design job started. My solution has been fairly simple: explore and break down the task. A task called &lt;em&gt;“Write major essay on Foucault’s theories on power and power relations”&lt;/em&gt; is an abstract and unappealing to-do. This should become a project ideally, under which other tasks are organised, including for example: “research topic”, “brainstorm topic”, “construct core argument or thesis”, “write an outline”, “write first draft”, “send draft to friends for review”, “final polishing”, and “hand in essay”.&lt;/p&gt;

&lt;p&gt;So if you come across a to-do that seems abstract try to break it down. A good sign that hints to an overly abstract and problematic task is a one whose estimated completion time I can’t estimate with certainty. Solution: take that say three-hour or four-hour task into smaller, digestible and easier tasks.&lt;/p&gt;

&lt;h4 id=&quot;tasks-you-just-dont-want-to-do&quot;&gt;Tasks you just don’t want to do&lt;/h4&gt;

&lt;p&gt;The second was over those things that sit in my to-do list but I don’t particularly want to do. It might seem boring, annoying, tiresome, arduous (see above) or whatever else. The bottom line is they need to be processed (that’s why it’s in your to-do list, right?). Besides the obvious — define what the problem is (e.g. is it too abstract?) — realise that the item is in your to-do list for generally one of two reasons:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;You actually want to get it done. If this it case then just get it done and think of the grander scheme of things (the satisfaction of getting it done and getting to the next phase in the project). If possible break down the task into smaller tasks.&lt;/li&gt;
  &lt;li&gt;It’s something you accepted (for any number of reasons) that you now, in retrospect regret taking up. At this point you have a fork: get it done and learn from the experience to avoid taking on a task like it again, or if it actually needs reconsideration revisit the item (and possibly project); you could delegate it, consult the friend or client or whoever is involved. Importantly: learn from the experience and try to avoid it occurring again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Why do you procrastinate? How do you avoid it?&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Why I have not bought an iPad</title>
        <link href="http://klepas.org/why-i-have-not-bought-an-ipad"/>
        <updated>2011-02-15T00:00:00+00:00</updated>
        <id>http://klepas.org/why-i-have-not-bought-an-ipad</id>
        <content type="html">&lt;p&gt;Besides the cost or more specifically the &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Opportunity_Cost&quot;&gt;opportunity cost&lt;/a&gt; (saving that money, grabbing &lt;a href=&quot;http://www.steampunkcouture.com/for-sale/13/1/73/Lady%27s-Victorian-Military-coat&quot;&gt;this elegant Victorian military coat&lt;/a&gt; for the upcoming winter), or a list of other goodies and necessities), there a range of reasons why I haven’t purchased an iPad (or other tablet for that matter).&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This might read as a scathing assessment, but it is really more a personal reality check after having fantasized about the iPad so much recently.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/ipad-apple-range.jpg&quot; alt=&quot;Photo of a cut of the Apple device range.&quot; title=&quot;A cut of the Apple device range&quot; width=&quot;624&quot; height=&quot;194&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;The iPad and a cut of its brothers and sisters from the Apple range. &lt;a href=&quot;http://www.flickr.com/photos/mehradhm/4629522187/&quot; title=&quot;Flickr.com: My Collection&quot;&gt;Photo&lt;/a&gt; by Mehrad.HM, licensed &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/&quot;&gt;&lt;acronym title=&quot;Creative Commons Attribution NonCommercial ShareAlike 2.0 Generic&quot;&gt;CC-NC-SA 2.0&lt;/acronym&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To me the iPad sits between a smartphone and a laptop. Both are established devices catering for a fairly developed (and changing) list of tasks and use cases. Let’s take a look:
* the iPad definitely does some things better than a smartphone, but;
* it’s bigger (doesn’t fit into your jeans pocket), and vitally, doesn’t do telephony;
* the iPhone does an OK job for things an iPad does pretty well (and makes calls),
* and for tasks the tablet does pretty well, my MacBook does even better;
* thus where I need mobility, I stick to the iPhone,
* and when I know I need to get proper work done, I take the laptop.&lt;/p&gt;

&lt;h3 id=&quot;exploring-the-use-cases&quot;&gt;Exploring the use cases&lt;/h3&gt;
&lt;p&gt;To explain this thinking I’ll run through a few use cases.&lt;/p&gt;

&lt;h4 id=&quot;audio-visual&quot;&gt;Audio-visual&lt;/h4&gt;
&lt;p&gt;I listen to music all the time. I tune into podcasts a lot too, and I also watch YouTube videos and films fairly regularly. I’ll either be out and about using the iPhone (music, podcasts, and the occasional YouTube video) or at home, using my sound system or my Sennheiser headphones. If I want to watch a film, I’ll watch it on the TV or my laptop with the sound system. Use case for the iPad: &lt;em&gt;none&lt;/em&gt;.&lt;/p&gt;

&lt;h4 id=&quot;browsing&quot;&gt;Browsing&lt;/h4&gt;
&lt;p&gt;If I want to browse the web, it’s typically for a snippet of important information that I need while mobile (e.g. travel time tables), or to pass the time catching up on a few webcomics — both tasks the iPhone is quite fine for. Otherwise I’m in front of my MacBook. Use case for the iPad: &lt;em&gt;next to none&lt;/em&gt;.&lt;/p&gt;

&lt;h4 id=&quot;taking-pictures&quot;&gt;Taking pictures&lt;/h4&gt;
&lt;p&gt;I don’t take that many pictures. If I want to take pictures I could use the iPad… oh, wait, nevermind. When I to take photos I’ll either want a quick shot of something for which the iPhone suffices or I’ll want to actually shoot proper pictures, and I’ll bring along my &lt;acronym title=&quot;Digital single-lens reflex camera&quot;&gt;DSLR&lt;/acronym&gt;. I think the iPad actually goes short here: a camera in a mobile device is something most users expect from modern devices and especially Apple devices. Use case for the iPad: it has no camera…, i.e. &lt;em&gt;none&lt;/em&gt;.&lt;/p&gt;

&lt;h4 id=&quot;reading&quot;&gt;Reading&lt;/h4&gt;
&lt;p&gt;I find myself reading a lot, particularly for my university courses. When I want to read ebooks or &lt;abbr&gt;PDF&lt;/abbr&gt;s I take my Kindle 3, which has a better battery life (cheers to the &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Eink&quot;&gt;E ink&lt;/a&gt; screen) and is comfortable on the eyes over a long period of time (again, the E ink screen). Use case for the iPad: I wouldn’t want to spend $500+ a device that doubles as a mirror; &lt;em&gt;none&lt;/em&gt;.&lt;/p&gt;

&lt;h4 id=&quot;other-considerations&quot;&gt;Other considerations&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;no multi-tasking&lt;/li&gt;
  &lt;li&gt;no Adobe Flash;&lt;/li&gt;
  &lt;li&gt;no &lt;acronym title=&quot;High-Definition Multimedia Interface&quot;&gt;HDMI&lt;/acronym&gt; out;&lt;/li&gt;
  &lt;li&gt;no widescreen (again something I think users would almost come to expect from Apple, though, granted this was probably a compromise in the product design);&lt;/li&gt;
  &lt;li&gt;a closed application ecosystem;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://store.apple.com/us/product/MC533LL/B&quot;&gt;attachable keyboard&lt;/a&gt;? — if I had an iPad and the attachable Apple keyboard (for a whopping &lt;abbr&gt;USD&lt;/abbr&gt; $69) I’d wonder why I didn’t bring my laptop.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;good-use-cases&quot;&gt;Good use cases?&lt;/h4&gt;
&lt;blockquote cite=&quot;sting7k&quot;&gt;
    &lt;p&gt;Hard to say. Maybe a nice solid platter to serve appetizers and have a fancy wall paper underneath. Too thin to be a door stop.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Beyond the glorified paperweight, electronic picture frame, or the yuppie coffee table highlight (providing gaming, music, basic browsing, YouTube, around and near the coffee table) I think there are a few good use cases for the iPad. For me the coffee table appliance is attractive, but an incentive to waste my time and when I need to do work my MacBook is just as mobile, and better.&lt;/p&gt;

&lt;p&gt;Those aside, there are a few specialized apps for specific industries (e.g. mining, medical, education perhaps, …) for which the iPad is probably great.&lt;/p&gt;

&lt;h3 id=&quot;the-smartphone-span-classampampspan-laptop-market&quot;&gt;The smartphone &lt;span class=&quot;amp&quot;&gt;&amp;amp;&lt;/span&gt; laptop market&lt;/h3&gt;
&lt;p&gt;The smartphone market is becoming more competitive with the entrance of direct iPhone competitors. The existing BlackBerry range and the recent rise of Android phones offer a good range of features that keep prices competitive. Bottom line: you probably need a mobile phone, and smartphones are cheaper than tablets (which generally can’t do telephony).&lt;/p&gt;

&lt;p&gt;By a similar accord the entry level laptop or netbook market is also highly competitive. In fact many netbooks are cheaper in price than an iPad (e.g. the Asus EeePC) while &lt;a href=&quot;http://store.apple.com/us/browse/home/shop_mac/family/macbook?mco=MTM3NDg3NTI&quot;&gt;a fully-fledged MacBook&lt;/a&gt; is only $500 more expensive than the basic iPad model and $170 more expensive than the upper range iPad. Bottom line: most netbooks are cheaper, and a decent laptop is only a tad more expensive.&lt;/p&gt;

&lt;h3 id=&quot;closing&quot;&gt;Closing&lt;/h3&gt;
&lt;p&gt;I prefer using tools that do one or a few things well, and avoid tools that do many things poorly. The iPad remains a tool that does a few things better than my phone, but lacking telephony and the power of a proper laptop it ends up performing many of the tasks required in my use cases poorly:
* my iPhone is chiefly a phone, and fulfils a range of smartphone functions quite well;
* my Kindle is chiefly a reading device, and it does that perfectly;
* my Canon &lt;acronym title=&quot;Digital single-lens reflex camera&quot;&gt;DSLR&lt;/acronym&gt; is… a camera, and shoots pictures perfectly;
* and my laptop does just about everything else I need.&lt;/p&gt;

&lt;p&gt;Sorry iPad.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>How I browse the Web</title>
        <link href="http://klepas.org/how-i-browse-the-web"/>
        <updated>2011-01-14T00:00:00+00:00</updated>
        <id>http://klepas.org/how-i-browse-the-web</id>
        <content type="html">&lt;p&gt;Developers, authors, and service providers of content and applications have an obligation to try to prevent harm from coming to their users by use of their work. Users have a natural inclination in this regard; i.e. looking after yourself. The former group need to remain on top of the latest and best practices to keep their users safe. However, as users are the recipients of both good and bad security, it is they who will benefit most from staying informed&lt;/p&gt;

&lt;p&gt;There is a nice quote I remember reading a few years back:&lt;/p&gt;

&lt;blockquote cite=&quot;Rick Cook&quot;&gt;
    &lt;p&gt;Building software is a constant struggle between software engineers trying to build bigger, better and more idiot proof software and the Universe trying to build bigger and better idiots. So far the Universe is winning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although the design vs idiocy struggle isn’t really over (my good friend &lt;a href=&quot;http://arcwhite.org/&quot;&gt;Andy White&lt;/a&gt; reminded me of product warning labels), we have realised that we can teach people a variety of habits and shape their expectations through use. That aside, I think the quote from above can be aptly reworded to fit a ‘new’ problem we have encountered:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Building software is a constant struggle between software engineers trying to build bigger, better, and more secure software and malicious parties trying to find bigger and better loopholes. I&amp;rsquo;m not sure who is winning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The onus has always been on the service provider to ensure user security (and privacy), and while that responsibility has not shifted (if it failed on your watch expect legal repercussions), clueing in users will help in the good design vs malicious intent struggle by making life harder for those with ill intentions.&lt;/p&gt;

&lt;h3 id=&quot;my-beginning-on-the-web&quot;&gt;My beginning on the Web&lt;/h3&gt;

&lt;p&gt;I have thankfully had very few encounters with malicious software in my almost ten years of working on computers. Before I had access to the Internet I played Diablo &lt;abbr&gt;II&lt;/abbr&gt; and Starcraft on an old Windows 98 box that had little to no connection beyond itself (I didn’t have the money to afford a &lt;acronym title=&quot;Universal Serial Bus&quot;&gt;USB&lt;/acronym&gt; memory stick back then). When I finally got my own computer with ’net access it wasn’t long before it ran SuSE Linux and after various Linux distributions I now find myself chiefly on a Mac. While Linux and the Mac are generally accredited with being more secure in their integral design than Windows has, the Web remains an interesting playground, and browsing behaviours contribute to privacy and security.&lt;/p&gt;

&lt;p&gt;For a long time I had no idea what third-party cookies were, yet alone what a cookie was. JavaScript and Java were analogous to me. &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; was some weird way of writing up what the web page in its rendered finality seemed to do a lot better and prettier, and everything in Flash (when it worked) was absolutely stunning and awesome. Disillusionment swiftly followed as I wanted to publish my own content onto the Web.&lt;/p&gt;

&lt;p&gt;It was not until I myself wanted to publish content onto the Web that I began to understand the technologies I was using and even relying on every day. I had become (and still largely am) impatient in my use of software, a characteristic that is widespread in most users of computers. We want to get it as fast as possible, install it as fast as possible, get it going as fast as possible and get the desired results (which may or may no coincide with the program’s actual functionality) as fast possible. User manuals seem a concept married in the past, together with big grey boxes and &lt;acronym title=&quot;Cathode Ray Tube&quot;&gt;CRT&lt;/acronym&gt; monitors.&lt;/p&gt;

&lt;p&gt;This impatience (and the ease by which we can be distracted it is coupled with) is a major hurdle in finding the interest and dedication to learn about the technologies of the Internet which are used by almost two billion people.&lt;/p&gt;

&lt;h3 id=&quot;my-learned-practices&quot;&gt;My learned practices&lt;/h3&gt;

&lt;p&gt;Two core principles form the foundation of good security and privacy for me: Trust No One (&lt;acronym title=&quot;Trust No One&quot;&gt;TNO&lt;/acronym&gt;) and no or minimized disclosure. Following these tenets can be inconvenient and at times seemingly unnecessarily bothersome but I strongly believe they have kept my financial information secure, my passwords impossible to guess and near impossible to brute force within an average human life time (&lt;a href=&quot;http://howsecureismypassword.net/&quot;&gt;if not thousands of years&lt;/a&gt;), malware off my computers, and my personal information safe.&lt;/p&gt;

&lt;p&gt;Each of the following lessons and practices branch from and support these two principles.&lt;/p&gt;

&lt;h4 id=&quot;a-better-browser&quot;&gt;A better browser&lt;/h4&gt;

&lt;p&gt;The first step I took on Windows was leaving Internet Explorer in the dirt and getting a safer browser. While just about all of the major modern browsers nowadays are fairly reliable and secure (and can be tweaked for improvement) the default settings and behaviours still sets them apart. That aside, pick from Firefox, Safari, Chrome, Opera, Epiphany, (and/)or Konqueror.&lt;/p&gt;

&lt;p&gt;I primarily use Firefox on my Mac.&lt;/p&gt;

&lt;h4 id=&quot;a-password-manager&quot;&gt;A password manager&lt;/h4&gt;

&lt;p&gt;For a long time I withheld from using a password manager or keyring. I gave the one inbuilt in Firefox a spin twice and found it sucked hard the moment I was away from my computer. It did a lot of things well but I also wished it could do a few things more: store secure notes and financial account details. Later I found what I craved in &lt;a href=&quot;http://agilewebsolutions.com/onepassword&quot;&gt;1Password&lt;/a&gt;, which integrates with my browser and phone.&lt;/p&gt;

&lt;p&gt;The primary upside of using a good password manager is you stop using the same three or four passwords for all your online accounts, particularly given the likelihood that your passwords were never that good as per their memorability. With a good password manager you can auto-generate pseudo-random maximum &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Entropy_%28information_theory%29&quot;&gt;entropy&lt;/a&gt; passwords for every account and have them auto-filled when revisiting a web site later.&lt;/p&gt;

&lt;p&gt;There are a bunch of password managers out there supporting a variety of operating systems, browsers, and features — do some research and fine one that suits you.&lt;/p&gt;

&lt;h4 id=&quot;dealing-with-pop-ups-amp-listed-malicious-content&quot;&gt;Dealing with pop-ups &amp;amp; listed malicious content&lt;/h4&gt;

&lt;p&gt;Third was killing pop-ups, and not just the advertisement variety. Most good browsers have their own in-built pop-up blockers. If your browser doesn’t I would reconsider using it at all. Similarly good browsers should automatically stop you from inadvertently accessing listed malicious web sites (and web sites that have been hijacked to serve malicious content) along with phishing and malware.&lt;/p&gt;

&lt;h4 id=&quot;kicking-ads&quot;&gt;Kicking ads&lt;/h4&gt;

&lt;p&gt;Although not inherently unsafe or a threat to privacy, ads are worth mentioning here. This is &lt;a href=&quot;http://www.infoworld.com/t/applications/firefox-ad-blocker-extension-causes-angst-900&quot;&gt;a contentious issue to some&lt;/a&gt;, but to me it’s dead simple: I refuse to browse the Web glutted with ads, particularly the distasteful, useless, and annoying variety that incessantly get in the way of me trying to do my work. I would probably be quite content with an ad blocker that blocked ‘annoying’ adverts only but getting a computer to distinguish between the annoying and passable is nigh impossible.&lt;/p&gt;

&lt;p&gt;Ultimately my position on adverts is an extension of my strong belief that it is my choice how to render a Web page — scripting, sudden redirections, pop-ups, and adverts can take away that control and thus I choose how and when to enable them.&lt;/p&gt;

&lt;p&gt;To block adverts I use &lt;a href=&quot;http://adblockplus.org/&quot;&gt;AdBlock Plus&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;javascript-execution-control&quot;&gt;JavaScript execution control&lt;/h4&gt;

&lt;p&gt;JavaScript (&lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt;) is a &lt;em&gt;powerful&lt;/em&gt; tool for adding a lot of extra pretty and nice features to enhance a Web experience. JavaScript can power enhanced document navigation, event handling (e.g. logging in/out; adding items to a shopping basket), animation, and more. JavaScript can also be used to launch 100 new tabs or windows of your browser, automatically download and execute malevolent software, hijack your accounts on social networking sites, and more.&lt;/p&gt;

&lt;p&gt;While JavaScript is generally executed in a &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Sandbox_%28computer_security%29&quot;&gt;sandbox&lt;/a&gt; environment and under the terms of a &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Same_origin_policy&quot;&gt;same origin policy&lt;/a&gt;, one bored afternoon’s visit to an off-site link listed on Encyclopedia Dramatica many moons ago caused me to reconsider permitting any and all JavaScript from automatic execution upon opening a Web page.&lt;/p&gt;

&lt;p&gt;I use &lt;a href=&quot;http://noscript.net/&quot;&gt;NoScript&lt;/a&gt; which allows me to make selective decisions about what to allow and what to block by default, while the page has already loaded (e.g. enabling a single embedded Java or Flash applet while continuing to block everything else), and for future visitations to that domain.&lt;/p&gt;

&lt;p&gt;There’s &lt;a href=&quot;http://www.youtube.com/watch?v=GzBqnLgOzwM&quot;&gt;a good introductory video on NoScript by CNET on YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;forcing-secure-connections&quot;&gt;Forcing secure connections&lt;/h4&gt;

&lt;p&gt;Logons to web sites like Facebook or Twitter are kept active over time via &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/HTTP_cookie&quot;&gt;cookies&lt;/a&gt; through expiry timestamps. When you login to Facebook, a Facebook server notes that you have logged in and issues you a cookie with your account and a session &lt;abbr&gt;ID&lt;/abbr&gt; hash, linking your future requests with responses from the server that match your account via that cookie. There is however nothing to stop a third part from intercepting network traffic, noting the cookie, and automatically gaining access to your account by simply making a request to Facebook and sending them your cookie.&lt;/p&gt;

&lt;p&gt;Attacks like these are long and well documented, and have been simple to orchestrate for years (and now as easy as clicking through a menu with &lt;a href=&quot;http://codebutler.com/firesheep&quot;&gt;Firesheep&lt;/a&gt;). The good news is that they are just easy to protect oneself from: &lt;acronym title=&quot;HyperText Transfer Protocol Secure&quot;&gt;HTTPS&lt;/acronym&gt;; an ongoing secure &lt;acronym title=&quot;HyperText Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; connection.&lt;/p&gt;

&lt;p&gt;Sadly, most web sites that feature user accounts do not offer continued secure logins beyond the actual logon page, including Facebook. Some of these service providers allow for ongoing secure connections over &lt;acronym title=&quot;HyperText Transfer Protocol Secure&quot;&gt;HTTPS&lt;/acronym&gt; but default back to unencrypted &lt;acronym title=&quot;HyperText Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; communication, or have links on encrypted pages back to unencrypted ones. I use &lt;a href=&quot;https://www.eff.org/https-everywhere&quot;&gt;&lt;acronym title=&quot;HyperText Transfer Protocol Secure&quot;&gt;HTTPS&lt;/acronym&gt;-Everywhere&lt;/a&gt;, a Firefox plugin by the &lt;acronym title=&quot;Electronic Frontier Foundation&quot;&gt;EFF&lt;/acronym&gt; that rewrites all my requests to a number of popular sites to use &lt;acronym title=&quot;HyperText Transfer Protocol Secure&quot;&gt;HTTPS&lt;/acronym&gt;.&lt;/p&gt;

&lt;p&gt;&lt;acronym title=&quot;HyperText Transfer Protocol Secure&quot;&gt;HTTPS&lt;/acronym&gt;-Everywhere supports Amazon, Amazon S3, bit.ly, Dropbox, the &lt;acronym title=&quot;Electronic Frontier Foundation&quot;&gt;EFF&lt;/acronym&gt;, Evernote, Facebook, GitHub, &lt;abbr&gt;GMX&lt;/abbr&gt;, Google &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;s, Google Search, Hotmail/Live, Identica, Mail.com, NYTimes, PayPal, Twitter, the Washington Post, Wikipedia, and more. You can also write your own &lt;a href=&quot;https://www.eff.org/https-everywhere/rulesets&quot;&gt;rulesets&lt;/a&gt; for additional web sites.&lt;/p&gt;

&lt;h4 id=&quot;privacy-and-tracking&quot;&gt;Privacy and tracking&lt;/h4&gt;

&lt;p&gt;Advertisers have been interested in and actively tracking users across the Web for years. If you visit a web site — even one you like and tend to trust — it could be serving up advertisements from third parties (e.g. &lt;a href=&quot;http://www.google.com/doubleclick/&quot;&gt;DoubleClick&lt;/a&gt;) which may attempt to track you across the Web in order to get a sense of your browsing habits, build a profile of you, and then target adverts to you.&lt;/p&gt;

&lt;p&gt;At first this sounds somewhat cool, but imagine purchasing a gift (e.g. a wedding ring) for your partner and as a result online adverts begin to display wedding-related sales and services. Now imagine if this computer was shared with your partner, and you haven’t proposed yet.&lt;/p&gt;

&lt;p&gt;Some of the existing tools noted above (a good ad blocker, good JavaScript execution control, good cookie management, and pop-up blocking) already help in reducing the ability for you to be tracked. In addition I also use &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/6623/&quot;&gt;BetterPrivacy&lt;/a&gt; which looks after &lt;acronym title=&quot;Local Shared Object&quot;&gt;LSO&lt;/acronym&gt;s i.e. flash cookies and their speedy deletion. For those who rely on some Flash applets and retaining important data (e.g. preferences for that applet) you can create a whitelist.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Opt-in or opt-out?&lt;/strong&gt; Some advertisement and tracking services offer an opt-out feature&amp;thinsp;&amp;mdash;&amp;thinsp;&amp;lsquo;if you don&amp;rsquo;t want to be tracked via cookies and/or &lt;a href=&quot;https://panopticlick.eff.org/&quot;&gt;other identifying sticky information&lt;/a&gt; click here to create this cookie and/or other identifying sticky information that says you don&amp;rsquo;t want to be tracked&amp;rsquo;. Do not track &amp;ne; do not call, as in telemarketing. Until a specification inclusion in &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; headers is made for a &lt;a href=&quot;http://donottrack.us/&quot;&gt;&amp;lsquo;do not track&amp;rsquo; variable&lt;/a&gt;, opt-in services (which still fall under &lt;acronym title=&quot;Trust No One&quot;&gt;TNO&lt;/acronym&gt;) and the browser tools above will continue be my safeguard against unwanted tracking.&lt;/p&gt;

&lt;p&gt;When my privacy is ultimate I switch over to the secure and private browsing modes provided by most good browsers, particularly with insidious tracking methods like those used by the &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Evercookie&quot;&gt;EverCookie&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;closing&quot;&gt;Closing&lt;/h3&gt;

&lt;h4 id=&quot;keeping-on-top-of-it-all&quot;&gt;Keeping on top of it all&lt;/h4&gt;

&lt;p&gt;Some of these tools and some of my current practices might become defunct or redundant in the coming years as the Internet grows and evolves. Keeping up to date with the latest if not fairly recent best practices can be difficult if you’re not working in the security domain or have a penchant for security, and that’s fair enough — if you’ve gotten this far and haven’t broken off to work towards ticking off some of your to-do items then kudos.&lt;/p&gt;

&lt;p&gt;I don’t really follow any of the major security portals or analyst blogs (besides infrequent visits to &lt;a href=&quot;http://www.schneier.com/&quot;&gt;Bruce Schneier’s blog&lt;/a&gt;), and only tune into the occasional simplified news story of a security or privacy related event when I happen to be watching &lt;abbr&gt;TV&lt;/abbr&gt; (which I rarely do these days anyway) to see how it is reported. My springboard for security news currently remains the &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Security Now podcast&lt;/a&gt; by Steve Gibson (hosted by &lt;a href=&quot;http://twit.tv/sn&quot;&gt;the TWiT podcasting network&lt;/a&gt; and also available on iTunes). While Steve’s site isn’t the prettiest ornament on the security Christmas tree and his podcast covers a lot of Windows-related security news (which barely affects me) his coverage remains broad and his explanations are very accessible yet comprehensive.&lt;/p&gt;

&lt;h4 id=&quot;das-ende&quot;&gt;Das Ende&lt;/h4&gt;

&lt;p&gt;That’s it — those are my core principles and the browser tools I use that support them. I would be interested in hearing what your best practices are and which tools you use to support them.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Jekyll, a static site generator</title>
        <link href="http://klepas.org/jekyll-a-static-site-generator"/>
        <updated>2010-11-01T00:00:00+00:00</updated>
        <id>http://klepas.org/jekyll-a-static-site-generator</id>
        <content type="html">&lt;p&gt;When I decided to relaunch my web site I chose to give WordPress the flick and try out &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll&quot;&gt;Jekyll&lt;/a&gt;, a Ruby-based static site generator. Jekyll? In the documentation it is described thus:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Jekyll at its core is a text transformation engine. The concept behind the system is this: you give it text written in your favorite markup language, be that Markdown, Textile, or just plain &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;, and it churns that through a layout or series of layout files. Throughout that process you can tweak how you want the site &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;s to look, what data gets displayed on the layout, and more. This is all done through strictly editing files, and the web interface is the final product.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jekyll is a blog-aware, static site generator. It uses a set of template or layout files, the associated &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; files, and plain text files for the posts. The posts can use the Markdown format or another similar markup language. Jekyll grabs the post markup and inserts it into the layouts, spitting out standard &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; markup — along with linked files (any &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;, JavaScript, images, and the like) — ready for you to upload to your web server. There is no content management system, no database, and no specific language support on the web server required; your site is a collection of plain old static &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; files.&lt;/p&gt;

&lt;p&gt;Switching back to static markup may at first seem like a reversion to the late 1990s. Yet Jekyll is a simple and elegant system that mimics the characteristics of a dynamic site — drawing content from a database and inserting it into templates via a &lt;acronym title=&quot;Content Management System&quot;&gt;CMS&lt;/acronym&gt; — without all that complexity. As a firm believer in the &lt;acronym title=&quot;Keep It Simple Stupid&quot;&gt;KISS&lt;/acronym&gt; principle (Keep It Simple, Stupid), I always try to find the right tool for the job, and Jekyll is a simple solution to a common problem: “I want my own customised blog.” Jekyll is also flexible enough that it can easily be used for other tasks. For example, GitHub uses it to drive GitHub Pages.&lt;/p&gt;

&lt;p&gt;This article describes using Jekyll to build a web site: from downloading it, setting up a development environment, and hacking up template files. I conclude with a word on maintaining updates between your development instance (for example adding new blog entries) and synchronising them to your web server. Note that I wrote this piece from a designer’s perspective. Although I had a number of technical hurdles to hop over, Jekyll remains rather simple; for instance, using Jekyll’s template system and Liquid tags is easier than hacking a design as a WordPress theme. I intend this article to be as designer-friendly as possible.&lt;/p&gt;

&lt;p&gt;Setting up a Jekyll blog is relatively smooth-going and boils down to a few straightforward steps.&lt;/p&gt;

&lt;h3 id=&quot;setting-up-your-development-environment&quot;&gt;Setting up your development environment&lt;/h3&gt;

&lt;p&gt;Jekyll is written in Ruby, so you will need to install it. It is as simple as &lt;a href=&quot;http://www.ruby-lang.org/en/downloads/&quot; title=&quot;Download the latest Ruby&quot;&gt;downloading the latest Ruby version&lt;/a&gt; for your platform and following the installation instructions. The Ruby installation also includes the RubyGems packaging system, and allows you to download and install other  Ruby libraries and programs. If you are using Windows, choose the one-click installer, and make sure you tick the &lt;em&gt;Enable RubyGems&lt;/em&gt; option when running the installer.&lt;/p&gt;

&lt;p&gt;We will be fetching Jekyll from &lt;a href=&quot;http://gemcutter.org/&quot; title=&quot;RubyGems.org&amp;thinsp;&amp;mdash;&amp;thinsp;a Ruby gem host&quot;&gt;the Gemcutter RubyGem hosting repository&lt;/a&gt;, but we first need to install the Gemcutter program.&lt;/p&gt;

&lt;p&gt;If you are on Mac &lt;abbr&gt;OS X&lt;/abbr&gt; or Linux, open a command prompt and enter the following commands:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ sudo &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;gemcutter&lt;/span&gt;
⋮
Successfully installed gemcutter-0.1.7
1 gem installed
Installing ri documentation for gemcutter-0.1.7...
Installing RDoc documentation for gemcutter-0.1.7...
$ sudo &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;tumble&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The &lt;code&gt;tumble&lt;/code&gt; command will simply make the RubyGems installer query the Gemcutter repository first, when downloading RubyGem packages. This ensures that Jekyll is downloaded from the Gemcutter repository.&lt;/p&gt;

&lt;p&gt;Now we can download and install Jekyll:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ sudo &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;jekyll&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you are on Windows you need to be entering the commands at the Windows command prompt (&lt;em&gt;Start → Run…&lt;/em&gt; and enter &lt;code&gt;cmd&lt;/code&gt;):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;C:\&amp;gt; &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;gemcutter&lt;/span&gt;
C:\&amp;gt; &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;tumble&lt;/span&gt;
C:\&amp;gt; &lt;span class=&quot;element&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;property&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;attribute&quot;&gt;jekyll&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Jekyll, like all good software, is modular and does one task very well, relying on other programs and libraries for additional functionality — after all, why reinvent the wheel? This modularity also gives us choice: you can pick and choose from a variety of slightly different tools that perform similar tasks to extend Jekyll, depending on your preferences. For example, if you’d rather write your blog posts in &lt;a href=&quot;http://www.textism.com/tools/textile/&quot; title=&quot;The Textile markup language&quot;&gt;Textile&lt;/a&gt; instead of &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot; title=&quot;DaringFireBall.com&amp;thinsp;&amp;mdash;&amp;thinsp;The Markdown markup language&quot;&gt;Markdown&lt;/a&gt;, you can. For me, however, the default (Markdown) does the trick, and Gem only needs a small number of other &lt;a href=&quot;http://gemcutter.org/gems/jekyll&quot; title=&quot;RubyGems.org: Jekyll&quot;&gt;dependencies&lt;/a&gt;, which are fetched automatically.&lt;/p&gt;

&lt;p&gt;For a full list of available gems that extend Jekyll, see the list within &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/install&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Install instructions&quot;&gt;the install instructions for Jekyll&lt;/a&gt; on GitHub.&lt;/p&gt;

&lt;h3 id=&quot;creating-the-basic-file-structure-and-some-posts&quot;&gt;Creating the basic file structure and some posts&lt;/h3&gt;

&lt;p&gt;Now with Jekyll installed let us set up the file system structure. First, create a new directory for you to work in. I put mine in &lt;code&gt;~/Sites/klepas&lt;/code&gt;. Move into this new directory and create the following subdirectories and files:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;a plain text file named &lt;code&gt;_config.yml&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;a directory named &lt;code&gt;_layouts&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;a directory named &lt;code&gt;_posts&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;a file for our home page: &lt;code&gt;index.html&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That done we can execute Jekyll by issuing the &lt;code&gt;jekyll&lt;/code&gt; command at the command prompt. You will notice that Jekyll creates the directory ‘&lt;code&gt;_site&lt;/code&gt;’, which now holds an &lt;code&gt;index.html&lt;/code&gt; file. If we had our web site and configuration files set up at this point, our finished web site would now be built and ready in the &lt;code&gt;_site&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Let us examine this file structure in closer detail:&lt;/p&gt;

&lt;h4 id=&quot;configyml&quot;&gt;&lt;code&gt;_config.yml&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;As the filename suggests, this is where your Jekyll configuration lies. It’s typically only a few lines long and allows you to avoid having to specify optional flags every time you run Jekyll from the command line; just stick them into &lt;code&gt;_config.yml&lt;/code&gt; and Jekyll will use them every time it is run. For more info on Jekyll configuration see the &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/configuration&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Configuration&quot;&gt;configuration page on the Jekyll wiki&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;layouts&quot;&gt;&lt;code&gt;_layouts/&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;_layouts&lt;/code&gt; directory holds the web site templates, known as &lt;code&gt;layouts&lt;/code&gt; in the world of Jekyll. Layouts use the &lt;a href=&quot;http://www.liquidmarkup.org/&quot; title=&quot;LiquidMarkup.org&quot;&gt;Liquid&lt;/a&gt; template language. When Jekyll is run, your posts are injected into the layouts using the Liquid &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; content }}&lt;/span&gt;&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;Layouts are called upon at the beginning of each post in a string of variables called the &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/yaml-front-matter&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: YAML Front Matter&quot;&gt;YAML front matter&lt;/a&gt; that direct how Jekyll will process the file. This allows you to select a different template for each blog post or page as desired.&lt;/p&gt;

&lt;h4 id=&quot;posts&quot;&gt;&lt;code&gt;_posts/&lt;/code&gt;&lt;/h4&gt;

&lt;p&gt;As the name suggests, this is where you keep your posts. Posts are plain text files that are named with the format &lt;code&gt;$YEAR-$MONTH-$DATE-$TITLE.$FORMAT&lt;/code&gt;. So, for example, I have a post from 25 October 2008 titled “Whose Garamond is it anyway?” which would sit in my posts directory as &lt;code&gt;2008-10-25-whose-garamond-is-it-any.markdown&lt;/code&gt;. It ends in &lt;code&gt;.markdown&lt;/code&gt;, but if you use Textile your post filenames would end in &lt;code&gt;.textile&lt;/code&gt; instead.&lt;/p&gt;

&lt;h3 id=&quot;creating-layouts-and-posts&quot;&gt;Creating layouts and posts&lt;/h3&gt;

&lt;p&gt;So, let us create a few layouts and some posts. First, the layouts.&lt;/p&gt;

&lt;p&gt;We will create two templates for us to pick from: &lt;code&gt;base.html&lt;/code&gt;, which is our base layout and &lt;code&gt;post.html&lt;/code&gt;, which extends the base layout and is used for posts.&lt;/p&gt;

&lt;p&gt;The base layout includes the &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; doctype, the &lt;code&gt;head&lt;/code&gt; tag, and the container &lt;code&gt;div&lt;/code&gt; tag that contains the Liquid &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; content }}&lt;/span&gt;&lt;/code&gt; tag:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&amp;gt;

&amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;  
    xml:lang=&quot;en&quot; lang=&quot;en&quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; page.title }}&lt;/span&gt;&amp;lt;/title&amp;gt;
    &amp;lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&amp;gt;
    &amp;lt;meta http-equiv=&quot;content-language&quot; content=&quot;en&quot; /&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/css/screen.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/css/print.css&quot; type=&quot;text/css&quot; media=&quot;print&quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div id=&quot;container&quot;&amp;gt;
      &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; content }}&lt;/span&gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As this is the base layout, everything except the contents of the container &lt;code&gt;div&lt;/code&gt; will appear on all web pages of your Jekyll site. This becomes even more interesting when we add layouts that extend the base layout. Our post layout, &lt;code&gt;post.html&lt;/code&gt;, does just that:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;---
layout: &lt;span class=&quot;element&quot;&gt;base&lt;/span&gt;
---
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include header.html %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include nav.html %}&lt;/span&gt;
      &amp;lt;div class=&quot;entry-content&quot;&amp;gt;
        &amp;lt;h2&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; page.title }}&lt;/span&gt;&amp;lt;/h2&amp;gt;
        &amp;lt;span&amp;gt;Published: &amp;#123;&amp;#123; page.date }}&amp;lt;/span&amp;gt;
        &lt;span class=&quot;attribute&quot;&gt;&amp;#123;{ content }}&lt;/span&gt;
      &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In the opening few lines of the post layout file, we included a YAML front matter note that defines this layout as an extension of the base layout: &lt;code&gt;layout: &lt;span class=&quot;element&quot;&gt;base&lt;/span&gt;&lt;/code&gt;. This means the contents of &lt;code&gt;post.html&lt;/code&gt; will be pulled into the container &lt;code&gt;div&lt;/code&gt; of the base layout thanks to the &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; content }}&lt;/span&gt;&lt;/code&gt; Liquid tag. This is also true for all other pages: &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;about.html&lt;/code&gt;, &lt;code&gt;archive.html&lt;/code&gt;, and any others as desired.&lt;/p&gt;

&lt;p&gt;You may have spotted the two uses of the &lt;code&gt;&lt;span class=&quot;property&quot;&gt;&amp;#123;% include %}&lt;/span&gt;&lt;/code&gt; directive at the start of the post template:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include header.html %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include nav.html %}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Missing from the minimal file structure example outlined above is the &lt;code&gt;_includes&lt;/code&gt; directory, which holds little content snippets that you can reuse in layouts and static pages. They could be the site navigation, the header, the footer, or even a very small piece of content like a call-to-action message that you want to include in more than one layout. Using the two Liquid tags above, I am telling Jekyll to fetch and include the contents of &lt;code&gt;_includes/header.html&lt;/code&gt; and &lt;code&gt;_includes/nav.html&lt;/code&gt; into my post layout upon site generation.&lt;/p&gt;

&lt;p&gt;When creating individual post files you also include a YAML front matter note. You can specify whichever fields you like — a title or date, for example — and those values will be available in your layouts. If you specify a layout it will be used for the post. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;---
layout: &lt;span class=&quot;element&quot;&gt;posts_xmas-theme&lt;/span&gt;
title: Merry Christmas!
---
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above post will be displayed using a special Christmas theme layout called &lt;code&gt;&lt;span class=&quot;element&quot;&gt;posts_xmas-theme&lt;/span&gt;&lt;/code&gt;, and has a title value that can be output in a layout as &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; page.title }}&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Permalinks:&lt;/strong&gt; if you are worried about permalinks at this point, Jekyll has it under control. The documentation shows how to &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/permalinks&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Permalinks&quot;&gt;specify the appearance of your permalinks in the &lt;code&gt;_comfig.yml&lt;/code&gt; file&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;a-short-introduction-to-liquid&quot;&gt;A short introduction to Liquid&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.liquidmarkup.org/&quot; title=&quot;LiquidMarkup.org&quot;&gt;Liquid&lt;/a&gt; template language was developed by the folks over at &lt;a href=&quot;http://www.shopify.com/&quot; title=&quot;Shopify.com&quot;&gt;Shopify&lt;/a&gt;, the e-commerce system. It was designed to allow designers and front-end developers to modify their shopping interfaces without affecting the security on the server they are built on.&lt;/p&gt;

&lt;p&gt;Liquid is quite simple to learn: there are two types of markup within Liquid, &lt;em&gt;output&lt;/em&gt; and &lt;em&gt;tag&lt;/em&gt;. Output markup (which is output to text) is enclosed by double curly brackets (or braces), like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Hello &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; name }}&lt;/span&gt;
Hello &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; user.name }}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Tag markup (statements that are not output as text) is enclosed by matched pairs of braces and percent signs, like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;property&quot;&gt;&amp;#123;% if user.name == &#39;tobi&#39; %}&lt;/span&gt;
  Welcome, Tobi!
&lt;span class=&quot;property&quot;&gt;&amp;#123;% elsif user.name == &#39;bob&#39; %}&lt;/span&gt;
  Go away, Bob!
&lt;span class=&quot;property&quot;&gt;&amp;#123;% endif %}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Tag markup allows &lt;code&gt;if ... else&lt;/code&gt; operations, &lt;code&gt;for&lt;/code&gt; loops, variable assignment, and more. Output markup also allows you to filter the output through Liquid filters; for example, to change text to uppercase:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Hello &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; &#39;tobi&#39; | upcase }}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To change a date to a different format, you can do the following to output a date like “November 24, 2009”:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Hello &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; now | date: &quot;%B %d, %Y&quot; }}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Liquid supports a broad range of filters, including date formatting, capitalisation, array element selection, markup manipulation (for example, &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;strip_html&lt;/span&gt;&lt;/code&gt; which strips &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; from a string), replace functions, truncate functions, and simple mathematical operations like addition, subtraction, multiplication, and division. &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/liquid-extensions&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Liquid Extensions&quot;&gt;Jekyll extends these filters with a few more of its own&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more information on Liquid output and tag markup, see the &lt;a href=&quot;http://wiki.github.com/tobi/liquid/liquid-for-designers&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Liquid: Liquid for Designers&quot;&gt;Liquid for Designers&lt;/a&gt; documentation page on the Liquid wiki on GitHub.&lt;/p&gt;

&lt;h3 id=&quot;creating-pages&quot;&gt;Creating pages&lt;/h3&gt;

&lt;p&gt;You may probably be wondering now how you create pages like the home page and archives page.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;index.html&lt;/code&gt; file you created earlier is essentially your home page. All other &lt;code&gt;.html&lt;/code&gt; and &lt;code&gt;.markdown&lt;/code&gt; (or &lt;code&gt;.textile&lt;/code&gt;, and so on) files in the root directory will also be processed by Jekyll. For example, if you create a file called &lt;code&gt;about.html&lt;/code&gt; in the root of the Jekyll file structure, it will be placed in the root of the generated site and could serve as your About page.&lt;/p&gt;

&lt;p&gt;Pages like the index page can be entirely what you want them to be. You could, for example, pull in the latest three posts, with the latest featuring a large heading and the first 120 words styled in an eye-catching manner, with the other two posts appearing smaller and alongside each other, below the latest. The following is an example &lt;code&gt;index.html&lt;/code&gt; file; it opens with a title and a template specified in YAML, and is populated using a range of Liquid extensions to pull in content from the posts directory or otherwise:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;---
layout: &lt;span class=&quot;element&quot;&gt;base&lt;/span&gt;
title: The Title of Your Web Site
---
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include header.html %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include nav.html %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% for post in site.posts limit:1 %}&lt;/span&gt;
      &amp;lt;div id=&quot;container&quot;&amp;gt;
        &amp;lt;div class=&quot;page-nav-top&quot;&amp;gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% if post.previous %}&lt;/span&gt;
            &amp;lt;span class=&quot;page-nav-item&quot;&amp;gt;
              &amp;lt;a rel=&quot;prev&quot; href=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.previous.url }}&lt;/span&gt;/&quot; 
                  title=&quot;View &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.previous.title }}&lt;/span&gt;&quot;
              &amp;gt;&amp;amp;larr; View previous article&amp;lt;/a&amp;gt;
            &amp;lt;/span&amp;gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% endif %}&lt;/span&gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% if post.next %}&lt;/span&gt;
            &amp;lt;span class=&quot;page-nav-item&quot;&amp;gt;
              &amp;lt;a rel=&quot;next&quot; href=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.next.url }}&lt;/span&gt;/&quot; 
                  title=&quot;View &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.next.title }}&lt;/span&gt;&quot;
              &amp;gt;View next article &amp;amp;rarr;&amp;lt;/a&amp;gt;
            &amp;lt;/span&amp;gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% endif %}&lt;/span&gt;
        &amp;lt;/div&amp;gt; &amp;lt;!-- /.page-nav-top --&amp;gt;
        &amp;lt;div class=&quot;entry-content&quot;&amp;gt;
          &amp;lt;h2 class=&quot;clear&quot;&amp;gt;
            &amp;lt;a href=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.url }}&lt;/span&gt;/&quot; title=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.title }}&lt;/span&gt;&quot;&amp;gt; 
              &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.title }}&lt;/span&gt;
            &amp;lt;/a&amp;gt;
          &amp;lt;/h2&amp;gt;
         &amp;lt;span class=&quot;date&quot; 
              title=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date_to_xmlschema }}&lt;/span&gt;&quot;&amp;gt;
            &amp;lt;span class=&quot;published&quot;&amp;gt;Published: &amp;lt;/span&amp;gt;
            &amp;lt;span class=&quot;day&quot;&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date: &#39;%d&#39; }}&lt;/span&gt;&amp;lt;/span&amp;gt;
            &amp;lt;span class=&quot;month&quot;&amp;gt;
              &amp;lt;abbr&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date: &#39;%b&#39; }}&lt;/span&gt;&amp;lt;/abbr&amp;gt;
            &amp;lt;/span&amp;gt;
            &amp;lt;span class=&quot;year&quot;&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date: &#39;%Y&#39; }}&lt;/span&gt;&amp;lt;/span&amp;gt;
          &amp;lt;/span&amp;gt;
          &lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.content }}&lt;/span&gt;
        &amp;lt;/div&amp;gt; &amp;lt;!-- /.entry-content --&amp;gt;
      &amp;lt;/div&amp;gt; &amp;lt;!-- /#container --&amp;gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% endfor %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include footer.html %}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As you can see again there are a number of includes for the site header, navigation, and at the end a footer. The main part of the template is a loop:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; for post in site.posts limit:1 }}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This tells Jekyll to fetch the posts in the &lt;code&gt;_posts&lt;/code&gt; directory, limiting the results to one: the latest post.&lt;/p&gt;

&lt;p&gt;Having selected only a single post, we can create chronological “Next” and “Previous” navigation links using the values &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.previous&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.next&lt;/span&gt;&lt;/code&gt;. These values will be true if a previous or next post — chronologically speaking — is available. If they are available we extract the &lt;acronym title=&quot;Uniform Resource Indicator&quot;&gt;URI&lt;/acronym&gt; and title to output a link.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;No documentation:&lt;/strong&gt; the &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.previous&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.next&lt;/span&gt;&lt;/code&gt; tags are &lt;a href=&quot;http://github.com/mojombo/jekyll/issues/closed#issue/74&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Issue #74: Allow chronological linking of preceding/following posts between posts&quot;&gt;currently undocumented&lt;/a&gt;, but work perfectly.&lt;/p&gt;

&lt;p&gt;The latest posts title is output with &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.title&lt;/span&gt;&lt;/code&gt; and the link is created using &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.url&lt;/span&gt;&lt;/code&gt;. Every post has a date, so we create a little microformat goodness using &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.date&lt;/span&gt;&lt;/code&gt;. Finally, and quite simply, we output the post’s body with &lt;code&gt;&lt;span class=&quot;attribute&quot;&gt;post.content&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Similarly, an archive page is also easy to build:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;---
title: Archives
layout: &lt;span class=&quot;element&quot;&gt;base&lt;/span&gt;
---
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include header.html %}&lt;/span&gt;
    &lt;span class=&quot;property&quot;&gt;&amp;#123;% include nav.html %}&lt;/span&gt;
    &amp;lt;div id=&quot;container&quot; class=&quot;archives&quot;&amp;gt;
      &amp;lt;div class=&quot;index&quot;&amp;gt;
        &amp;lt;h2&amp;gt;&amp;lt;em&amp;gt;Notebook archives&amp;lt;/em&amp;gt;&amp;hellip;&amp;lt;/h2&amp;gt;
        &amp;lt;ul&amp;gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% for post in site.posts %}&lt;/span&gt;
            &amp;lt;li&amp;gt;
              &amp;lt;a href=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.url }}&lt;/span&gt;/#notebook&quot; title=&quot;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.title }}&lt;/span&gt;&quot;&amp;gt;
                &amp;lt;span class=&quot;date&quot;&amp;gt;
                  &amp;lt;span class=&quot;day&quot;&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123; post.date | date: &#39;%d&#39; }}&lt;/span&gt;&amp;lt;/span&amp;gt; 
                  &amp;lt;span class=&quot;month&quot;&amp;gt;&amp;lt;abbr&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date: &#39;%b&#39; }}&lt;/span&gt;&amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;
                  &amp;lt;span class=&quot;year&quot;&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.date | date: &#39;%Y&#39; }}&lt;/span&gt;&amp;lt;/span&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;span class=&quot;title&quot;&amp;gt;&lt;span class=&quot;attribute&quot;&gt;&amp;#123;&amp;#123; post.title }}&lt;/span&gt;&amp;lt;/span&amp;gt;
              &amp;lt;/a&amp;gt;
            &amp;lt;/li&amp;gt;
          &lt;span class=&quot;property&quot;&gt;&amp;#123;% endfor %}&lt;/span&gt;
        &amp;lt;/ul&amp;gt;
      &amp;lt;/div&amp;gt; &amp;lt;!-- /.index --&amp;gt;
    &amp;lt;/div&amp;gt; &amp;lt;!-- /#container.archives --&amp;gt;
   &lt;span class=&quot;property&quot;&gt;&amp;#123;% include footer.html %}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This time we use the same &lt;code&gt;for&lt;/code&gt; loop: &lt;code&gt;&lt;span class=&quot;property&quot;&gt;&amp;#123;% for posts in site.posts %}&lt;/span&gt;&lt;/code&gt;, to grab all the posts. Within the loop we create list items for each post and output the posts’ titles and dates. That is all there is to it.&lt;/p&gt;

&lt;h3 id=&quot;other-directories-and-files&quot;&gt;Other directories and files&lt;/h3&gt;

&lt;p&gt;Apart from the specific directories and files mentioned above, all other directories and files are handled by Jekyll as expected and will be included in the generated site build in &lt;code&gt;_sites/&lt;/code&gt; when Jekyll is run. Thus, a &lt;code&gt;css/&lt;/code&gt; and &lt;code&gt;js/&lt;/code&gt; directory and its contents, a favicon, and whatever else will all be added to the site build.&lt;/p&gt;

&lt;h3 id=&quot;testing-your-site-locally&quot;&gt;Testing your site locally&lt;/h3&gt;

&lt;p&gt;Jekyll comes with a simple web server that allows you to point your web browser over to &lt;code&gt;http://localhost:4000/&lt;/code&gt; and view your site. To enable the web server append &lt;code&gt;--server&lt;/code&gt; when executing Jekyll:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ &lt;span class=&quot;element&quot;&gt;jekyll&lt;/span&gt; --server&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Even better, if you are actively updating and making changes, a useful flag to append to the &lt;code&gt;jekyll&lt;/code&gt; command is &lt;code&gt;--auto&lt;/code&gt;. It will update the contents of the &lt;code&gt;_site&lt;/code&gt; directory automatically for you when a file within the Jekyll structure changes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ &lt;span class=&quot;element&quot;&gt;jekyll&lt;/span&gt; --server --auto&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also add &lt;code&gt;auto: true&lt;/code&gt; to the configuration file so that you can avoid having to type it in every time.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Version control:&lt;/strong&gt; if you want to track your Jekyll files in a version control system, it is recommended to make an exception for the &lt;code&gt;_site&lt;/code&gt; directory. This is because the files in the &lt;code&gt;_site&lt;/code&gt; directory are bound to change a lot, particularly during the development phase.&lt;/p&gt;

&lt;h3 id=&quot;deploying-your-web-site&quot;&gt;Deploying your web site&lt;/h3&gt;

&lt;p&gt;Deploying your generated static site is just a matter of copying the output in &lt;code&gt;_site&lt;/code&gt; to your web server. You could use &lt;acronym title=&quot;File Transfer Protocol&quot;&gt;FTP&lt;/acronym&gt; to upload your files, but there are a number of automated methods that make life easier, particularly when you just want to upload the new changes since the last upload.&lt;/p&gt;

&lt;p&gt;My preferred current method is to use &lt;code&gt;&lt;span class=&quot;element&quot;&gt;rsync&lt;/span&gt;&lt;/code&gt;, a little &lt;span class=&quot;caps&quot;&gt;UNIX&lt;/span&gt; utility written by Canberra locals Andrew Tridgell and Paul Mackerras. &lt;code&gt;&lt;span class=&quot;element&quot;&gt;rsync&lt;/span&gt;&lt;/code&gt; synchronises data from one location to another, and in doing so only sends changes rather than full files where possible. You could either run this each time you update your site, or via &lt;a href=&quot;http://github.com/henrik/henrik.nyh.se/blob/master/tasks/deploy&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Henrik Nyh&amp;rsquo;s Jekyll deployment bash script&quot;&gt;a task script&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ &lt;span class=&quot;element&quot;&gt;jekyll&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class=&quot;element&quot;&gt;rsync&lt;/span&gt; -avz --delete _site/ &lt;span class=&quot;attribute&quot;&gt;username&lt;/span&gt;@&lt;span class=&quot;property&quot;&gt;server.com&lt;/span&gt;:path/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There are &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/deployment&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Deployment&quot;&gt;a range of other, more complex automated methods&lt;/a&gt;, but they are beyond the scope of this article.&lt;/p&gt;

&lt;h3 id=&quot;commentshellip-or-lack-thereof&quot;&gt;Comments… or lack thereof&lt;/h3&gt;

&lt;p&gt;As a static site generator without any dynamic extensions Jekyll has no support for adding comments dynamically. There are methods of adding commenting functionality via a third party or similar commenting service, such as &lt;a href=&quot;http://dcreager.net/2009/08/07/disqus-comments/&quot; title=&quot;dcreager.net&amp;thinsp;&amp;mdash;&amp;thinsp;Adding Disqus comments to Jekyll&quot;&gt;DISQUS Comments&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have personally decided to avoid comments; besides avoiding having to deal with them at all (code-wise, styling-wise, spam-wise — yay!), the best feedback I have ever received were face-to-face or directly via email. I also echo some of the sentiments raised by Alex Payne in his article, &lt;a href=&quot;http://al3x.net/2009/02/24/why-no-comments-more-everything-buckets.html&quot; title=&quot;al3x.net&amp;thinsp;&amp;mdash;&amp;thinsp;Why I Don&amp;rsquo;t Allow Comments, and More on Everything Buckets&quot;&gt;Why I Don’t Allow Comments, and More on Everything Buckets&lt;/a&gt; in regards to fostering a higher quality discussion.&lt;/p&gt;

&lt;h3 id=&quot;in-closing&quot;&gt;In closing…&lt;/h3&gt;

&lt;p&gt;Despite blog &lt;acronym title=&quot;Content Management System&quot;&gt;CMS&lt;/acronym&gt;s as powerful as WordPress, Movable Type, and so on, I hope you can now see why I found it worth reverting to a simplistic and rudimentary system like Jekyll: use the right tool for the job. Jekyll is a breeze to pick up; its learning curve is certainly less steep than say theme design or hacking for WordPress, in my experience.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Migrating from your existing blog:&lt;/strong&gt; you can find instructions for migrating from an existing blog&amp;thinsp;&amp;mdash;&amp;thinsp;Wordpress, Moveable Type, and others&amp;thinsp;&amp;mdash;&amp;thinsp;in the &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/blog-migrations&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Blog Migrations&quot;&gt;Jekyll documentation on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With GitHub Pages using Jekyll, it is common to see many Jekyll users sharing their Jekyll blog sources openly via GitHub. There is &lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/sites&quot; title=&quot;GitHub.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Example sites&quot;&gt;a listing of Jekyll-generated sites&lt;/a&gt; in the documentation, along with links to their respective GitHub repositories when available. These are great to browse through for some insight on how other Jekyll users have built their web sites.&lt;/p&gt;

&lt;p&gt;Learning curves aside, if you are after a simplistic blog tool construction-wise that does not require multiple users or a fully featured web publishing interface, then Jekyll could easily do the trick. And be assured, the sophistication of the final output for Jekyll can generate beautiful multi-layout blogs akin to WordPress.&lt;/p&gt;

&lt;p&gt;Ultimately, I changed to Jekyll because WordPress seemed like an overkill and I was up for learning something new. I hope this article serves to help you if you are experiencing a similar predicament.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This article was originally published on &lt;a href=&quot;http://articles.sitepoint.com/article/jekyll-sites-made-simple&quot; title=&quot;SitePoint.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Sites Made Simple&quot;&gt;SitePoint.com&amp;thinsp;&amp;mdash;&amp;thinsp;Jekyll: Sites Made Simple&lt;/a&gt;. I wanted to update and re-publish it here for archiving and such that others could potentially stumble upon it.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Web Directions South typography talk</title>
        <link href="http://klepas.org/web-directions-south-typography"/>
        <updated>2010-10-15T00:00:00+00:00</updated>
        <id>http://klepas.org/web-directions-south-typography</id>
        <content type="html">&lt;p&gt;I just got back from a better part of a week up in Sydney for the annual &lt;a href=&quot;http://south10.webdirections.org//&quot; title=&quot;webdirections.org: Web Directions South 2010&quot;&gt;Web Directions South&lt;/a&gt;. I was invited to present on &lt;a href=&quot;http://south10.webdirections.org/program/design#setting-standards-friendly-web-type&quot; title=&quot;webdirections.org: Web Directions South 2010 | Design | Setting standards-friendly web type&quot;&gt;setting standards-friendly web type&lt;/a&gt;. The talk focused on the options currently available for setting type on the web with a strong focus on webfonts (part one) and a supplementary section on then styling the selected type (lots of micro-typography; part two).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/files/images/setting-standards-friendly-web-type_parts-006.png&quot; alt=&quot;Image: Slide outlining the two parts of the talk: 1. getting type on the web; and 2. styling that type.&quot; title=&quot;setting-standards-friendly-web-type_parts-006.png&quot; width=&quot;624&quot; height=&quot;415&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Slide 6.&lt;/p&gt;

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

&lt;p&gt;There is a lot to be written (or said) about typography, and when we work with the web as a medium a lot of extra technical stuff also gets tacked on, so I had plenty of material to cover (I ended up with 112 slides) in a slot of 40-odd minutes including time for questions. However:
1. I wanted to ensure that the talk included the bulk of the stuff you need to get going with webfonts (prime aim of the talk);
2. that’s not all though — now that you’ve got the type you want, styling that type comes next (the fun stuff);
3. I realise the slides are rather text heavy — I prefer reading along with presentations rather than just listening (half the stuff seems to just enter one ear and exit straight out the other for me) so I wanted to offer that option to those who like to read;
4. and finally, the nice upside of which is that anyone can grab the slides of the presentation later and use them as a downloadable resource.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;You can grab a &lt;a href=&quot;/files/doc/setting-standards-friendly-web-type.pdf&quot; title=&quot;Download a high-quality PDF copy of the slides from the WDS 2010 &amp;lsquo;Setting standards-friendly web type&amp;rsquo; talk&quot;&gt;high-quality &lt;acronym title=&quot;Portable Document Format&quot;&gt;PDF&lt;/acronym&gt; copy of the presentation slides&lt;/a&gt; (16.1 MB). The talk is also available on &lt;a href=&quot;http://www.slideshare.net/klepas/setting-standardsfriendly-web-type&quot; title=&quot;SlideShare.com: &amp;lsquo;Setting standards-friendly web type&amp;rsquo;&quot;&gt;SlideShare&lt;/a&gt;. Web Directions kindly recorded the audio of the talk and has made it available as a &lt;a href=&quot;http://webdirections.org/podcasts/WD10/wds10-Simon-Pascal-Klein.mp3&quot; title=&quot;MP3 audio recording from the WDS 2010 &amp;lsquo;Setting standards-friendly web type&amp;rsquo; talk&quot;&gt;&lt;abbr&gt;MP3&lt;/abbr&gt;&lt;/a&gt;. Alternatively you can also download &lt;a href=&quot;/files/av/wds10-Simon-Pascal-Klein.ogg&quot; title=&quot;OGG audio recording from the WDS 2010 &amp;lsquo;Setting standards-friendly web type&amp;rsquo; talk&quot;&gt;an &lt;abbr&gt;OGG&lt;/abbr&gt; Vorbis copy of the audio recording&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;part-1-getting-a-typeface-on-the-web&quot;&gt;Part 1: Getting a typeface on the web&lt;/h4&gt;

&lt;p&gt;Options for getting fonts onto the web:
* installed fonts (mostly web-safe);
* Flash (e.g. &lt;acronym title=&quot;Scalable Inman Flash Replacement&quot;&gt;sIFR&lt;/acronym&gt;) and other &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; replacement techniques;
* Cufón et al.;
* webfonts: &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt;/&lt;abbr&gt;EOT&lt;/abbr&gt; Lite via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;
* webfonts: &lt;acronym title=&quot;OpenType&quot;&gt;OT&lt;/acronym&gt;/&lt;acronym title=&quot;TrueType&quot;&gt;TTF&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;
* webfonts: &lt;acronym title=&quot;Web Open Font Format&quot;&gt;WOFF&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;
* webfonts: &lt;acronym title=&quot;Scalable Vector Graphic&quot;&gt;SVG&lt;/acronym&gt; via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;;
* and hosting and licensing services.&lt;/p&gt;

&lt;h4 id=&quot;part-2-setting-that-type-all-pretty&quot;&gt;Part 2: Setting that type all pretty&lt;/h4&gt;

&lt;p&gt;Webfonts aren’t the holy grail of web typography problems; remember:&lt;/p&gt;

&lt;blockquote cite=&quot;Jeff Croft&quot;&gt;
    &lt;p&gt;Typography is not picking a &amp;lsquo;cool&amp;rsquo; font.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…and further, also note that most fonts available from type foundries are not optimised for screen usage; they’re chiefly designed for print. Having said all this, part two focuses on styling the type you have selected. Main topics covered:
* limiting your palette of type families;
* using a combination of families, styles, and weights;
* using tracking and small-caps for acronyms and tabular data;
* sizing type in relative terms — in ems or percentages — and sticking it to a scale;
* being careful when mixing different typefaces;
* using the proper glyphs, e.g. proper punctuation;
* playing with alternate styles for ampersands;
* marking paragraphs;
* setting and sizing horizontal flow via measures (line lengths);
* setting and sizing vertical flow via leading (line heights);
* playing with hanging punctuation;
* treating &lt;a href=&quot;http://www.cameronmoll.com/archives/001266.html&quot; title=&quot;cameronmoll.com: Nine skills that separate good and great designers&quot;&gt;text as part of the &lt;acronym title=&quot;User Interface&quot;&gt;UI&lt;/acronym&gt;&lt;/a&gt;;
* and setting it all in and/or around a good and organised grid.&lt;/p&gt;

&lt;p&gt;I enjoyed presenting and through it revisiting web typography which I have not much had much time to devote to in these past months. If you have any feedback, thoughts, or otherwise with regards to the presentation or the slides drop me a line.&lt;/p&gt;

&lt;p&gt;Oh, I also wanted to thank &lt;a href=&quot;http://instagr.am/p/BWa5/&quot; title=&quot;instagr.am: @superhighfives&amp;rsquo; snap of me on-stage at WDS&quot;&gt;David Gleason for taking a snap of me on-stage&lt;/a&gt;. I really like Instagram’s styling. Cute.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;I feel both disgruntled and happy at myself for not having written an entry in almost a year. On the one hand there is a resentful &amp;lsquo;how slack have I been? Why have I not updated!?&amp;rsquo; sentiment on my mind. Meanwhile, another part of me feels reasonably content that my time has been consumed aptly; pursuing uni studies, other personal interests, and the obligatory pinch of turbulence (family and otherwise) here and there that made this an interesting year of personal development. I hope to write more frequently in the future.&lt;/p&gt;
</content>
    </entry>
    
    <entry>
        <title>Interviewed by Gary Barber</title>
        <link href="http://klepas.org/interviewed-by-gary-barber"/>
        <updated>2009-10-13T00:00:00+00:00</updated>
        <id>http://klepas.org/interviewed-by-gary-barber</id>
        <content type="html">&lt;p&gt;As a prelude to the upcoming November Australian &lt;a href=&quot;http://www.edgeoftheweb.org.au/&quot;&gt;Edge of the Web&lt;/a&gt; conference I’ve kindly been interviewed by &lt;a href=&quot;http://manwithnoblog.com/2009/10/11/simon-pascal-klein/&quot;&gt;Gary Barber&lt;/a&gt;. I’ve cross-published the interview below.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;a title=&quot;Raena Jackson-Armitage&amp;rsquo; personal site&quot; href=&quot;http://www.heyraena.com/&quot;&gt;Raena Jackson-Armitage&lt;/a&gt; from &lt;a title=&quot;SitePoint&amp;rsquo; interview with Simon Pascal Klein&quot; href=&quot;http://articles.sitepoint.com/article/interview-simon-pascal-klein&quot;&gt;SitePoint also interviewed me on the same note&lt;/a&gt;. The interview touches on similar web typography and web fonts topics but focuses more on uptake, usage, licensing, and some recent inspirational sites I&amp;rsquo;ve stumbled across.&lt;/p&gt;

&lt;h3 id=&quot;interview-with-gary&quot;&gt;Interview with Gary&lt;/h3&gt;

&lt;dl class=&quot;conversation&quot;&gt;
&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;It&amp;rsquo;s nothing new to most web designers that typography on the web just sucks. With the cripplingly limited number of cross platform typefaces available and the different ways font render on the browsers, it&amp;rsquo;s enough to just make a designer give up in frustration. Discounting the use of the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;&lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;&lt;/acronym&gt; property &amp;ldquo;font-face&amp;rdquo; that only leaves the hacks from &lt;a title=&quot;Cuf&amp;oacute;n on GitHub.com&quot; href=&quot;http://wiki.github.com/sorccu/cufon/about&quot;&gt;Cuf&amp;oacute;n&lt;/a&gt; and &lt;a title=&quot;Wikipedia (En): Scalable Inman Flash Replacement&quot; href=&quot;http://en.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement&quot;&gt;&lt;acronym title=&quot;Scalable Inman Flash Replacement&quot;&gt;sIFR&lt;/acronym&gt;&lt;/a&gt; to allow some alternative relief. Would you recommend these as solutions to overcome this problem or do you have some secret designer &amp;ldquo;Foo&amp;rdquo; hidden up your sleeve?&lt;/p&gt;&lt;/dt&gt;

&lt;dd&gt;&lt;span class=&quot;speaker&quot;&gt;Pascal&lt;/span&gt;
&lt;p&gt;With no intention of being controversial right off the bat, I guess I would have to say I reject the premise of the question. I don&amp;rsquo;t really accept that web typography sucks; sure, it could certainly be a lot better, and I have good hopes for the future, however a lot can be done with what is available to us currently, even as a web standards-devoted designer. We have a number &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;&lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;&lt;/acronym&gt; Fonts options available to us, e.g. font-weight, font-style, font-variant, which combined with line-height, sizing, widths, and the actual font declared offer a lot of variety. Remember Jeff Croft&amp;rsquo;s words: &amp;ldquo;&lt;q&gt;[t]ypography is not picking a &amp;lsquo;cool&amp;rsquo; font&lt;/q&gt;&amp;rdquo;, or any font for that matter.&lt;/p&gt;&lt;/dd&gt;


&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;Personally I&amp;rsquo;m not a fan of the pre-rolled &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; grids that are now all the rage in some circles. Sure I know that they help people layout a web page, and they assist with getting the rhythm on a page right.  But still I suspect that they maybe allowing some designers to be lazy and not think outside the square of the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; grid. What&amp;rsquo;s your view on the use of &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; grids especially from a typography slant?&lt;/p&gt;&lt;/dt&gt;

&lt;dd&gt;&lt;span class=&quot;speaker&quot;&gt;Pascal&lt;/span&gt;
&lt;p&gt;A grid exists to help provide structure and rhythm, and so directly relates to typography. Figuring out a good grid and then turning it into versatile, good &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; is effort, and in that regard I like the pre-rolled grid&amp;thinsp;&amp;mdash;&amp;thinsp;they are great for those of us who want a grid but have time constraints, or just don&amp;rsquo;t want to worry too much about them. I personally don&amp;rsquo;t use them&amp;thinsp;&amp;mdash;&amp;thinsp;I use my own grids. This comes down to my enjoyment in actual coming up with one and building it (yes, I probably ought to be clinical tested for some sort of mental ailment) and finding that the pre-rolled ones don&amp;rsquo;t do things the way I want them to (usually they are over-kills for the projects I&amp;rsquo;ve worked on).&lt;/p&gt;&lt;/dd&gt;


&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;The debate on property font-face and the resultant licensing issues over &lt;acronym title=&quot;Embedded OpenType&quot;&gt;EOT&lt;/acronym&gt; and &lt;acronym title=&quot;OpenType Format&quot;&gt;OTF&lt;/acronym&gt;  has divided the typography community, especially the Type Foundries. Recent upgrades of FireFox has allow for the use of &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;, and with a few &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; tweak&amp;rsquo;s its has now effectively remove the browser incompatibility. Personally I wasn&amp;rsquo;t a fan of the use of &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt; but I have learned to love it.  As a typeface guru how do you see this state of play?&lt;/p&gt;&lt;/dt&gt;

&lt;dd&gt;&lt;span class=&quot;speaker&quot;&gt;Pascal&lt;/span&gt;
&lt;p&gt;Good generally. I see it as a step forward that we&amp;rsquo;ll have access to a larger range of fonts, but I am worried about their usage&amp;thinsp;&amp;mdash;&amp;thinsp;again this reflects off Jeff&amp;rsquo;s earlier quote I noted. Many of the typefaces currently available for licensing from foundries are designed for print use, and differ from fonts that are designed and optimised for screen usage. There are a lot of fonts out there, and in relation only a small number of really good ones, and of that an even smaller number that have been optimised for screen use. Screen-optimised fonts need to cater for the lower resolutions of screens (apposed to printed material) and as such may feature thicker strokes and serifs (e.g. see Georgia) and good hinting tables to ensure readability at small sizes.&lt;/p&gt;

&lt;p&gt;I am aware that &lt;a title=&quot;Typotheque type foundry&quot; href=&quot;http://typotheque.com/&quot;&gt;Typotheque&lt;/a&gt; are investing in creating screen-optimised versions of some of their typefaces. I believe this may be less of a problem in fonts available for web font licensing from foundries as they will be aware of this issue and more of freely-licensed or unlicensed, lower-quality fonts that are used directly via &lt;code&gt;&lt;span class=&quot;element&quot;&gt;@font-face&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/dd&gt;


&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;Are the days of Type Foundries numbered for web industry (I&amp;rsquo;m excluding Print, here, ok)?  Do we really have to put up with the same old tired, font centralised ordering-distribution system?   What do you think of typographers that are shaking of shackles of the Type Foundries and marketing their works directly with designers via the likes of Typekit and League of Moveable Type?&lt;/p&gt;&lt;/dt&gt;

&lt;dd&gt;&lt;span class=&quot;speaker&quot;&gt;Pascal&lt;/span&gt;
&lt;p&gt;&lt;a title=&quot;klepas.org: Web fonts&amp;thinsp;&amp;mdash;&amp;thinsp;the death of type foundries?&quot; href=&quot;http://klepas.org/web-fonts-the-death-of-type-foundries/&quot;&gt;I wrote on this topic in November last year and echoed my belief in the rise of hosting and licensing service&lt;/a&gt;. I think non-foundry controlled services like &lt;a title=&quot;Typekit web font licensing and hosting service&quot; href=&quot;http://typekit.com/&quot;&gt;Typekit&lt;/a&gt; and &lt;a title=&quot;Fonddeck web font licensing and hosting service&quot; href=&quot;http://fontdeck.com/&quot;&gt;Fontdeck&lt;/a&gt; who sub-license web fonts for foundries may distribute some of the centralised control that foundries historically possess. That said, I think the best way to give the foundries a run for their money and up the quality of type design all-round is for more high quality open source, freely-licensed typefaces to become available which may be freely distributed and hosted. Some in the type community see this venture as futile or even misguided but I believe it&amp;rsquo;s the best way to &amp;lsquo;democratise&amp;rsquo; type and typography and educate folks about it&amp;thinsp;&amp;mdash;&amp;thinsp;&amp;lsquo;Hey, have you heard about typography? Check out this awesome example website of good typography that features a really well-done font&amp;rsquo; is a saying amongst non-designers I can&amp;rsquo;t imagine if &amp;lsquo;well-done font&amp;rsquo; is preceded by a dollar sign and figures ranging in three digits before the decimal point (if not more).&lt;/p&gt;&lt;/dd&gt;


&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;Moving on further with groups like &lt;a href=&quot;http://www.theleagueofmoveabletype.com/&quot; title=&quot;The League of Moveable Type&quot;&gt;The League of Moveable Type&lt;/a&gt; popping up all over the place, what&amp;rsquo;s your take on the matter? Are they providing for the service that designers need?  Do you see their product as a general benefit to fellow designers or are they simply ripping the bread and butter from the mouths of the typographers?&lt;/p&gt;&lt;/dt&gt;

&lt;dd&gt;&lt;span class=&quot;speaker&quot;&gt;Pascal&lt;/span&gt;
&lt;p&gt;Yes, absolutely. Time to get a bit progressive and perhaps transgressive. Continuing on from the topics and organisations raised in the last question, I hold organisations, communities, and single type designers who provide considerable and usable parts of their work at no cost (gratis) and under licensing terms (libre) that make distribution and improvements viable in high regard. I think a simple comparison may be drawn here to the personal computer. The personal computer is largely responsible for many technological and general societal advancements due arguably to its increasing affordability. Likewise, the more affordable, or rather the more accessible typefaces and good typography becomes the better the state of typography will be&amp;thinsp;&amp;mdash;&amp;thinsp;the more accessible something is the more attainable are the positives (and negatives) that that something provides. People, either individually, in commercial corporations or as self-structured communities who provide fonts, the means of making them, and educational material on the first two and their use for free will better the state of type, type design, and typography.&lt;/p&gt;

&lt;p&gt;There is a common argument by critics who suggest that there is a lack of people to do this task or to do it well. I disagree; where there is a will there is a way&amp;thinsp;&amp;mdash;&amp;thinsp;look at the many successful free and open source software (&lt;acronym title=&quot;Free and Open Source Software&quot;&gt;FOSS&lt;/acronym&gt;) projects that have bettered the world in one way or another. I think to suggest that type designers are in some fundamental economic way different to programmers, web developers or other smart people who render their time and knowledge in some form to create or better free software to be false. For proof look at organisations like the League of Movable Type and the type designers behind it or working individually: &lt;a href=&quot;http://linuxlibertine.sourceforge.net/Libertine-EN.html&quot; title=&quot;Linux Liberation font super-family&quot;&gt;Linux Libertine&lt;/a&gt; by Philipp H. Poll, &lt;a href=&quot;http://tinyurl.com/gentium&quot; title=&quot;Gentium family&quot;&gt;Gentium&lt;/a&gt; by Victor Gaultney, and &lt;a href=&quot;http://klepas.org/open-baskerville/#status-of-free-fonts&quot; title=&quot;klepas.org: Open Baskerville &amp;sect; The status of free fonts&quot;&gt;a lot more&lt;/a&gt;. It is true that the number of skilled type designers who release freely-licensed works is limited; there are less &lt;acronym title=&quot;Free and Open Source Software&quot;&gt;FOSS&lt;/acronym&gt; type designers than &lt;acronym title=&quot;Free and Open Source Software&quot;&gt;FOSS&lt;/acronym&gt; programmers or web developers, yet compared to software development or web development, type design is a relative niche industry.&lt;/p&gt;

&lt;p&gt;Continuing and concluding with economics, of course free typefaces, freely-licensed written material, and type design software will compete in quality and price with commercially available equivalents. The better the quality and variety of these free things, the cheaper and/or higher in quality the equivalent or related commercial products will be need to be. Who benefits? &amp;lsquo;Consumers&amp;rsquo;&amp;thinsp;&amp;mdash;&amp;thinsp;we do.&lt;/p&gt;&lt;/dd&gt;


&lt;dt&gt;&lt;span class=&quot;speaker&quot;&gt;Gary&lt;/span&gt;
&lt;p&gt;Thanks Pascal, see you in few weeks.&lt;/p&gt;
&lt;/dt&gt;
&lt;/dl&gt;

&lt;p&gt;Thanks Gary!&lt;/p&gt;

&lt;p&gt;The interview is licensed under  show otherwise is licensed under the &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.5/au/&quot;&gt;Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia&lt;/a&gt; license — take, share and be merry.&lt;/p&gt;
</content>
    </entry>
    
 
</feed>