<?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>Xavi Esteve &#187; Web design</title>
	<atom:link href="http://xaviesteve.com/category/web-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://xaviesteve.com</link>
	<description>I&#039;m a front end web developer and graphic designer from Barcelona based in London. I am passionate in JavaScript, jQuery, CSS, PHP, Wordpress, usability and SEO.</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:22:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>iPad web based Code Editor (with extra symbols keyboard)</title>
		<link>http://xaviesteve.com/2928/ipad-web-based-code-editor-with-extra-symbols-keyboard/</link>
		<comments>http://xaviesteve.com/2928/ipad-web-based-code-editor-with-extra-symbols-keyboard/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 16:11:39 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Front-End]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2928</guid>
		<description><![CDATA[I mostly use the iPad for reading email, news and blogs although I am still perplexed at how few apps there are for actually doing some work. Well, to be honest, there are many apps to do some work. But I believe in platform-agnostic web-apps or SAAS to be the future of our world and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-2932" title="iPad Code Editor Web Based" src="http://xaviesteve.com/wp-content/uploads/2012/02/ipad-code-editor-web-based.jpg" alt="iPad Code Editor Web Based" width="600" height="300" /></p>
<p>I mostly use the iPad for reading email, news and blogs although I am still perplexed at how few apps there are for actually doing some work. Well, to be honest, there are many apps to do some work. But I believe in platform-agnostic web-apps or SAAS to be the future of our world and the amount, variety and features of current web apps for web development is still quite scarce.</p>
<p>One of the big gaps that I found was regarding code editors. The lack of fast symbol typing in the keyboard is very frustrating and slow (you need to use iOS&#8217;s default keyboard and type 3 keys just to get a &#8220;&lt;&#8221; sign, plus another one to get back). This is why I came up with a proof of concept on<strong> additional keyboard rows with extra keys for touch screen devices</strong> and added all symbols frequently used for coding and programming so you don&#8217;t need to keep switching from one keyboard set to another. It has been optimised for the iPad in portrait mode although with some responsive CSS queries and device detection it can be adapted anywhere.</p>
<p>The code itself is basic HTML, CSS and a bit of JavaScript and jQuery. I&#8217;ve kept it simple to aid scalability and customisation. This is how it looks:</p>
<p><a href="http://xaviesteve.com/wp-content/uploads/2012/02/ipad-additional-keyboard-coding-programming-symbols.png"><img class="alignnone size-large wp-image-2929" title="iPad additional web-based keyboard for coding" src="http://xaviesteve.com/wp-content/uploads/2012/02/ipad-additional-keyboard-coding-programming-symbols-600x800.png" alt="iPad additional web-based keyboard for coding" width="600" height="800" /></a></p>
<h2>Demo and download</h2>
<p>Click the following link to open the Code Editor. To test it properly you will need an <em>iPad in portrait mode</em>.</p>
<p><a class="button blue" href="http://xaviesteve.com/pro/ipadkeyboard" target="_blank">iPad web-based code editor with extra symbols keyboard</a></p>
<h3>License</h3>
<p>Public Domain, keeping the Internet open. You can use it commercially and distribute it as much as you want without being forced to credit the author.</p>
<h3>Changelog</h3>
<p>If you have developed it further send me an email and I will include it in the next release and you in the Credits.</p>
<h4>8 February 2012 (v1.0)</h4>
<ul>
<li>First release</li>
</ul>
<p>If you haven&#8217;t seen my <a title="iPad/iPhone/mobile HTML/CSS template for web apps (responsive, no javascript)" href="http://xaviesteve.com/2899/ipad-iphone-mobile-html-css-template-for-web-apps/">iPad HTML/CSS template</a> you must see it now.</p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2928/ipad-web-based-code-editor-with-extra-symbols-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test de usabilidad web económico</title>
		<link>http://xaviesteve.com/2913/test-de-usabilidad-web-economico/</link>
		<comments>http://xaviesteve.com/2913/test-de-usabilidad-web-economico/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 19:47:49 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2913</guid>
		<description><![CDATA[Si nos falta el tiempo y el dinero para poder ejecutar un estudio de usabilidad de nuestra página web siempre podemos recurrir a sistemas caseros que son rápidos y económicos. Escoger la lista de perfiles Muchos usuarios visitarán nuestra web en el futuro. Entre éstos tenemos que identificar los diferentes perfiles de usuario (llamados &#8220;personas&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-2917" title="" src="http://xaviesteve.com/wp-content/uploads/2012/02/11.jpeg" alt="" width="600" height="250" /></p>
<p>Si nos falta el tiempo y el dinero para poder ejecutar un estudio de usabilidad de nuestra página web siempre podemos recurrir a sistemas caseros que son rápidos y económicos.</p>
<h2>Escoger la lista de perfiles</h2>
<p>Muchos usuarios visitarán nuestra web en el futuro. Entre éstos tenemos que identificar los diferentes perfiles de usuario (llamados &#8220;personas&#8221; en inglés) y de estos perfiles escoger los <strong>dos o tres principales</strong>, si hay algo que está claro es que la página web nunca será del agrado de todos nuestros usuarios ya que es <strong>imposible que agrade a todo el mundo</strong> aunque sí que podemos adaptarla a la mayoría que nos interese. Un perfil de usuario sería algo así:</p>
<blockquote><p>Persona de entre 25 y 35 años con poder adquisitivo medio-alto, educación universitaria, que vive en una ciudad, no tiene hijos, con conocimientos medios de informática, que navega entre 30 minutos y 2 horas al día por Internet vía un ordenador portátil o de escritorio. Realiza actividades de ocio entre 4 y 8 veces al mes.</p></blockquote>
<p>Una vez tengamos los perfiles principales deberemos encontrar gente que se adapte a ellos. Si nuestro presupuesto es bajo podemos recurrir a favores de amigos, familiares y conocidos. Lo importante es que puedan estar presencialmente con nosotros.</p>
<h2>Test de usabilidad</h2>
<p>Una vez tengamos una lista de los diferentes perfiles de usuario, situaremos al primero delante del ordenador y dejaremos unos minutos para que el usuario se acomode y familiarice con él, encuentre el icono del navegador web y lo abra. Si puedes realizar el test desde el ordenador del usuario muchísimo mejor.</p>
<h3>Misión</h3>
<p>El siguiente paso es el más importante y es que sólo le encomendamos <strong>una misión no más larga que una oración</strong> y cuya tarea debe durar <strong>menos de 15-30 minutos</strong> (podemos encomendarle varias misiones, una a una, pero una sola a la vez). Por ejemplo:</p>
<blockquote><p>Visita la página xaviesteve.com y compra el aparato de música de entre 100 y 200 euros que más te guste.</p></blockquote>
<p>En esa frase queda implícito que el usuario deberá: buscar el producto, registrarse para poder comprar, confirmar un enlace de activación de la cuenta en su correo, hacer click en Comprar, introducir sus datos de la tarjeta de crédito (una vez saque su tarjeta de crédito le proporcionaremos una nuestra de prueba) y finalmente confirmar. Otro ejemplo sería:</p>
<blockquote><p>Mañana quieres ir a cenar a un restaurante japonés, haz una reserva para 2 en la web helloplan.com y encuentra donde está ubicado.</p></blockquote>
<h3>Nuestro papel</h3>
<p>Lo importante es que <strong>el usuario lo deduzca todo por él mismo</strong> sin que tengamos que explicarle nada. Si nos hace preguntas le diremos que no se preocupe, que intente descubrirlo él mismo. Si vemos que duda demasiado o empieza a frustrarse le ayudaremos.</p>
<h3>Pensando en voz alta</h3>
<p>Al usuario le pediremos que piense en voz alta durante el proceso, es decir, que <strong>vaya contando todo lo que piensa, hace y por qué</strong>, por ejemplo:</p>
<blockquote><p>Espero a que la página se cargue, a ver&#8230; ¡Ahá! Aquí pone Electrónica, los aparatos de música estarán dentro, ah no, hay otro que se llama Música, debe ser este mejor, hago clic&#8230; Ok este es, bien, a ver, aquí centrado hay las mejore ofertas&#8230; aquí a la izquierda me sale una lista con subcategorías&#8230; voy a clicar aquí&#8230;</p></blockquote>
<h3>Analizar con detalle</h3>
<p>Si disponemos de una cámara de vídeo o programa de screencasts, nos ayudará muchísimo para poder analizar mas tarde cualquier duda que el usuario haya podido tener y descurir las dudas y micro-gestos que ha tenido y que ocurren en milisegundos (estas son las que cuestan más de detectar y las que tenemos que solucionar) o aquellas donde el usuario duda de entre varias opciones.</p>
<h2>Objetivo del test</h2>
<p>Nuestro objetivo final del test de usabilidad es detectar qué podemos cambiar o mejorar para que nuestros usuarios reales tengan que pensar o dudar lo mínimo. Cuanto menos hagamos pensar a nuestro usuario <strong>menor será su nivel de frustración y mayor el de autorealización</strong>. Una web usable es aquella donde <strong>el usuario cumple su objetivo por intuición</strong> sin tener que pensar demasiado. Para acabar, una cita de uno de los genios en usabilidad web, os recomiendo su libro.</p>
<blockquote><p>Una web poco usable no es aquella web que no se usará pero sí aquella que se usará menos.<br />
&#8211;Steve Krug en &#8216;Don&#8217;t make me Think&#8217;</p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2913/test-de-usabilidad-web-economico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad/iPhone/mobile HTML/CSS template for web apps (responsive, no javascript)</title>
		<link>http://xaviesteve.com/2899/ipad-iphone-mobile-html-css-template-for-web-apps/</link>
		<comments>http://xaviesteve.com/2899/ipad-iphone-mobile-html-css-template-for-web-apps/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 17:03:16 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Front-End]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2899</guid>
		<description><![CDATA[iPad/iPhone template made in pure HTML and CSS (no JavaScript needed) that works perfectly on any modern browser (iPad, iPhone, tablets, mobiles, laptops, etc.). The template uses responsive queries to hide the sidebar in iPad portrait mode and in the iPhone and smaller screens (you can disable that easily if you want to). This template [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xaviesteve.com/wp-content/uploads/2012/01/ipad-web-html-css-template.jpg"><img class="alignnone size-full wp-image-2902" title="Xavi's iPad web HTML/CSS template" src="http://xaviesteve.com/wp-content/uploads/2012/01/ipad-web-html-css-template.jpg" alt="Xavi's iPad web HTML/CSS template" width="600" height="448" /></a></p>
<p>iPad/iPhone template made in <strong>pure HTML and CSS</strong> (no JavaScript needed) that works perfectly on any modern browser (iPad, iPhone, tablets, mobiles, laptops, etc.). The template uses responsive queries to hide the sidebar in iPad portrait mode and in the iPhone and smaller screens (you can disable that easily if you want to).</p>
<p>This template is the perfect start for any front-end or back-end developer to build complex web apps without spending time on developing the main structure. Or even to create a mobile version of your current site.</p>
<p>The code has been developed so that there is no &#8220;divitis&#8221;, completely optimized, semantically correct and <strong>minimal HTML code</strong>. There are no images or animations at all, everything has been coded using some of the latest CSS3 available features and tested it in most modern browsers. Ready for you to download and start developing. These are some of the template&#8217;s features:</p>
<h2>Features</h2>
<h3>App-ready</h3>
<p><strong></strong>You can install this template as a normal <strong>App Store app</strong>, removing the Safari top navigation bar and enjoying the full screen.</p>
<h3>Responsive Web Design</h3>
<p><strong></strong>Hides the sidebar in iPhone, mobiles and iPad portrait mode. Adapts nicely to the full screen.</p>
<h3>No images</h3>
<p><strong></strong>The whole template has been built <strong>without requiring any images</strong> which means less server queries and increased bandwidth savings.</p>
<h3>Heading styles</h3>
<p><strong></strong>Two different heading styles: the main black one and the smaller blueish.</p>
<h3>Anchor texts (links)</h3>
<p><strong></strong>The <strong>whole clickable area</strong> is active so that even fat fingers can click comfortably.</p>
<h3>Scrollable</h3>
<p><strong></strong>Both the sidebar and the main content can be <strong>scrolled separately</strong> in the iPad and other touch screen tablets.</p>
<h3>Tables</h3>
<p><strong></strong>Fully flexible and <strong>liquid tables</strong> that allow you to include more information while keeping the same look and feel as in any Apple app.</p>
<h3>Forms</h3>
<p><strong></strong>Fillable textboxes, password fields, select dropdowns and buttons.</p>
<h3>Fully tested in several devices</h3>
<p><strong></strong>Works great in: iPhone 4, iPhone 3GS, iPad 2, Samsung Galaxy Tab (GT-P7510), Safari 5, Chrome 16 and Firefox 9.</p>
<p>Graceful degradation: IE9 (no rounded corners), IE8.</p>
<p>Not working: (none tested yet).</p>
<h3><strong>License</strong></h3>
<p><strong></strong>The best of it, I am releasing it under a <strong>Public Domain license</strong>. This means it is free to use as many times as you want (even for <strong>commercial projects</strong>) and you do not need to give me credits if you don&#8217;t want to. I would appreciate if you do so or if you send me a link to your creation, it will motivate me to develop it further and make me happy.</p>
<h2>Download the template</h2>
<p>To <strong>download</strong> the most recent version of the Xavi iPad template click the link below:</p>
<p><a class="big button blue" title="Xavi iPad template" href="http://xaviesteve.com/pro/ipad-template/" target="_blank">Xavi iPad template</a></p>
<p>And then go to File &gt; Save as&#8230; The CSS has been coded in a &lt;style&gt; tag to keep everything in a single file.</p>
<p>For a better experience open the template in an iPad and test how cool Responsive Web Design is by rotating the iPad.</p>
<h4>Comments, improvements, feedback, feature requests and bugs</h4>
<p>If you have any comments, doubts or would like to point out a bug or a feature request you can write a comment below or tweet me at @xaviesteve in Twitter. If you code your own improvements and would like to share them with everyone let me know and I will include them in the next release. Bear in mind that the purpose of this plugin is to remain as simple as possible so drag&#8217;n'drops, special effects and lengthy scripts should be avoided.</p>
<h4>Changelog</h4>
<h5>Version 1.0 (31 January 2012)</h5>
<ul>
<li>Moved sidebar to the bottom of the HTML.</li>
<li>Fixed content header left and right link clickable area</li>
<li>Added commented <code>&lt;link rel="stylesheet"&gt;</code>, <code>&lt;script&gt;</code> and favicon for faster development</li>
<li>Disabled the callout shown when you touch and hold a touch target (thanks 185)</li>
<li>Added <code>-webkit-user-select: none</code> (thanks Josiah)</li>
</ul>
<h5>Version 0.9b (27 January 2012)</h5>
<ul>
<li>First release.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2899/ipad-iphone-mobile-html-css-template-for-web-apps/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Generate a custom/fake/virtual page on the fly &#8211; WordPress Plugin Development</title>
		<link>http://xaviesteve.com/2851/generate-a-custom-fakevirtual-page-on-the-fly-wordpress-plugin-development/</link>
		<comments>http://xaviesteve.com/2851/generate-a-custom-fakevirtual-page-on-the-fly-wordpress-plugin-development/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 21:01:10 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Front-End]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2851</guid>
		<description><![CDATA[I&#8217;m currently developing a WordPress plugin that needs to show a virtual page generated by my plugin (such as a form or a message) and I wanted to avoid adding a new Page and modifying the current WordPress installation, so every plugin form, message or page had to be generated on the fly without touching the database. Some WordPress plugins [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://xaviesteve.com/wp-content/uploads/2011/09/wordpress-performance-speed-tips1.jpg" alt="Wordpress ultimate performance" /></p>
<p>I&#8217;m currently developing a <strong>WordPress plugin</strong> that needs to <strong>show a virtual page generated by my plugin</strong> (such as a form or a message) and I wanted to <strong>avoid adding a new Page</strong> and modifying the current WordPress installation, so every plugin form, message or page had to be <strong>generated on the fly</strong> without touching the database.</p>
<p>Some WordPress plugins or themes create new pages in the website&#8217;s installation to add advanced functionalities. As an example, WooCommerce adds new pages to the <code>wp_posts</code> database that help set up the website to work with it. In my opinion this is a mess, if you already have a WordPress website running, installing this theme/plugin will mess with your current page structures and whenever you want to uninstall it or deactivate it you will need to manually remove those pages created previously by the plugin. I once wanted to test an advanced WordPress theme that deleted all the current pages I had&#8230; that was the most annoying thing ever, since I already had written the content for the website and lost it (yes, I should have backed up but, who would expect a theme to delete and install pages without even a warning?).</p>
<p>A few weeks ago I posted <a href="http://wordpress.stackexchange.com/questions/37954/display-custom-content-using-page-php-from-theme" rel="nofollow">a question</a> in WordPress StackExchange but couldn&#8217;t really get the answer I was looking for, there was <a href="http://www.blogseye.com/2010/05/creating-fake-wordpress-posts-on-the-fly/" rel="nofollow">this</a> solution to <strong>create fake posts</strong> but I wanted generate <strong>unlimited pages</strong> with <strong>simple code</strong> as possible and using friendly URLs like: <em>http://example.com/?<strong>plugin_page=myfakepage</strong></em> (I could then easily use <code>mod_rewrite</code> to make them look even better). Today I kept investigating and finally came with the solution.</p>
<h2>Step by step guide</h2>
<p>We will load the page at http://example.com/ but modify its title, content and select a blank theme template so it looks like a complete new page.</p>
<h3>Custom page content</h3>
<p>First of all we create a function that will overwrite the content:</p>
<pre>function plugin_myown_content() {
  $return = '
&lt;p&gt;Fill in this form:&lt;/p&gt;
&lt;form action="?" method="post"&gt;
  &lt;input type="text" name="foo" value="bar" /&gt;
  &lt;input type="submit" value="Connect" /&gt;
&lt;/form&gt;
';
  return $return;
}</pre>
<h3>Custom page title</h3>
<p>Now we overwrite the title of the page with this function:</p>
<pre>function plugin_myown_title() {
  return "On the fly foobar form";
}</pre>
<h3>Default page template</h3>
<p>With this function we force WordPress to load the default page template of the current active theme:</p>
<pre>function plugin_myown_template() {
  include(TEMPLATEPATH."/page.php");
  exit;
}</pre>
<h3>Hook actions and filters</h3>
<p>Finally, we add a simple <code>if</code>to check if the user is requesting the plugin&#8217;s fake page and run WordPress hooks to load the 3 functions mentioned before and force WordPress into displaying the virtual page we have just generated.</p>
<pre>if ($_GET['plugin_page'] == "myfakepage") {
  add_filter('the_title','plugin_myown_title');
  add_filter('the_content','plugin_myown_content');
  add_action('template_redirect', 'plugin_myown_template');
}</pre>
<p>The code is pretty basic, from here you can add your desired PHP code to make it do whatever you want. You can also add more hooks to customize the page even further. I hope you get the idea. This code has been tested with the latest version of WordPress (3.3.1).</p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2851/generate-a-custom-fakevirtual-page-on-the-fly-wordpress-plugin-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick website prototyping</title>
		<link>http://xaviesteve.com/2556/quick-website-prototyping/</link>
		<comments>http://xaviesteve.com/2556/quick-website-prototyping/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 17:35:58 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Front-End]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2556</guid>
		<description><![CDATA[This is a little compilation I&#8217;ve made of my most used code snippets every time I build a prototype, website or theme. By following these steps you can save 80% of coding time for any HTML/CSS website or WordPress theme. For some of my projects I use the Zen Coding plugin to develop the HTML. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-large wp-image-2616" title="" src="http://xaviesteve.com/wp-content/uploads/2011/10/prototype-600x400.jpg" alt="" width="600" height="400" /></p>
<p>This is a little compilation I&#8217;ve made of my most used code snippets every time I build a prototype, website or theme. By following these steps you can save 80% of coding time for any HTML/CSS website or WordPress theme. For some of my projects I use the Zen Coding plugin to develop the HTML. Most of the CSS itself is optimized already using short names and what some people call OOCSS (Object Oriented CSS).</p>
<h2>1. CSS Reset and Minimal Grid</h2>
<h3>Yahoo CSS Reset</h3>
<pre>/* Copyright (c) 2011, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:

http://developer.yahoo.com/yui/license.html

version: 2.9.0 */
html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,select,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,button,caption,cite,code,dfn,em,input,optgroup,option,select,strong,textarea,th,var{font:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}</pre>
<h3>960px Grid (12 cols, 60px width, 20px gutter)</h3>
<pre>/* Minimal Grid */
.g1{width:60px;}.g2{width:140px;}.g3{width:220px;}.g4{width:300px;}.g5{width:380px;}.g6{width:460px;}.g7{width:540px;}.g8{width:620px;}.g9{width:700px;}.g10{width:780px;}.g11{width:860px;}.g12{width:940px;}.g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8,.g9,.g10,.g11,.g12{overflow:hidden;float:left;display:inline;margin:0 10px;}.r{width:960px;overflow:hidden;margin:0 auto;}.r .r{width:auto;display:inline-block;margin:0 -10px;}</pre>
<h3>Common CSS</h3>
<pre>/* Common CSS */
html {}body {font-family:Arial,sans-serif;font-size:14px;}
a{color:#0085d5;text-decoration:none}a:hover{}
li{display:inline}
h1,h2,h3,h4,h5,h6 {}
strong,.strong {font-weight:900}em,.em {font-style:italic}
.right{text-align:right}.center {text-align:center}
.fright{float:right}.fleft{float:left}
.hide{display:none}</pre>
<h3>Sprite map</h3>
<pre>/* Sprite */
#logo,.button,
.sprite{background:transparent url('images/sprite.jpg') no-repeat;}
.ico {display:inline-block;height:16px;width:16px}
.ico.aa {background-position:-px -px}</pre>
<h3>Forms and buttons</h3>
<pre>.button{background:#eee;border:1px solid #ccc;cursor:pointer;font-weight:900;padding:5px 10px;text-decoration:none}</pre>
<h3>CSS for the coming HTML template</h3>
<pre>/* Main structure */
#wrap {}
#header {}
 #logo {}
  #logo span {display:none}
 #s {}
#topnav {}
 #nav {}
  #nav li {display:inline}
#container {}
 #container a {text-decoration:underline}
 #container li {display:list-item}
 .main {}
 .main h1 {}
 .main h2 {}
 .main p {}

 .side {}
  .side h4 {}
  .side h5 {}
  .side p {}

#footer {}
 #footer p {}
 #footer p a {}</pre>
<h3>Overlap design watermark for pixel perfect CSS</h3>
<pre>    &lt;style&gt;
        #watermark {position:fixed;top:0;left:0;width:100%;background:url(images/watermark.jpg) top center;height:5px;opacity:0.2}
        #watermark:hover {height:1000px;opacity:0.5}
    &lt;/style&gt;
    &lt;div id="watermark"&gt;&lt;/div&gt;</pre>
<h2>2. HTML Zen Coding shortcuts</h2>
<h4>Typical HTML website structure</h4>
<p>With the power of Zen Coding, I can code a full HTML website in one line of code, then press the shortcut (Ctrl+, in Dreamweaver) and voila, there you have all the HTML ready:</p>
<pre>html:xt&gt;(div#wrap&gt;(div#header.r&gt;(div.g6&gt;p#logo&gt;span)+(div.g6&gt;form#search&gt;input[type=text]#s+input[type=submit].hide))+(div#topnav.r&gt;div.g12&gt;ul.nav&gt;li*5&gt;a)+(div#container.r&gt;(div.main.g8&gt;div.post&gt;h1+p+img[src=http://dummyimage.com/150x150])+(div.side.g4&gt;h4+p&gt;ul&gt;li*5&gt;a))+(div#footer.r&gt;(div.g6&gt;p&gt;a*1)+(div.g6&gt;p&gt;a*4)))</pre>
<p>Here&#8217;s the fragmented HTML:</p>
<pre>html:xt
div#wrap
div#header.r&gt;div.g6*2
div#header.r&gt;(div.g6&gt;p#logo&gt;span)+(div.g6&gt;form#search&gt;input[type=text]#s+input[type=submit].hide)
div#topnav.r&gt;div.g12&gt;ul.nav&gt;li*5&gt;a
div#container.r&gt;(div.main.g8&gt;div.post&gt;h1+p+img[src=http://dummyimage.com/150x150])+(div.side.g4&gt;h4+p&gt;ul&gt;li*5&gt;a)
div#footer.r&gt;(div.g6&gt;p&gt;a*1)+(div.g6&gt;p&gt;a*4)</pre>
<h4>Forms and tables</h4>
<pre>form&gt;label+input:text+input:submit
select#items&gt;option[value=item-$]*3
table&gt;(tr&gt;th*2)+(tr&gt;td*2)</pre>
<h4>Listings</h4>
<pre>div.list-vert&gt;(img[src=http://dummyimage.com/100x100]+h3+p.brand+span.rating-5+p.price+(p&gt;a.button-m))</pre>
<h2>3. WordPress theme</h2>
<ol>
<li>Download the <a href="http://wpcandy.com/made/the-wordpress-starter-theme-project">Starter Theme</a></li>
<li>Add <a href="http://timthumb.googlecode.com/svn/trunk/timthumb.php">TimThumb</a></li>
<li>Then grab snippets from <a href="http://wp-snippets.com/">WP Snippets</a></li>
<li>Start coding and customizing</li>
</ol>
<h2>4. WordPress customization</h2>
<h3>In the functions.php</h3>
<pre>date_default_timezone_set('Europe/Madrid');
date_default_timezone_set('Europe/London');</pre>
<h4>TimThumb shortcut</h4>
<pre>function timthumb($src, $w, $h, $q=90, $zc=1) {
    return get_bloginfo('template_url').'/thumb.php?src='.$src.'&amp;amp;w='.$w.'&amp;amp;h='.$h.'&amp;amp;q='.$q.'&amp;amp;zc='.$zc;
}</pre>
<h4>Custom field shortcut</h4>
<pre>function customfield($name, $id="") {
    $value = get_post_custom_values($name, $id);
    return $value[0];
}</pre>
<h4>Extract images of a post</h4>
<pre>function catch_that_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/&lt;img.+src=[\'"]([^\'"]+)[\'"].*&gt;/i', $post-&gt;post_content, $matches);
    $first_img = $matches [1] [0];

    if(empty($first_img)){ $first_img = "/images/default.jpg"; }
    return $first_img;
}</pre>
<h4>Nice excerpts</h4>
<pre>/* This function will trim text without
cutting it in the middle of the word and
adding … if longer
*/
function trimtext($text, $length) {
    $words = explode(" ", strip_tags($text));
    $newtext = "";
    $addhellip = "";
    foreach ($words as $word) {
        if (strlen($newtext." ".$word) &lt; $length) {
            $newtext .= " ".$word;
        }else{
            $addhellip = 1;
            break;
        }
    }
    if ($addhellip) {$newtext .= "…";}
    return $newtext;
}</pre>
<h4>Get exact current page URL</h4>
<pre>function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}</pre>
<h4>Optimize WYSIWYG editor for SEO</h4>
<pre>if (isset($wp_version)) {
    add_filter("mce_buttons", "extended_editor_mce_buttons", 0);
    add_filter("mce_buttons_2", "extended_editor_mce_buttons_2", 0);
    add_filter('tiny_mce_before_init', 'extended_editor_change_mce_buttons', 0);
}

function extended_editor_mce_buttons($buttons) {
    return array(
        "formatselect", "separator",
        "bold", "italic", "separator",
        "bullist", "numlist", "blockquote", "separator",
        "link", "unlink", "separator",
        "charmap", "separator",
        "pasteword", "separator",
        "fullscreen", "separator",
    );
}

function extended_editor_mce_buttons_2($buttons) {
// the second toolbar line
return array();
}

function extended_editor_change_mce_buttons( $initArray ) {
    $initArray['theme_advanced_blockformats'] = 'p,h2,h3,h4,h5,h6,pre';
    return $initArray;
}</pre>
<h4>In the wp-config.php</h4>
<p>Disable/limit revisions</p>
<pre># Maximum 5 revisions
define('WP_POST_REVISIONS', 5);
# Disable revisions
define('WP_POST_REVISIONS', false);</pre>
<h2> 5. WordPress must-have plugins</h2>
<ul>
<li><a href="http://xaviesteve.com/2498/admin-helper-wordpress-plugin-essential-tool-for-theme-developers/">Admin Helper</a></li>
<li><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All-in-one SEO</a></li>
<li><a href="http://wordpress.org/extend/plugins/google-sitemap-generator/">Google XML Sitemap</a></li>
<li><a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/">HTML Sitemap</a></li>
</ul>
<p><small>Photo by <a href="http://www.flickr.com/photos/coffeegeek/" rel="nofollow">CoffeGeek</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2556/quick-website-prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to charge PPC services? Real numbers and 4 different ways to choose</title>
		<link>http://xaviesteve.com/2619/how-to-charge-ppc-services-real-numbers-and-4-different-ways-to-choose/</link>
		<comments>http://xaviesteve.com/2619/how-to-charge-ppc-services-real-numbers-and-4-different-ways-to-choose/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 17:19:21 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PPC]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[agency]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[promotion]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2619</guid>
		<description><![CDATA[Once you get into the PPC business the first question that usually comes up is How much and how exactly should I charge my client for my PPC services? This article is a sum up of all the different ways and real world situations agencies and professionals charge their clients for managing and running their Pay [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xaviesteve.com/2619/how-to-charge-ppc-services-real-numbers-and-4-different-ways-to-choose/atm/" rel="attachment wp-att-2637"><img class="alignnone size-full wp-image-2637" title="" src="http://xaviesteve.com/wp-content/uploads/2011/11/atm.jpg" alt="" width="600" height="300" /></a></p>
<p>Once you get into the PPC business the first question that usually comes up is <em>How much and how exactly should I charge my client for my PPC services?</em> This article is a sum up of all the different ways and real world situations agencies and professionals charge their clients for managing and running their Pay Per Click campaigns. The research has been done by analysing different agencies and freelancers in the UK and US as well as per expert&#8217;s input at forums, Q&amp;A sites and articles.</p>
<h2>Four ways to charge for PPC</h2>
<h3>Lead per defined cost</h3>
<p>You run the expenses of the PPC campaign and then sell the leads you obtain individually for £3 to £20 each depending on the lead quality, the business/market you are in and the average ROI of that converting lead. To get an idea lets look at some real examples: a lead for a pluming service may cost £5, a low quality lead for selling/buying a house (real estate) may cost £10 or £15, a lead for some financial investment can cost £20 or more and very good leads in insurance can go up to £100-£200.</p>
<p>This method is one of the most straight away and independent, you can set up your own unbranded website to get leads and then sell those leads individually to different clients at negotiable rates. If you are about to start this way, a good way to get the attention of new clients is to obtain 10-50 leads, offer them for free to a relevant company and tell them you can give them more for £10 each or so.</p>
<h3>Percentage based on ad budget spent</h3>
<p>The simplest way and the most broadly used to bill a client is by taking a percentage of the total monthly spent in advertising. Usually PPC companies range these percentages at a rate of 15% or 20% but there are also companies who charge 50% or even 100%. For example, if a client is spending £1,000 a month and you are charging him 20% you will be earning £200 per month.</p>
<p>This method is a Win-Win situation for both parties since you get to charge more if the client spends more money on advertising and the client will do so if the PPC campaign is doing good and profitable.</p>
<h3>Percentage of lead benefit</h3>
<p>Maybe the most realistic of the options is to get a percentage per each lead (either potential prospect or converting lead). The only issue with this method is that it is very difficult to track since your client needs to be completely honest with you. You can install a tracking script or monitor their sales/CRM software to make sure although you may miss phone leads since it is much harder to track phone calls (you can set up a separate phone number just for PPC at an increased cost and system complexity).</p>
<p>This method is the fairest ones of all since you get paid exactly by the business/money you generate but will only work if the client is completely honest or if you have the necessary tools to monitor everything effectively which is usually time consuming and complex.</p>
<h3>Pay per hour</h3>
<p>The last way is to charge per time spent working on the PPC campaign. Some people charge per hour and some charge per minute. This way you ensure you get the fairest amount of profit based on the time spent working for a client although it is completely independent from the success of the advertisement or the profit you are generating so it can sometimes be less motivating for the client or yourself. Also, your income will be very high during the campaign setup but fairly less once the campaign is running and steady you will just spend time monitoring and tweaking.</p>
<h2>Which one should you choose?</h2>
<p>Depending on your business structure and the number and characteristics of your clients you may want to go for one or another. If you have a lot of small clients the pay per hour may be the way to go. If you have big and demanding clients you could go for a percentage method. Make your calculations: check how much time you need to spend at the beginning while setting everything up and how much time will you spend every week tweaking and monitoring the campaigns. Then, based on that see which of the methods is the better for you and the client.</p>
<p>Some of these methods are easier to track and charge than others. I personally choose the <em>Percentage based on ad budget spent</em> to be the easiest to track, write the invoices and the most motivating for both me and my clients.</p>
<p>Have you got other ways to charge your PPC services? If you are already doing it, which method are you using? Post your opinion and comments below and if you have any doubts feel free to post them below so we can all help you.</p>
<p><small>Photo by <a href="http://www.flickr.com/photos/redspotted/272104/" rel="nofollow">redspotted</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2619/how-to-charge-ppc-services-real-numbers-and-4-different-ways-to-choose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 essential WordPress SEO tips for content writers (one page PDF download)</title>
		<link>http://xaviesteve.com/2483/10-essential-wordpress-seo-tips-for-content-writers-one-page-pdf-download/</link>
		<comments>http://xaviesteve.com/2483/10-essential-wordpress-seo-tips-for-content-writers-one-page-pdf-download/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 07:22:16 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[content writing]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2483</guid>
		<description><![CDATA[About a year ago I created a one-page document for content writers in my team to write better online articles. I am now releasing it so you can print it and have it close to you while writing. These are the most basic and important SEO tips you need to know if you want your [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xaviesteve.com/wp-content/uploads/2011/10/seo-content-writing-wordpress.jpg"><img class="alignnone size-full wp-image-2545" title="SEO content writing wordpress" src="http://xaviesteve.com/wp-content/uploads/2011/10/seo-content-writing-wordpress.jpg" alt="" width="600" height="272" /></a></p>
<p>About a year ago I created a one-page document for content writers in my team to write better online articles. I am now releasing it so you can print it and have it close to you while writing. These are the most basic and important SEO tips you need to know if you want your posts to succeed. You will find a link to download the one-page PDF at the bottom of the article.</p>
<h3><strong>1. The most important tip is to create quality content</strong></h3>
<p>Posts that are <em>bookmarked</em>, <em>shared</em>, <em>linked</em>, <em>commented</em> or <em>thanked</em>. That should be the purpose of every post and should either be:</p>
<ol>
<li><strong>Useful</strong> (people reference to them)</li>
<li><strong>Interesting</strong> (people bookmark them)</li>
<li><strong>Funny</strong> or entertaining (people share them)</li>
</ol>
<p>Here&#8217;s a good article extending this concept on <a title="Effective SEO – Purposes and Actions in Content Writing" href="http://xaviesteve.com/1912/effective-seo-purposes-and-actions-in-content-writing/">writing with a purpose</a>.</p>
<h3><strong>2. User goes always first</strong></h3>
<p>Keep the post readable and attractive to humans. Google is secondary. Ensuring you write for your users will have <a title="Future-proof SEO – Avoiding Google penalization" href="http://xaviesteve.com/1985/future-proof-seo-avoiding-google-penalization/">long-term SEO benefits</a>.</p>
<h3><strong>3. Use Headings to split the content</strong></h3>
<p>Heading 1 is always the page title and it is the most important title. Headings to use in the content <strong>must start from Heading 2</strong> to a max depth of H6. Use headings instead of bolding or formatting the text yourself.</p>
<h3><strong>4. Use eye-catching titles but keep them short</strong></h3>
<p>Don&#8217;t be just informative, get the user&#8217;s attention.</p>
<ol>
<li><span style="text-decoration: line-through;">Windows tricks</span> -&gt; Top 10 coolest tricks for Windows!</li>
<li><span style="text-decoration: line-through;">London party places</span> -&gt; Best secret places to party in London</li>
</ol>
<h3><strong>5. First paragraphs are the most important ones</strong></h3>
<p>Search Engines give more importance to the first part of the posts. In fact, really large posts are usually not indexed completely.</p>
<h3><strong>6. Be descriptive by adding keywords whenever possible</strong></h3>
<p>All headings should have <strong>keywords</strong> in them:</p>
<ol>
<li><span style="text-decoration: line-through;">What I like</span> -&gt; What I like about the HP Pavilion laptop</li>
<li><span style="text-decoration: line-through;">My trip</span> -&gt; My awesome trip to Barcelona this summer</li>
</ol>
<h3><strong>7. Use synonyms</strong></h3>
<p>Don’t repeat keywords you are not targeting for, <strong>use a lot of synonyms</strong> instead.</p>
<ol>
<li>What I like about Acer -&gt; Review about Acer computers / My opinion on Acer laptops</li>
</ol>
<p>This way, users searching for &#8220;acer review&#8221;, &#8220;acer opinion&#8221; or &#8220;acer laptop&#8221; will find our page.</p>
<h3><strong>8. Rich formatting increases SEO</strong></h3>
<p>Eases Search Engines to identify the content.</p>
<ul>
<li>Using <strong>lists</strong> (and differentiating between ordered and unordered lists),</li>
<li><strong>bold</strong> and <strong>italic</strong> words or sentences,</li>
<li><strong>blockquote</strong> paragraphs when quoting or pasting literal text</li>
</ul>
<h3><strong>9. Add both inbound and outbound links</strong></h3>
<p>Links to authority webs like Flickr, Wikipedia or YouTube can be frequent (you don&#8217;t lose any PageRank juice). But don’t link too much to other websites (one or two per paragraph). Always <strong>describe the links</strong>:</p>
<ol>
<li><span style="text-decoration: line-through;">Download the Flash player by <span style="text-decoration: underline;">clicking here</span>.</span> -&gt; <span style="text-decoration: underline;">Download the Flash player</span>.</li>
</ol>
<h3><strong>10. Format posts inside WordPress</strong></h3>
<p>Text editors like Microsoft Word may add irrelevant or invalid code into posts. If the text is in Word, paste it in Notepad so it looses all formatting, then copy and paste into WordPress and <strong>format it there</strong> using Headings, lists, bold, italic, etc.</p>
<h2>Download the 10 SEO tips for WordPress PDF file</h2>
<p><a class="button blue" href="http://xaviesteve.com/wp-content/uploads/2011/09/Wordpress-SEO-writer-tips.pdf">10 SEO tips for WordPress PDF file</a><br />
If you have any doubts feel free to ask them in the comments. Also, share this article with your team, friends and colleagues for increased results and better blogging.</p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2483/10-essential-wordpress-seo-tips-for-content-writers-one-page-pdf-download/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter Website Template for Adobe Fireworks CS5 (inc. layers, guides, gradients, etc.)</title>
		<link>http://xaviesteve.com/2488/twitter-website-template-for-adobe-fireworks-cs5-inc-layers-guides-gradients-etc/</link>
		<comments>http://xaviesteve.com/2488/twitter-website-template-for-adobe-fireworks-cs5-inc-layers-guides-gradients-etc/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 10:19:59 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Fireworks]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Wireframing]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2488</guid>
		<description><![CDATA[Since I discovered Macromedia Fireworks some years ago I moved from Photoshop to Fireworks and I am a big fan and supporter of it, the learning curve is smooth and it is much quicker and easier to work with images. I&#8217;ve also been converting web designers to the yellow side by explaining how much better, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xaviesteve.com/wp-content/uploads/2011/09/twitter-adobe-template-design.jpg"><img class="alignnone size-full wp-image-2540" title="Twitter Web Design Template" src="http://xaviesteve.com/wp-content/uploads/2011/09/twitter-adobe-template-design.jpg" alt="" width="600" height="341" /></a></p>
<p>Since I discovered Macromedia Fireworks some years ago I moved from <strong>Photoshop to Fireworks</strong> and I am a big fan and supporter of it, the learning curve is smooth and it is much quicker and easier to work with images. I&#8217;ve also been converting web designers to the yellow side by explaining how much better, faster and simpler is Fireworks compared to Photoshop. And whenever I stumble upon another Fireworks fan in events or conferences, a little light brights inside my heart.</p>
<p>I am proud to be releasing a freebie for all the fans of Fireworks today. It is the <strong>new Twitter website template</strong> as a multilayered <strong>Adobe Fireworks</strong> CS5 PNG file. The PNG has been designed to be pixel perfect and following the colour and transparencies specified in the HTML/CSS. Everything is organized into folders and layers (see end of post), friendly named, guides and the Twitter CSS sprite map with all the extra icons are included to help you snap everything to the grid and design your own Twitter website-based and learn more about their web design.<br />
<img class="alignnone size-large wp-image-2490" title="" src="http://xaviesteve.com/wp-content/uploads/2011/09/twitter-template-for-fireworks-layers-600x420.jpg" alt="" width="600" height="420" /></p>
<h4>License</h4>
<p>This template is released free to use for both personal and commercial use, free for you to use and base your work on. No attribution is required although appreciated. If you want to share this template you should not host the source file directly on any website but link to this page (since I keep improving the file, having several copies spread around the Internet will create confusion among users).</p>
<h3>Download the Twitter template</h3>
<p>Right click the button and select &#8220;Save As&#8221;:</p>
<p><a class="button big blue" title="Twitter Website Template" href="http://xaviesteve.com/wp-content/uploads/2011/09/twitter-fireworks-template.png" rel="nofollow" target="_blank">Twitter Template for Adobe Fireworks CS5</a> (1.90MB)</p>
<p>If you have any questions, feedback or ideas please post a comment below.</p>
<p>Thanks for using Fireworks!</p>
<p><img class="alignnone size-full wp-image-2491" title="" src="http://xaviesteve.com/wp-content/uploads/2011/09/fireworks-template-twitter-layers-folders.jpg" alt="" width="270" height="536" /></p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2488/twitter-website-template-for-adobe-fireworks-cs5-inc-layers-guides-gradients-etc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Get depth of pages and subpages</title>
		<link>http://xaviesteve.com/2512/wordpress-get-depth-of-pages-and-subpages/</link>
		<comments>http://xaviesteve.com/2512/wordpress-get-depth-of-pages-and-subpages/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 13:26:46 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[trick]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2512</guid>
		<description><![CDATA[This is how you can get how deep a page is compared to the root/home page in WordPress, works for both the current page or any page by providing its ID. Copy this script and paste it in your functions.php file: function get_depth($postid) { $depth = ($postid==get_option('page_on_front')) ? -1 : 0; while ($postid &#62; 0) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xaviesteve.com/wp-content/uploads/2011/09/wordpress-performance-speed-tips1.jpg"><img class="alignnone size-full wp-image-2513" title="" src="http://xaviesteve.com/wp-content/uploads/2011/09/wordpress-performance-speed-tips1.jpg" alt="" width="600" height="333" /></a></p>
<p>This is how you can get how deep a page is compared to the root/home page in WordPress, works for both the current page or any page by providing its ID. Copy this script and paste it in your functions.php file:</p>
<pre>function get_depth($postid) {
  $depth = ($postid==get_option('page_on_front')) ? -1 : 0;
  while ($postid &gt; 0) {
    $postid = get_post_ancestors($postid);
    $postid = $postid[0];
    $depth++;
  }
  return $depth;
}</pre>
<p>Now paste this anywhere in a loop:</p>
<pre>echo get_depth($post-&gt;ID);</pre>
<p>Other solutions I&#8217;ve found on the Internet where 50 lines long or even 100 and they where full of loops and slow, that&#8217;s why I decided to code this one.</p>
<p>The home page will return 0, direct childs will return 1, childs of childs will return 2, etc.</p>
<h3>One line Alternative</h3>
<p>You can also use this one:</p>
<pre>echo count($post-&gt;ancestors);</pre>
<p>Although it will not differentiate between the home page and level 1 pages (will output 0).</p>
<p>That&#8217;s it, easy as pie! If you maintain WordPress sites or are a theme developer see this post on advanced tips to <a title="Ultimate WordPress Performance Tip List to speed up and save up to 80% of space" href="http://xaviesteve.com/2433/clean-your-wordpress-website-to-speed-up-and-save-up-to-80-percent-of-space/">improve performance and gain space in WordPress</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2512/wordpress-get-depth-of-pages-and-subpages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Admin Helper &#8211; WordPress Plugin (essential tool for theme developers)</title>
		<link>http://xaviesteve.com/2498/admin-helper-wordpress-plugin-essential-tool-for-theme-developers/</link>
		<comments>http://xaviesteve.com/2498/admin-helper-wordpress-plugin-essential-tool-for-theme-developers/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 20:09:06 +0000</pubDate>
		<dc:creator>Xavi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://xaviesteve.com/?p=2498</guid>
		<description><![CDATA[Admin Helper is a tiny WordPress Plugin that will provide you useful information such as the ID of the current page, the type of page you are viewing (post, page, category, tag, tax, author, archive, 404, search&#8230;), the template used by the page, the order of the page and links to edit the page, the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Admin Helper</strong> is a tiny WordPress Plugin that will provide you useful information such as the ID of the current page, the type of page you are viewing (post, page, category, tag, tax, author, archive, 404, search&#8230;), the template used by the page, the order of the page and links to edit the page, the Administration Panel and logout.</p>
<p><img class="size-full wp-image-2499 aligncenter" title="Admin Helper WordPress Plugin" src="http://xaviesteve.com/wp-content/uploads/2011/09/admin-helper-wordpress-plugin.jpg" alt="" width="213" height="156" /></p>
<p>The plugin is extremely lightweight and is an <strong>essential tool for WordPress theme developers</strong>.</p>
<p>Admin Helper is hidden and does not show unless you are logged in. Once logged in it appears unobtrusively like this:</p>
<p><img class="size-full wp-image-2500 aligncenter" title="Admin Helper Hidden" src="http://xaviesteve.com/wp-content/uploads/2011/09/admin-helper-wordpress-plugin-hidden.jpg" alt="" width="213" height="156" /></p>
<p>So it is not as annoying as the default Admin Bar that comes with WordPress yet it provides everything you need while developing the WordPress theme in a mouse move or click.</p>
<p>Login square: While you are not connected, a 5&#215;5 invisible square at the bottom right of the page will link you to the Login page.</p>
<p>You can download the plugin by following the link below:</p>
<p><a class="button blue big" href="/wp-content/uploads/2011/09/admin-helper.php.txt">Admin helper WordPress Plugin v1.2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xaviesteve.com/2498/admin-helper-wordpress-plugin-essential-tool-for-theme-developers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

