﻿<?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>J. Pedro Ribeiro</title> <atom:link href="http://jpedroribeiro.com/feed/" rel="self" type="application/rss+xml" /><link>http://jpedroribeiro.com</link> <description>Brazilian web designer writing about design, photography, illustrations and his projects.</description> <lastBuildDate>Wed, 09 May 2012 02:48:54 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>HTML5 &amp; CSS3 Curriculum Vitae (Résumé) Template</title><link>http://jpedroribeiro.com/2012/05/html5-css3-curriculum-vitae-resume-template/</link> <comments>http://jpedroribeiro.com/2012/05/html5-css3-curriculum-vitae-resume-template/#comments</comments> <pubDate>Wed, 09 May 2012 02:48:54 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Front-End Development]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[curriculum]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[responsive]]></category> <category><![CDATA[semantic]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=229</guid> <description><![CDATA[Tired of my old PDF CV, I decided to create one based purely on html5 and css3. It's easier on the eye, clean and more accessible then a PDF and viewable on all devices, screens and browsers. <a
href="http://jpedroribeiro.com/2012/05/html5-css3-curriculum-vitae-resume-template/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/05/html-cv.png" alt="" title="HTML5 &#038; CSS3 Curriculum Vitae (Résumé) Template" width="720" height="269" class="alignnone size-full wp-image-230" /></p><p>I was tired of my old <strong>CV</strong> and lately I was using the <a
href="http://www.linkedin.com/in/joaopedroribeiro" title="My LinkedIn Profile" target="_blank">LinkedIn</a> auto generated <strong>PDF</strong> CV, which is quite nice and handy but it lacks personality.<br
/> The solution was to create on purely on <a
href="http://jpedroribeiro.com/tag/html5/" title="HTML5 Posts">html5</a> (<a
href="http://jpedroribeiro.com/tag/css/" title="CSS Posts">css3</a> for presentational styles), easier on the eye, clean and more accessible then a PDF file (or a Doc file) and viewable on all (or most?) devices, screens and browsers.</p><h2>Semantics</h2><p>The markup follows the latest web <strong>standards</strong> (for <a
href="http://jpedroribeiro.com/tag/html5/" title="HTML5 Posts">HTML5</a>), tried to make it as <strong>semantic</strong> as possible although I found out that being semantic in this context is heavily based on interpretation. Take the Skills section for example: it could be an ordered (even unordered) list but I decided to make it a definition list <code>dl</code>. My idea is that I am defining what <em>Design</em> (as for Front-end, Back-end and Other) means using <strong>me</strong> as the context.</p><h2>Responsiveness</h2><p>It&#8217;s basically a <strong>liquid layout</strong>, although I set a <code>max-width</code> of 978px for readability. With the help of <code>media queries</code>, managed to fix some layout flaws when viewing in smaller screens.</p><h2>Styling and Extras</h2><p>There are a couple javascript files on this document. One is a Google Font addon. I&#8217;m quite a fan of <em>PT Sans</em> so I had to use it in this project. The other one is Modernizr, which (among other things) lets old browsers render html5 sintaxes. On a similar cause, you will find another javascript in there to enable media queries on IE5+.</p><h2>Fork It</h2><p>I made the files available on GitHub, so please be welcome to fork it and make your updates on it.  You can easily update the code to fit your details and with some minor tweaking on the css you can make it shine in no time.</p><p><a
href="https://github.com/jpedroribeiro/html5-curriculum-vitae-template" title="Download the files at GitHub" target="_blank">https://github.com/jpedroribeiro/html5-curriculum-vitae-template</a></p><p>Any feedback on this is always welcome.</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2012/05/html5-css3-curriculum-vitae-resume-template/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>HTML5 and CSS3 Boilerplate files</title><link>http://jpedroribeiro.com/2012/02/html5-and-css3-boilerplate-files/</link> <comments>http://jpedroribeiro.com/2012/02/html5-and-css3-boilerplate-files/#comments</comments> <pubDate>Tue, 28 Feb 2012 00:28:34 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Front-End Development]]></category> <category><![CDATA[boilerplate]]></category> <category><![CDATA[css]]></category> <category><![CDATA[html5]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=122</guid> <description><![CDATA[My thoughts and references on boilerplate files, created to help speed up development and enhance the quality of your HTML5 projects. <a
href="http://jpedroribeiro.com/2012/02/html5-and-css3-boilerplate-files/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/02/boilerplate.jpg" alt="" title="boilerplate" class="alignnone size-full wp-image-217" /></p><p><strong>Boilerplate</strong> is a set of files composed to be used over and over again. In <a
href="http://jpedroribeiro.com/tag/front-end-development/">front-end development</a> (any area actually), starting from scratch every time you have a new <strong>project</strong> is a waste of time and money. How many times have you reset your css or applied the same basic styles to the same <a
href="http://jpedroribeiro.com/tag/html/">html</a> tags?</p><p>There are a vast amount of boilerplate files out there. Some are very complex and full of options, other are focused to certain types of projects. You are very well served of options.</p><p>On the projects I work on, I prefer to use a something simpler but that covers most of the areas. I <strong>created this set</strong> based on what I use the most.</p><h2>The Boilerplate</h2><p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/02/html5boilerplate.png" alt="" title="html5boilerplate" class="alignnone size-full wp-image-215" /></p><p>This set is not 100% original. Like almost everything <strong>web</strong> related, it is a combination of several others plus my own insights resulting on what works for me. I use some of <a
href="http://meyerweb.com/eric/tools/css/reset/">Eric Meyers CSS Reset</a>, mixed with some details by <a
href="http://html5doctor.com/html-5-boilerplates/">HTML Doctor</a>, <a
href="http://html5boilerplate.com/">HTML5 Boilerplate</a> and others. You are welcome to make your additions, updates and customise it to fit your requirements.</p><h2>HTML</h2><p>Start out creating a basic <strong>HTML5</strong> file. Add <a
href="http://www.modernizr.com/">Modernizr</a> (on header) so we can use new html5 tags on older <strong>browsers</strong> plus it allow us to detect whether the browser support css3 or not (always useful for graceful degradations).</p><h2>Styles</h2><p>Do a basic <strong>css reset</strong> and minify it to make it stand out from your own styles, plus it will save you some bytes.<br
/> If you are making a <strong>WordPress</strong> theme, don&#8217;t forget to add your details as comments on top, I recommend adding those details anyway.<br
/> Add <strong>conditional comments</strong> to place your IE8- styles.<br
/> If you are going <a
href="http://jpedroribeiro.com/tag/responsive/">responsive</a> (and you should!) place stylesheets according to the devices/screens you are going to support. Plus the <strong>print</strong> stylesheet.</p><h2>Scripts</h2><p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/02/jquery.png" alt="" title="jquery" class="alignnone size-full wp-image-216" /></p><p>Add the latest <a
href="http://jquery.com/">jQuery</a> for advanced javascript support. You can get it either from Google repository or download and use the latest version (I prefer this, I don&#8217;t like to rely on others, even Google!).<br
/> Add a Site.js (or whatever name you want) to host your own javascript and jQuery calls. These all should be on the <strong>bottom</strong> of your HTML document (we only leave Modernizr on top to enable HTML5 on old browsers).</p><h2>Everything Else</h2><p><strong>Favicon </strong>and <strong>iPad/iPhone</strong> icons also should be provided (on top of HTML doc). You can also add your own <strong>meta</strong> information. Not only good for <strong>SEO</strong>, it works as a signature of your project. Speaking of meta, add viewport and set it for mobile devices if you&#8217;re going responsive.</p><h2>Wrap Up</h2><p>This is how I basically created my <strong>boilerplate</strong>, you can download it here and see it in action. It has folder structure to help organize the files and speed up maintenance.</p><p>Bear in mind this is always work in progress, so make sure to come back and check the upcoming updates.</p><p><a
href='http://jpedroribeiro.com/wp-content/uploads/2012/02/v2.0-2011-blank-template.rar'>DOWNLOAD THE FILES</a></p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2012/02/html5-and-css3-boilerplate-files/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>CSS Only Drop Down Menu</title><link>http://jpedroribeiro.com/2012/02/css-only-drop-down-menu/</link> <comments>http://jpedroribeiro.com/2012/02/css-only-drop-down-menu/#comments</comments> <pubDate>Wed, 01 Feb 2012 03:37:36 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Front-End Development]]></category> <category><![CDATA[css]]></category> <category><![CDATA[drop-down]]></category> <category><![CDATA[front-end development]]></category> <category><![CDATA[html]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=126</guid> <description><![CDATA[No more javascript or hacks. Learn how to create a usable html + css only drop down menu. <a
href="http://jpedroribeiro.com/2012/02/css-only-drop-down-menu/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/01/css-only-drop-down.jpg" alt="CSS Only Drop Down Menu" title="css only drop down" class="alignnone size-full wp-image-213" /></p><p>Drop Down menu is an excellent alternative for complex menus, the ones with a variety of categories and subcategories to choose from. In this article, I&#8217;ll show how I usually code this kind of menu without using any javascript of back-end functionality.</p><h2>The Goal</h2><p>We are going to aim for a simple usable menu with links and sub-menus. It will work on most browsers (IE, FF, Chrome, Opera) with graceful degradation on the outdated ones.</p><h2>The Markup</h2><p>Our menu is an ordered list.<br
/> Why ordered you ask? Well I&#8217;ll consider this our main menu (on header &gt; nav) so the items/links have a logic on its own. There is a meaning for placing &#8216;About Us&#8217; before &#8216;Contact&#8217; (even thought it&#8217;s not numerical or alphabetical order). Therefore, it&#8217;s an ordered menu.</p><p>So here it is:</p><pre>&lt;ol&gt;
    &lt;li&gt;&lt;a href='/About' title='About Us'&gt;About Us&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href='/Products' title='Products'&gt;Products&lt;/a&gt;
        &lt;ol&gt;
            &lt;li&gt;&lt;a href='/Accessories' title='Accessories'&gt;Accessories&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='/Laptops' title='Laptops'&gt;Laptops&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='/Macs' title='Macs'&gt;Macs&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='/Pcs' title='PCs'&gt;PCs&lt;/a&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href='/Support' title='Support'&gt;Support&lt;/a&gt;
        &lt;ol&gt;
            &lt;li&gt;&lt;a href='/FAQ' title='FAQ'&gt;FAQ&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href='/VideoTour' title='Video Tour'&gt;Video Tour&lt;/a&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href='/Contact' title='Contact'&gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</pre><h2>Styling</h2><p>Now, the fun part. I will use some basic design styles just to make the menu more clear, but you can edit colours, fonts, sizes the way you want.</p><pre>ol {
    font-family: arial;
    font-size: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative
}
ol li {
    float: left;
    margin: 0 5px 5px 0;
    position: relative;
}
ol li a, ol li:hover ol li a {
    background: #f4f4f4;
    border: 1px solid #eee;
    color: #555;
    padding: 5px;
    text-decoration: none;
    display: block;
    white-space: nowrap
}
ol li:hover a {
    background: #555;
    color: #f4f4f4;
}
ol li ol li:hover a {
    background: #222;
    color: #f4f4f4;
}
ol li ol {
    left: 0;
    position: absolute;
    top: 26px;
    padding-top: 5px;
    display: none;
}
ol li:hover ol {
    display: block;
    position: absolute</pre><p>What basically is happening is that we are hiding the second level menu via <em>display:none</em> and showing it when the user hovers over the parent list item (last style declaration).</p><h3>IE7</h3><p>As always, there&#8217;s a bug on IE7 where you have to set a background to an object in order to handle the <em>:hover</em> selector. This happens on objects that have position: absolute, which is the case of our menu. To fix this, the easiest way is to add a fake image to it, like:</p><pre>&lt;!--[if lte IE 7]&gt;
    &lt;style&gt;
        ol li ol {background: url(none);}
    &lt;/style&gt;
&lt;![endif]--&gt;</pre><h3>IE6</h3><p>Sadly, IE6 can&#8217;t handle :hover on list elements. There are some hacks and javascript to enable it but I prefer to use another approach and just show it like a simple menu for these users. In this conditional comment, we will be resetting the &#8220;mouse over&#8221; effect to the anchor element instead.</p><pre>&lt;!--[if lte IE 6]&gt;
    &lt;style&gt;
        ol li a:hover {background: #555; color: #f4f4f4;}
        ol li ol li a:hover {background: #222; color: #f4f4f4;}
    &lt;/style&gt;
&lt;![endif]--&gt;</pre><h2>Conclusion</h2><p>You can use different properties on the :hover state, like visibility, left and top positioning and also add css transitions to make the change smoother, but our goal was to do something simple, a base where you can build upon.<br
/> One drawback of using a drop down menu is that you can &#8220;hover&#8221; over elements on a touchscreen device. That&#8217;s why we make all items of our menu link to a page, so if the user can&#8217;t hover to see the product list they can still navigate through our site.</p><p><a
href='http://jpedroribeiro.com/wp-content/uploads/2012/01/css-only-drop-down.html'><strong>VIEW DEMO</strong></a></p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2012/02/css-only-drop-down-menu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book Review: Smashing Book 2</title><link>http://jpedroribeiro.com/2012/01/book-review-smashing-book-2/</link> <comments>http://jpedroribeiro.com/2012/01/book-review-smashing-book-2/#comments</comments> <pubDate>Wed, 18 Jan 2012 00:00:28 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Book Reviews]]></category> <category><![CDATA[books]]></category> <category><![CDATA[smashing magazine]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=209</guid> <description><![CDATA[Finished reading Smashing Book 2 and I got disappointed. It looks good, feels good, covers a variety of topics, but to me it just doesn't work. <a
href="http://jpedroribeiro.com/2012/01/book-review-smashing-book-2/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/01/buch_dummy_big_3.png" alt="" title="smashing book 2" class="alignnone size-full wp-image-210" /></p><p>A couple months ago I finished reading <a
href="https://shop.smashingmagazine.com/smashing-book-2.html" title="Buy The Book">The Smashing Book 2</a> from the popular web design blog <a
href="http://www.smashingmagazine.com/">Smashing Magazine</a>. Just like with the first book, I got disappointed. It <strong>looks good</strong>, it <strong>feels good</strong> (awesome printing), it covers a variety of topics, but to me it just doesn&#8217;t work.</p><p>For starter, it feels like a bunch of <strong>blog articles</strong> put together. I can&#8217;t feel the connection among them. Like I said, it covers a wide range of topics, from e-commerce to mobile, typography and print design. I found myself skipping several pages until finding something that I&#8217;m actually interested in. Too many different areas covered also means I won&#8217;t use the <a
href="http://jpedroribeiro.com/tag/books/">book</a> as a quick reference. Maybe this was intentional so they could reach a broader audience, just a guess.</p><p>One chapter in particular covers <strong>design patterns</strong> in e-commerce based on a research with over 50 websites. Even though the content and results are well put together, this is hardly something I want to read in a book. It would make more sense to see it in a <strong>magazine </strong>as the results will become dated very fast.</p><p><strong>The Smashing Book 2</strong> is not a bad book. It is well written and the authors go very deep into each chapter, they are very informative although not so useful in practise. The chapters cover a lot about strategy and theory.</p><p>It&#8217;s a great improvement from their first try and I&#8217;m sure a lot of people will like it. It just isn&#8217;t the book I was expecting considering what <strong>Smashing Magazine</strong> represents to the web community.</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2012/01/book-review-smashing-book-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>So&#8230; I Finally Redesigned My Site</title><link>http://jpedroribeiro.com/2012/01/so-i-finally-redesigned-my-site/</link> <comments>http://jpedroribeiro.com/2012/01/so-i-finally-redesigned-my-site/#comments</comments> <pubDate>Fri, 13 Jan 2012 03:59:17 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[web design]]></category> <category><![CDATA[process]]></category> <category><![CDATA[redesign]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=205</guid> <description><![CDATA[Took me a while but I finally managed to redesign this site. Four years is enough time, people change and so must this blog. <a
href="http://jpedroribeiro.com/2012/01/so-i-finally-redesigned-my-site/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="http://jpedroribeiro.com/wp-content/uploads/2012/01/redesign.jpg" alt="Website, Redesigned" title="redesign" class="alignnone size-full wp-image-206" /></p><p>Nearly 4 years ago, back in 2008, I decided to create a <strong>blog</strong> and write about all the stuff I was reading and doing, mostly <strong>web</strong> related. Took me a while to learn <strong>WordPress</strong>, how to create a brand new theme and customise it. It went ok, and <a
href="http://jpedroribeiro.com/other-portals-that-showcase-this-website/" title="feedback">I got nice feedback</a>. But time passes by, people change and so must this site.</p><h2>Design</h2><p>On the first version I was very into <strong>textures </strong>and <strong>retro </strong>feeling. I kind of overdid it to my current taste. So in this new theme I decided to go <strong>minimal</strong>: subtle texture in the background, little graphics (mostly icons) and kept the dark colour scheme.</p><h2>Content</h2><p>As you can see, this site is heavily focused on the blog entries. <a
href="http://jpedroribeiro.com/portfolio/" title="Portfolio">Portfolio</a>, about me and everything else is secondary.<br
/> <strong>Comments</strong> are off. I realised that only 5-10% of comments were meaningful and from those, about half were actually interesting comments to the post. Also, most people would contact me via <a
href="http://twitter.com/jpedroribeiro" title="Follow me on Twitter">Twitter</a> anyway so I saw no reason to keep it.</p><h2>Development</h2><p>Even though the design is minimal, the <strong>coding</strong> is quite complex. On the front-end side, I used <strong>HTML5</strong> markup mostly, with some <strong>CSS3</strong> techniques for visual richness and a bit of <strong>jQuery</strong>. The back-end is, clearly <strong>WordPress</strong>, so I made use of the new features available at version 3+ like Custom Menus, Custom Fields, Featured Images, and so on. I learned A LOT about WordPress during this stage.</p><h2>And It&#8217;s Here!</h2><p>Took me a while to finish it, I&#8217;d say about three months on and off since I could only work on it weekends and some free nights. Anyway, hope you like this new version. If you have any question about techniques, codes, plugins, or anything used in this site just drop me a <a
href="http://twitter.com/jpedroribeiro" title="Twitter">tweet</a> or <a
href="http://jpedroribeiro.com/contact-me/" title="Contact Me">e-mail</a>.<br
/> Cheers!</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2012/01/so-i-finally-redesigned-my-site/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>HTML Coding For E-mail Marketing</title><link>http://jpedroribeiro.com/2011/07/html-coding-for-e-mail-marketing/</link> <comments>http://jpedroribeiro.com/2011/07/html-coding-for-e-mail-marketing/#comments</comments> <pubDate>Thu, 21 Jul 2011 16:21:42 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[E-mail Marketing]]></category> <category><![CDATA[e-mail]]></category> <category><![CDATA[html]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=120</guid> <description><![CDATA[Creating a successful <strong>e-mail marketing</strong> campaign requires several items: a valid product or service to offer, selected target audience and, to make everything work, a fail-proof <strong>html</strong>. <a
href="http://jpedroribeiro.com/2011/07/html-coding-for-e-mail-marketing/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://jpedroribeiro.com/2011/07/html-coding-for-e-mail-marketing/"><img
title="HTML Coding For E-mail Marketing" src="http://jpedroribeiro.com/wp-content/uploads/2011/07/email-marketing.jpg" border="0" alt="HTML Coding For E-mail Marketing" /></a></p><p>Creating a successful <strong>e-mail marketing</strong> campaign requires several items: a valid product or service to offer, selected target audience and, to make everything work, a fail-proof <strong>html</strong>.</p><h2>Old Style HTML</h2><p>Coding for e-mail is completely different than coding <a
href="http://jpedroribeiro.com/portfolio/">websites</a>. E-mail clients software render e-mails in different ways just as <strong>browser</strong>-based e-mail services. The <strong>HTML</strong> for this media is mostly outdated, deprecated and messy, at least it will be if you want to make them work on all (or most) clients.</p><h2>What About CSS?</h2><p>Most of the <strong>CSS</strong> you know is useless for e-mails, but depending on your target audience you might be able to go a bit further. <strong>Campaign Monitor</strong> keeps an updated table with the <a
href="http://www.campaignmonitor.com/css/" target="_blank">current CSS support in e-mails</a>, so keep that page in your bookmark for future references.</p><h2>Tips to Code a Fail Proof E-mail</h2><p><strong>Structure</strong>: Put semantics aside and bring those &lt;table&gt; tags back. Since most of the styling won&#8217;t behave as we want, we are going to have to use tables for positioning the design. Don&#8217;t forget to set cellpadding and cellspacing to 0.<br
/> <strong>Images</strong>: Use border 0 and display: block on every images, they avoid that extra spacing around the image, specially on Gmail clients. If you are using images inside table cells, add a background colour to the cell, since some users might have turned off images display (use alt tags as well).<br
/> <strong>Text</strong>: Although some platforms will render css text styling, I recommend going back to the deprecated &lt;font&gt;. You can use a styled <span> inside the <font> for modern clients.</p><h2>Test, Test, Test</h2><p>After all is done, <strong>test as much as you can</strong>. You&#8217;ll probably be fine if the e-mail work on Gmail, Hotmail and Outlook, so try to focus on those first. Providing a link to a <strong>browser version</strong> of the e-mail on the top (and bottom) of your e-mail is also a common standard.</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2011/07/html-coding-for-e-mail-marketing/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book Review: Hardboiled Web Design</title><link>http://jpedroribeiro.com/2011/06/book-review-hardboiled-web-design/</link> <comments>http://jpedroribeiro.com/2011/06/book-review-hardboiled-web-design/#comments</comments> <pubDate>Thu, 16 Jun 2011 02:30:00 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Book Reviews]]></category> <category><![CDATA[books]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[html5]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=118</guid> <description><![CDATA[Andy Clarke's long-waited book, <strong><a
href="http://hardboiledwebdesign.com/" target="blank">Hardboiled Web Design</a></strong>, brings new ideas on website development. It's packed with HTML5 and CSS3 but with a different take. A <em>hard-ass</em> approach using the latest, emerging technologies. <a
href="http://jpedroribeiro.com/2011/06/book-review-hardboiled-web-design/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://jpedroribeiro.com/2011/06/book-review-hardboiled-web-design/"><img
title="Book Review: Hardboiled Web Design" src="http://jpedroribeiro.com/wp-content/uploads/2011/06/hardboiled.jpg" border="0" alt="Book Review: Hardboiled Web Design" /></a></p><p>Andy Clarke&#8217;s long-waited book, <strong><a
href="http://hardboiledwebdesign.com/" target="blank">Hardboiled Web Design</a></strong>, brings new ideas on website development. It&#8217;s packed with HTML5 and CSS3 but with a different take. A <em>hard-ass</em> approach using the latest, emerging technologies.</p><p><span
id="more-118"></span></p><p>I&#8217;ve got to admit that I&#8217;m a big fan of <a
href="http://stuffandnonsense.co.uk/" target="blank">Andy</a>&#8216;s work. <a
href="http://www.transcendingcss.com/">Transcending CSS</a> had a huge impact on <a
href="http://jpedroribeiro.com/portfolio/">my work</a> and the way I used to see markup and styling. And I had the same feeling after reading this book.</p><h2>Hardboiled</h2><p>As the book says: &#8220;<em>&#8216;Hardboiled&#8217; web design is about never compromising on creating the best we can for the web. Hardboiled is about challenging assumptions.</em>&#8220;. This is just to give an idea of the tone used by the author throughout the book. Basically, the idea is to use all <strong>technologies</strong> available to us right now and not letting <a
href="http://jpedroribeiro.com/2010/06/cross-browser-testing-resources/">browser capabilities</a> drag us down.</p><h2>The Book</h2><p>Beautifully illustrated and designed, the book itself it&#8217;s different than everything you&#8217;ll ever see in the category. It&#8217;s one of a kind. It&#8217;s also a huge book with nearly <strong>400 pages</strong> divided into 4 big chapters.</p><p>Each segment within these chapters is loaded with <strong>HTML5</strong> and <strong>CSS3</strong> techniques deeply explained (in a hardboiled way, of course) and exemplified using the book&#8217;s case study, plus, the author shows us real websites that are using it and gives us directions if we want further knowledge on the subject.</p><p>The book is available at Five Simple Steps. What are you waiting for? <a
href="http://www.fivesimplesteps.com/products/hardboiled-web-design" target="blank">Buy it now</a>!</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2011/06/book-review-hardboiled-web-design/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Creating Expandable Banners with Flash and Javascript</title><link>http://jpedroribeiro.com/2011/06/creating-expandable-banners-with-flash-and-javascript/</link> <comments>http://jpedroribeiro.com/2011/06/creating-expandable-banners-with-flash-and-javascript/#comments</comments> <pubDate>Sat, 04 Jun 2011 21:13:37 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[web design]]></category> <category><![CDATA[banner]]></category> <category><![CDATA[flash]]></category> <category><![CDATA[javascript]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=112</guid> <description><![CDATA[A very popular ad type in portals and blogs, the expandable banner is a useful technique to display more content to a banner. It's a very simple concept: the banner initially starts with a standard size and then increase when the user interacts (rollover or click) with it. <a
href="http://jpedroribeiro.com/2011/06/creating-expandable-banners-with-flash-and-javascript/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://jpedroribeiro.com/2011/06/creating-expandable-banners-with-flash-and-javascript/"><img
title="Creating Expandable Banners with Flash and Javascript" src="http://jpedroribeiro.com/wp-content/uploads/2011/06/expandable-banner.jpg" border="0" alt="Creating Expandable Banners with Flash and Javascript" /></a></p><p>A very popular ad type in portals and blogs, the expandable banner is a useful technique to display more content to a banner. It&#8217;s a very simple concept: the banner initially starts with a standard size and then increase when the user interacts (rollover or click) with it.</p><p>In this tutorial, we are going to create the expandable banner by following 3 steps:</p><ol><li>Create a Flash banner with the original size and the expanded animation.</li><li>Build a expandable area for the banner with HTML &amp; CSS.</li><li>Develop a small javascript to enable communication between the Flash banner and the HTML file.</li></ol><h2>1) The Flash Animation</h2><p>Start by creating your animation in a canvas as big as the expanded part to be. In this example, my banner will expand from 600&#215;150 to 600&#215;300, so the latter is my canvas size.</p><p>We are going to use 4 layers (although you might use more if needed): <em>hit area</em> &#8211; for our mouse events, <em>stage</em> &#8211; as a guide, <em>mask</em> &#8211; to hide and show different areas of the canvas and <em>content</em>.</p><p><img
src="http://jpedroribeiro.com/wp-content/uploads/2011/06/flash-layers.png" alt="flash layers" title="flash-layers" width="511" height="187" class="alignnone size-full wp-image-114" /></p><p>In the <strong>hit area</strong>, we place a button with this actionscript:</p><pre>
on(rollOver)	{
  getURL("javascript:expand();");
  gotoAndPlay("Start");
}

on(rollOut)	{
  gotoAndPlay("Finish");
  getURL("javascript:retract();");
}

on(release)	{
  getURL("http://www.jpedroribeiro.com/", "_top");
}
</pre><p>As you can see we are going to call a <strong>javascript</strong> on these two mouse events that will expand and retract the flash area, the third event is the click which will take us to our desired link.<br
/> In the <strong>mask</strong> layer, create a shape object and animate it to hide the extra content. Don&#8217;t worry about the canvas size, we will take care of it next.</p><h2>2) The HTML</h2><p>We are going to use 2 DIVs here, the parent one with a set position and the child one containing the embedded Flash and using CSS to clip its area.</p><pre>&lt;div style=&quot;position: relative; width: 600px; height: 150px&quot;&gt;
    &lt;div id=&quot;exp-banner&quot; style=&quot; position:absolute;clip: rect(0px 600px 150px 0px)&quot;&gt;
        &lt;object&gt;...&lt;/object&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre><p>Now we just need some script to dynamically change those attributes.</p><h2>3) Interaction</h2><p>Finally, the JavaScript. Here we will set the CSS attribute <em>clip</em> of the child DIV to 300px height when the user hovers our banner and 150px when he moves away from it.</p><pre>function expand() {
    document.getElementById("exp-banner").style.clip="rect(0px 600px 300px 0px)";
}
function retract() {
    document.getElementById("exp-banner").style.clip="rect(0px 600px 150px 0px)";
}</pre><p>To get a smoother result, you should only call the <em>retract</em> function when your animation reverted back to its standard height.</p><h2>Demo &amp; Source Files</h2><p>Putting all together, you should come with something like this. <a
href="http://jpedroribeiro.com/wp-content/uploads/2011/06/expandable.html" target="_blank">Check out the <strong>demo page</strong></a> and feel free to <strong>download </strong>the original <a
href="http://jpedroribeiro.com/wp-content/uploads/2011/06/expandable.fla">Flash file</a>.</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2011/06/creating-expandable-banners-with-flash-and-javascript/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Please Start From The Beginning&#8230;</title><link>http://jpedroribeiro.com/2011/02/please-start-from-the-beginning/</link> <comments>http://jpedroribeiro.com/2011/02/please-start-from-the-beginning/#comments</comments> <pubDate>Sun, 20 Feb 2011 23:09:29 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[Interviews]]></category> <category><![CDATA[interview]]></category> <category><![CDATA[podcast]]></category> <category><![CDATA[transcription]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=109</guid> <description><![CDATA[A couple of weeks ago I had the pleasure of doing some transcription <a
href="http://jpedroribeiro.com/portfolio/">work</a> for the podcast called "<a
href="http://psftb.ryanhavoctaylor.com/" target="blank">Please start from the beginning...</a>", a video series exploring the career paths and experiences of web industry professionals. <a
href="http://jpedroribeiro.com/2011/02/please-start-from-the-beginning/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://jpedroribeiro.com/2011/02/please-start-from-the-beginning/"><img
title="Please Start From The Beginning..." src="http://jpedroribeiro.com/wp-content/uploads/2011/02/psftb.jpg" border="0" alt="Please Start From The Beginning..." /></a></p><p>A couple of weeks ago I had the pleasure of doing some transcription <a
href="http://jpedroribeiro.com/portfolio/">work</a> for the podcast called &#8220;<a
href="http://psftb.ryanhavoctaylor.com/" target="blank">Please start from the beginning&#8230;</a>&#8220;, a video series exploring the career paths and experiences of web industry professionals.</p><h2>The Podcast</h2><p>PSFTB (as I&#8217;ll call it from here) is a project run by <a
href="http://ryanhavoctaylor.com/" target="blank">Ryan &#8220;Havoc&#8221; Taylor</a>, a British designer and developer that works at <a
href="http://www.headscape.co.uk/" target="blank">Headscape</a> and also freelances at <a
href="http://www.havocinspired.co.uk/" target="blank">Havoc Inspired</a>. The weekly podcast interviews <a
href="http://psftb.ryanhavoctaylor.com/interviews/" target="blank">amazing people</a> from the web design industry from all over the world.</p><h2>Transcribing, Learning, Enjoying</h2><p>The <a
href="http://psftb.ryanhavoctaylor.com/design/naomi-atkinson/" target="blank">interview I transcribed</a> was with the lovely <a
href="http://naomiatkinson.com/" target="blank">Naomi Atkinson</a>. She talked about her career, clients, being a freelancer and expectations for the future of the web industry.</p><p>It was a fun experiment and a good experience to me to transcribe an interview in English, as I&#8217;m not a native speaker of the language. I had a great time doing it and hopefully, if my schedule allows it, I&#8217;ll do it again.</p><p>Check out this and other great interviews at <a
href="http://psftb.ryanhavoctaylor.com/" target="blank">Please start from the beginning&#8230;</a>.</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2011/02/please-start-from-the-beginning/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Photoshop: Quick Guide to Smart Object &amp; Smart Filters</title><link>http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/</link> <comments>http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/#comments</comments> <pubDate>Tue, 18 Jan 2011 00:04:35 +0000</pubDate> <dc:creator>J. Pedro Ribeiro</dc:creator> <category><![CDATA[web design]]></category> <category><![CDATA[photoshop]]></category> <category><![CDATA[smart objects]]></category><guid
isPermaLink="false">http://jpedroribeiro.com/?p=103</guid> <description><![CDATA[<em>Smart Object </em>and <em>Smart Filter</em> are two extremely useful features in <strong>Photoshop</strong> that will boost your design productivity. This is an easy to master technique that go hand in hand with any type of project. <a
href="http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/"><img
title="Photoshop: Quick Guide to Smart Object &#038; Smart Filters" src="http://jpedroribeiro.com/wp-content/uploads/2011/01/smart-objects.jpg" border="0" alt="Photoshop: Quick Guide to Smart Object &#038; Smart Filters" /></a></p><p><em>Smart Object </em>and <em>Smart Filter</em> are two extremely useful features in <strong>Photoshop</strong> that will boost your design productivity. This is an easy to master technique that go hand in hand with any type of project.</p><h2>The Power of Vectors</h2><p>What Smart Objects do is basically treat any raster file like a vector. You can <strong>scale</strong> it down and scale it up again without losing resolution or pixelating your object. Scaling up is another business, you can only go as far as the original image. This resource is great for adding logos to <a
href="http://jpedroribeiro.com/portfolio/">web design</a> mockups for example. You can use only one instance throughout the whole project with different sizes.</p><h2><em>One Object to Rule Them All</em></h2><p>Another nice touch about the Smart Object is that when you do some changes to the object, all instances will be updated simultaneously. No more copying styles from layer to layer!</p><h2><em>Filters?</em></h2><p><strong>Smart Filters</strong> work in a similar way. After creating your smart object, any filter applied to it will be a smart filter automatically. The advantages are: you can edit the filter after you applied it, pretty much like <strong>Fireworks </strong>do it (or <em>Layer Styles</em> in <strong>Photoshop</strong>). You can also copy filter to other layers if you like.</p><h2><em>Creating Smart Objects and Smart Filters</em></h2><p>So now we understand how it works in theory, let&#8217;s see how can we take advantage of this features and apply it to our design projects.</p><p><strong>Smart Objects</strong></p><ol><li>First, select the layer containing the image you want to turn into a Smart Object;</li><li>Right-click and select Convert to Smart Object;</li><li><strong>Done!</strong> Now your layer has a small icon showing that it is now a Smart Object.<br
/> (Note: To turn your layer back into an raster object, double-click the layer and select Rasterize Layer)</li></ol><p><img
src="http://jpedroribeiro.com/wp-content/uploads/2011/01/smart-1.png" alt="Creating Smart Objects" width="434" height="615" /></p><p><strong>Smart Filters</strong></p><ol><li>Select a layer with your Smart Object;</li><li>Go to the Filter menu and select a filter of your choice;</li><li><strong>Done!</strong> Now your Smart Object has a filter that can be updated any time you want. Also, you can copy this filter to another Smart Object by holding the ALT key and dragging it.</ol><p><img
src="http://jpedroribeiro.com/wp-content/uploads/2011/01/smart-2.png" alt="Creating Smart Filters"  width="600" height="461" /></p><p>Play around with this feature and <a
href="http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/#comments">let me know</a> if you got any question. Cheers!</p> ]]></content:encoded> <wfw:commentRss>http://jpedroribeiro.com/2011/01/photoshop-quick-guide-to-smart-object-smart-filters/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic (User agent is rejected)
Database Caching 10/17 queries in 0.012 seconds using disk: basic

Served from: jpedroribeiro.com @ 2012-05-17 23:44:29 -->
