<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>Malbec Media</title>
	
	<link>http://www.malbecmedia.com</link>
	<description>Development &amp; Design</description>
	<lastBuildDate>Sun, 15 Aug 2010 17:14:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MalbecMedia" /><feedburner:info uri="malbecmedia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://www.malbecmedia.com/?pushpress=hub" /><item>
		<title>Cambiando el rumbo</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/iLT_oiOrR58/</link>
		<comments>http://www.malbecmedia.com/blog/life/cambiando-el-rumbo/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 17:08:20 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[destacado]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=711</guid>
		<description><![CDATA[Siempre sentimos la necesidad de crear algo propio, de transitar el gratificante y duro camino de llevar una pequeña idea (o quizas no tan pequeña) a la realidad. Sabíamos que no iba a ser fácil.
No related posts.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-718 aligncenter" title="caminos" src="http://www.malbecmedia.com/wp-content/uploads/2010/08/caminos1-e1281892295721.jpg" alt="" width="434" height="158" /></p>
<p>Hace rato que venimos trabajando en el proyecto que hace poco vió la luz: <a href="http://www.pagatualquiler.com" target="_blank">PagaTuAlquiler.com</a></p>
<p>Siempre sentimos la necesidad de crear algo propio, de transitar el gratificante y duro camino de llevar una pequeña idea (o quizas no tan pequeña) a la realidad. Sabíamos que no iba a ser fácil. Que la distancia entre esa idea viviendo en un papel medio garabateado y su aparición en la vida real es bastante grande. Igualmente nos embarcamos en el viaje y hace poco logramos nuestro primer objetivo, esa idea que estuvo alguna vez en el aire ya es una realidad. Es el primer paso, todavía queda mucho camino por recorrer y mejorar, pero el primer gran paso ya esta dado y estamos muy orgullosos de ello.</p>
<p>A partir de ahora vamos a estar concentrados en que PagaTuAlquiler siga avanzando y mejorando, tratando de llevarlo a donde nosotros soñamos que algún día llegará. Esto no significa que nosotros como Malbec Media dejemos de ofrecer nuestros servicios de desarrollo web y SEO, pero sí que lo haremos en menor medida, nuestras energias están concentradas en PagaTuAlquiler.</p>
<p>Saludos,</p>
<p>El equipo de Malbec Media</p>
<p><small>Fotografia de *<a href="http://www.flickr.com/photos/clairity/262889253/">clarity</a>*</small></p>
<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/iLT_oiOrR58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/life/cambiando-el-rumbo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/life/cambiando-el-rumbo/</feedburner:origLink></item>
		<item>
		<title>PagaTuAlquiler</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/TDMz090K8CM/</link>
		<comments>http://www.malbecmedia.com/blog/portfolio/pagatualquiler/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 16:22:16 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=702</guid>
		<description><![CDATA[PagaTuAlquiler es un sistema que permite a propietarios de inmuebles auto-administrar y aceptar pagos de sus propiedades fácilmente a través de miles de puestos de recaudación en toda la Argentina
No related posts.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.pagatualquiler.com"><img class="aligncenter size-full wp-image-703" title="logo-small" src="http://www.malbecmedia.com/wp-content/uploads/2010/08/logo-small.png" alt="" width="244" height="85" /></a>PagaTuAlquiler es un sistema que permite a propietarios de inmuebles auto-administrar y aceptar pagos de sus propiedades fácilmente a través de miles de puestos de recaudación en toda la Argentina. Los propietarios que usan nuestro sistema pueden, automáticamente y con un bajo costo, aceptar pagos a través de Rapipago y, usando Pagomiscuentas.com, a través de Home Banking y toda la red de cajeros Banelco; ahorrándoles a todos tiempo y dinero. Ese es el poder de PagaTuAlquiler.</p>
<p>Pero más que eso, es cambiar como funcionan las cosas hoy en día. Se trata de hacerle la vida un poco mas fácil a la gente. Se trata de darle a la gente otra opción sobre como pueden administrar sus propiedades.</p>
<p>Link: <a href="http://www.pagatualquiler.com">PagaTuAlquiler</a></p>
<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/TDMz090K8CM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/portfolio/pagatualquiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/portfolio/pagatualquiler/</feedburner:origLink></item>
		<item>
		<title>Coding a jQuery AJAX site that degrades gracefully</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/BalYg4pln5w/</link>
		<comments>http://www.malbecmedia.com/blog/development/coding-a-ajax-site-that-degrades-gracefully-with-jquery/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 13:59:22 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=675</guid>
		<description><![CDATA[Over the course of this tutorial I'll show how to create a simple way (Ajax powered) to refresh the content of the pages while degrading gracefully when there's no javascript
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/use-yslow-to-optimize-your-site-files/' rel='bookmark' title='Permanent Link: Use YSlow to optimize your site files'>Use YSlow to optimize your site files</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/5-essential-firefox-add-ons-for-web-development/' rel='bookmark' title='Permanent Link: 5 Essential Firefox add-ons for web development'>5 Essential Firefox add-ons for web development</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Over the course of this tutorial I&#8217;ll show how to create a simple way (Ajax powered) to refresh the content of the pages while degrading gracefully when there&#8217;s no javascript. Added bonus: its &#8220;crawler friendly&#8221;.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-681" title="Site preview" src="http://www.malbecmedia.com/wp-content/uploads/2010/03/mm1.jpg" alt="" width="430" height="267" /></p>
<h3>The idea</h3>
<p>The site we are building for this tutorial will have a normal navigation, consisting of plain old links to the different pages. If javascript is enabled it will replace the default action of these links (for example going to a new page) with a new behavior: load the content using Ajax and refreshing the page without going to a new URL.</p>
<p>We&#8217;ll use the jQuery <a href="http://api.jquery.com/load/">load</a> function. This function will fetch the new page. It has a very useful feature (essential in our case) that lets you load a page fragment and not the whole page as right now we&#8217;re only interested in the main content div.</p>
<h3>The HTML</h3>
<pre class="brush: html">
&lt;ul id=&quot;menu&quot;&gt;
&lt;li&gt;&lt;a href=&quot;index.html&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;link2.html&quot;&gt;Link 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Here we have the main navigation. It doesn&#8217;t have anything special, we only need the id of the navigation element containing the links we want to add this special behavior</p>
<pre class="brush: html">
&lt;div id=&quot;ajax-wrap&quot;&gt;
&lt;div id=&quot;text&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p><img class="aligncenter size-full wp-image-682" title="Wrapper Div" src="http://www.malbecmedia.com/wp-content/uploads/2010/03/mm2.jpg" alt="" width="430" height="268" /></p>
<p>Another important part is to create a div that wraps the content; this will be the div whose content will change when we move from page to page. Note we have two elements, the wrapper div and the actual element that has the content in it (in this case the div with the &#8220;text&#8221; id).</p>
<p>Also note that all the content pages are complete html pages by themselves. We load them with ajax and only use the content portion. If someone actually goes to the URL the link is pointing to, they should see a full page and not just the content portion. (This is key for the site to work without javascript, like a regular site).</p>
<h3>Javascript</h3>
<p>I&#8217;ve created a small javascript object that handles everything, here&#8217;s the code:</p>
<pre class="brush: javascript">
var AjaxContent = function(){
var container_div = &#039;&#039;;
var content_div = &#039;&#039;;
return {
getContent : function(url){
    $(container_div).animate({opacity:0}, //Turn the opacity to 0
        function(){ // the callback, loads the content with ajax
        $(container_div).load(url+&quot; &quot;+content_div, //only loads the selected portion
        function(){
            $(container_div).animate({opacity:1}); //and finally bring back the opacity back to 1
            }
        );
    });
},
ajaxify_links: function(elements){
    $(elements).click(function(){
        AjaxContent.getContent(this.href);
        return false; //prevents the link from beign followed
    });
},
init: function(params){ //sets the initial parameters
    container_div = params.containerDiv;
    content_div = params.contentDiv;
    return this; //returns the object in order to make it chainable
    }
    }
}();
</pre>
<p>We include this script on the pages (along with jQuery) and we&#8217;re ready to rock and roll. I&#8217;ll explain it little by little.</p>
<p>When the page loads, we have to identify the links and assign them some new events. Here&#8217;s the part where we initialize and set up the special nav.</p>
<pre class="brush: javascript">
$(function(){
    AjaxContent.init({containerDiv:&quot;#ajax-wrap&quot;,contentDiv:&quot;#text&quot;}).ajaxify_links(&quot;#menu a&quot;);
});
</pre>
<p>This call initializes the AjaxContent object with the ids of the wrapper div and the content div (note the jquery [selector] notation). The second chained call tells which links we want to add this special behavior, in this case the links inside the element with the &#8220;menu&#8221; id (&#8220;#menu a&#8221;). This is it! It should work by now although let&#8217;s explain what&#8217;s going on inside.</p>
<pre class="brush: javascript">
ajaxify_links: function(elements){
    $(elements).click(function(){
        AjaxContent.getContent(this.href);
        return false;
    });
}
</pre>
<p>This is the method we called before. It selects all the elements passed using our jQuery selector string, in this case it takes all the links. For each one of them, it assigns a function to the click event. This function calls the getContent method and prevents the link from being followed by the browser (with the &#8220;return false&#8221; sentence).</p>
<pre class="brush: javascript">
getContent : function(url){
    $(container_div).animate({opacity:0}, //first, turn the opacity to 0
        function(){ //on the callback, load the content with ajax
            $(container_div).load(url+&quot; &quot;+content_div,
            function(){
                $(container_div).animate({opacity:1}); //and finally bring back the opacity back to 1
            }
        );
    });
}
</pre>
<p>This method fades out the container div. It then calls the load method and only retrieves the part that we want, in this case we&#8217;ve told the script to get the div with the &#8220;text&#8221; id (jQuery actually loads the whole HTML and then parses it, returning only the part we&#8217;ve asked for). When the content is loaded, it fades in the content again.</p>
<h3>Conclusion</h3>
<p>As you could see, thanks to the power of jQuery, this is really easy to do. We now have a fancy way to retrieve the content and keep the site looking like a normal non-ajax site to the ones who don&#8217;t use javascript. The site also remains both SEO friendly and  fully accessible to the crawlers because the links are normal &lt;a&gt; elements with the href property.</p>
<p>Thanks to the guys on <a href="http://www.solucija.com/template/happy-template" target="_blank">Solucija </a>for the free template I&#8217;ve used for this example.</p>
<p>Happy coding!</p>
<p>Source files: <a href="http://www.malbecmedia.com/download/source.zip" title="Ajax SEO friendly site"><img src="/wp-content/plugins/download-monitor/img/downloads-icon.gif" alt="Ajax SEO friendly site" /></a> and <a href="http://demos.malbecmedia.com/ajax-site-demo/"  target="_blank">Demo</a></p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/use-yslow-to-optimize-your-site-files/' rel='bookmark' title='Permanent Link: Use YSlow to optimize your site files'>Use YSlow to optimize your site files</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/5-essential-firefox-add-ons-for-web-development/' rel='bookmark' title='Permanent Link: 5 Essential Firefox add-ons for web development'>5 Essential Firefox add-ons for web development</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/BalYg4pln5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/development/coding-a-ajax-site-that-degrades-gracefully-with-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/development/coding-a-ajax-site-that-degrades-gracefully-with-jquery/</feedburner:origLink></item>
		<item>
		<title>Uncorking Argentina</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/IpsNbpM_ZWw/</link>
		<comments>http://www.malbecmedia.com/blog/portfolio/uncorking-argentina/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 16:26:00 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=667</guid>
		<description><![CDATA[Uncorking Argentina, one of Mendoza's oldest wine tour companies. Custom design and gallery. Showing the amazing Mendoza through photos.
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/news/welcome-to-malbec-medias-blog/' rel='bookmark' title='Permanent Link: Welcome to Malbec Media&#8217;s Blog'>Welcome to Malbec Media&#8217;s Blog</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.malbecmedia.com/wp-content/uploads/2010/02/uncorking.jpg"><img class="aligncenter size-medium wp-image-670" title="Uncorking Argentina" src="http://www.malbecmedia.com/wp-content/uploads/2010/02/uncorking-300x159.jpg" alt="" width="300" height="159" /></a>Uncorking Argentina provide <a href="http://www.uncorkingargentina.com/">custom wine tours in Mendoza, Argentina</a>. They invite you to explore the beautiful wine regions and to visit boutique and traditional wineries where the best Malbecs are created.</p>
<p>We&#8217;ve created a special site for them, using the power of the photos to show all the beautiful things that Mendoza has to offer.</p>
<p><a href="http://www.malbecmedia.com/wp-content/uploads/2010/02/uncorking2.jpg"><img class="aligncenter size-medium wp-image-671" title="Uncorking Argentina - Mendoza" src="http://www.malbecmedia.com/wp-content/uploads/2010/02/uncorking2-300x157.jpg" alt="" width="300" height="157" /></a></p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/news/welcome-to-malbec-medias-blog/' rel='bookmark' title='Permanent Link: Welcome to Malbec Media&#8217;s Blog'>Welcome to Malbec Media&#8217;s Blog</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/IpsNbpM_ZWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/portfolio/uncorking-argentina/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/portfolio/uncorking-argentina/</feedburner:origLink></item>
		<item>
		<title>Use YSlow to optimize your site files</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/JmPiIvCbm2A/</link>
		<comments>http://www.malbecmedia.com/blog/development/use-yslow-to-optimize-your-site-files/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 20:54:24 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[smush]]></category>
		<category><![CDATA[test grades]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[yslow]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=644</guid>
		<description><![CDATA[YSlow is an incredible tool that helps you optimize your site. It's a Firebug Add on (the well known Firefox extension) that tests your web page and lets you know where your site can be optimized.
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/coding-a-ajax-site-that-degrades-gracefully-with-jquery/' rel='bookmark' title='Permanent Link: Coding a jQuery AJAX site that degrades gracefully'>Coding a jQuery AJAX site that degrades gracefully</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/5-essential-firefox-add-ons-for-web-development/' rel='bookmark' title='Permanent Link: 5 Essential Firefox add-ons for web development'>5 Essential Firefox add-ons for web development</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-661" title="yslow_blog_image" src="http://www.malbecmedia.com/wp-content/uploads/2009/11/yslow_blog_image-300x147.jpg" alt="yslow_blog_image" width="300" height="147" /></p>
<p>YSlow is an incredible tool that helps you optimize your site. It&#8217;s a Firebug Add on (the well known Firefox extension) that tests your web page, and lets you know  how your site can be optimized.</p>
<p>The test grades different aspects of your site and gives you possible solutions and advice if there&#8217;s something wrong.</p>
<h3>Optimizing image files</h3>
<p>Yslow comes with a tool called SmushIt. After opening the Yslow tab, you have to select the Tools option. When you click on &#8220;All Smush.it&#8221;, your images will be submitted to the SmushIt tool and a zip file containing all the optimized versions of your images will be available.</p>
<p>The cool thing about SmushIt is that uses loss-less optimization techniques, which means it optimizes the images without changing their look or visual quality.</p>
<p>More info here: <a href="http://developer.yahoo.com/yslow/smushit/" target="_blank">Smush.It</a></p>
<h3>Minify your javascript files</h3>
<p>YSlow also helps you minify all the javascript files of your site. You have to choose the option &#8220;All JS Minified&#8221; from the YSlow tools. This will open a new page with all the javascript files minified. You just have to copy and paste in the new minified files and voila, you&#8217;re done.</p>
<h3>YSlow</h3>
<p>This tool has a lot more to offer, we just covered a couple of things you can do with it. If your site has a lot of images and big javascript files, this tool could help you save a little bandwith and help you give users a better experience.</p>
<p><a href="http://developer.yahoo.com/yslow/" target="_blank">Yslow</a></p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/coding-a-ajax-site-that-degrades-gracefully-with-jquery/' rel='bookmark' title='Permanent Link: Coding a jQuery AJAX site that degrades gracefully'>Coding a jQuery AJAX site that degrades gracefully</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/5-essential-firefox-add-ons-for-web-development/' rel='bookmark' title='Permanent Link: 5 Essential Firefox add-ons for web development'>5 Essential Firefox add-ons for web development</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/JmPiIvCbm2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/development/use-yslow-to-optimize-your-site-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/development/use-yslow-to-optimize-your-site-files/</feedburner:origLink></item>
		<item>
		<title>FatFish Media</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/7s0YZSMbFq4/</link>
		<comments>http://www.malbecmedia.com/blog/portfolio/fatfish-media/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 20:21:36 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=647</guid>
		<description><![CDATA[We have just released our touch screen advertising system! Please check out the promotional site to see what we have been up too!
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-649 alignleft" style="margin-top: 5px; margin-bottom: 5px; margin-left: 10px; margin-right: 10px;" title="full-page" src="http://www.malbecmedia.com/wp-content/uploads/2009/10/full-page-195x300.jpg" alt="full-page" width="195" height="300" />We have just released our touch screen advertising system with sister company FatFish Media, LLC in Arizona. Please check out the <a href="http://www.fatfishmedia.com">promotional site for location based advertising in Arizona!</a> If you know anyone who needs location based advertising just let us know! <img src='http://www.malbecmedia.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/7s0YZSMbFq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/portfolio/fatfish-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/portfolio/fatfish-media/</feedburner:origLink></item>
		<item>
		<title>Mailto Encoder</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/iMfpeQxrWQ4/</link>
		<comments>http://www.malbecmedia.com/blog/portfolio/mailto-encoder/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 21:41:26 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[tool]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=625</guid>
		<description><![CDATA[We created a free tool that helps you fight spam. You just have to enter the email you want to protect, and the site will give you a code to replace it.
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/prevent-spam-by-encoding-your-email-addresses/' rel='bookmark' title='Permanent Link: Prevent spam by encoding your email addresses'>Prevent spam by encoding your email addresses</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-627" title="Mailto Encoder" src="http://www.malbecmedia.com/wp-content/uploads/2009/08/portfolio.jpg" alt="Mailto Encoder" width="430" height="205" /></p>
<p>We&#8217;ve been using different techniques to protect our clients from spam such as encoding the email addresses we publish on their sites. Seeing how helpful this was we decided to make a tool that helps with that task that&#8217;s easy for anyone to use.</p>
<p>Our little email encoder is a simple service that takes your address and provides a javascript code to replace it. This code encrypts your email and uses the information (in an obfuscated way) to recreate the address on the client side.</p>
<p>The algorithm that makes the conversion works entirely with Javascript, on the client side, so no address is sent to us.</p>
<p>Hope you like it and thanks so much for the reviews!</p>
<p><a title="Mailto Encoder" href="http://www.mailtoencoder.com">Mailto Encoder</a></p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/prevent-spam-by-encoding-your-email-addresses/' rel='bookmark' title='Permanent Link: Prevent spam by encoding your email addresses'>Prevent spam by encoding your email addresses</a></li>
<li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/iMfpeQxrWQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/portfolio/mailto-encoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/portfolio/mailto-encoder/</feedburner:origLink></item>
		<item>
		<title>Prevent spam by encoding your email addresses</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/xMFKe7BLr40/</link>
		<comments>http://www.malbecmedia.com/blog/development/prevent-spam-by-encoding-your-email-addresses/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 00:49:05 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript code]]></category>
		<category><![CDATA[spam bots]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=613</guid>
		<description><![CDATA[If you have your email published on your (or any other) website, there is a good chance sooner or later you'll get a mountain of spam on your inbox. Here's a trick to prevent this.
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><img class="aligncenter size-medium wp-image-618" title="Spam" src="http://www.malbecmedia.com/wp-content/uploads/2009/08/spam-300x211.jpg" alt="Spam" width="300" height="211" />Prevent spam by encoding your email addresses</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">If you have your email published on your (or any other) site, and this site is being indexed by search engines, is probably that sooner or later you&#8217;ll get spam on your inbox.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">This is because spam bots are gathering email addresses from the internet, they use the search engines and look through sites, getting every email address they see. We need a way of preventing this bots from taking our addresses while allowing our visitors to see them.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">A simple approach</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">This one is widely used, but is not super safe (although is much better than just typing your address as it is).</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">This approach constist in using different format when writing the email address, still being understandable by humans. Examples:</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">info [at] domain.com</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">myemail (at) domain.com</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">You can vary the form (maybe you like using {} instead), well&#8230;you get the idea.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Encoding your address</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Another approach (my favorite) is to obfuscate the email in the source code, using a javascript code that reconstructs the address on the client side. This is invisible for the user and prevents the bots from seeing the address because they don&#8217;t execute javascript.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Here&#8217;s a couple of resources that do that for you (they give you this javascript code based on the address you want to encode):</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Rumkin.com Mail encoder: very cool tool, has a lot of options.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">MailToEncoder: a simple but powerfull encoder we did, on of our weekend proyects <img src='http://www.malbecmedia.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Encode!</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Go ahead and encode the addresses you have published on your site, is never too late!</div>
<p><img class="aligncenter size-medium wp-image-618" title="Spam" src="http://www.malbecmedia.com/wp-content/uploads/2009/08/spam-300x211.jpg" alt="Spam" width="300" height="211" />If you have your email published on your (or any other) site, and this site is being indexed by search engines, eventually you will end up with a mountain of spam in your inbox.</p>
<p>Why is this you ask?  Basically &#8220;spam bots&#8221; as they are called, are gathering email addresses from the internet, they work by using the search engines to find and look through sites, getting every email address they see. To fight the spam bots we need a way of preventing these little guys from taking our addresses while of course leaving a way for our visitors to see them.</p>
<h3>A simple approach</h3>
<p>This approach is widely used although not the safest ( much better than just typing your address as it is of course).<br />
Here is how its done, when writing the email address we change it a bit. Example:</p>
<p>info [at] domain.com</p>
<p>myemail (at) domain.com</p>
<p>This leaves it still readable by humans although a little less bot friendly. You can vary the form (maybe you like using {} instead), to make it match your style.</p>
<h3>Encoding your address</h3>
<p>Another approach (my favorite) is to obfuscate the email in the source code, using a javascript code that reconstructs the address on the client side. While this sounds complicated its  invisible for the end user and prevents the bots from seeing the address as most can not execute javascript.</p>
<p>Here&#8217;s a couple of resources that do that for you (they give you a  javascript code based on the address you want to encode):</p>
<p><a href="http://rumkin.com/tools/mailto_encoder/simple.php" target="_blank">Rumkin.com Mail encoder</a>: very cool tool, has a lot of options.</p>
<p><a href="http://www.mailtoencoder.com/">MailToEncoder</a>: a simple but powerful encoder we put together as one of our weekend projects <img src='http://www.malbecmedia.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Encode!</h3>
<p>Go ahead and encode the addresses you have published on your site, is never too late to fight spam!</p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/development/cross-domain-gif-request-with-javascript/' rel='bookmark' title='Permanent Link: Cross-domain gif request with javascript'>Cross-domain gif request with javascript</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/xMFKe7BLr40" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/development/prevent-spam-by-encoding-your-email-addresses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/development/prevent-spam-by-encoding-your-email-addresses/</feedburner:origLink></item>
		<item>
		<title>El desafío del desarrollo web</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/F73eLGZh9qE/</link>
		<comments>http://www.malbecmedia.com/blog/development/el-desafio-del-desarrollo-web/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 23:57:49 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[destacado]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[seo]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=585</guid>
		<description><![CDATA[El terreno del desarrollo web es bastante amplio y variado, entrando en juego un conjunto de disciplinas muy dispares. Esta explicaci&#243;n bastante abarcativa trata de cubrir el panorama del desarrollo web.
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.malbecmedia.com/wp-content/uploads/2009/07/desarollo-300x212.jpg" alt="El desafío en el desarrollo web" title="El desafío en el desarrollo web" width="300" height="212" class="aligncenter size-medium wp-image-596" /></p>
<p>El terreno del desarrollo web es amplio y variado, donde entran en juego un conjunto de disciplinas muy dispares. Esta explicaci&oacute;n bastante abarcativa, trata de cubrir un poco el panorama.<br />
A grandes rasgos podemos separar una aplicaci&oacute;n web en 2 grandes partes, bastante distintas, que conviven entre s&iacute;, casi transparentemente a los ojos del usuario.</p>
<h3>El usuario y su navegador</h3>
<p>Estamos en las profundidades del browser y el procesamiento del lado del cliente. Aqu&iacute; aparecen varias tecnolog&iacute;as involucradas, a grandes rasgos son: html + css, javascript y flash (siendo muy amplio podr&iacute;a incluir a applets java, aunque no es lo m&aacute;s frecuente de ver). </p>
<h4>HTML + CSS</h4>
<p>El dise&ntilde;o del sitio e interfaz de usuario puede verse muy lindo en Photoshop, pero a la hora de la verdad tiene que estar traducido (cortado se le suele decir) en HTML y CSS. Buenas pr&aacute;cticas de codificaci&oacute;n, est&aacute;ndares web, divs, doctypes, compatibilidad entre navegadores (tratando de caerle bien a ese amigo que nadie quiere, pero que la realidad nos obliga a tener, IE6) y consideraciones para el SEO (optimizaci&oacute;n para motores de b&uacute;squeda) son algunos de los ingredientes de esta ensalada de fruta (y esto no termina ac&aacute;).</p>
<h4>Javascript</h4>
<p>En pocas palabras, en &uacute;nico lenguaje de programaci&oacute;n que entienden los navegadores nativamente (y no todos por igual :S). Animaciones sin flash, AJAX (Javascript as&iacute;ncrono, la X de XML es debatible), y cualquier tipo de l&oacute;gica ejecutada en el navegador, todas est&aacute;n a cargo de Javascript.</p>
<p>Con su sintaxis parecida a Java y C, es la manera de agregar alg&uacute;n tipo de inteligencia a las aplicaciones web.<br />
Flash y applets java tambi&eacute;n son alternativas propietarias a la hora de programaci&oacute;n del lado del cliente y los 2 requieren de agregados instalados en el cliente (realmente no son mi especialidad).<br />
Dentro de el mundo de Javascript, hay varias librer&iacute;as que extienden las funcionalidades nativas del lenguaje y permiten llevar la experiencia de usuario a otro nivel.</p>
<p>A nuestro entender son fundamentales a la hora de programar en javascript, facilitando mucho las cosas. La mayor&iacute;a de las veces trabajamos con Jquery y su Jquery UI, en el pasado hemos usado Mootools, Prototype y Scriptaculous.</p>
<h3>La parte de atras</h3>
<p>El mundo del backend es otro cantar, el encargado de servir nuestras p&aacute;ginas y entregar los datos requeridos por nuestra aplicaci&oacute;n es otra bestia totalmente diferente.</p>
<p>El protagonista aqu&iacute; es el servidor web, encargado de recibir la petici&oacute;n, procesarla y devolvernos el resultado. Este resultado puede estar listo para ser mostrado en formato HTML, o bien en otra forma (xml, json, texto plano, etc.) para ser procesado por nuestra aplicaci&oacute;n en el cliente.</p>
<p>Apache, Nginx, Lighttpd e IIS est&aacute;n entre los m&aacute;s usados, encargados de interactuar con los int&eacute;rpretes de los distintos lenguajes: (dependiendo de la elecci&oacute;n de tecnolog&iacute;a) PHP, Ruby, Python, ASP, entre otros.</p>
<p>Dentro de los lenguajes de programaci&oacute;n server-side tenemos al submundo de los frameworks. Un framework provee una estructura de soporte, mediante la cual el proyecto de software puede ser organizado y desarrollado, haciendo m&aacute;s f&aacute;ciles algunas tareas y salv&aacute;ndonos de &#8220;reinventar la rueda&#8221; brindando funcionalidad b&aacute;sica.<br />
Por mencionar algunos, en el mundo de PHP tenemos a CakePHP, CodeIgniter y Symphony (son s&oacute;lo algunos). Otros destacados y muy populares son Ruby on Rails (para Ruby) y Django (para Python).</p>
<p>Bajando un poco de nivel seguimos encontrando cosas a tener en cuenta:</p>
<ul>
<li>Seguridad: En el servidor propiamente dicha(a nivel de red), en la aplicaci&oacute;n (inyecciones SQL, XSS &#8211; Cross site scripting, validaci&oacute;n, etc).</li>
<li>Optimizaci&oacute;n: Caches a nivel de framework, caches independientes como memcached, caches a trav&eacute;s de proxys. Optimizaci&oacute;n del c&oacute;digo, precompiladores, etc.</li>
<li>Escalabilidad: Eliminar cuellos de botella a nivel de servidor web con redundancia, redundancia en la base de datos separando las llamadas de lectura de las de escritura a distintos servidores (las de lectura representan el 80%), etc.</li>
</ul>
<p>Otra variable de esta ecuaci&oacute;n son las bases de datos. MySql y PostgreSQL (las m&aacute;s populares del software libre), Oracle, SQL Server, etc. El c&oacute;digo de los diferentes lenguajes es el que accede a estas bases de datos y se encarga de interactuar con la informaci&oacute;n.</p>
<h3>En resumen</h3>
<p>Todos estos factores son parte de la vida del desarrollador Web. He pasado por alto algunos temas para que no se haga tan extenso, como los CMS(Gestor de Contenidos), el SEO (Search Engine Optimization u Optimizaci&oacute;n de motores de B&uacute;squeda, que es un mundo aparte) y un largo etc&eacute;tera.</p>
<p>Con tantas cosas en juego, no s&eacute; qui&eacute;n se puede aburrir (yo a veces me quejo pero al final de cuentas, en la variedad esta la diversi&oacute;n). Es un desaf&iacute;o con el cual nos encanta enfrentarnos d&iacute;a a d&iacute;a.<br />
Saludos!</p>
<p>Foto de <a href="http://www.flickr.com/photos/calevans/1732671937/">CalEvans</a></p>
<p>No related posts.</p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/F73eLGZh9qE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/development/el-desafio-del-desarrollo-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/development/el-desafio-del-desarrollo-web/</feedburner:origLink></item>
		<item>
		<title>¡Malbec Media en castellano!</title>
		<link>http://feedproxy.google.com/~r/MalbecMedia/~3/mw3frvATI98/</link>
		<comments>http://www.malbecmedia.com/blog/news/malbec-media-en-castellano/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 14:02:42 +0000</pubDate>
		<dc:creator>Guillermo</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Argentina]]></category>
		<category><![CDATA[destacado]]></category>
		<category><![CDATA[Mendoza]]></category>
		<category><![CDATA[noticias]]></category>
		<guid isPermaLink="false">http://www.malbecmedia.com/?p=491</guid>
		<description><![CDATA[Las cosas estan cambiando por aca.
Desde hace un par de años que no cambiabamos nuestro look y nos gustaria que nos digas que opinas del nuevo sitio, ¡sientete libre de dejar un comentario si te gusta!
Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/news/welcome-to-malbec-medias-blog/' rel='bookmark' title='Permanent Link: Welcome to Malbec Media&#8217;s Blog'>Welcome to Malbec Media&#8217;s Blog</a></li>
<li><a href='http://www.malbecmedia.com/blog/life/cambiando-el-rumbo/' rel='bookmark' title='Permanent Link: Cambiando el rumbo'>Cambiando el rumbo</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Las cosas estan cambiando por aca.</p>
<h3>Whoa Whoa Whoa!!!</h3>
<p>Desde hace un par de años que no cambiabamos nuestro look y nos gustaria que nos digas que opinas del nuevo sitio, ¡sientete libre de dejar un comentario si te gusta!</p>
<h3>¿Que hay de nuevo viejo?</h3>
<ul>
<li>¡Español! – BAM! Abrimos las puertas al mercado de habla hispana y estamos listos de repartir nuestro amor entre nuestros amigos hispanohablantes</li>
<li>Blog –  Estamos dandole una probadita a esto del blog, ahora podr&aacute;s encontrar algunos sabrosos articulos si eres desarrollador web y por que no, soñador como nosotros.</li>
<li>Twitter – Estamos twiteando a twiteros que esten buscando personas para retweetear nuestros tweets&#8230; Uhh&#8230;me parece que fue demasiado. Igualmente, si algo de esto te suena conocido, &eacute;stos somos nosotros en tweeter: <a href="http://www.twitter.com/malbecmedia">http://www.twitter.com/malbecmedia</a></li>
<li>Precios-  Tenemos nuevos precios y estan claramente especificados en nuestra pagina de servicios!</li>
<li>Portfolio- Hemos agregado nuestros ultimos trabajos al portfolio, entra y mira nuestros trabajos mas recientes!</li>
<li>Facebook- ahora te puedes <a href="http://www.facebook.com/pages/Malbec-Media/80388998147">hacer fan</a> de nosotros en Facebook!! Dale, vamos, toda la gente copada lo esta haciendo. <img src='http://www.malbecmedia.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
</ul>
<p>Gracias !</p>
<p>Related posts:<ol><li><a href='http://www.malbecmedia.com/blog/news/welcome-to-malbec-medias-blog/' rel='bookmark' title='Permanent Link: Welcome to Malbec Media&#8217;s Blog'>Welcome to Malbec Media&#8217;s Blog</a></li>
<li><a href='http://www.malbecmedia.com/blog/life/cambiando-el-rumbo/' rel='bookmark' title='Permanent Link: Cambiando el rumbo'>Cambiando el rumbo</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/MalbecMedia/~4/mw3frvATI98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.malbecmedia.com/blog/news/malbec-media-en-castellano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.malbecmedia.com/blog/news/malbec-media-en-castellano/</feedburner:origLink></item>
	</channel>
</rss>
