<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arcane Palette Creative Design&#187; Jumping on the webfont bandwagon :: creative web design</title>
	<atom:link href="http://www.arcanepalette.com/category/tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arcanepalette.com</link>
	<description>artistic graphic design</description>
	<lastBuildDate>Mon, 06 Sep 2010 17:06:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Jumping on the webfont bandwagon</title>
		<link>http://www.arcanepalette.com/articles/jumping-webfont-bandwagon/</link>
		<comments>http://www.arcanepalette.com/articles/jumping-webfont-bandwagon/#comments</comments>
		<pubDate>Wed, 26 May 2010 19:04:23 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[cufon]]></category>
		<category><![CDATA[dafont]]></category>
		<category><![CDATA[erik van blokland]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[fontsquirrel]]></category>
		<category><![CDATA[google webfonts]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[jonathan kew]]></category>
		<category><![CDATA[league of movable type]]></category>
		<category><![CDATA[open font library]]></category>
		<category><![CDATA[opentype format]]></category>
		<category><![CDATA[paul irish]]></category>
		<category><![CDATA[truetype fonts]]></category>
		<category><![CDATA[typefaces]]></category>
		<category><![CDATA[typekit]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[unmatched style]]></category>
		<category><![CDATA[web font]]></category>
		<category><![CDATA[web fonts]]></category>
		<category><![CDATA[webfont]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=1230</guid>
		<description><![CDATA[Webfonts are literally changing the face of web design (no pun intended). Even just between the time I wrote my last post on @font-face and now, there have been numerous additions to best practices and available services for invoking new, creative typefaces in your web pages.  It&#8217;s dizzying getting started because there&#8217;s just so much out there and new methods of calling fonts are cropping up all the time.  In this article, I talk about what the web font formats are, where to get them and how to use them. What the options are TrueType/OpenType &#8211; I&#8217;m not going to go into the difference between TrueType and OpenType in this post.  The two things exist and they are more or less the same and are typically the most common font [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1151" title="@font-face" src="http://www.arcanepalette.com/wp-content/uploads/2010/03/@font-face.png" alt="@font face Jumping on the webfont bandwagon" width="455" height="184" />Webfonts are literally changing the face of web design (no pun intended). Even just between the time I wrote <a href="http://www.arcanepalette.com/articles/face/" target="_blank">my last post on @font-face</a> and now, there have been numerous additions to best practices and available services for invoking new, creative typefaces in your web pages.  It&#8217;s dizzying getting started because there&#8217;s just so much out there and new methods of calling fonts are cropping up all the time.  In this article, I talk about <strong>what the web font formats are</strong>, <strong>where to get them</strong> and <strong>how to use them</strong>.</p>
<h3>What the options are</h3>
<p><strong>TrueType/OpenType</strong> &#8211; I&#8217;m not going to go into the difference between <strong>TrueType</strong> and <strong>OpenType</strong> in this post.  The two things exist and they are more or less the same and are typically the most common font types.  The important thing about these formats is copyright; what&#8217;s linked when you use either OpenType or TrueType fonts in your stylesheet or code is the original, unmodified font (or a variation of it) which gets downloaded as an element of the web page (just like any other element of the page like graphics or Flash).  Therefore, if you&#8217;re using TTF or OTF fonts in your code you <em>need to be sure</em> that the font you are using has an open license that allows for public usage.  If you don&#8217;t, you are potentially violating the font creator&#8217;s copyright and could get in a lot of trouble.</p>
<p><strong>EOT</strong> &#8211; The <strong>Embedded OpenType</strong> format was developed by Microsoft in 1997 with the release of Internet Explorer 4.  What makes EOTs geared for the web is that they can <em>only</em> be viewed in a web browser (and, being a proprietary format developed by Microsoft, only one web browser is able to support them, that being IE).  It shouldn&#8217;t be a surprise, then, to know that Internet Explorer <em>only</em> supports EOTs for web fonts (thus far).</p>
<p><strong>WOFF</strong> &#8211; <strong>Web Open Font Format</strong> was developed by Jonathan Kew from Mozilla, Tal Leming from Type Supply and Erik van Blokland at LettError and was first supported by Mozilla Firefox.  Like EOTs, WOFF fonts are only viewable in a browser and have the added benefit of additional compression (capable of decreasing the size of the font by up to 40%) and is able to contain additional metadata, such as the font creator.  WOFF is a favored format by the W3C as the standardized web font format and is planned for support in Internet Explorer 9 and a forthcoming version of Google Chrome.</p>
<p><strong>Cufón</strong> &#8211; Cufón was designed to be an alternative to <a href="http://wiki.novemberborn.net/sifr/" target="_blank">sIFR</a>.  While not a font, <em>per se</em>, it shares a lot of similarities with standard web font embedding and may also violate existing copyrights on proprietary typefaces.  Cufón is a javascript-based method that converts the font into VML (for Internet Explorer) or SVG (for everything else) to render the characters as vector graphics.  Like standard web font embedding, an external file is required (in this case a generated font file read by the javascript) which is downloaded as an element on the page.  One substantial benefit of Cufón is that the rendered fonts are often much smoother than can be achieved by embedding the actual font itself.</p>
<h3>Where to get the fonts</h3>
<p>You may be looking at the list of different font types and wondering how you convert your fonts into one of those than can be embedded into a page.  Don&#8217;t worry, it looks much harder than it is&#8230;</p>
<p>For standard <strong>TTF</strong> and <strong>OTF</strong> fonts, there are numerous places to download free fonts.  However, not all fonts that are &#8220;free&#8221; to use are actually &#8220;free&#8221; to embed on your website.  <a href="http://www.dafont.com" target="_blank">DaFont</a> does a good job of distinguishing free, free for personal use and commercial, as does <a href="http://www.fontsquirrel.com/" target="_blank">FontSquirrel</a>.  There are also open font movements like the <a href="http://www.theleagueofmoveabletype.com/" target="_blank">League of Movable Type</a> and the <a href="http://openfontlibrary.org/" target="_blank">Open Font Library</a> which have repositories of free fonts that are safe to use on your site.</p>
<p><strong>EOTs</strong> used to require an antiquated Microsoft-developed tool for converting fonts to EOT format, but the renewed interest in the format has led to the development of a couple of alternate methods.  For people comfortable working from a commandline, there&#8217;s TTF2EOT.  This simple Windows/*nix-based tool adds a simple commandline interface to convert a selected font to EOT.  For the less geeky, there&#8217;s <a href="http://eotfast.com/" target="_blank">EOTFast</a>, however, as of this writing, it is still under development.</p>
<p>Similarly, <strong>WOFFs</strong> have a commandline tool called <a href="http://people.mozilla.com/~jkew/woff/" target="_blank">sfnt2woff</a> which converts TTF or OTF font files to WOFF.</p>
<p>For <strong>Cufón</strong>, you pretty much have to use the <a href="http://cufon.shoqolate.com/generate/" target="_blank">web-based generator</a> on Cufón&#8217;s home page.  While it gives almost complete control over the end result, the plethora of options can be a little overwhelming.</p>
<p>Luckily, the <em>best</em> and <em>easiest </em>place to get the fonts or have them converted is from the <a href="http://www.fontsquirrel.com/fontface/generator" target="_blank"><strong>@font-face Generator at FontSquirrel</strong></a>.  FontSquirrel&#8217;s @font-face Generator comes in an Easy and Expert mode, so you can choose whether to let the generator pick the best options for you or to have more full control over the options.  Better still, it is able to generate TTF, OTF, EOT, WOFF as well as Cufón files, <em>in addition to</em> the actual CSS and markup needed to call the font (excluding Cufón which &#8212; presumably because it&#8217;s so much different from standard @font-face embeds in terms of how to integrate it into your site &#8212; you&#8217;re on your own for the code).  After you accept the agreement that the fonts you are using should be free to use, you just upload your source TTF or OTF and get a zip file containing everything you need to embed your font.</p>
<h3>﻿How to use them</h3>
<p>If you used FontSquirrel&#8217;s Generator,  you can pretty much use what it spits out verbatim.  Even so, it helps to know what you&#8217;re doing and why, and there&#8217;s a few tricks that might help along the way&#8230;</p>
<p>First off, the code.  This is <a href="http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/#smiley" target="_blank">Paul Irish&#8217;s Bulletproof: Smiley</a> variation of the @font-face declaration, and is edging to be the standard.  You can read his post about <a href="http://paulirish.com/2010/font-face-gotchas/#smiley" target="_blank">why it&#8217;s the best option</a>.  For my part, I defer to the experts who have spent much more time than I have researching all the variables.  If you downloaded your kit from FontSquirrel, you&#8217;ll already be using the smiley declaration.</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="co1">@font-face {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;Graublau Web&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">src<span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">&#39;GraublauWeb.eot&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">src<span class="sy0">:</span> local<span class="br0">&#40;</span><span class="st0">&#39;☺&#39;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">&#39;GraublauWeb.otf&#39;</span><span class="br0">&#41;</span> format<span class="br0">&#40;</span><span class="st0">&#39;opentype&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Simply replace the filename above with the path to the font and set the font-family name to what you&#8217;ll call it later.  It should be noted that Firefox has problems with paths that aren&#8217;t relative (e.g. full url paths) &#8212; this is a security precaution to prevent people from injecting malicious code into their site from off-site.  In most cases, this isn&#8217;t an issue, but it can pose a challenge if, for example, you were trying to use @font-face on a site with no local storage (like a BlogSpot blog) and were using some kind of off-site dump to host your files.</p>
<p>So that declares what that font is.  When you actually want to <em>use </em>it, you just add the family name to your font-family the way you would normally, so something like this:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1">h1 <span class="br0">&#123;</span><span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;Graublau Web&#39;</span>, <span class="st0">&#39;Times New Roman&#39;</span>, Times, <span class="kw2">serif</span><span class="sy0">;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>You&#8217;ll also, of course, need to have uploaded the font to the server and make sure your source url points to the right place, but other than that, it&#8217;s pretty simple.  So what of these special considerations and tricks I mentioned?  Well, as usual, the first problem involves Internet Explorer.</p>
<p>If you&#8217;ve played with @font-face declarations at all, you may have noticed that your font looks great in Firefox, spectacular in Chrome and Safari, and like absolute <em>crap</em> in IE.  Ironically, this is because of ClearType &#8212; you know, that service that was introduced in WindowsXP that was designed to introduce font <em>smoothing</em>.  In IE7 and higher, ClearType is running within the browser, which in most cases is fine <em>except</em> when it comes to custom fonts.  In that case, it&#8217;s evidently trying to do a task that&#8217;s not required of it, and ends up hacking away at the edges which is what gives you the horrible jaggy appearance.  (This is one case in which, actually, IE6 is <em>less broken</em> then its successors.  Too bad it will be nigh impossible to find a machine that uses IE6 anymore.)  The fix, then, is to <em>turn off ClearType</em>, which, conveniently, you can do using Microsoft&#8217;s browser filters.  In the above h1, you would change it to look like this:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1">h1 <span class="br0">&#123;</span><span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;Graublau Web&#39;</span>, <span class="st0">&#39;Times New Roman&#39;</span>, Times, <span class="kw2">serif</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">filter<span class="sy0">:</span> progid<span class="re2">:DXImageTransform</span><span class="re1">.Microsoft</span><span class="re1">.AlphaImageLoader</span><span class="br0">&#40;</span>src=images/headers/hIEfix<span class="re1">.png</span>,sizingMethod=<span class="kw2">crop</span><span class="br0">&#41;</span><span class="sy0">;</span>zoom<span class="re2">:<span class="nu0">1</span></span><span class="sy0">;</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>I won&#8217;t go into detail about the what&#8217;s and why&#8217;s of this.  It&#8217;s a hack (as per usual) that exploits the fact that IE&#8217;s filters don&#8217;t use ClearType functionality to prevent possible other problems.  You can <a href="http://allcreatives.net/2009/12/05/smoother-font-face-embedding-in-ie-7-8/" target="_blank">read more about the hack and download the source files</a> at AllCreatives.net (including the 1&#215;1 px hIEfix.png required for this to work).</p>
<p>The second problem has been dubbed FOUT (Flash Of Unstyled Text).  In WebKit (Safari &amp; Chrome), text that is styled in custom fonts doesn&#8217;t actually load until the font loads.  Other browsers, most notably Firefox and Opera, load the fallback or a default font first, <em>then</em> the custom font when it downloads.  This is FOUT, and can be jarring to the user.  There&#8217;s a couple of best practices here and then some ideas on how to fight the FOUT.</p>
<p>FOUT best practices:</p>
<ul>
<li>Keep your fonts small.  Just like images, the smaller the font file size is, the faster it will load, and the less time the browser will take downloading it.  Tools like FontSquirrel&#8217;s font generator can actually reduce the size of the font, and if WOFFs become standardized, that will help out as well since they&#8217;re compressed.</li>
<li>Load your fonts first.  Most browsers work on a first come-first served basis for all elements, so putting your fonts right up at the top will help get them loaded first.  If you&#8217;ve got your font declarations in your normal css file, load that first.  If they are in a separate css file (which isn&#8217;t a bad idea), load that.  A rule of thumb is to load your font right underneath the <a href="http://www.unmatchedstyle.com/news/practical-steps-for-using-font-face-in-your-websites-now.php" target="_blank">according to a presentation given by the guys at Unmatched Style</a>, it decreases the load time for the font.</li>
<li>Subset fonts.  Fonts often come with hundreds of different characters, including special characters, which you may or may not be using.  Off the top of my head, I can think of several fonts that have the same characters for upper- or lower case letters.  If you don&#8217;t need the extra characters, you can just not include them in your font and this will make the font size smaller.  This is another thing you can do with the FontSquirrel generator.</li>
</ul>
<p>If all else fails and you still need some help with the FOUT issue, there&#8217;s a couple of hacks you can try.  Like the &#8220;smiley&#8221; @font-face declaration, these come from Mr. Paul Irish who writes about <a href="http://paulirish.com/2009/fighting-the-font-face-fout/" target="_blank">fighting FOUT</a>.</p>
<p>The first thing you can do is preload your fonts.  This is similar to the method of preloading images that display on a hover event where you use a display: none; or a visibility: hidden; or push it all the way off the screen somewhere in, like, left: -999em;.  Let&#8217;s say you&#8217;ve got two fonts you&#8217;re using on your site:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="co1">@font-face {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;ChunkFive Regular&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">src<span class="sy0">:</span> local<span class="br0">&#40;</span><span class="st0">&#39;ChunkFive Regular&#39;</span><span class="br0">&#41;</span>, <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">&#39;fonts/Chunkfive.otf&#39;</span><span class="br0">&#41;</span> format<span class="br0">&#40;</span><span class="st0">&#39;opentype&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">@font-face {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;League Gothic&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">src<span class="sy0">:</span> local<span class="br0">&#40;</span><span class="st0">&#39;league gothic&#39;</span><span class="br0">&#41;</span>, <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">&#39;fonts/LeagueGothic.otf&#39;</span><span class="br0">&#41;</span> format<span class="br0">&#40;</span><span class="st0">&#39;opentype&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>We&#8217;ll create some CSS styles to call those like this:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="re1">.chunk</span> <span class="br0">&#123;</span> <span class="kw1">font-family</span><span class="sy0">:</span><span class="st0">&#39;ChunkFive Regular&#39;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">.league</span> <span class="br0">&#123;</span> <span class="kw1">font-family</span><span class="sy0">:</span><span class="st0">&#39;League Gothic&#39;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">.allfonts</span> <span class="br0">&#123;</span> <span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;ChunkFive Regular&#39;</span>, <span class="st0">&#39;League Gothic&#39;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Now, in the actual body of the page, we&#8217;ll preload those fonts:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;!&#8211; preloads both fonts in gecko and opera, webkit only gets the first &#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;b class=&quot;allfonts&quot; style=&quot;position:absolute; visibility:hidden&quot;&gt;download please&lt;/b&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211; preloads all the fonts in the fontstack in gecko, opera, and webkit &#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;b class=&quot;chunk&quot; style=&quot;position:absolute; visibility:hidden&quot;&gt;download please&lt;/b&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;b class=&quot;league&quot; style=&quot;position:absolute; visibility:hidden&quot;&gt;download please&lt;/b&gt;</div>
</li>
</ol>
</div>
<p>Personally, I think the .allfonts class is overkill if you&#8217;re calling both of them individually anyway, especially given that that&#8217;s targeting WebKit and WebKit isn&#8217;t our problem.  IE will download the fonts when they are declared, so this doesn&#8217;t affect IE at all.  Also, one thing you should be aware of if you decide to use this method is that it won&#8217;t validate, if that matters to you.</p>
<p>The other option is to target Firefox directly with this javascript which asks Firefox to act like WebKit, e.g. don&#8217;t load the text until the font has loaded.  For really slow-loading pages, there&#8217;s a 3-second fallback so people aren&#8217;t waiting forever for pages that take a really long time to load.  To do that, you will put this in your &lt;head&gt;:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// if firefox 3.5+, hide content till load (or 3 seconds) to prevent FOUT</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> d = document, e = d.<span class="me1">documentElement</span>, s = d.<span class="me1">createElement</span><span class="br0">&#40;</span><span class="st0">&#39;style&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span>e.<span class="me1">style</span>.<span class="me1">MozTransform</span> === <span class="st0">&#39;&#39;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="co1">// gecko 1.9.1 inference</span></div>
</li>
<li class="li1">
<div class="de1">s.<span class="me1">textContent</span> = <span class="st0">&#39;body{visibility:hidden}&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1">e.<span class="me1">firstChild</span>.<span class="me1">appendChild</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> f<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> s.<span class="me1">parentNode</span> <span class="sy0">&amp;</span>amp;<span class="sy0">&amp;</span>amp; s.<span class="me1">parentNode</span>.<span class="me1">removeChild</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">addEventListener<span class="br0">&#40;</span><span class="st0">&#39;load&#39;</span>,f,<span class="kw2">false</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">setTimeout<span class="br0">&#40;</span>f,<span class="nu0">3000</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>This isn&#8217;t going to absolutely fix the problem either.  All of these are just ways to try to avoid the FOUT issue and none of them are foolproof, but they can help.</p>
<h3>Alternate methods</h3>
<p>There are some other methods for calling custom fonts.  One that I mentioned at the beginning is Cufón.  With Cufón, you must have, or link to, the source javascript, so the first part is to either <a title="Right-click -> Save As&#8230; to download Cufon js file&#8221; href=&#8221;http://cufon.shoqolate.com/js/cufon-yui.js&#8221; target=&#8221;_blank&#8221;>get the javascript file</a> and host it locally, or else call it from their server.  You&#8217;ll also need the font file from <a href="http://cufon.shoqolate.com/generate/" target="_blank">their generator</a> (or FontSquirrel&#8217;s generator).  When you have both files, you&#8217;ll call them in  your  like this:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;cufon-yui.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;Vegur_300.font.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">Cufon.replace(&#39;h1&#39;);
</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>As you can probably guess, Cufón works by substituting its font in a given class (h1 in the above example).  If you want to use multiple fonts, you can do that with this:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;cufon-yui.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;Vegur_300.font.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;Myriad_Pro_400.font.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">Cufon.replace(&#39;h1&#39;, { fontFamily: &#39;Vegur&#39; });
</div>
</li>
<li class="li1">
<div class="de1">Cufon.replace(&#39;h2&#39;, { fontFamily: &#39;Myriad Pro&#39; });
</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>It&#8217;s a little clumsy compared to @font-face and some of the other alternate methods, but if you&#8217;ve used sIFR (and by used, I mean embedded by hand, not just used a <a href="http://wordpress.org/extend/plugins/wp-sifr/" target="_blank">WordPress plugin</a>), it&#8217;s probably pretty familiar.</p>
<p><a href="http://typekit.zendesk.com/entries/130054-using-typekit-the-basics" target="_blank">Typekit has a bit of a roundabout method</a> mostly to maintain control over commercial fonts and to make sure that only the font that was selected from the site and registered to you for use on the site you&#8217;ve registered with Typekit will display.  For the most part, though, it&#8217;s just two lines of javascript and a CSS class you set on the site; so, similar to what we&#8217;ve been doing already.  There are a few other companies, like <a href="http://www.extensis.com" target="_blank">Extensis</a> with <a href="http://www.webink.com" target="_blank">WebINK</a>, that are jumping into the webfont market that handle it similarly.  In any case where you&#8217;re using a service, you&#8217;ll more than likely be using a javascript to contact the service and retrieve the font.</p>
<p>As of May 19, 2010, Google has launched their own <a href="http://code.google.com/apis/webfonts/" target="_blank">webfont service</a> and, for what it&#8217;s worth, it seems really promising so far.  They are using open and Creative Commons-licensed fonts and have an easy to use <a href="http://code.google.com/webfonts" target="_blank">font directory</a> (with only a handful of fonts right now &#8212; hopefully this will grow as time goes on).  When you find the font you want to use, you just need to click &#8220;Get the code&#8221; and <em>voila</em> there&#8217;s your source, which, in this case, is an externally hosted stylesheet like this:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;link href=&#39;http://fonts.googleapis.com/css?family=Droid+Sans&#39; rel=&#39;stylesheet&#39; type=&#39;text/css&#39;&gt;</div>
</li>
</ol>
</div>
<p>Then you just need to call the font normally in your CSS.</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1">h1 <span class="br0">&#123;</span> <span class="kw1">font-family</span><span class="sy0">:</span> <span class="st0">&#39;Droid Sans&#39;</span>, arial, <span class="kw2">sans-serif</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>The Google Webfont API also includes a webfont loader.  I haven&#8217;t played with this yet, but it appears to be similar to the preloader I mentioned earlier.  One interesting point to the webfont loader is that it&#8217;s written to allow fonts that are being loaded from other sources, not just Google.  It was co-written with Typekit, so of course Typekit can be called with the loader as well, like this:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">WebFont.load({
</div>
</li>
<li class="li1">
<div class="de1">google: {
</div>
</li>
<li class="li1">
<div class="de1">families: [ &#39;Tangerine&#39;, &#39;Cantarell&#39; ]
</div>
</li>
<li class="li1">
<div class="de1">},
</div>
</li>
<li class="li1">
<div class="de1">typekit: &#39;myKitId&#39;
</div>
</li>
<li class="li1">
<div class="de1">});
</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;style type=&quot;text/css&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">.wf-inactive p {
</div>
</li>
<li class="li1">
<div class="de1">font-family: serif
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li1">
<div class="de1">.wf-active p {
</div>
</li>
<li class="li1">
<div class="de1">font-family: &#39;Tangerine&#39;, serif
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li1">
<div class="de1">.wf-inactive h1 {
</div>
</li>
<li class="li1">
<div class="de1">font-family: serif;
</div>
</li>
<li class="li1">
<div class="de1">font-size: 16px
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li1">
<div class="de1">.wf-active h1 {
</div>
</li>
<li class="li1">
<div class="de1">font-family: &#39;Cantarell&#39;, serif;
</div>
</li>
<li class="li1">
<div class="de1">font-size: 16px
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li1">
<div class="de1">&lt;/style&gt;</div>
</li>
</ol>
</div>
<p>Confused by all the options?  Here&#8217;s a <a href="http://www.fontsquirrel.com/webfont_comparison/" target="_blank">comparison of FontSquirrel-generated fonts vs. Typekit vs. Google Webfonts</a>.  This gives you a bit of an idea of how each font is rendered, and it&#8217;s all HTML/CSS so you can check this page in multiple browsers to compare browser compatibility.</p>
<p>And that&#8217;s pretty much it.  Before going, I should mention that FontSquirrel also has premade kits for a variety of different @font-face embeddable fonts, so it&#8217;s a good idea to see if the font you&#8217;re looking for already has a kit.  Also, some browsers don&#8217;t automatically <strong>bold </strong> or <em>italicize </em>some<em> </em>custom fonts so, like in print design, you need to declare the bold or italic variation separately.  There&#8217;s more discussion on that, if you&#8217;re interested, at the end of the <a href="http://www.unmatchedstyle.com/news/practical-steps-for-using-font-face-in-your-websites-now.php" target="_blank">Unmatched Style @font-face presentation</a>.  Thanks for reading this far &#8212; I tried to make this as comprehensive a post as I could so if you know of any tips, tricks, hacks or other sources, let me know in the comments!</p>
___________________<p><img class="alignleft" title="Chris" src="http://www.gravatar.com/avatar/2e6c0a0ecb51c9d67263485a1713294d.png" alt="2e6c0a0ecb51c9d67263485a1713294d Jumping on the webfont bandwagon" width="80" height="80" />Chris Reynolds is <a href="http://arcanepalette.com/about-us/">one half of Arcane Palette</a>.  He has a personal blog, <a href="http://jazzsequence.com">jazzsequence</a>, where he writes about music, technology and social media and shares links, videos, and posts various personal music and writing projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/articles/jumping-webfont-bandwagon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I broke a javascript gallery script to make a Flash-like slideshow</title>
		<link>http://www.arcanepalette.com/articles/broke-javascript-gallery-script-flashlike-slideshow/</link>
		<comments>http://www.arcanepalette.com/articles/broke-javascript-gallery-script-flashlike-slideshow/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 15:21:19 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[custom wordpress design]]></category>
		<category><![CDATA[Dynamic Content Gallery]]></category>
		<category><![CDATA[Featured Content Gallery]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[page templates]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[text shadow]]></category>
		<category><![CDATA[the art of eyebrows]]></category>
		<category><![CDATA[the eyebrow specialist]]></category>
		<category><![CDATA[web fonts]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=1162</guid>
		<description><![CDATA[This is a story about a site redesign.  The site was for the mother of a client we’ve worked with on other projects.  It was a kind of site we don’t normally do, but we took the gig because it was a referral and someone we know and like working with.  The original site was built in WordPress, and our job would be to fix it up, make it more SEO-friendly and just generally take what they did and make it better. When I got access to the WordPress backend and found that, rather than building a new theme, the previous designers just added styles to the WordPress Default theme, I figured just how right I was to just take what they did and make it better.  They also controlled [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arcanepalette.com/wp-content/uploads/2010/04/artofeyebrows.jpg" rel="lightbox[1162]"><img class="alignright size-medium wp-image-1164" title="artofeyebrows" src="http://www.arcanepalette.com/wp-content/uploads/2010/04/artofeyebrows-300x206.jpg" alt="artofeyebrows 300x206 How I broke a javascript gallery script to make a Flash like slideshow" width="300" height="206" /></a>This is a story about a site redesign.  The site was for the mother of a client we’ve worked with on other projects.  It was a kind of site we don’t normally do, but we took the gig because it was a referral and someone we know and like working with.  The original site was built in WordPress, and our job would be to fix it up, make it more SEO-friendly and just generally take what they did and make it better.</p>
<p>When I got access to the WordPress backend and found that, rather than building a new theme, the previous designers just added styles to the <a href="http://www.opensourcecms.com/demo/1/87/WordPress" target="_blank">WordPress Default</a> theme, I figured just how right I was to just take what they did and make it better.  They also controlled the layout via <a href="http://www.smashingmagazine.com/2009/04/08/from-table-hell-to-div-hell/" target="_blank">tables</a> and built no <a href="http://codex.wordpress.org/Pages#Page_Templates" target="_blank">custom page templates</a>, all of which told me that they didn&#8217;t understand the possibilities and/or were not very skilled WordPress designers or they were just really lazy.</p>
<p>One of the first things I noticed on the site was that there was a lot of graphics that were mostly text.  Search engines can’t read images, so this text – much of it was the sort of keywords that would be valuable for search engines to crawl – was useless (at least from a search engine standpoint).  In addition, said text was, in many cases, <a href="http://www.merriam-webster.com/dictionary/jaggy" target="_blank">jaggy</a> and ugly.  My question: why bother making text into an image if it doesn’t look smooth and clean?  Either use a unique font you can’t get with available web fonts and make it look nice, or just use regular text.  So the first step was taking several graphics like this and removing all the text, and then adding the text to the code and styling it with CSS.  To get a more unique and attractive look (i.e. to make it look more visual and like the graphic it was replacing) I added subtle text-shadows and styled the font using <a href="http://www.webfonts.info/wiki/index.php?title=What_are_webfonts%3F">@font-face</a>.</p>
<p>There was also one of those Flash slideshows as a major feature of the home page.  You know, the Flash slideshows with an image and some text.  None of it is interactive; you can’t click on anything to link to a page or anything, and those images, too, had text buried in them that would be relevant for search engines, using the sorts of phrases that I would expect users to actually use in search queries.   My next question: why use a Flash slideshow when you could have the exact same effect, and make the text searchable, by using available javascript-based technologies like AJAX?  The next task, then, was to find some jQuery slideshow script similar to <a href="http://www.studiograsshopper.ch/wordpress-plugins/dynamic-content-gallery-v2/" target="_blank">Dynamic Content Gallery</a> or <a href="http://www.featuredcontentgallery.com/" target="_blank">Featured Content Gallery</a>.  In fact, since it was WordPress, I considered building one of those into the theme and using a redirect to point them all to the same page, but ultimately, this would be a bit of a lame hack and I found a better solution.</p>
<p>First, I found a <a href="http://www.queness.com/post/1450/jquery-photo-slide-show-with-slick-caption-tutorial-revisited" target="_blank">simple jQuery image slide show</a> that I could customize the code for (<a href="http://www.queness.com/resources/html/slideshow2/index.html" target="_blank">demo here</a>).  Like Featured/Dynamic Content Gallery and a multitude of other slideshows like them, there was a caption that would rise up from the bottom and then slide back down when the image transitioned.  But up and down didn’t really work for the layout I was using.  I really needed it to either be there all the time (like it would be if it were a static image in a Flash slideshow) or come in from the right side.  Here’s the relevant javascript code:</p>
<pre>//Display the caption
$('#slideshow-caption').css({opacity: 0.7, bottom:0});</pre>
<p>And…</p>
<pre>//Hide the caption first, and then set and display the caption
$('#slideshow-caption').animate({bottom:-70}, 300,() {

//Display the content
$('#slideshow-caption h3').html(title);
$('#slideshow-caption p').html(desc);
$('#slideshow-caption').animate({bottom:0}, 500);
});</pre>
<p>The above lines of code control the captions displaying/hiding, the height of said caption area, opacity, etc.  In both cases, I replaced “bottom” with “right” just to see what happened.  What happened was the text didn’t slide at all – it just stayed there until the next slide – precisely what I really wanted to do anyway.  Some styling with @font-face for the captions and, <em>voila</em>, a working alternative to the Flash slideshow.</p>
<p>See the final product here: <a href="http://theeyebrowspecialist.com.au/" target="_blank">The Art of Eyebrows</a></p>
___________________<p><img class="alignleft" title="Chris" src="http://www.gravatar.com/avatar/2e6c0a0ecb51c9d67263485a1713294d.png" alt="2e6c0a0ecb51c9d67263485a1713294d How I broke a javascript gallery script to make a Flash like slideshow" width="80" height="80" />Chris Reynolds is <a href="http://arcanepalette.com/about-us/">one half of Arcane Palette</a>.  He has a personal blog, <a href="http://jazzsequence.com">jazzsequence</a>, where he writes about music, technology and social media and shares links, videos, and posts various personal music and writing projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/articles/broke-javascript-gallery-script-flashlike-slideshow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress tip: How to upgrade all your plugins in one go</title>
		<link>http://www.arcanepalette.com/articles/wordpress-tip-upgrade-plugins/</link>
		<comments>http://www.arcanepalette.com/articles/wordpress-tip-upgrade-plugins/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:00:50 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[manage plugins]]></category>
		<category><![CDATA[upgrade plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress blog]]></category>
		<category><![CDATA[wordpress plugins]]></category>
		<category><![CDATA[wordpress tips]]></category>
		<category><![CDATA[wordpress tricks]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=1034</guid>
		<description><![CDATA[If you haven&#8217;t upgraded your WordPress blog to 2.9 (actually 2.9.1 as of the time of this writing), you should.  With the 2.9 update, the people at WP have implemented a feature that I&#8217;ve been pining for for some time.  The only problem is it&#8217;s not where you&#8217;d think it might be. If you do regularly keep up on your WP updates whenever you get an alert that there&#8217;s a new version, you probably saw the option to upgrade your plugins when you upgraded to 2.9.1.  But I know a lot of people (myself included) often let updates slide, and while I did run out and upgrade to 2.9, I hunted for the upgrade-all-the-plugins-at-once button and didn&#8217;t find it.  If you&#8217;re like me, this post is for you, and here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-select.jpg" rel="lightbox[1034]"><img class="alignright size-medium wp-image-1037" title="plugins-select" src="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-select-300x202.jpg" alt="plugins select 300x202 WordPress tip: How to upgrade all your plugins in one go" width="300" height="202" /></a>
<p>If you haven&#8217;t upgraded your WordPress blog to 2.9 (actually 2.9.1 as of the time of this writing), you should.  With the 2.9 update, the people at WP have implemented a feature that I&#8217;ve been pining for for some time.  The only problem is it&#8217;s not where you&#8217;d think it might be.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-manage.jpg" rel="lightbox[1034]"><img class="alignleft size-medium wp-image-1035" title="plugins-manage" src="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-manage-300x93.jpg" alt="plugins manage 300x93 WordPress tip: How to upgrade all your plugins in one go" width="300" height="93" /></a>
<p>If you do regularly keep up on your WP updates whenever you get an alert that there&#8217;s a new version, you probably saw the option to upgrade your plugins when you upgraded to 2.9.1.  But I know a lot of people (myself included) often let updates slide, and while I did run out and upgrade to 2.9, I hunted for the upgrade-all-the-plugins-at-once button and didn&#8217;t find it.  If you&#8217;re like me, this post is for you, and here&#8217;s what you do.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-upgrade.jpg" rel="lightbox[1034]"><img class="alignright size-full wp-image-1036" title="plugins-upgrade" src="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-upgrade.jpg" alt="plugins upgrade WordPress tip: How to upgrade all your plugins in one go" width="212" height="280" /></a>
<p>First off, upgrade if you haven&#8217;t already.  WordPress has made it easy to do an automatic upgrade since the 2.7 release, so all you need to do (in most cases) is click a button and WordPress does the work for you.  But what if you are at 2.9+ and you have a little red icon next to your plugins menu on the sidebar, and you want to take care of all of those at once?  It&#8217;s <em>not</em> in the Plugins page &#8212; which is where I assumed it would be &#8212; despite the fact that you can filter your plugins by those needing to be updated.  Instead, you&#8217;ll need to head to the Upgrade page in the Tools menu, a place that normally you wouldn&#8217;t go for anything other than upgrading WordPress.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-output.jpg" rel="lightbox[1034]"><img class="alignleft size-medium wp-image-1038" title="plugins-output" src="http://www.arcanepalette.com/wp-content/uploads/2010/01/plugins-output-300x274.jpg" alt="plugins output 300x274 WordPress tip: How to upgrade all your plugins in one go" width="300" height="274" /></a>
<p>Once you&#8217;re on the Upgrade screen, everything should make sense.  If you need to upgrade your WordPress version, you&#8217;ll have an option to do that, and if you need to upgrade any of your plugins, they will be listed underneath with checkboxes next to each one, and an option to select all. After you click on the Upgrade Plugins button, it&#8217;ll go through each one, and tell you at every point what&#8217;s going on.</p>
<p>&#8230;and that&#8217;s it.  WordPress will tell you when it&#8217;s done, and the whole process should be pretty quick.</p>
<h3>Fixing problems</h3>
<p>What it&#8217;s doing is temporarily dropping your site into maintenance mode while it does the work.  This takes down your site for a few minutes and displays a message that says <em>&#8220;Briefly unavailable for scheduled maintenance. Check back in a minute&#8221;</em> (it looks like <a href="http://cache.techie-buzz.com/images/posts/FixBrieflyunavailableforscheduledmainten_12EB3/wordpress_maintenance.png" target="_blank" rel="lightbox[1034]">this</a>).  It should <em>really</em> only take a few minutes and as soon as it&#8217;s done it will come back up.  However, if there&#8217;s a problem on your server and the script stops, it means your site is locked in maintenance mode, and even <em>you</em> can&#8217;t get in.</p>
<p>Luckily, this is relatively easy to fix.  When WordPress goes into maintenance mode, it creates a temporary file in your site&#8217;s &#8220;root&#8221; folder (the folder on the server that your WordPress installation is located that contains the wp-admin, wp-content, and wp-includes folders) called .maintenance.  All you need to do if your site gets stuck in maintenance mode is to delete the .maintenance file.  This may require connecting via FTP or going to your webhost and accessing a File Browser-like GUI that displays a list of files in your installation.  Once you&#8217;re looking at the files in your WordPress install, it should be easy to spot the .maintenance file and delete it.  Once that&#8217;s done, you&#8217;re back in business (although you may want to try upgrading that plugin individually from the Manage Plugins page, or manually by uploading a newer version to your server).</p>
<h3>Saves time</h3>
<p>Being someone who maintains multiple WordPress sites and has to periodically upgrade all of them when there&#8217;s an update available, this feature is invaluable to me.  It&#8217;s so much faster and easier to go to one screen on each site I need to update, and upgrade both the version of WordPress and all the plugins more or less at the same time, and then move on to the next site.  Even if you only have one blog, this takes a lot of the hassle out of having to do periodic plugin updates.  It&#8217;s something that a lot of us have been asking for since Automattic added in the automatic upgrade feature, and I&#8217;m glad they finally added it in.</p>
<p><em>Questions?  Comments?  We&#8217;d love to hear from you!  Let us know if this post helped you out!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/articles/wordpress-tip-upgrade-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Design Cost Calculator</title>
		<link>http://www.arcanepalette.com/tips-and-tricks/web-design-cost-calculator/</link>
		<comments>http://www.arcanepalette.com/tips-and-tricks/web-design-cost-calculator/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 19:47:51 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[brand strength]]></category>
		<category><![CDATA[cost calculator]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[creativity coefficient]]></category>
		<category><![CDATA[design cost]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[doing business]]></category>
		<category><![CDATA[freebies]]></category>
		<category><![CDATA[individuality]]></category>
		<category><![CDATA[price ratio]]></category>
		<category><![CDATA[pricing design]]></category>
		<category><![CDATA[quality price ratio]]></category>
		<category><![CDATA[smashing magazine]]></category>
		<category><![CDATA[spreadsheet]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web design value]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=738</guid>
		<description><![CDATA[there are a few of these floating around on the web&#8230; a few months ago, smashing magazine posted an article called Quality-Price-Ratio in Web Design (Pricing Design Work).  i&#8217;m not going to recap the article, you can go over there and read it yourself if you&#8217;re interested &#8212; it&#8217;s a good read both, i think, for designers as well as people trying to shop for good designers.  there were two main points of the article: 1) price and quality do not necessarily go hand-in-hand, and 2) generally speaking, you get what you pay for. the article posed a solution for designers for pricing their work, a formula.  yes, there are lots of pricing  your work formulas out there, but this one has a lot of room for variation depending on [...]]]></description>
			<content:encoded><![CDATA[<p>there are a few of these floating around on the web&#8230;</p>
<p>a few months ago, <a href="http://smashingmagazine.com" target="_blank">smashing magazine</a> posted an article called <em><a href="http://www.smashingmagazine.com/2009/07/14/quality-price-ratio-in-web-design-pricing-design-work/" target="_blank">Quality-Price-Ratio in Web Design (Pricing Design Work)</a></em>.  i&#8217;m not going to recap the article, you can go over there and read it yourself if you&#8217;re interested &#8212; it&#8217;s a good read both, i think, for designers as well as people trying to shop for good designers.  there were two main points of the article: 1) price and quality do not necessarily go hand-in-hand, and 2) generally speaking, you get what you pay for.</p>
<p>the article posed a solution for designers for pricing their work, a formula.  yes, there are lots of pricing  your work formulas out there, but this one has a lot of room for variation depending on how much you value  your own work.  the formula goes like this:</p>
<blockquote><p><em>price = creativity coefficient x cost of doing business</em></p></blockquote>
<p>cost of doing business is obvious &#8212; it&#8217;s what most of these calculators are for.  but what, you ask, is the creativity coefficient?  it&#8217;s the amount by which you determine the value of your services.  anyone can come up with an estimate based roughly on the cost of doing business &#8212; the variation comes when you&#8217;re trying to figure out how much to <em>add </em>to that so that you can actually make money doing design.  if you&#8217;re just making ends meet to pay the bills, you&#8217;re probably in the wrong industry.  the so-called creativity coefficient includes <em>difficulty of the project</em>, your company&#8217;s <em>brand strength</em>, and your style or <em>individuality</em>.  there is no 1-10 scale, it&#8217;s all left open-ended and depending on  how you value your own services, a project could be valued at $100 or $10,000, it all depends on the numbers you plug in.</p>
<p>so i made a spreadsheet with formulas to come up with a couple different quotes based on different sets of variables as a way to get an idea how to price each project.  the reason i like a range is because another factor is the audience &#8212; who you&#8217;re proposing this quote for and what they&#8217;re expectations are.  certainly you could give them a high bid and if they walk away, well, that&#8217;s their loss, but we don&#8217;t typically work that way.  and anyway, we&#8217;re just getting started and don&#8217;t have heavy <em>brand strength</em> or traffic yet.</p>
<p>because i&#8217;ve used this a few times, i thought it would be useful for other designers, or for people shopping for design to get an idea of how our pricing systems may work.  so i&#8217;m offering up my version of the designer&#8217;s cost calculator.</p>
<h2>how it works</h2>
<p>the first thing you do is plug in your expenses.  for designers this is your cost of doing business, and if you work from home, you can include things like a percentage of your mortgage or rent for the space you use as your office, internet service, software and hardware upgrades, etc.  basically, all that stuff that you should be itemizing on your taxes that help you run your business.  that creates your operating cost.  i then break down the operating cost to cost-per-day, which divides your monthly expenses by 25 (for 25 business days in a month).  then my formula branches out &#8212; i have a set of numbers based on 8-hour days, and a set of numbers that divides your daily operating cost by 24 (for instance, if you&#8217;re including things like electricity bills or other expenses that are an always-on sort of thing).  i also have a place to enter your hourly rate for comparison.</p>
<p>that&#8217;s all the setup.  so you have a project, what do you do?  first, figure out approximately how long it will take.  i break this down in days and hours.  then you plug in the <em>difficulty</em>, <em>brand strength</em>, and <em>individuality</em> variables of the <em>c</em><em>reativity coefficient. </em>and that&#8217;s it.  now you have a range of quotes based on different variables.  i have a quote based solely on number of hours x hourly rate (and does not take into account the <em>creativity coefficient</em>), one that is based on the 8 hour operating cost, one that is based on the 24 hour operating cost, and one that is based on the daily operating cost.  then i take a median of all four and offer that up as well.</p>
<p>it&#8217;s a bit of overkill, but it can be tweaked and customized, and i like having options.  and that&#8217;s why i&#8217;m offering it up.  you can take it and do whatever you want with it, change the formula, hard code your creativity coefficient, whatever.  it&#8217;s yours.</p>
<p>the zip file contains 3 versions for different formats; xlsx for office 2007, xls for all other versions of office, and ods for OpenOffice.org and other open office projects.</p>
<p><a href="http://www.arcanepalette.com/downloads/costcalculator" target="_blank">download designer cost calculator</a> 27.3 kB<br />
downloaded 283 times</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/tips-and-tricks/web-design-cost-calculator/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Easy javascript to spice up your search box and save space</title>
		<link>http://www.arcanepalette.com/tips-and-tricks/easy-javascript-spice-search-box-save-space/</link>
		<comments>http://www.arcanepalette.com/tips-and-tricks/easy-javascript-spice-search-box-save-space/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 14:43:23 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[code snippet]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[input box]]></category>
		<category><![CDATA[input type text]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[onblur]]></category>
		<category><![CDATA[onfocus]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search box]]></category>
		<category><![CDATA[total freaking geekery]]></category>
		<category><![CDATA[tweaks]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=732</guid>
		<description><![CDATA[Hey again.  Been super busy around here lately, but something I found made me want to share.  This is a quick and easy trick that looks awesome and will save valuable space on your website.  Ever seen those boxes where you enter your email address or a search and it says &#8220;enter search/name/whatever here&#8221; and that text goes away as soon as you click there?  If you&#8217;re not using a Revolution/StudioPress theme, it&#8217;s probably not built into your site for you.  Here&#8217;s how to add that functionality.  (Note: for anyone familiar with javascript stuff, you don&#8217;t need to worry &#8212; there&#8217;s no external files attached to this one, just a quick code snippet and then you&#8217;re on your way.) First, a little setting: this will work in any &#60;input&#62; box [...]]]></description>
			<content:encoded><![CDATA[<p>Hey again.  Been super busy around here lately, but something I found made me want to share.  This is a quick and easy trick that looks awesome and will save valuable space on your website.  Ever seen those boxes where you enter your email address or a search and it says &#8220;enter search/name/whatever here&#8221; and that text goes away as soon as you click there?  If you&#8217;re not using a <a href="http://www.studiopress.com" target="_blank">Revolution/StudioPress</a> theme, it&#8217;s probably not built into your site for you.  Here&#8217;s how to add that functionality.  (Note: for anyone familiar with javascript stuff, you don&#8217;t need to worry &#8212; there&#8217;s no external files attached to this one, just a quick code snippet and then you&#8217;re on your way.)</p>
<p>First, a little setting: this will work in any &lt;input&gt; box &#8212; that is a box that you type into.  So a search box, email submission form, whatever.  Also, you will need to edit code.  I am going to use WordPress as an example, and I am going to use the search box, but this can be applied to any input box once you know the basics.  Ready?  Here we go:</p>
<p>Find the default search form (searchform.php).  If your theme doesn&#8217;t have one, you can make one by copying searchform.php from the WordPress Default theme (or, really, any WP theme).  The searchform.php just handles the actual search box itself, so you&#8217;re not likely to mess anything up.  Once you have it, open searchform.php in your favorite text editor, HTML editor, or the Theme Editor in the WordPress admin.  You&#8217;ll probably see something like this:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">&lt;form method="get" id="searchform" action="&lt;?php bloginfo('url'); ?&gt;/"&gt;
&lt;label class="hidden" for="s"&gt;&lt;?php _e('Search for:'); ?&gt;&lt;/label&gt;
&lt;div&gt;&lt;input type="text" value="&lt;?php the_search_query(); ?&gt;" name="s" id="s"  /&gt;
&lt;input type="submit" id="searchsubmit" value="Search" /&gt;
&lt;/div&gt;
&lt;/form&gt;</pre>
<p>That&#8217;s your search form.  To make text display in the input box (which is where you type stuff), replace this line:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">&lt;input type="text" value="&lt;?php the_search_query(); ?&gt;" name="s" id="s"  /&gt;</pre>
<p>with this:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">&lt;input type="text" value="Search this website..." name="s" id="s" onfocus="if (this.value == 'Search this website...')
{this.value = '';}" onblur="if (this.value == '') {this.value = 'Search this website...';}" /&gt;</pre>
<p>If you want, you can change the &#8220;Search this website&#8230;&#8221; to be whatever text you want, but make sure you change it everywhere.  What it&#8217;s doing is a simple if statement that is triggered when you click inside the box (onfocus) or somewhere else (onblur): <em>if </em>the text in the box says &#8220;Search this website&#8230;&#8221; change the text to &#8221; &#8221; (i.e. nothing).  <em>if </em>the text in the box is &#8221; &#8221; (i.e. nothing), change it to &#8220;Search this website&#8230;&#8221;  Easy.  And now you can get rid of this part entirely:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">&lt;label for="s"&gt;&lt;?php _e('Search for:'); ?&gt;&lt;/label&gt;</pre>
<p>thereby saving space.  Handy, and also visually interesting.  Also, as I said, no external javascript files to upload, and can be applied just about anywhere, once you get the hang of it.</p>
<p>If you liked this post, feel free to share with one of the links below, or follow our <a href="http://www.arcanepalette.com/feed/rss/" target="_blank">RSS feed</a>.  Also, we&#8217;re on Twitter, and you can <a href="http://twitter.com/arcanepalette" target="_blank">follow us there</a>.  Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/tips-and-tricks/easy-javascript-spice-search-box-save-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Kitchen Sink is your friend</title>
		<link>http://www.arcanepalette.com/articles/kitchen-sink-friend/</link>
		<comments>http://www.arcanepalette.com/articles/kitchen-sink-friend/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:13:34 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[kitchen sink]]></category>
		<category><![CDATA[post editor]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wysiwyg]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=518</guid>
		<description><![CDATA[Today I'm going to talk about the Kitchen Sink.  No, this isn't a post about plumbing (thankfully -- I hate plumbing).  This is about the Kitchen Sink in WordPress.  I can see your double-take already.]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;m going to talk about the Kitchen Sink.  No, this isn&#8217;t a post about plumbing (thankfully &#8212; I hate plumbing).  This is about the Kitchen Sink in WordPress.  I can see your double-take already.</p>
<h2>Kitchen Sink, you say? Surely you jest</h2>
<p>Nope, it&#8217;s legit, and it&#8217;s not my wording, either (I wish it was, because, after you know what it refers to, it&#8217;s brilliant).</p>
<p>The Kitchen Sink is a second row of  buttons from the Post/Page Editor in WordPress that adds additional formatting and style functions that you may not use everyday (but once you know they&#8217;re there, maybe you will!) or perform specific and unique tasks that the normal bar doesn&#8217;t.  I&#8217;m going to take a minute to go through each one, and by the end of this, if you were previously unaware of the Kitchen Sink you will be thanking me profusely.  Trust me.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-1.jpg" rel="lightbox[518]"><img class="aligncenter size-full wp-image-519" title="kitchen-sink-1" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-1.jpg" alt="kitchen sink 1 The Kitchen Sink is your friend" width="549" height="146" /></a></p>
<p>So here&#8217;s the standard WordPress toolbar that you see when you&#8217;re writing a post.  You may have some other stuff in there, for example, if you use the cforms Contact Form, there will be a cforms button at the end.  The last button on the right (assuming you don&#8217;t <a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-2.jpg" rel="lightbox[518]"><img class="alignright size-full wp-image-520" title="kitchen-sink-2" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-2.jpg" alt="kitchen sink 2 The Kitchen Sink is your friend" width="159" height="79" /></a>have some other plugin that adds buttons to your standard toolbar) is the Show/Hide Kitchen Sink button.  It&#8217;s the one that kind of looks like a color palette.  What it&#8217;s <em>actually</em> trying to represent is the actual toolbar with all the different buttons and the 2 row toolbar with the Kitchen Sink turned on.  Click that button and you get this:</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-3.jpg" rel="lightbox[518]"><img class="aligncenter size-full wp-image-521" title="kitchen-sink-3" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-3.jpg" alt="kitchen sink 3 The Kitchen Sink is your friend" width="536" height="75" /></a><em>Ta-daa!</em> It&#8217;s so-named because this turns on &#8220;everything but the kitchen sink.&#8221;  (Actually, that&#8217;s a tad misleading.  WordPress uses a modified version of the TinyMCE WYSIWYG &#8212; that&#8217;s What-You-See-Is-What-You-Get &#8212; editor, and TinyMCE has a <em>lot </em>more options than those two rows offer.  If you wanted to enable <em>all </em>of them, you may be interested in the <a href="http://www.mkbergman.com/?p=384" target="_blank">Advanced TinyMCE Editor</a> which adds more buttons than the Kitchen Sink does.)</p>
<h2>Everything but the kitchen sink&#8230;</h2>
<p><em>So what does all this stuff do?</em></p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-4.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-522" title="kitchen-sink-4" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-4.jpg" alt="kitchen sink 4 The Kitchen Sink is your friend" width="151" height="185" /></a><strong>Style</strong><br />
Starting at the left, the first button is really a drop-down menu which allows for different types of content.  Each one specifically references a particular HTML tag &#8212; not that you necessarily need to know that, but if you do know some HTML, it helps keep things in perspective. <strong>Paragraph</strong> is normal type like what this is right now (in HTML written like &lt;p&gt;some text goes here&lt;/p&gt;).</p>
<p><strong>Address</strong> is something that, in all my years designing, I&#8217;ve never, ever used.  Presumably it&#8217;s in <em>italics</em> and, um, used for addresses.  Seriously, if you have a clue when/why I would use &lt;address&gt;, please let me know&#8230;</p>
<address>this is an example of something using the address tag</address>
<address>I&#8217;m no more clear about its usefulness than before</address>
<address>on the other hand, it doesn&#8217;t do a full paragraph break when I hit Enter, so that&#8217;s something&#8230;</address>
<p><strong>Preformatted</strong> is good when you want to paste some code into your post, or, otherwise, want to use something without any kind of styling or formatting.  Preformatted uses a generic, monospace font, and does not wrap at the end of lines, so if it&#8217;s a really long block of code, you may want to insert some line breaks (&lt;br /&gt; for the code monkeys) so you don&#8217;t have type going off the page.</p>
<p>The next several items are the different types of headings.  These refer to H1, H2, H3, etc, in HTML.  Anyone who&#8217;s done research about SEO knows that you should always have at least one H1 on your page, but more than that may hurt rather than help things.  Also, your theme probably has specific styles for at least H1-H3 (and maybe beyond), and in general, Heading 1 is probably going to be too large to be useful.  The others, however, are <em>very</em> useful.  For instance, post titles are often H2&#8242;s or H3&#8242;s, so if you wanted headings in your post that were consistent with the look of the site, you could use those.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-u.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-545" title="kitchen-sink-u" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-u.jpg" alt="kitchen sink u The Kitchen Sink is your friend" width="31" height="31" /></a><strong>Underline</strong><br />
This button underlines your text.  <span style="text-decoration: underline;">Since most people use <strong>bold</strong> or <em>italic</em> to emphasize things on web pages, and since underlines often imply links, you don&#8217;t see much underlining on the web, so this button gets relegated to the Kitchen Sink.</span></p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-justify.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-546" title="kitchen-sink-justify" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-justify.jpg" alt="kitchen sink justify The Kitchen Sink is your friend" width="31" height="31" /></a><strong>Justify</strong><br />
This button justifies text.</p>
<blockquote>
<p style="padding-left: 30px; text-align: justify;">I imagine this might be useful if you had a large block of text in a quote or that was otherwise offset from the rest of the content.  This particular block of text is justified <em>and </em>contained within a quote (the &#8221; button).</p>
<p style="padding-left: 30px; text-align: justify;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras neque nisi, imperdiet nec cursus ut, feugiat volutpat est. Praesent eleifend, orci consequat iaculis sollicitudin, dolor mauris placerat lacus, et congue turpis odio at neque. Mauris nec blandit lacus. Suspendisse cursus augue id enim suscipit scelerisque. Proin at imperdiet nulla. Vestibulum congue auctor eros, vitae lobortis mi auctor fermentum. Etiam varius aliquam bibendum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In at libero erat. Praesent sed sapien neque, at molestie orci. In dolor tortor, tincidunt at elementum quis, tristique et metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse potenti. Donec ligula mauris, hendrerit a vestibulum a, suscipit ac nunc. Maecenas placerat gravida purus, at placerat augue iaculis sit amet.</p>
<p style="padding-left: 30px; text-align: justify;">(<strong>note: </strong>this is going to be hard to really see on our site since we justify all our text anyway&#8230;)</p>
</blockquote>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-547" title="kitchen-sink-colors" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors.jpg" alt="kitchen sink colors The Kitchen Sink is your friend" width="164" height="164" /></a><strong>Font Color</strong><br />
The next button is another dropdown menu which expands to let you choose <span style="color: #ff0000;">f</span><span style="color: #ff6600;">o</span><span style="color: #ff9900;">n</span><span style="color: #ffff00;">t</span> <span style="color: #339966;">c</span><span style="color: #33cccc;">o</span><span style="color: #3366ff;">l</span><span style="color: #800080;">o</span><span style="color: #993366;">r</span><span style="color: #ff00ff;">s</span>.  This is helpful if you want to <span style="color: #3366ff;">highlight particular bits of text</span>, or otherwise spend hours making your posts resemble a circus tent.  There&#8217;s also the More Colors buttons which gives you even more choices for color.</p>
<div id="attachment_548" class="wp-caption aligncenter" style="width: 426px"><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-1.jpg" rel="lightbox[518]"><img class="size-full wp-image-548" title="kitchen-sink-colors-1" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-1.jpg" alt="You can choose colors from the full range of possibilities." width="416" height="322" /></a><p class="wp-caption-text">You can choose colors from the full range of possibilities.</p></div>
<div id="attachment_549" class="wp-caption aligncenter" style="width: 426px"><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-2.jpg" rel="lightbox[518]"><img class="size-full wp-image-549" title="kitchen-sink-colors-2" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-2.jpg" alt="You can choose colors from different color palettes." width="416" height="322" /></a><p class="wp-caption-text">You can choose colors from different color palettes.</p></div>
<div id="attachment_550" class="wp-caption aligncenter" style="width: 426px"><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-3.jpg" rel="lightbox[518]"><img class="size-full wp-image-550" title="kitchen-sink-colors-3" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-colors-3.jpg" alt="Or you can choose from a set of unique color names that correspond to specific web colors." width="416" height="322" /></a><p class="wp-caption-text">Or you can choose from a set of unique color names that correspond to specific web colors.</p></div>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-paste-from.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-551" title="kitchen-sink-paste-from" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-paste-from.jpg" alt="kitchen sink paste from The Kitchen Sink is your friend" width="60" height="29" /></a><strong>Paste from&#8230;</strong><br />
The next two buttons are quite possibly the most handy.  A lot of people compose their posts in Microsoft Word or some other word processing program and paste it into their blog.  Or, possibly even just Notepad or some other plain text editor.  In either case, you get weird things happening if you just copy and paste with spacing and line breaks, and, sometimes, entire blocks of text will disappear or be formatted in a completely bizarre and totally un-correctable ways (without flipping to the HTML view and knowing how to chop the code up and what code to chop up).  These buttons are the solution and if you learn nothing else from this post, at least use the Kitchen Sink for these.</p>
<p>The reason why the code gets all weird (especially from Word) is because other applications add their own &#8220;markup&#8221; or code to their documents which control things like font, text size, color, line spacing, etc.  When you copy text from Word, you also copy the hidden markup, so when you paste, you paste it with those properties.  TinyMCE, as well as most WYSIWYG editors, also adds its&#8217; own markup, although my experience has been that it&#8217;s kept fairly minimal in TinyMCE/WordPress.  However, when the two things combine they can <a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-paste-from-word.jpg" rel="lightbox[518]"><img class="alignleft size-medium wp-image-552" title="kitchen-sink-paste-from-word" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-paste-from-word-300x280.jpg" alt="kitchen sink paste from word 300x280 The Kitchen Sink is your friend" width="300" height="280" /></a>often cause unwanted and undesirable effects.  That&#8217;s where these buttons come in.  The one with the clipboard and the T on top is for pasting text that was composed in Microsoft Notepad or another plain text editor.  The one with the W on top is for pasting from Word.  Pasting into the window that these guys bring up rips out all the useless markup that you don&#8217;t care about, but keeps the stuff that you do (like <a href="http://www.arcanepalette.com/tips-and-tricks/fixing-bullet-points-list-items-wordpress/" target="_self">bullets and lists</a>, bold, italics, and underlines, and indents or blockquotes).  Thus giving you a safe place to paste your copy without fear of making something (or everything) go horribly awry.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-eraser.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-554" title="kitchen-sink-eraser" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-eraser.jpg" alt="kitchen sink eraser The Kitchen Sink is your friend" width="30" height="29" /></a><strong>Remove Formatting</strong><br />
I&#8217;ll be honest, I&#8217;ve never used this one.  However, after hovering over it to find out what it does (&#8220;Remove formatting&#8221;), I might start.  This button pulls out any weird formatting stuff that you may get because either TinyMCE didn&#8217;t close its&#8217; tags when it should have or you accidentally pasted from Word instead of using the &#8220;Paste from Word&#8221; button.  If you&#8217;ve ever had some weird formatting thing you set linger past where you wanted it to go and couldn&#8217;t get rid of it, you&#8217;ll know how useful this button could be.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-embed.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-555" title="kitchen-sink-embed" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-embed.jpg" alt="kitchen sink embed The Kitchen Sink is your friend" width="30" height="29" /></a><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-insert-embed.jpg" rel="lightbox[518]"><img class="alignright size-medium wp-image-556" title="kitchen-sink-insert-embed" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-insert-embed-264x300.jpg" alt="kitchen sink insert embed 264x300 The Kitchen Sink is your friend" width="264" height="300" /></a><strong>Insert Embedded Media</strong><br />
This button lets you embed objects; so like Flash/Shockwave stuff, or Quicktime/Windows Media/Real Media videos.  Not the sort of thing that you&#8217;d copy the embed code from YouTube and paste it into your post, rather, the sort of thing where, if you knew were someone&#8217;s Quicktime .mov file was (or you had your own) and you wanted to share, you could paste the URL to the movie into this box and easily embed it without having to deal with messy embed codes that may or may not work (if you&#8217;ve ever tried to embed stuff on your own, especially in WordPress, you know what I&#8217;m talking about).</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-symbol.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-557" title="kitchen-sink-symbol" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-symbol.jpg" alt="kitchen sink symbol The Kitchen Sink is your friend" width="30" height="29" /></a><strong>Insert Custom Character<br />
<span style="font-weight: normal;">If you saw <a href="http://www.arcanepalette.com/tips-and-tricks/fixing-bullet-points-list-items-wordpress/" target="_self">my post last week about bullet points</a> and wondered how I got the • and » it was from this handy tool.  Most fonts have special characters above and beyond the alphanumeric characters you see on the keyboard.  In word processing applications you can get to these by memorizing any number of crazy keyboard combinations like CTRL + SHIFT + 1 + \ or you can use (on Windows) the Character Map application, usually buried somewhere in Accessories or Accessibility (and I know there&#8217;s a Mac equivalent, I just don&#8217;t know what).  On the web we use crazy alphanumeric codes for those characters.  something like &amp;copy; is easy to remember for a © but if there was ever an occasion that I&#8217;d want to use, say ◊, I&#8217;d have to know that that is called a &#8220;lozenge&#8221; and can be called by &amp;loz;.  Oh, and I&#8217;d need to flip to HTML view to do it anyway.  This tool gives you a handy little window that you can see all the different characters you have at your disposal.</span></strong></p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-symbol-select.jpg" rel="lightbox[518]"><img class="aligncenter size-full wp-image-558" title="kitchen-sink-symbol-select" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-symbol-select.jpg" alt="kitchen sink symbol select The Kitchen Sink is your friend" width="590" height="324" /></a><br />
<a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-blockquote.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-559" title="kitchen-sink-blockquote" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-blockquote.jpg" alt="kitchen sink blockquote The Kitchen Sink is your friend" width="60" height="26" /></a><strong>Indent<br />
</strong>This button will indent a block of text, what we in the web design biz call a &lt;blockquote&gt;.  To end your indented text/blockquote, you just need to click the one on the left with the ← arrow.</p>
<p style="padding-left: 30px; ">This is some indented text.</p>
<p style="padding-left: 60px; ">I like indents so much, I&#8217;ll use them some more.</p>
<p style="padding-left: 90px; ">Look, I&#8217;m like e.e. cummings!</p>
<p style="padding-left: 30px; ">Okay, maybe I&#8217;m not.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-undo.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-560" title="kitchen-sink-undo" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-undo.jpg" alt="kitchen sink undo The Kitchen Sink is your friend" width="60" height="26" /></a><strong>Undo/Redo<br />
</strong>So everyone knows that you can use CTRL+Z to undo something in WordPress, right?  What, you don&#8217;t?  Well this button is here for you.  Personally, I always prefer keyboard shortcuts to buttons, but not everyone knows that CTRL+Z = undo, CTRL+Y = redo, CTRL+C = copy, CTRL+X = cut, CTRL+V = paste, etc, etc.  But then again, I just told you, so now you do.</p>
<p><a href="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-help.jpg" rel="lightbox[518]"><img class="alignleft size-full wp-image-561" title="kitchen-sink-help" src="http://www.arcanepalette.com/wp-content/uploads/2009/07/kitchen-sink-help.jpg" alt="kitchen sink help The Kitchen Sink is your friend" width="30" height="28" /></a><strong>Hel</strong><strong>p<br />
</strong>In case this post isn&#8217;t informative enough, you can click on the Help button.  It doesn&#8217;t specifically get into each button, but it does have a whole lot of <em>other</em> information about how to use the &#8220;rich text editor&#8221; and what some of the hotkeys are.</p>
<p>So there you go.  Now that you know what everything does, you can start to use WordPress in a whole new way, right?</p>
<p>You&#8217;re welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/articles/kitchen-sink-friend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixing bullet points (list items) in WordPress</title>
		<link>http://www.arcanepalette.com/tips-and-tricks/fixing-bullet-points-list-items-wordpress/</link>
		<comments>http://www.arcanepalette.com/tips-and-tricks/fixing-bullet-points-list-items-wordpress/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 05:50:08 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[total freaking geekery]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=512</guid>
		<description><![CDATA[As I was working today, I got a request to fix an issue in which bullet points and numbers for ordered lists were not displaying at all.  The list would display, but the bullets would not, and this was especially frustrating when using an ordered (numbered) list. The problem To understand the problem, first you need to have a brief lesson in WordPress (and probably HTML in general) structure.  What we commonly refer to as bullet points when talking about a PowerPoint presentation, or an outline, or a Word document, is known as a &#8220;list-item&#8221; (&#60;li&#62;) in geekspeak.  List items come in two flavors: unordered lists (bullet points, &#60;ul&#62;), and ordered lists (numbered lists, &#60;ol&#62;). In web design, lists have far-reaching usefulness, above and beyond just a list of stuff [...]]]></description>
			<content:encoded><![CDATA[<p>As I was working today, I got a request to fix an issue in which bullet points and numbers for ordered lists were not displaying at all.  The list would display, but the bullets would not, and this was especially frustrating when using an ordered (numbered) list.</p>
<h2><strong>The problem</strong></h2>
<p>To understand the problem, first you need to have a brief lesson in WordPress (and probably HTML in general) structure.  What we commonly refer to as <em>bullet points</em> when talking about a PowerPoint presentation, or an outline, or a Word document, is known as a &#8220;list-item&#8221; (&lt;li&gt;) in geekspeak.  List items come in two flavors: unordered lists (bullet points, &lt;ul&gt;), and ordered lists (numbered lists, &lt;ol&gt;).</p>
<p>In web design, lists have far-reaching usefulness, above and beyond just a list of stuff that you&#8217;d put in your slideshow or report.  &lt;ul&gt;&#8217;s are used for sidebars, drop-down menus, links, pretty much any instance in which there is a series of several of the same kind of thing.  The problem, then, is that a lot of those things (say, sidebars, for instance) aren&#8217;t the type of thing that you would want to slap a • in front of.  This is resolved by putting this into the stylesheet:</p>
<pre>li {
list-style-type: none;
}</pre>
<p>Now you can have a sidebar and not have a bullet in front of every box in the sidebar, and every item within each box.</p>
<p>So what happens if you <em>want</em> bullets or numbered lists?  Because, as a side effect of declaring that all lists have &#8220;none&#8221; for their &#8220;list-style-type&#8221; you&#8217;re applying that declaration for list items that may <em>want</em> the bullets, like in a post.</p>
<p>The thing that I&#8217;ve noticed is that this is especially (and somewhat unnecessarily) prevalent in WordPress themes.  It doesn&#8217;t have to be this way.  You could just say something like:</p>
<pre>.sidebar li {
list-style-type: none;
}</pre>
<p>and not have it affect all the lists known to man (or at least known to your site).  But a lot of WordPress themes are based, to one degree or other, on one theme: the Kubrick theme that is the WordPress default theme.  Among other things, Kubrick has this in the style.css:</p>
<pre>html&gt;body .entry ul {
margin-left: 0px;
padding: 0 0 0 30px;
<span style="color: #ff0000;">list-style: none;</span>
padding-left: 10px;
text-indent: -10px;
}</pre>
<p>What Kubrick does is replace the standard bullet points with » which is written in CSS as:</p>
<pre>.entry ul li:before, #sidebar ul ul li:before {
content: "\00BB \0020"
}</pre>
<p>What I&#8217;ve noticed, though, is that a lot of theme designers will take this out, not wanting the » in front of all bulleted lists, and either leave it out completely or replace it with &#8220;content: none;&#8221;.</p>
<h2><strong>How to fix it</strong></h2>
<p>Well the easy solution to fix it is to search for &#8220;.entry ul&#8221; (CTRL + F to find specific phrases is your friend), and see if you can find the &#8220;list-style: none&#8221; or &#8220;list-style-type: none&#8221; in there.  If it is, then you can just delete that line, or, if you&#8217;re afraid of breaking things you can&#8217;t fix later, comment it out like this:</p>
<pre>/*<span style="white-space: pre;"> </span>list-style: none;*/</pre>
<p>If you can&#8217;t find it anywhere, or don&#8217;t want to modify the original code, you can use this method which will recreate the standard bullets down to three levels (you can smack this at the very bottom of your stylesheet, not touch any other code, and everything will still be hunky dory):</p>
<pre>html&gt;body .entry li {
list-style-type: disc; /* this starts with the standard bullet point for all &lt;li&gt;'s */
}
html&gt;body .entry ol li {
list-style-type: decimal; /* for ordered lists, use a number */
}
html&gt;body .entry ol ol li {
list-style-type: upper-roman; /* for the second level of ordered lists, use uppercase roman numerals */
}
html&gt;body .entry ol ol ol li { /* for the third level of ol's, use lowercase roman numerals */
list-style-type: lower-roman;
}
html&gt;body .entry ol ul li {
list-style-type: disc; /* for an unordered list inside an ordered list, use a bullet */
padding-left: 10px; /* and give it a bit more room than the others */
}
html&gt;body .entry ul {
margin-left: 0px;
padding: 0 0 0 30px;
list-style-type: disc; /* for regular unordered lists, we use bullets */
padding-left: 10px;

}
html&gt;body .entry ul ul li {
list-style-type: circle; /* for the second level, we use an open circle */
}
html&gt;body .entry ul ul ul li {
list-style-type: square; /* for the third level, we use a square */
}</pre>
<p>This also makes it so that anything beyond 3 levels (that&#8217;s not an ordered list) will default to a regular bullet point.</p>
<h2><strong>Isn&#8217;t this overkill?</strong></h2>
<p>Well, yes, since as I established, if you can find the line that is taking the bullet points out of post entries, it&#8217;s a whole lot of code vs. one line.  HOWEVER, if, say, you wanted your default bullets to be something other than a disc, say a square, you can use this code and swap around the options.  <a href="http://www.w3schools.com/CSS/pr_list-style-type.asp" target="_blank">W3CSchools.com has an excellent document</a> that talks about all the options you can use for the <a href="http://www.w3schools.com/CSS/pr_list-style-type.asp" target="_blank">&#8220;list-style-type&#8221; property</a>.</p>
<p>Alternately, you can use an image that you define, rather than the default circle, square, roman numeral, decimal, etc.  Using this:</p>
<pre>list-style-image: url('path.to.your/image.gif')</pre>
<p>instead of this:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">list-style-type: square;</pre>
<p>There&#8217;s also a <a href="http://www.w3schools.com/Css/pr_list-style-image.asp" target="_blank">W3Schools article on that</a>, too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/tips-and-tricks/fixing-bullet-points-list-items-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>add social links to your site</title>
		<link>http://www.arcanepalette.com/tips-and-tricks/add-social-links-site/</link>
		<comments>http://www.arcanepalette.com/tips-and-tricks/add-social-links-site/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 17:57:01 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[link sharing]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[social bookmarking]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[stumbleupon]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress hacks]]></category>
		<category><![CDATA[wordpress tricks]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=455</guid>
		<description><![CDATA[i spent this morning building and adding some social linking to our site.  with all the digging and twittering and facebooking going on, if you have content worth sharing and you aren't providing ways for people to share it, it's fairly likely that people won't.  now, i have digg, facebook, and delicious bookmarklets in my google chrome bookmark bar, but i realize that i'm a geek and probably most people don't do this.  and anyway, it's always nicer when those things are built directly into the page.

so i thought that i would share with you how to add social linking to your website or blog.  please note that some of the code here will be wordpress-specific -- which is great for wordpress users, but won't be so helpful for those of you who don't use wordpress.  i will point out the areas where the code is wordpress only -- there are plenty of resources out there for alternatives for your platform of choice.]]></description>
			<content:encoded><![CDATA[<p>i spent this morning building and adding some social linking to our site.  with all the digging and twittering and facebooking going on, if you have content worth sharing and you <em>aren&#8217;t</em> providing ways for people to share it, it&#8217;s fairly likely that people won&#8217;t.  now, i have digg, facebook, and delicious bookmarklets in my google chrome bookmark bar, but i realize that i&#8217;m a geek and probably most people <em>don&#8217;t </em>do this.  and anyway, it&#8217;s always nicer when those things are built directly into the page.</p>
<p>so i thought that i would share with you how to add social linking to your website or blog.  please note that some of the code here will be wordpress-specific &#8212; which is great for wordpress users, but won&#8217;t be so helpful for those of you who don&#8217;t use wordpress.  i will point out the areas where the code is wordpress only &#8212; there are plenty of resources out there for alternatives for your platform of choice.</p>
<h3>the icons</h3>
<p>first thing&#8217;s first &#8212; let&#8217;s get some icons.  obviously the ones we are using have been customized.  i actually sort of cheated a bit and modified the grunged-up icons i used for the social sidebar i have on <a href="http://www.jazzsequence.com" target="_blank">jazzsequence.com</a>, because i thought the style would fit.  and also, i&#8217;m doing the same thing over there, so i figured i&#8217;d just use the same icons to make my life a bit easier.  so you can&#8217;t use mine, but there&#8217;s some really nice stuff out there &#8212; i used a pack i found on <a href="http://www.iconspedia.com/cat/social-bookmarks/" target="_blank">iconspedia</a>, but there&#8217;s always some good stuff on <a href="http://www.smashingmagazine.com/2009/06/07/50-fresh-useful-icon-sets-for-your-next-design/" target="_blank">smashing magaine</a> among other sources.  do some creative googling and you can find some awesome packs with the sites you want to share.</p>
<h3>the template files</h3>
<p>next, is tweaking the template files.  if you&#8217;ve never even looked at your theme&#8217;s php files, this can be daunting at first.  and if you don&#8217;t have at least some brief experience in html, this may not be for you (but it might, you never know until you give it a try and break something horribly! keep backups of everything!).  in that case, i&#8217;d recommend the <a href="http://wordpress.org/extend/plugins/sociable/" target="_blank">sociable</a> plugin, which actually allows you to take the icons you just downloaded and put them <em>somewhere </em>on your server and then just enter the path to the folder that you uploaded them to.  you get less customizability in how and where your social linking bookmarks go on the page, but you make up for that in choice and convenience (there&#8217;s something like 99 different sharing methods to choose from that sociable offers).</p>
<p>if you&#8217;re still with me, decide what pages you want your links to show up on.  for the arcane palette site, i chose to just put them on the single post page, but you can put them on all your pages, blog, and single posts, as well as any custom templates you may be using.  there are two ways of editing the code.  in either case, it&#8217;s best to save a backup copy of all the files you&#8217;re going to be changing in case something breaks or you want to put it back.  the first method is to do it directly from the wordpress backend.  this is a little bit more sketchy for newbies just because you are making changes live on the site.  however, if you saved a copy of the file before making any changes to it, then you should be fine.</p>
<p>so to get to the internal text editor, (assuming you have wordpress 2.7 or higher) you go to Appearance and then Editor (for older versions it&#8217;s in Design and then Editor, or possibly Theme Editor &#8212; it&#8217;s been a while since I&#8217;ve dug around in the older back end).  on the right side, you will see a long list of files.  these are all the various page templates on your site.  the ones you want to concern yourself with are index.php (Main Index Template), page.php (Page Template), and single.php (Single Post).  if you&#8217;re using a Revolution/StudioPress theme, or one that is built similar, you may have a home.php which is your Home Page Template.</p>
<p>some of this, if you aren&#8217;t familiar with how your theme is structured, is going to be a bit of trial and error, but pretty much I look for one of two things in the template: either the Edit This Post link (which will look something like this:</p>
<pre style="padding-left: 60px;">&lt;?php edit_post_link('Edit this entry.', '&lt;p&gt;', '&lt;/p&gt;'); ?&gt;</pre>
<p>or the metatag portion of the post, generally classed as postmeta or something similar, which would be something like this:</p>
<pre style="padding-left: 60px;">&lt;p&gt;
&lt;small&gt;&lt;?php the_category(', ') ?&gt; | &lt;?php the_tags() ?&gt;&lt;/small&gt;
&lt;/p&gt;</pre>
<p>you may also see something like this if your theme is either the default (kubrick) theme, or based somewhat on it:</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>This entry was posted</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>&lt;?php /* This is commented, because it requires a little adjusting sometimes.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>You&#8217;ll need to download this plugin, and follow the instructions:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>/* $entry_datetime = abs(strtotime($post-&gt;post_date) &#8211; (60*120)); echo time_since($entry_datetime); echo &#8216; ago&#8217;; */ ?&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>on &lt;?php the_time(&#8216;l, F jS, Y&#8217;) ?&gt; at &lt;?php the_time() ?&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>and is filed under &lt;?php the_category(&#8216;, &#8216;) ?&gt;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 830px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>You can follow any responses to this entry through the &lt;?php post_comments_feed_link(&#8216;RSS 2.0&#8242;); ?&gt; feed.</div>
<pre style="padding-left: 60px;"><span style="font-family: Georgia; line-height: 19px; white-space: normal; font-size: 13px;">T</span>his entry was posted
&lt;?php /* This is commented, because it requires a little adjusting sometimes.
You'll need to download this plugin, and follow the instructions:
http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */
/* $entry_datetime = abs(strtotime($post-&gt;post_date) - (60*120)); echo time_since($entry_datetime);
echo ' ago'; */ ?&gt;
on &lt;?php the_time('l, F jS, Y') ?&gt; at &lt;?php the_time() ?&gt;
and is filed under &lt;?php the_category(', ') ?&gt;.
You can follow any responses to this entry through the &lt;?php post_comments_feed_link('RSS 2.0'); ?&gt;
feed.</pre>
<p>for our site, i put it under the post meta (categories/tags) but above the related posts.  <em>interesting side note: if you&#8217;re using this method of <a href="http://www.wprecipes.com/how-to-show-related-posts-without-a-plugin" target="_blank">displaying related posts without a plugin</a>, i was having issues with the tweet this link posting the url of the last related post in the tweet, rather than the post you are looking at if you put this sharing block underneath the related posts.  seemed to be a bug with the related posts not closing off, but i&#8217;m not a programmer, i&#8217;m just a hacker, so i just threw this block above those links and solved the problem. </em></p>
<h3>the code</h3>
<p>here&#8217;s the block of code i used:</p>
<pre>&lt;span class="linktous"&gt;
&lt;a href="javascript:var notes='';if(window.getSelection)notes=window.getSelection();else
if(document.getSelection)notes=document.getSelection();else if(document.selection)notes=
document.selection.createRange().text;if(notes.length&gt;350)notes=notes.substring(0,349);
location.href='http://digg.com/submit?phase=3&amp;url='+encodeURIComponent(location.href)+
'&amp;title='+encodeURIComponent(document.title)+'&amp;bodytext='+encodeURIComponent(notes)"
target="_blank"&gt;&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/digg.png" alt="Digg
This" /&gt;&amp;nbsp;Digg This Post&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="javascript:(function(){location.
href='http://delicious.com/save?url='+encodeURIComponent(window.location.href)+'&amp;title=
'+encodeURIComponent(document.title)+'&amp;v=5&amp;jump=yes'})()" target="_blank"&gt;&lt;img src="&lt;?php
bloginfo('template_url'); ?&gt;/images/delicious.png" alt="Save to del.icio.us" /&gt;&amp;nbsp;Save
to del.icio.us&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="javascript:var d=document,f='http://www.facebook.
com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&amp;v=4&amp;i=1239647138&amp;u='+e(l.href)+
'&amp;t='+e(d.title);1;try{if (!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);
share_internal_bookmarklet(p)}catch(z) {a=function() {if (!window.open(f+'r'+p,'sharer',
'toolbar=0,status=0,resizable=1,width=626,height=436'))l.href=f+p};if (/Firefox/.test
(navigator.userAgent))setTimeout(a,0);else{a()}}void(0)" target="_blank"&gt;&lt;img src="&lt;?php
bloginfo('template_url'); ?&gt;/images/facebook.png" alt="Share on Facebook" /&gt;&amp;nbsp;Share
on Facebook&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://twitter.com/home?status=Check this out: &lt;?php
the_title(); ?&gt; &lt;?php bloginfo('url'); ?&gt;/?p=&lt;?php the_ID(); ?&gt;" target="_blank"&gt;&lt;img
src="&lt;?php bloginfo('template_url'); ?&gt;/images/twitter.png" alt="Send this page to Twitter"
/&gt;&amp;nbsp;Tweet This&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="&lt;?php bloginfo('rss_url'); ?&gt;" target="_blank"&gt;
&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/rss.png" alt="Subscribe by RSS" /&gt;&amp;nbsp;
Subscribe by RSS&lt;/a&gt;
&lt;/span&gt;</pre>
<p>that&#8217;s a big mess of code in several different languages, so i&#8217;ll break it down so you can see what each thing is doing.  also, this assumes that you&#8217;ve uploaded your images to the /images folder in your theme and that you are using the same links i am, namely: digg, delicious, facebook, twitter, and for kicks, rss.  i&#8217;ll post the code for stumbleupon as well at the end.</p>
<h3>span</h3>
<div>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; ">&lt;span class="linktous"&gt;</pre>
<p>first, i put everything in a span which i named &#8220;linktous&#8221;.  this is to make it identifiable later, but also because i add a few css tweaks later, which i&#8217;ll get to.  the span isn&#8217;t absolutely important, but you&#8217;ll find you need it (or something similar) if you want to move stuff around at all.</p>
<h3>digg</h3>
<div>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; ">&lt;a href="javascript:var notes='';if(window.getSelection)notes=window.getSelection();else
if(document.getSelection)notes=document.getSelection();else if(document.selection)notes=
document.selection.createRange().text;if(notes.length&gt;350)notes=notes.substring(0,349);
location.href='http://digg.com/submit?phase=3&amp;url='+encodeURIComponent(location.href)+
'&amp;title='+encodeURIComponent(document.title)+'&amp;bodytext='+encodeURIComponent(notes)"
target="_blank"&gt;&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/digg.png" alt="Digg
This" /&gt;&amp;nbsp;Digg This Post&lt;/a&gt;&amp;nbsp;</pre>
</div>
<p>here&#8217;s the digg code.  this particular javascript link allows you to select a portion of the text which will be auto-filled in your digg submission when it sends you there.  not that you need to tell your users that or anything, but you can if you want and it&#8217;s pretty neat.  otherwise you can find another digg link that doesn&#8217;t do that if you really want, but if nothing is selected, then obviously nothing will be copied, and i&#8217;m willing to be that most people will have already selected text anyway because they will be copying and pasting text from the page into digg.  when they get there, they&#8217;ll get a little happy surprise.</p>
<p>there isn&#8217;t anything major to this link, since the javascript code inside the <span style="color: #008000;">href</span> does all the heavy lifting.  if you take a look at the end in the <span style="color: #800000;">img</span> tag, you&#8217;ll see that rather than typing in a long path to the image, i used wordpress shortcode.  there&#8217;s lots of stuff you can do with <span style="color: #ff0000;">&lt;?php</span> bloginfo() <span style="color: #ff0000;">?&gt;</span> which you can read about in the <a href="http://codex.wordpress.org" target="_blank">wordpress codex</a>.  a lot of themes will use bloginfo(<span style="color: #ff0000;">&#8216;url&#8217;</span>) for everything, but that just gives you the main url to the site.  bloginfo(<span style="color: #ff0000;">&#8216;template_url&#8217;</span>) or bloginfo(<span style="color: #ff0000;">&#8216;stylesheet_directory&#8217;</span>) send you to the folder of the theme you&#8217;re using.  i uploaded all my icons to my theme&#8217;s /images folder, so this makes it easy for me, but if you made a folder called &#8220;images&#8221; just in the root directory, you could do <span style="color: #ff0000;">&lt;?php</span> bloginfo(<span style="color: #ff0000;">&#8216;url&#8217;</span>); <span style="color: #ff0000;">?&gt;</span>/images/youricon.png and be able to easily use the same code if you changed themes.  also, if you haven&#8217;t seen or used it before, &amp;nbsp; is the ascii code for a space.  since the code is a big messy beast, i want to make sure there&#8217;s the right spacing between my images and the link text.  i could do this with css, but i wanted to keep the css to a minimum so i could easily reuse the code.</p>
<h3>del.icio.us and facebook</h3>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">|&amp;nbsp;&lt;a href="javascript:(function(){location.
href='http://delicious.com/save?url='+encodeURIComponent(window.location.href)+'&amp;title=
'+encodeURIComponent(document.title)+'&amp;v=5&amp;jump=yes'})()" target="_blank"&gt;&lt;img src="&lt;?php
bloginfo('template_url'); ?&gt;/images/delicious.png" alt="Save to del.icio.us" /&gt;&amp;nbsp;Save
to del.icio.us&lt;/a&gt;&amp;nbsp;</pre>
<p>another javascript link that sends you to a delicious submit page.  the links, you&#8217;ll notice, are separated by a pipe or |.  it&#8217;s a key on your keyboard that you probably don&#8217;t even know is there if you&#8217;re not a programmer or a hacker.  other than that, and the stuff from above which i&#8217;m continuing to use, there&#8217;s nothing to see here, or here, when we get to facebook:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">|&amp;nbsp;&lt;a href="javascript:var d=document,f='http://www.facebook.
com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&amp;v=4&amp;i=1239647138&amp;u='+e(l.href)+
'&amp;t='+e(d.title);1;try{if (!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);
share_internal_bookmarklet(p)}catch(z) {a=function() {if (!window.open(f+'r'+p,'sharer',
'toolbar=0,status=0,resizable=1,width=626,height=436'))l.href=f+p};if (/Firefox/.test
(navigator.userAgent))setTimeout(a,0);else{a()}}void(0)" target="_blank"&gt;&lt;img src="&lt;?php
bloginfo('template_url'); ?&gt;/images/facebook.png" alt="Share on Facebook" /&gt;&amp;nbsp;Share
on Facebook&lt;/a&gt;&amp;nbsp;</pre>
<p>the facebook share opens a new window, so the javascript link is a bit bigger, but otherwise it&#8217;s the same stuff we&#8217;ve been doing above.</p>
<h3>twitter</h3>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">|&amp;nbsp;&lt;a href="http://twitter.com/home?status=Check this out: &lt;?php
the_title(); ?&gt; &lt;?php bloginfo('url'); ?&gt;/?p=&lt;?php the_ID(); ?&gt;" target="_blank"&gt;&lt;img
src="&lt;?php bloginfo('template_url'); ?&gt;/images/twitter.png" alt="Send this page to Twitter"
/&gt;&amp;nbsp;Tweet This&lt;/a&gt;&amp;nbsp;</pre>
<p>twitter was a bit trickier because of the character limit.  if you&#8217;re using <a href="http://codex.wordpress.org/Using_Permalinks#mod_rewrite:_.22Pretty_Permalinks.22" target="_blank">pretty permalinks</a>, and you have a url that&#8217;s something like <span style="color: #000080;">http://mydomain.com/wordpress-tricks/how-to-add-an-awesome-social-link-block-to-your-blog/</span>, that&#8217;s going to take up most of your character limit with the url alone.  so i started looking for url shortening in a tweet this type code and, while i didn&#8217;t find it, <a href="http://5thirtyone.com/" target="_blank">this guy</a> had an idea that reminded me that wordpress has a form of url shortening built in.  sort of.  as he explains in his method of <a style="text-decoration: none;" href="http://5thirtyone.com/archives/2075" target="_blank">creating a tweet this link from your wordpress blog with shortened urls</a>, when you first setup wordpress, all your blog post urls look like this:</p>
<pre><span style="font-family: arial; line-height: 12px; white-space: normal; color: #110000;">
<pre class="html" style="outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; text-decoration: none; width: auto; float: none; clear: none; overflow-x: visible; overflow-y: visible; font-size: 11px; line-height: 16px; font-family: monospace; padding: 0px; margin: 0px; border: 0px initial initial;">http://yourblog.com/?p=123</pre>
<p></span></pre>
<p>the part after the ?p= is the ID number of the blog post.  his method describes how to add a url rewriting rule to your .htaccess file so you could do really short urls like this:</p>
<pre class="html" style="outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; text-decoration: none; width: auto; float: none; clear: none; overflow-x: visible; overflow-y: visible; font-size: 11px; line-height: 16px; font-family: monospace; padding: 0px; margin: 0px; border: 0px initial initial;">http://iboughtamac.com/s/1352</pre>
<p>i didn&#8217;t want to bother with editing the .htaccess file, especially since the original url is both still entirely functional even with pretty permalinks turned on, and just as short, really.  so here&#8217;s the link that i am sending to twitter:</p>
<pre>&lt;?php bloginfo('url'); ?&gt;/?p=&lt;?php the_ID(); ?&gt;</pre>
<p>first, i get the base url of the site.  it helps (for shortening purposes) if you&#8217;ve set the url of your blog in the general settings in your wordpress admin to be http://yourdomain.com rather than http://www.yourdomain.com, but it&#8217;s no big &#8212; it&#8217;s just 3 characters.  so then i added the /?p= to make the url mimic the old-style, ugly permalink.  i follow this by adding the wordpress shortcode to get the ID of the post.  so the url of this post would be:</p>
<pre>http://www.arcanepalette.com/?p=455</pre>
<p>not too shabby, eh?  it&#8217;s got nothing on http://is.gd/14wmq in terms of brevity, but it&#8217;s still pretty good.  twitter is pretty easy because you can send posts to twitter via just about anything.  you can type out your post in your address bar if you were really so inclined.</p>
<h3>finishing touches</h3>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">|&amp;nbsp;&lt;a href="&lt;?php bloginfo('rss_url'); ?&gt;" target="_blank"&gt;
&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/rss.png" alt="Subscribe by RSS" /&gt;&amp;nbsp;
Subscribe by RSS&lt;/a&gt;
&lt;/span&gt;</pre>
<p>i chose to add an rss subscription link to each single post as well, as a way to remind people that they can always subscribe by rss.  getting rss subscribers is a good thing because it brings your site&#8217;s visitors back, even if they aren&#8217;t actually hitting the site.  once again, i&#8217;m using wordpress shortcode to handle the rss url (bloginfo(&#8216;rss_url&#8217;)).  if you&#8217;re using feedburner and have the <a href="http://www.google.com/support/feedburner/bin/answer.py?hl=en&amp;answer=78483" target="_blank">feedsmith</a> plugin installed, this will work for you, however, if you don&#8217;t have the feedsmith plugin, substitute the &lt;?php bloginfo(&#8216;rss_url&#8217;); ?&gt; with your feedburner url.  also, i closed off the span i started at the beginning.</p>
<p>i mentioned earlier that i added some css tweaking.  i wanted my icons to be a bit bigger to make them more visible.  usually when you see buttons like this, they are the standard favicon size of 16&#215;16, but that&#8217;s <em>really</em> small.  i made mine 20&#215;20 which isn&#8217;t that much bigger but it does make it a bit easier to see what they are and notice that there&#8217;s some texture to them.  because of this, i needed to add some css to make the icons vertically centered with the text.  so i added this to my style.css:</p>
<pre>.linktous img{margin-bottom: -3px;}</pre>
<p>this pulls the icons a few pixels down and levels it out a bit.  i also added a .linktous {text-transform: lowercase;} to make all the text, well, lowercase.  this is purely for aesthetic reasons.</p>
<h3>stumbleupon</h3>
<p>if you wanted to include a stumbleupon button as well, here&#8217;s the url, pulled directly from <a href="http://www.stumbleupon.com/buttons.php" target="_blank">their button generator thingie</a>:</p>
<pre>http://www.stumbleupon.com/submit?url=&lt;?php the_permalink(); ?&gt;&amp;title=&lt;?php the_title(); ?&gt;</pre>
<p>so to put it in the same style as everything else, you&#8217;d do something like this</p>
<pre>|&amp;nbsp;&lt;a href="http://www.stumbleupon.com/submit?url=&lt;?php the_permalink(); ?&gt;&amp;title=&lt;?php the_title(); ?&gt;"
target="_blank"&gt;&lt;img src="&lt;?php bloginfo('template_url'); ?&gt;/images/stumbleupon.png" alt="Stumble This" /&gt;
&amp;nbsp;Stumble This&lt;/a&gt;</pre>
<h3>conclusion</h3>
<p>why go through all the effort if, as previously mentioned, sociable does something really similar?</p>
<p>one reason is aesthetics and control.  this way i can style the links the way i want and put them where i want and not have resign myself to doing it however the <em>plugin-du-jour</em> happens to do things.</p>
<p>another reason is experience and because i like to get my hands dirty.  if you&#8217;ve gotten this far, i imagine you like to get your hands dirty as well, or at least are interested in learning more about how to build and/or customize wordpress themes.</p>
<p>the last reason is stability.  i learned (the hard way!) from using tons of firefox extensions that doing so doesn&#8217;t exactly result in the most stable (or fast) environment.  taking care of the code myself and embedding it into the theme rather than tacking on yet another plugin is one less complication, one less thing to upgrade, and one less thing that can break.</p>
<p>so that about wraps up this lesson.  i hope you found this useful and feel free to use the <em>fabulous links below</em> to share this post if you did!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/tips-and-tricks/add-social-links-site/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>anti spam an email address</title>
		<link>http://www.arcanepalette.com/tips-and-tricks/anti-spam-email-address/</link>
		<comments>http://www.arcanepalette.com/tips-and-tricks/anti-spam-email-address/#comments</comments>
		<pubDate>Mon, 04 May 2009 19:05:09 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[trick]]></category>

		<guid isPermaLink="false">http://www.arcanepalette.com/?p=367</guid>
		<description><![CDATA[so, on the web, it&#8217;s pretty much accepted that whatever you put out there can and will be used by someone somewhere, sometimes exploitively.  one way this can cause frustration and headaches is putting your email address on your site.  now, some people (including myself) have started doing this myemail @ mydomain . com or myemail&#60;at&#62;mydomain&#60;dot&#62;com thing.  which is fine, but not very pretty.  so i came up with a neat little hack that has the same effect but looks prettier.  check it out: &#60;span style="margin-left: -.2em"&#62;&#38;nbsp;&#60;/span&#62; now you can put that snippet where the space would go in the myemail @ mydomain . com example.  what it does is substitute your space with &#38;nbsp; (which is ascii code for a space character), and then hides what it did with [...]]]></description>
			<content:encoded><![CDATA[<p>so, on the web, it&#8217;s pretty much accepted that whatever you put out there can and will be used by someone somewhere, sometimes exploitively.  one way this can cause frustration and headaches is putting your email address on your site.  now, some people (including myself) have started doing this myemail @ mydomain . com or myemail&lt;at&gt;mydomain&lt;dot&gt;com thing.  which is fine, but not very pretty.  so i came up with a neat little hack that has the same effect but looks prettier.  check it out:</p>
<pre>&lt;span style="margin-left: -.2em"&gt;&amp;nbsp;&lt;/span&gt;</pre>
<p>now you can put that snippet where the space would go in the <em>myemail @ mydomain . com </em>example.  what it does is substitute your space with &amp;nbsp; (which is ascii code for a space character), and then hides what it did with the margin-left: -.2em.  the final result would be this:</p>
<pre><span style="color: #ffffff;">myemail</span>&lt;span style="margin-left: -.2em"&gt;&amp;nbsp;&lt;/span&gt;<span style="color: #ffffff;">@</span>&lt;span style="margin-left: -.2em"&gt;&amp;nbsp;
&lt;/span&gt;<span style="color: #ffffff;">mydomain</span>&lt;span style="margin-left: -.2em"&gt;&amp;nbsp;&lt;/span&gt;<span style="color: #ffffff;">.</span>&lt;span style="margin-left: -.2em"&gt;
&amp;nbsp;&lt;/span&gt;<span style="color: #ffffff;">com</span></pre>
<p>and this is what it looks like:</p>
<p>myemail<span style="margin-left: -.2em"> </span>@<span style="margin-left: -.2em"> </span>mydomain<span style="margin-left: -.2em"> </span>.<span style="margin-left: -.2em"> </span>com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arcanepalette.com/tips-and-tricks/anti-spam-email-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.743 seconds -->
