<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>www.rickbjarnason.com</title>
	
	<link>http://rickbjarnason.com</link>
	<description />
	<lastBuildDate>Wed, 04 Aug 2010 02:13:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Wwwrickbjarnasoncom" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="wwwrickbjarnasoncom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Wwwrickbjarnasoncom</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Top Wire-framing apps</title>
		<link>http://rickbjarnason.com/top-wire-framing-apps/</link>
		<comments>http://rickbjarnason.com/top-wire-framing-apps/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 02:13:37 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[wireframing]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=262</guid>
		<description><![CDATA[When I am building a website wire-framing is an important part of the design process and leads directly into the IA (information architecture). I know not every developer works this way, but this is what works for me and allows me to build the best possible website for my clients. I used to do wire-framing [...]]]></description>
			<content:encoded><![CDATA[<p>When I am building a website wire-framing is an important part of the design process and leads directly into the IA (information architecture). I know not every developer works this way, but this is what works for me and allows me to build the best possible website for my clients. </p>
<p>I used to do wire-framing in Photoshop, and until recently I did not see a large need to have a stand alone application for this, but since my <a href="http:cheekymonkeymedia.ca" title="Cheeky Monkey Media">Web design company</a> recently expanded, I have found a need to be able to do this in the cloud while collaborating with a co-worker.</p>
<p>So since I have had limited experience with wire-framing apps, I began my search. There were a few thing that I was looking for specifically, first I wanted to find the best value for the money, second it absolutely had to have a cloud based platform. That&#8217;s it.</p>
<div class="clear-fix">
<h3><a href="http://www.axure.com/">Axure</a></h3>
<div id="attachment_263" class="wp-caption aligncenter" style="width: 590px"><a href="http://axure.cachefly.net/Training/MacOverviewVideo/MacOverviewVideo.html"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/08/axure-homepage.jpg" alt="" title="axure-homepage" width="580" height="370" class="size-full wp-image-263" /></a><p class="wp-caption-text">Click for Video</p></div>
<p>My search began at Axure, mostly because my co-workers have used it and loved it. I have to say they have an impressive list of features</p>
<blockquote><p>Use features like built-in widgets, shapes, and annotations to quickly create gray scale, annotated wireframes for evaluating concepts early in the process. Add color, images, and a wide range of interactions to your design from basic linking to expanding and collapsing content and conditional flow for client presentations and usability testing. Generate a detailed specification of your design with screenshots, interactions and annotations for approval or hand off to development. Axure RP can support you and your team throughout the various stages of the design process.</p></blockquote>
<p>	<cite><a href="http://www.axure.com/axure-rp-benefits.aspx">Axure.com</a></cite></p>
<p><strong>Pros</strong></p>
<ul>
<li>Super fast with drag and drop components</li>
<li>With the newly release Mac version it is now cross platform</li>
<li>Pretty much any interaction you can think of</li>
<li>Exports in multiple versions including HTML.</li>
<li>Collaboration</li>
<li>Amazing customer service and a really active community</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Price &#8211; this is a serious application but it comes with a pretty hefty price tag</li>
</ul>
<p><strong>Price:</strong> $589/license</p>
</div>
<div class="clear-fix">
<h3><a href="http://www.hotgloo.com/">Hotgloo</a></h3>
<p>	<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/ZMzzX-eeeTw&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ZMzzX-eeeTw&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>Hotgloo is a relatively new entry in this field having come out of beta back in February 2010. I think they have a really nice interface that is a breeze to pick up</p>
<p><strong>Pros</strong></p>
<ul>
<li>Super fast with drag and drop components</li>
<li>Custom components- works real nice for include like features, think header, footer etc..</li>
<li>Layering</li>
<li>Online Collaboration and Real-time chat (sweet!)</li>
<li>Overlaid Graph and 960 grids are provided for layout</li>
<li>Some interactions can be added to mouse click and initialization for firing events like showing message, changing visibility of components.</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Limited number of components</li>
<li>Processes can get pretty complex</li>
<li>No traditional sitemap view</li>
<li>A touch pricey at $14/month</li>
</ul>
<p><strong>Price:</strong> $14/month</p>
</div>
<div class="clear-fix">
<h3><a href="http://mockflow.com/">Mockflow</a></h3>
<p><<object width="560" height="445"><param name="movie" value="http://www.youtube.com/v/r8KIkomwHy0&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/r8KIkomwHy0&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="445"></embed></object></p>
<p>Mockflow markets themselves as &#8220;super-easy Wireframing&#8221; and from what I have seen that is definitely the case</p>
<p><strong>Pros</strong></p>
<ul>
<li>Super fast with drag and drop components</li>
<li>Real-Time Design Collaboration with Team Chat</li>
<li>Layering</li>
<li>Overlaid Graph and 960 grids are provided for layout</li>
<li>Versioning</li>
<li>Price &#8211; at just under $5/month the clear winner</li>
<li>Mockstore- where user can share there custom built components with others</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>There is no navigation built from lists</li>
</ul>
<p><strong>Price:</strong> $59/year</p>
</div>
<div class="clear-fix">
<h3><a href="https://pidoco.com/en">Pidoco</a></h3>
<p>	<object width="560" height="445"><param name="movie" value="http://www.youtube.com/v/bI6kfUL1nbI&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/bI6kfUL1nbI&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="445"></embed></object></p>
<p>Another cloud based app is German engineered Pidoco</p>
<blockquote><p>A GUI Design Software for clickable Wireframes! <br />
Fast and easy like Rapid Paper Prototyping, but completely web-based and with many more features!</p></blockquote>
<p><strong>Pros</strong></p>
<ul>
<li>Super fast with drag and drop components</li>
<li>Real-Time Design Collaboration with Team Chat</li>
<li>Layering</li>
<li>Fully interactive and clickable Wireframes</li>
<li>Versioning</li>
</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Price at $29/month</li>
<li>Fairly steep learning curve</li>
</ul>
<p><strong>Price</strong>: $29/month</p>
</div>
<div class="clear-fix">
<h3><a href="http://www.flairbuilder.com/">Flair Builder</a></h3>
<p>	<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/vhPiItjqaLA&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/vhPiItjqaLA&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>This is another app that I stumble upon, it is built in Adobe Air so it doesn&#8217;t quite fit my model of a web based app, but I found it interesting enough to include. </p>
<p>Sharing is unique with this app, because there are really two option. You can email the saved file to the client and tell them to open it using the <a href="http://www.flairbuilder.com/home/viewer/">Flairbuilder online viewer</a> or alternately you can upload it to your own server where it is available via the Flash player. I personally like the branding opportunities this provides.</p>
<blockquote><p>A cross-platform prototyping tool that helps you create interactive wireframes &#038; prototypes faster, easier and with better results. <br />
We put a strong emphase in interactivity as this is the best way to show your clients something closer to the real product.</p></blockquote>
<p><strong>Pros</strong></p>
<ul>
<li>Super fast with drag and drop components</li>
<li>Show and hide elements</li>
<li>Build working tabs</li>
<li>Fully interactive and clickable Wireframes</li>
<li>Insert usable accordions/li>
	</ul>
<p><strong>Cons</strong></p>
<ul>
<li>Slows down with large wireframes</li>
<li>Is Flash based</li>
</ul>
<p><strong>Price</strong>: $99/year</p>
</div>
<h3>Summary</h3>
<p>To be honest this is just a drop in the bucket when it comes to these types of apps, these are the ones that I thought were the best at this stage in the race. There are loads of other ones out there and I highly encourage you to look at them all before you make any type of decision.<br />
Here are a few resources:</p>
<ul>
<li><a href="http://spyrestudios.com/15-quality-web-based-applications-to-create-mock-ups-and-wireframes/">15 Quality Web-Based Applications to Create Mock-Ups and Wireframes</a></li>
<li><a href="http://www.uxbooth.com/blog/15-desktop-online-wireframing-tools/">15 Desktop &#038; Online Wireframing Tools</a></li>
<li><a href="http://www.cmswire.com/cms/enterprise-20/web-design-top-7-wireframing-tools-updated-003887.php">Web Design: Top 7 Wireframing Tools (Updated)</a></li>
</ul>
<p>So which one did I decide to go with? Well for once I don&#8217;t have an exact answer, I am fairly happy with Mockflow and Hotgloo at this point but I will probably upgrade to Axure before the year is out.</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/top-wire-framing-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Correct Way to use Specificity in CSS</title>
		<link>http://rickbjarnason.com/the-correct-way-to-use-specificity-in-css/</link>
		<comments>http://rickbjarnason.com/the-correct-way-to-use-specificity-in-css/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 15:19:22 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[techniques]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=257</guid>
		<description><![CDATA[CSS stands for Cascading Style Sheets, the cascading part means that the more generic a rule is the more items it will effect. The exact opposite is also true the more &#8216;specific&#8217; a rule is the fewer items it will apply to. For example, if you decided to add a color to the body element [...]]]></description>
			<content:encoded><![CDATA[<p>CSS stands for Cascading Style Sheets, the cascading part means that the more generic a rule is the more items it will effect. The exact opposite is also true the more &#8216;specific&#8217; a rule is the fewer items it will apply to.</p>
<p>For example, if you decided to add a color to the body element like so:<br />
<code>body{<br />
	color:#ddd;<br />
}</code><br />
then all elements on that page, that do not have a more specific rule would use this rule. Which means that all the text on your website would be displayed in the color #ddd or a grey.</p>
<blockquote><p>
<strong>Gotcha:</strong> watch out for browser styles as they will take precedent over very generic styles. For instance, the above example will not style the anchor tags , they will still appear in the browser default blue.
</p></blockquote>
<h3>Recommended Use</h3>
<p>So, here is the thing, this really becomes an art form in itself. Too much specificity and you may be making your CSS too bulky, because you re-declare styles, not enough specificity and things go completely haywire as things inherit styles they shouldn&#8217;t.</p>
<p>So, what is the right amount?</p>
<p>Here is how I work, there probably is a better way but this gets it done for me. I like to declare what I see as generic styles. So for instance, I will do something like this:<br />
<code>p {<br />
	font-size: 12px;<br />
	line-height:1.6em;<br />
}<br />
a {<br />
	color:red;<br />
	text-decoration:none;<br />
}<br />
a:hover {<br />
	text-decoration:underline;<br />
}<br />
h1 {<br />
	font-size:20px;<br />
}<br />
...</code></p>
<p>these are styles that I would want to &#8216;cascade&#8217; throughout my entire site. I then generally only use one or two more selectors to add specificity like this:<br />
<code>#mainnav li {<br />
	float:left;<br />
}<br />
.post p {<br />
	color:black;<br />
}</code></p>
<p> I am not too sure if this adds any speed to my sites, but Chris at CSS Tricks gets into <a href="http://css-tricks.com/efficiently-rendering-css/">efficiently rendering css here </a></p>
<h3>Rules</h3>
<p> So now you know that you want to use specificity, but now you need to understand that different attributes carry different &#8216;weights&#8217; in specificity. So an ID attribute is worth more &#8216;points&#8217; than a class attribute. Here is a simple system to help you figure things out:</p>
<ul>
<li>HTML selectors are worth 1 point. <em>Examples are p, h1, a tags</em> </li>
<li>Class selectors are worth 10 points</li>
<li>ID selectors are worth 100 points</li>
</ul>
<p> So you add up the points, and the one with the highest point total takes precedent.</p>
<blockquote><p><strong>Gotcha:</strong> If the point totals are equal the selector that shows up lower in the CSS file takes precedent</p></blockquote>
<p> The last rule you need to remember is that specificity can still be trumped by the actual location of the CSS. If you are doing things properly, and housing all your CSS in and external style sheet than all you need to remember is the stuff above. But, if you are also in the habit of embedding your css or placing it inline, first of all stop doing that, and secondly you need to know that they will also change specificity. In case you don&#8217;t know what embedded or inline means:<br />
 <strong>Embedded Styles</strong><br />
 Embedded styles are styles that are embedded in the head of the document. Embedded styles affect only the tags on the page they are embedded in.<br />
<code>&lt;style type="text/css"&gt;<br />
p { color: #00f; }<br />
&lt;/style&gt;</code><br />
<strong>Inline Styles</strong><br />
Inline styles are styles that are written directly in the tag on the document. Inline styles affect only the tag they are applied to.<br />
<code>&lt;p style="color: yellow;"&gt;</code></p>
<p>Each of these techniques will also have an effect on the cascade. The most important thing to know here is inline styles trump everything no matter of specificity, they are followed by embedded styles and finally external.</p>
<blockquote><p><strong>Gotcha:</strong><br />
the !important css declaration will trump even inline styles. It is generally used as a last possible option and is not considered good practice. <em>Example:</em><br />
<code>	p {<br />
		color:red!important;<br />
	}</code>
</p></blockquote>
<h3>Summary</h3>
<p>I think that every developer creates their own system for specificity, one that works for them. I think that that is fine, but I would caution agains using too much specificity as it not only makes your CSS bulky and ugly it may slow down your site.</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/the-correct-way-to-use-specificity-in-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gravity Forms for WordPress</title>
		<link>http://rickbjarnason.com/gravity-forms-for-wordpress/</link>
		<comments>http://rickbjarnason.com/gravity-forms-for-wordpress/#comments</comments>
		<pubDate>Mon, 31 May 2010 15:07:24 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=252</guid>
		<description><![CDATA[As a web developer we all end up working on one type of project more than other, whether it is PSD slicing or application building. I have found myself doing more and more WordPress work these days, so I have done everything that I can to streamline the process. If there is one common denominator [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/gravity.jpg" alt="" title="gravity" width="580" height="407" class="aligncenter size-full wp-image-253" /></p>
<p>As a web developer we all end up working on one type of project more than other, whether it is PSD slicing or application building.  I have found myself doing more and more WordPress work these days, so I have done everything that I can to streamline the process.</p>
<p>If there is one common denominator about all websites is that they pretty much all contain some kind of form. Up until recently I have used <a href="http://www.deliciousdays.com/cforms-plugin/">cForms</a> for pretty much every site that I have built, it seems to work fairly ok, but I have been finding that I am needing something a little more robust. That&#8217;s where <a href="http://www.gravityforms.com/">Gravity Forms </a> comes in.</p>
<p>Gravity Forms is a premium plugin (meaning that you will have to pay for it), it is very well coded and the interface is very intuitive. But, with cForms being free, do you really need the extra oomph that Gravity provides? This video does a better job of showing you the power of Gravity Forms than I can:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/AqRjKT086Ao&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/AqRjKT086Ao&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></embed></object></p>
<p>That all depends on your needs I guess, if you are like me and work with a lot of clients being able to deliver to them a product that they can just use and not need me holding their hands is a huge bonus. But, if you are a casual blogger that just wants to have a simple contact form on their blog then the $39 would seem a bit steep.</p>
<p>I guess you will have to make that decision, but my personal recommendation is that once you have the ability to create forms whenever you want, than you will find so many uses for them that you will wonder how you possibly lived without them before.</p>
<p>If you are thinking about checking  Gravity Forms out here is an affiliate link that will help keep this site alive.<a href="https://www.e-junkie.com/ecom/gb.php?cl=54585&#038;c=ib&#038;aff=112338" target="ejejcsingle">Click here to visit Gravity Forms.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/gravity-forms-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Font API? Hmmm..</title>
		<link>http://rickbjarnason.com/google-font-api-hmmm/</link>
		<comments>http://rickbjarnason.com/google-font-api-hmmm/#comments</comments>
		<pubDate>Fri, 21 May 2010 15:06:17 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[new technology]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=236</guid>
		<description><![CDATA[So Google has announced a new API to help make the web a more beautiful place when it comes to fonts. Most web developers (should be all web developers) know, that there are only a few web safe fonts that are available to use. They include the likes of: Georgia Times New Roman MS Serif [...]]]></description>
			<content:encoded><![CDATA[<p>So Google has announced a <a href="http://code.google.com/apis/webfonts/">new API</a> to help make the web a more beautiful place when it comes to fonts. Most web developers (should be all web developers) know, that there are only a few web safe fonts that are available to use.  They include the likes of:</p>
<ul>
<li>Georgia</li>
<li>Times New Roman</li>
<li>MS Serif</li>
<li>Verdana</li>
<li>Arial</li>
<li>Arial Black</li>
<li>Impact</li>
<li>Tahoma</li>
<li>Century Gothic</li>
<li>Lucida Sans Unicode</li>
<li>Trebuchet MS</li>
</ul>
<p>Before all you designers jump on me, I am going to fully admit that I am pushing the envelope on a few of these, and that is the entire point. By definition Web Safe fonts are:</p>
<blockquote><p>
Web-safe fonts are fonts  likely to be present on a wide range of computer  systems, and used by web content authors to increase the likelihood that content will be displayed in their chosen font. If a visitor to a website does not have the specified font, their browser will attempt to select a similar alternative, based on the author-specified fallback fonts and generic families.
</p></blockquote>
<p><cite><a href="http://en.wikipedia.org/wiki/Web_typography">Wikipedia</a></cite></p>
<p>As you can see we are only talking about fonts that are &#8220;likely&#8221; to be on a wide range of computers but are not guaranteed to be on any of them. This is a serious impediment when it comes to designing for the web, because designers have to limit their creativity or be forced to use an alternate method like these.</p>
<h3>Method 1 &#8211; Use Images</h3>
<p>If your design has a very unique look, this means it will probably also include a very unique font. One way to preserve your design is to slice each and every instance of the unique font into an image. Developers would then insert the image in place of text. Although the web site ends up looking like the original design, it now has some serious restrictions. First and foremost that image text is now no longer editable, meaning that every time the text needed changing a new image would need to be created. Secondly, this text is now not machine readable, which presents a problem for both screen readers and search engines alike.</p>
<h3>Method 2 &#8211; Using SIFR or Cufon</h3>
<p>Even though these two methods use different technology, one uses Flash while the other uses JavaScript, they are very similar in nature. Both techniques require the developer to embed the font, and then replace existing text with generated text. Up until now , I have used Cufon the most, simply because I was noticing some speed issues with SIFR, one nice thing about these techniques are that they leave the text editable and machine readable. Both techniques are valid text replacement techniques and can be explored more at <a href="http://wiki.github.com/sorccu/cufon/">Cufon</a> or <a href="http://wiki.novemberborn.net/sifr/">SIFR.</a></p>
<h3>Method 3 &#8211; Using @font-face</h3>
<p>Although @font-face is a CSS rule implemented in Firefox&#8217;s latest 3.5 browser this is the same technique that Google is endorsing with their API. Of course, they are not calling it that, but the implementation is the same. To use @font-face you would need to upload the font to your server (or any internet accessible server) and call it in your CSS files, if the end user has the font on their local machine already the site will use that, if not the site will use the font on the server. Here is an example:<br />
<code>@font-face {<br />
  font-family: MyHelvetica;<br />
  src: local("Helvetica Neue Bold"),<br />
  local("HelveticaNeue-Bold"),<br />
  url(MgOpenModernaBold.ttf);<br />
  font-weight: bold;<br />
} </code></p>
<p>While this technique is certainly a cross-platform, cross-browser, lightweight method it may not be entirely legal. Font-developers spend a lot of time creating their products, and therefore need to be reimbursed accordingly, by offering the font freely on your server you  MAY be breaking some copyright laws. Since I am not a lawyer, I will not get into that, I am just saying you should know the facts.</p>
<h3>Method 4 &#8211; Google Font API</h3>
<p>So to the rescue comes Google (yet again), like they did for JavaScript libraries Google is offering to host the fonts on their server. The benefits are obvious, you save on bandwidth, technical expertise and possible legal problems&#8230; sounds good to me. Implementation could not be easier either. It can be done in three simple steps:</p>
<ol>
<li>Surf over to <a href="http://code.google.com/webfonts">Google&#8217;s font directory</a> and see if you could make use of any of the available fonts</li>
<li>Grab the code to embed the head section of your website, here is an example<code>&lt;link href='http://fonts.googleapis.com/css?family=Cantarell' rel='stylesheet' type='text/css'&gt;</code></li>
<li>Style the desired text by using CSS, here is an example <code>h1 { font-family: 'Cantarell', arial, serif; }</code></li>
</ol>
<p>And that&#8217;s it super lightweight and a no-brainer to implement. Jeff at Nettuts has a great <a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-google-fonts-api-youre-going-to-love-this/">screencast</a> on how to do this as well.</p>
<h3>Summary</h3>
<p>I am actually really excited about this, while I have to admit that Google&#8217;s existing font directory is a bit lean, I also have no doubt that this will grow quickly. The other nice thing is that these fonts will also be cached in a client&#8217;s browser, meaning that if the font is used on a site you have already visited, you won&#8217;t have to download the font a second time it will instead be loaded from the browsers cache. This will save on both speed and bandwidth.<br />
So what do you say? Are you going to use this?</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/google-font-api-hmmm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to create rounded corners on your website</title>
		<link>http://rickbjarnason.com/how-to-create-rounded-corners-on-your-website/</link>
		<comments>http://rickbjarnason.com/how-to-create-rounded-corners-on-your-website/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:44:51 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=228</guid>
		<description><![CDATA[With full support for CSS3 being just around the corner, there is no doubt that the task for creating rounded corners is going to become much easier. But, at the moment we definitely do not have enough users using a CSS3 compliant browser so we have to cheat a little when it comes to creating [...]]]></description>
			<content:encoded><![CDATA[<p>With full support for CSS3 being just around the corner, there is no doubt that the task for creating rounded corners is going to become much easier. But, at the moment we definitely do not have enough users using a CSS3 compliant browser so we have to cheat a little when it comes to creating rounded corners on our websites.</p>
<p>Different design call for different solutions so I will outline a few of the techniques I have used in the past to create a nice rounded corner. One downside to this techniques is none of them, except the CSS3 technique, use what I would consider to be semantic markup.</p>
<h3>Technique 1 -Three Images</h3>
<p>If you are working with a fixed width design, this one can work out quite nicely. First you start with a Rounded corner element like this box.<br />
<img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/rounded-corner.png" alt="" title="rounded-corner" width="580" height="300" class="aligncenter size-full wp-image-229" /><br />
 Next you will want to slice the image into three different images, like so:<br />
 <img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/three-slice.png" alt="" title="three-slice" width="580" height="360" class="aligncenter size-full wp-image-230" /><br />
 You will need save your images using proper naming conventions so that you can easily target them later with your css. I am using rounded-top.png for the top image, rounded.png for the middle image and rounded-btm.png for the bottom. </p>
<p> Now to the markup..<br />
 <code> &lt;div class="rounded"&gt;<br />
 	&lt;div class="rounded-top"&gt;<br />
 		&lt;div class="rounded-btm"&gt;<br />
 		<!-- put your text or images here --><br />
 		Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />
 		&lt;/div&gt;<!-- end rounded bottom --><br />
 	&lt;/div&gt;<!-- end rounded top --><br />
 &lt;/div&gt;<!-- end rounded --></code><br />
 As I said in the beginning not the most semantic markup you will ever see, but it gets the job done. The only thing to remember is all content for this container needs to be housed within the .rounded-btm div, that way when we expand it, the other divs will expand as well. Now we need to use CSS to make this work..</p>
<p> <code> .rounded {<br />
 	background: url(rounded.png) repeat-y 0 0;<br />
 	width:580px;<br />
 }<br />
 .rounded-top {<br />
 	background: url(rounded-top.png) no-repeat 0 0;<br />
 }<br />
 .rounded-btm {<br />
 	background: url(rounded-btm.png) no-repeat 0 100%;<br />
 	padding: 20px;</p>
<p> </code></p>
<p>Again nothing too fancy here, I have only added the width dimension to the outermost container, that way all the children containers are forced to fit. Then we added a little bit of padding on the innermost container to give the text a bit of breathing room. Another thing that I would like to point out is that for this simple example I could have actually used just two images the top and the bottom. I would then have to declare the background color on the outermost container, and in this case I would also have to set the left and right border. Also since I was not too careful when slicing I have a fair amount of white background in my images, this would have to be trimmed away so that the images fit the full width of the outermost container. All in all, I usually find it easier to have three images and the few extra kb is not going to slow down a website.</p>
<h3>Technique 2 &#8211; More images</h3>
<p>Of the image techniques this is the most flexible as we can set the width or height to whatever we like, however it involves a lot more markup. The idea is to take our original image and instead of slicing it in three, we instead slice it into 4 images, each one being a corner.<br />
<img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/four-slice.png" alt="" title="four-slice" width="580" height="299" class="aligncenter size-full wp-image-231" /><br />
Once I have sliced these images I like to save them in a sprite, like this:<br />
<img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/sprite.jpg" alt="" title="sprite" width="580" height="318" class="aligncenter size-full wp-image-232" /></p>
<p>Now we create some markup.<br />
<code>	&lt;div class="second-tech"&gt;<br />
		&lt;div class="corner tl"&gt;&lt;/div&gt;<br />
		&lt;div class="corner tr"&gt;&lt;/div&gt;<br />
		&lt;div class="corner bl"&gt;&lt;/div&gt;<br />
		&lt;div class="corner br"&gt;&lt;/div&gt;<br />
 		<!-- put your text or images here --><br />
 		Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br />
	&lt;/div&gt;<!-- end second-tech --></code><br />
 Lets go over it, I have created one container called second-tech, inside this container we have four more divs that are all given the class of corner, but they are also given their own unique class. All content needs to be inside of the .second-tech div but outside of the corner divs.</p>
<p> Now we need some CSS to make it look the way we want:<br />
 <code> 	.second-tech {<br />
 		background: #b0c4de;<br />
 		padding:20px;<br />
 		position: relative;<br />
 	}<br />
	.corner {<br />
		height:13px;<br />
		position:absolute;<br />
		width:13px;<br />
	}<br />
	.tl {<br />
		background: url(sprite.png) no-repeat 0 0;<br />
		left:0;<br />
		top:0;<br />
	}<br />
	.tr {<br />
		background: url(sprite.png) no-repeat -38px 0;<br />
		right:0;<br />
		top:0;<br />
	}<br />
	.bl {<br />
		background: url(sprite.png) no-repeat 0 -38px;<br />
		bottom:0;<br />
		left:0;<br />
	}<br />
	.br {<br />
		background: url(sprite.png) no-repeat -38px -38px;<br />
		bottom: 0;<br />
		right:0;<br />
	}<br />
 </code><br />
 In this technique, we need to make sure that the parent container has a positioning on relative on it, we then position all the children absolutely. As you can see we move them around the box by declaring two values either left or right, bottom or top. To keep the http requests down I chose to create one sprite image and change the background position, rather than create 4 different images, I can do this because the corners will always be a specific height and width.</p>
<h3>Use CSS3 </h3>
<p> If I was building all my websites for myself, this is the only technique I would use. Visitors that were using modern browsers would see the rounded corners, everyone else would be left with good old rectangles. This technique is the most flexible and has 100% semantic markup.<br />
 <code> 	&lt;div class="css3"&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/div&gt;<br />
 </code><br />
 That&#8217;s it for markup, one lousy div. Everything else is done with the CSS:<br />
 <code> 	.css3 {<br />
 		-moz-border-radius: 10px;<br />
		-webkit-border-radius: 10px;<br />
		border-radius: 10px; /* future proofing */<br />
		-khtml-border-radius: 10px; /* for old Konqueror browsers */</p>
<p> 	}</p>
<p> </code><br />
Look how neat and tidy the future is going to be! You can even target individual corners if you like:<br />
<code>	.css3 {<br />
		-moz-border-radius-topleft: 20px;<br />
		-moz-border-radius-topright: 0;<br />
		-moz-border-radius-bottomright: 30px;<br />
		-moz-border-radius-bottomleft: 0;</p>
<p>		-webkit-border-top-left-radius: 20px;<br />
		-webkit-border-top-right-radius:0;<br />
		-webkit-border-bottom-right-radius: 30px;<br />
		-webkit-border-bottom-left-radius: 0;<br />
	}</code></p>
<h3>Summary</h3>
<p>This is by no means a complete list, I mean I have only outlined three possibilities. If you would like to suggest a link or another technique please feel free to do so in the comments. If you want to further explore the different techniques out there, take a look at:</p>
<ul>
<li><a href="http://www.devwebpro.com/25-rounded-corners-techniques-with-css/">DevWebPro&#8217;s article</a></li>
<li><a href="http://css-tricks.com/video-screencasts/24-rounded-corners/">CSS trick</a></li>
<li><a href="http://net.tutsplus.com/tutorials/html-css-techniques/11-classic-css-techniques-made-simple-with-css3/">Nettuts</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/how-to-create-rounded-corners-on-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Multi-column Lists using CSS</title>
		<link>http://rickbjarnason.com/creating-multi-column-lists-using-css/</link>
		<comments>http://rickbjarnason.com/creating-multi-column-lists-using-css/#comments</comments>
		<pubDate>Mon, 17 May 2010 14:00:56 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=200</guid>
		<description><![CDATA[Web development still has a few limitations, more than we would like to admit&#8230; but with a little creativity and some css know-how you should be able to find a solution for most problems. I recently found myself in need of a multi-column list that was still using semantic markup. It is very important that [...]]]></description>
			<content:encoded><![CDATA[<p>Web development still has a few limitations, more than we would like to admit&#8230; but with a little creativity and some css know-how you should be able to find a solution for most problems.</p>
<p>I recently found myself in need of a multi-column list that was still using semantic markup. It is very important that you learn to do EVERYTHING in semantic markup, while this may not seem like a big deal if you are writing the code by hand, it becomes much more clear when you are using content that is generated by a CMS. In these cases, creating a multi-column list is not as easy as just creating multiple lists and positioning them accordingly, instead  you have to rely on repositioning the existing markup.</p>
<p>I have used a few different techniques, to show you how I managed to accomplish this:</p>
<style type='text/css'>
.post ul, post ol {
	padding:10px;
	margin-bottom:10px;
}
 .floated-example{
 	list-style-type:none;
 	width:500px;
 }
 .floated-example li {
 	float:left;
 	margin: 10px 0 0 0;
 	padding: 0 10px 0 0;
 	width:199px;
 }	
.margin-example li {
    width:120px;
    margin:15px 0 0 0;
    padding:0;
    line-height:15px;
    position:relative; /* IE needs this in order to recognize links in all columns */
}
.margin-example .alpha {
    margin-left:0;
}
.margin-example .beta {
    margin-left:150px;
}    
.margin-example .charlie {
    margin-left:300px;
}
.margin-example .first {
    margin-top:-105px;
}
ol.margin-example .first {
    margin-top:-113px;
}
.grouped-example .page_item  {
	margin:15px 0 0 0;
	line-height:15px;
       padding:0;
}
.grouped-example li.page-item-2, .grouped-example li.page-item-4, .grouped-example li.page-item-6,li.page-item-8 {
		margin-left:0;
	}
.grouped-example li.page-item-10, .grouped-example li.page-item-12, .grouped-example li.page-item-14, .grouped-example li.page-item-16 {
		margin-left:200px;
	}
.grouped-example li.page-item-10 {
		margin-top:-105px;
	}
ol.grouped-example li.page-item-10 {
		margin-top:-113px
</style>
<h3>Technique 1 : Floated list items</h3>
<p>This is probably the best solution of the bunch but, as you will see later on ,it is only good for unordered lists where the actual list order does not matter. </p>
<p>To get started first you need some semantic code:<br />
<code>	&lt;ul&gt;<br />
		&lt;li&gt;List Item &lt;/li&gt;<br />
		&lt;li&gt;List Item &lt;/li&gt;<br />
		&lt;li&gt;List Item &lt;/li&gt;<br />
		&lt;li&gt;List Item &lt;/li&gt;<br />
		&lt;li&gt;List Item &lt;/li&gt;<br />
	&lt;/ul&gt;</code><br />
Now we need to use CSS to make it look the way we want :<br />
 <code> ul{<br />
 	list-style-type:none;<br />
 	width:500px;<br />
 }<br />
 li {<br />
 	float:left;<br />
 	margin: 10px 0 0 0;<br />
 	padding: 0 10px 0 0;<br />
 	width:199px;<br />
 }<br />
 </code><br />
 <em>Example</em></p>
<ul class="floated-example">
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
</ul>
<p style='clear:both'> Alright so the trick is to have a set width on the containing ul tag. Then to also set a width on the li&#8217;s within the ul. The last important step is to make sure that the list items are floated left, this causes them to line up in neat rows.</p>
<p> Like I said earlier this is really good for, unordered lists but what happens if you try to use it on an ordered list.</p>
<p> <em>Example</em> 	</p>
<ol class="floated-example">
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
<li>List Item </li>
</ol>
<p style='clear:both'> As you can see it is definitely not ideal.</p>
<h3>Technique 2 : Using classes and margins</h3>
<p> If you can manipulate the markup, meaning that it is not being generated, then it is possible to add classes to each of the columns and place them accordingly using margins.</p>
<p> Once again we will start with some markup:<br />
 <code> 	&lt;ul&gt;<br />
		&lt;li class="alpha"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="alpha"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="alpha"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="beta first"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="beta"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="beta"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="charlie first"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="charlie"&gt;List Item &lt;/li&gt;<br />
		&lt;li class="charlie"&gt;List Item &lt;/li&gt;<br />
 	&lt;/ul&gt;<br />
 </code></p>
<p> As you can see the markup is starting to look a little messy (note the classes and the multiple classes on the first item in each column).The css to make this into columns would look like this:<br />
 <code> li {<br />
    width:120px;<br />
    margin:15px 0 0 0;<br />
    padding:0 10px 0 0;<br />
    line-height:15px;<br />
    position:relative; /* IE needs this in order to recognize links in all columns */<br />
}<br />
.alpha {<br />
    margin-left:0;<br />
}<br />
.beta {<br />
    margin-left:150px;<br />
}<br />
.charlie {<br />
    margin-left:300px;<br />
}<br />
.first {<br />
    margin-top:-105px;<br />
}</p>
<p> </code><br />
 <em>Example</em></p>
<ul class='margin-example'>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="beta first">List Item </li>
<li class="beta">List Item </li>
<li class="beta">List Item </li>
<li class="beta">List Item </li>
<li class="charlie first">List Item </li>
<li class="charlie">List Item </li>
<li class="charlie">List Item </li>
<li class="charlie">List Item </li>
</ul>
<p style='clear:both'> Ok lets go over it. The css that targets all the list items (li) sets all the widths, margins and paddings for the entire list. While this is important for the other techniques with this one it is critical because we need to know exactly where to set our margin-left at.</p>
<p> What makes this example particularly interesting is the &#8216;first&#8217; class. This is what moves the columns up so they align nice and neat and are not staggered down the page. Since we have the same amount of negative margin on each list I can re-use the same style on column 2 and 3. To calculate the amount needed for the negative margin is easily calculated with some simple math. We know we have 4 items in each column, we will also need 3 spaces in between our items. To keep everything uniform we will make each of these 15px, (line-height and margin-top settings) 15 x 7 = 105px.</p>
<p> This technique also works nicely for ordered list as you can see in the example below. Although I did find that I had to add an extra 2px of margin to each ordered list item so the negative margin is 113px on the ordered list. Unfortunately I could not find any documentation on why this is to share.</p>
<p><em>Example</em></p>
<ol class='margin-example'>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="alpha">List Item </li>
<li class="beta first">List Item </li>
<li class="beta">List Item </li>
<li class="beta">List Item </li>
<li class="beta">List Item </li>
<li class="charlie first">List Item </li>
<li class="charlie">List Item </li>
<li class="charlie">List Item </li>
<li class="charlie">List Item </li>
</ol>
<h3 style='clear:both'>Technique 3 : Added classes</h3>
<p>The previous 2 techniques are still not ideal because most CMS&#8217;s do not allow you to edit the markup directly, most of them do however add unique id&#8217;s or classes to each generated list items. We can use this generated code and display our list the way we want. Here is some example code that could be generated by WordPress.<br />
<code>	&lt;ul&gt;<br />
		&lt;li class="page_item page-item-2"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-4"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-6"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-8"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-10"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-12"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-14"&gt;List Item&lt;/li&gt;<br />
		&lt;li class="page_item page-item-16"&gt;List Item&lt;/li&gt;<br />
	&lt;/ul&gt;</code></p>
<p>And here is the css we could use to make this line up into 2 columns:<br />
<code>	.page_item  {<br />
	margin:15px 0 0 0;<br />
	line-height:15px;<br />
}<br />
		li.page-item-2,li.page-item-4,li.page-item-6,li.page-item-8 {<br />
		margin-left:0;<br />
	}<br />
	li.page-item-10,li.page-item-12,li.page-item-14,li.page-item-16 {<br />
		margin-left:200px;<br />
	}<br />
	li.page-item-10 {<br />
		margin-top:-105px;<br />
	}<br />
</code><br />
<em>Example</em></p>
<ul class="grouped-example">
<li class="page_item page-item-2">List Item</li>
<li class="page_item page-item-4">List Item</li>
<li class="page_item page-item-6">List Item</li>
<li class="page_item page-item-8">List Item</li>
<li class="page_item page-item-10">List Item</li>
<li class="page_item page-item-12">List Item</li>
<li class="page_item page-item-14">List Item</li>
<li class="page_item page-item-16">List Item</li>
</ul>
<p>So by grouping several list items together we target entire columns and set the appropriate margins to line up the columns. We also have to target the first item of each column, if we had several columns we could also group them in the css file. Like technique 2 we calculate the negative margin on the second column by adding the list items and spaces together. 4 list items, 3 spaces each are 15px high so the total is 7 x 15 or 105px. This technique also works nicely with ordered lists.</p>
<p><em>Example</em></p>
<ol class="grouped-example">
<li class="page_item page-item-2">List Item</li>
<li class="page_item page-item-4">List Item</li>
<li class="page_item page-item-6">List Item</li>
<li class="page_item page-item-8">List Item</li>
<li class="page_item page-item-10">List Item</li>
<li class="page_item page-item-12">List Item</li>
<li class="page_item page-item-14">List Item</li>
<li class="page_item page-item-16">List Item</li>
</ol>
<h3>Summary</h3>
<p>These are just a few samples of possible solutions, they seem to work pretty well for me. If you have any solutions that I may have overlooked please add them to the comments and share them with other</p>
<p><strong>Further resources</strong></p>
<ul>
<li><a href="http://www.alistapart.com/articles/multicolumnlists/">A List Apart</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/creating-multi-column-lists-using-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Shopping Cart Plugins for WordPress</title>
		<link>http://rickbjarnason.com/shopping-cart-plugins-for-wordpress/</link>
		<comments>http://rickbjarnason.com/shopping-cart-plugins-for-wordpress/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:28:55 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=189</guid>
		<description><![CDATA[The beauty of WordPress is that it is so extensible, if you want a forum there is a plugin for that, if you want a picture gallery it&#8217;s got you covered there as well. One of the most sought after feature of any business website, is the ability to be able to conduct e-commerce. This [...]]]></description>
			<content:encoded><![CDATA[<p>The beauty of WordPress is that it is so extensible, if you want a forum there is a plugin for that, if you want a picture gallery it&#8217;s got you covered there as well.</p>
<p>One of the most sought after feature of any business website, is the ability to be able to conduct e-commerce. This is another area where WordPress really shines as there are numerous choices based on your needs. Which one you decide to go with will depend on your needs.</p>
<div class="clear-fix">
<h3><a href="http://www.instinct.co.nz/e-commerce/">WP e-Commerce</a></h3>
<p><a href="http://www.instinct.co.nz/e-commerce/"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/ishot-5.jpg" alt="WP e-Commerce" title="WP e-Commerce" width="580" height="357" class="aligncenter size-full wp-image-190" /></a><br />
	This is really the big boy of the crowd, WP e-Commerce has been around for over 4 years now and has had over half a million downloads. It&#8217;s list of features are many but a few highlights are:</p>
<ul>
<li><strong>WordPress Integration</strong> -Perfect integration with WordPress, which means one button updates and maintenance</li>
<li><strong>Social Networking</strong> &#8211; With social networks being all the buzz, it is important that you include them in all elements of your website. E-commerce allows you to add products to your social network pages like Facebook Marketplace and Google Base.</li>
<li><strong>Payment Gateways</strong> &#8211; WP-eCommerce integrates with Paypal, Authorize.net, Payment Expres and Google Checkout</li>
<li><strong>Extendible</strong> &#8211; The base install of WP- eCommerce is free and for most shops it will be more than enough, but if you are looking for more features they offer Premium Upgrades at their <a href="http://getshopped.org/extend/premium-upgrades/">Gold Cart Shop</a></li>
</ul>
</div>
<div class="clear-fix">
<h3><a href="http://shopplugin.net/">Shopp</a></h3>
<p><a href="http://shopplugin.net/"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/ishot-6.jpg" alt="Shopp" title="Shopp" width="580" height="365" class="aligncenter size-full wp-image-191" /></a><br />
	Shopp is relativel new (compared to WP e-commerce) but it has carved quite the niche out for itself over the last year. It is a premium plugin and cost $55 for the single site licence and $299 for the unlimited developers version.</p>
<ul>
<li>Plays nicely with most themes</li>
<li>Dashboard widgets for at-a-glance sales and marketing performance tracking</li>
<li>Shortcode support for placing products and categories in blog posts or pages</li>
<li> Out of the box, product grid. This is an add-on for WP e-commerce</li>
<li> Search-able products</li>
</ul>
</div>
<div class="clear-fix">
<h3><a href="http://wordpress.org/extend/plugins/eshop/">eShop</a></h3>
<p><a href="http://wordpress.org/extend/plugins/eshop/"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/ishot-3.jpg" alt="eShop" title="eShop" width="580" height="350" class="aligncenter size-full wp-image-192" /></a><br />
	eShop is a free WordPress plugin that is designed for smaller shops that don&#8217;t need a lot of bells and whistles.Features include:</p>
<ul>
<li>Utilises WordPress pages, or posts, to create products</li>
<li>Products can have multiple options</li>
<li>Basic Statistics</li>
<li>Various shipping options</li>
<li>Basic Stock Control</li>
</ul>
</div>
<div class="clear-fix">
<h3><a href="Quick Shop"></a></h3>
<p><a href="http://www.zackdesign.biz/wp-plugins/34"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/ishot-2.jpg" alt="Quick Shop" title="Quick Shop" width="580" height="374" class="aligncenter size-full wp-image-193" /></a><br />
	Quick is another free plugin. The WordPress site will need to be using a theme that supports sidebar widgets to make use of this plugin though. It adds a SideBar widget that shows the user what they currently have in the cart and allows them to remove the items if necessary. Features include:</p>
<ul>
<li>Inventory listing tied in to TinyMCE</li>
<li>Integrates automatically with CFormsII</li>
<li>Shopping cart Widget</li>
<li>Checkout page</li>
<li>Ability to create different product options in a drop-down</li>
</ul>
</div>
<div class="clear-fix">
<h3><a href="http://wordpress.org/extend/plugins/yak-for-wordpress/">YAK</a></h3>
<p><a href="http://wordpress.org/extend/plugins/yak-for-wordpress/"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/ishot-4.jpg" alt="YAK" title="YAK" width="580" height="367" class="aligncenter size-full wp-image-194" /></a><br />
	YAK is a simple shopping cart plugin for WordPress, associating products with weblog entries — thus the post ID also becomes the product code. Features include:</p>
<ul>
<li>Create products from either posts or pages</li>
<li>Downloadable products</li>
<li>Multiple product types</li>
<li>Sales Reports</li>
<li>Promotions</li>
</ul>
</div>
<h3>Summary</h3>
<p>One thing I really hate about these lists, is when you get to the end and nobody steps up to say who they think is best. Well I am not going to do that, right now this is a two horse race with WP e-commerce and Shopp being the best solutions by far. WP e-commerce has time on their side and therefore has had the option to fix a lot of bugs or hitches, unfortunately they have also become a bit lazy, they have a very good product that could be excellent. Shopp on the other hand is the up and comer that is working hard to take away market share from WPE, in my opinion they have the better &#8216;paid&#8217; solution, but if I need a quick and cheap solution I will probably go with WP-ecommerce. What is your opinion?</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/shopping-cart-plugins-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Designer and/or Teacher?</title>
		<link>http://rickbjarnason.com/web-designer-andor-teacher/</link>
		<comments>http://rickbjarnason.com/web-designer-andor-teacher/#comments</comments>
		<pubDate>Tue, 11 May 2010 15:11:16 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=182</guid>
		<description><![CDATA[We live in a world of ever changing technology. I am not referring to just the new stuff that is being created every day, but about old stuff re-inventing itself, or just releasing a new version. How many times have we heard that what you buy is outdated the minute you leave the store, or [...]]]></description>
			<content:encoded><![CDATA[<p>We live in a world of ever changing technology. I am not referring to just the new stuff that is being created every day, but about old stuff re-inventing itself, or just releasing a new version.<br />
How many times have we heard that what you buy is outdated the minute you leave the store, or drive off the car lot?<br />
I am not judging whether this is right or wrong, I am just saying  that we have created a society that always wants the latest and greatest. After all how many of us are driving around SUV&#8217;s that have never been off-road or hauled a single thing?</p>
<p>This presents a unique set of problems for a web designer, especially if you focus (like I do) on an established CMS (WordPress) with loads of free plugins. My clients invariably want the latest and greatest whether they need it or not. I find a great amount of my time is spent dealing with this problem, I have to first educate my clients on why they do not need all the bells and whistles before I can provide them with an effective web site.</p>
<p>Here are a couple of steps that I use to help me with my clients.</p>
<h3> Spend the appropriate amount of time on discovery</h3>
<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/discovery.jpg" alt="" title="discovery" width="580" height="435" class="aligncenter size-full wp-image-185" /><br />
Project discovery is the best asset that you will ever have. If you are not using this as part of your work flow you need to start immediately. If you are not familiar with Discovery, it is the art of interviewing your client before you ever take on the project. During this process you will want to &#8216;discover&#8217; a few of these things.</p>
<ul>
<li>Goal/Vision</li>
<li>Product</li>
<li>Audience</li>
</ul>
<p>When your client becomes enthralled with the latest gadget for their site, be sure to focus them on the entire goal of the site. What are they trying to accomplish? Does this &#8216;gadget&#8217; fit into these goals? Is the target audience going to use it?</p>
<h3>Technical Know How</h3>
<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/05/technical.jpg" alt="" title="technical" width="580" height="435" class="aligncenter size-full wp-image-184" /><br />
You are going to want to know a bit about your client. Like are they technically savvy? Or do they still use VCR&#8217;s that flash 12 o&#8217;clock at home? Remember as Web Developer we have a bit more know how when it comes to technical things. I have had many clients that need an inordinate amount of time spent with them, just to learn a few basic things like logging into a CMS or creating a post in WordPress. These clients are definitely going to struggle when it comes to some of the more advanced uses that WordPress can do. It is our job to make sure they are only using the tools they need and are not overwhelmed with settings they don&#8217;t need or want.</p>
<h3>Summary</h3>
<p>Your clients are going to be bombarded with technical jargon daily, it is only natural that they will believe some of the hype and want to stay on top of the technology game. While I tend to try and discourage my clients from taking on too much, I also try to remind myself that I am in the customer relationship business and in the end the client will be happier if you give them what they want. One of the ways I try to meld the two trains of thought, is to sell my clients on a maintenance package where I can take care of the technical stuff and they can concentrate on running their businesses. That way we are both satisfied with the results. What do you do for you clients?</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/web-designer-andor-teacher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO and Geo Caching</title>
		<link>http://rickbjarnason.com/seo-and-geo-caching/</link>
		<comments>http://rickbjarnason.com/seo-and-geo-caching/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 21:30:53 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[activities]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=176</guid>
		<description><![CDATA[I recently went on my first GEO caching hike. If you have never been I highly recommend them as my entire family had a blast! If you have no idea what a GEO cache here is the short description: Geocaching is a high-tech treasure hunting game played throughout the world by adventure seekers equipped with [...]]]></description>
			<content:encoded><![CDATA[<p>I recently went on my first GEO caching hike. If you have never been I highly recommend them as my entire family had a blast!</p>
<p>If you have no idea what a GEO cache here is the short description:</p>
<blockquote><p>Geocaching is a high-tech treasure hunting game played throughout the world by adventure seekers equipped with GPS devices. The basic idea is to locate hidden containers, called geocaches, outdoors and then share your experiences online. Geocaching is enjoyed by people from all age groups, with a strong sense of community and support for the environment.</p></blockquote>
<p><cite><a href="http://www.geocaching.com/">Geochaching.com</a></cite></p>
<p>Anyways it occurred to me that the same thing happens approximately 2 billion times a day. For those that have guessed from the title, that is the latest estimate for the number of searches performed daily on Google. So how is geocahing similar? Let&#8217;s break it down..</p>
<h3>Getting Started</h3>
<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/04/hiking.jpg" alt="" title="hiking" width="580" height="387" class="aligncenter size-full wp-image-178" /><br />
In both geocaching and search you have to decide on specific goals. Before you start a Geocache you have to decide on a specific one to complete there are literally millions,<a href="http://www.geocaching.com/">GeoCaching.com</a> is a good place to start but like search engines there are a lot of different options . </p>
<p>In search you have to first be looking for something, no matter how specific. You also need to start at search engine, like geocaching there are a lot of options.</p>
<h3> Refine your Search</h3>
<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/04/magnify.jpg" alt="" title="magnify" width="580" height="387" class="aligncenter size-full wp-image-179" /><br />
In geocaching you start out with one set of coordinates, when you get there you need to find some more clues to move you one your way. Anyone that has used a search engine can immediately relate, try searching for a generic search term like &#8216;puppy&#8217;. You will be bombarded with millions of results that may or may not answer your question. To get your answers you will probably have to do some research and enter a more specific term in like &#8216;puppy training&#8217;.</p>
<p>As you further refine your search terms you get closer and closer to the answer that you are looking for. With geocaching you will need to find all the clues to be able to find the final &#8216;treasure cache&#8217;. In both cases specificity is very important.</p>
<h3>Conclusion</h3>
<p>There is an actual web lesson to be learned here, that is that people looking for answers need be looking with very specific search terms or &#8216;keywords&#8217;. When you begin your search engine optimization the keywords will often determine whether your efforts are going to be a success or fall flat. The good news is with search engine optimization you can get your <strong>keywords</strong> mostly right and still turn them into a success, with geocaching you cannot possibly finish without having the coordinates EXACTLY right, but that is another story&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/seo-and-geo-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do you use Twitter?</title>
		<link>http://rickbjarnason.com/how-do-you-use-twitter/</link>
		<comments>http://rickbjarnason.com/how-do-you-use-twitter/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 16:26:42 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://rickbjarnason.com/?p=169</guid>
		<description><![CDATA[Twitter has become immensely popular over the last few years, and has now become a major player for internet marketing. However, with that popularity, there are inherent problems such as how do you stand out among the million odd users that log on daily. As a web professional I am constantly bombarded with social media [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com"><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/04/twit-homepage.jpg" alt="" title="twit-homepage" width="580" height="312" class="aligncenter size-full wp-image-170" /></a><br />
Twitter has become immensely popular over the last few years, and has now become a major player for internet marketing. However, with that popularity, there are inherent problems such as how do you stand out among the million odd users that log on daily.</p>
<p>As a web professional I am constantly bombarded with social media techniques, everybody has the answer. I however do not.</p>
<p>I can see how Twitter presents huge possibilities but I do not like the way 90% of the people are now using it. Too many people are using it to just spam their own content or systems to other users.</p>
<p>I absolutely hate spam! In fact, if I find one of the people I am following sends anything remotely spammy, I immediately un-follow them, and I am pretty sure I am not the only one. </p>
<h3>So the question still remains what is the best way to use Twitter for a business?</h3>
<p>I really think that there is only one answer here, but many ways to accomplish it. <strong>Build your Reputation</strong>. That is it. I would like to know your ideas on how to build the best reputation on twitter. I will start it off with this:</p>
<h3>Give more than you get</h3>
<p><img src="http://media.cheekymonkeymedia.ca.s3.amazonaws.com/wp-content/uploads/2010/04/giving.jpg" alt="" title="A gift for you" width="580" height="379" class="aligncenter size-full wp-image-171" /><br />
Whether it is re-tweeting other peoples web sites, or simply answering their questions, this is a good way to build goodwill.</p>
<h3>Now it&#8217;s your turn, what is the best way to use Twitter?</h3>
]]></content:encoded>
			<wfw:commentRss>http://rickbjarnason.com/how-do-you-use-twitter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
