<?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>Mariuzzo.com</title> <atom:link href="http://mariuzzo.com/feed/" rel="self" type="application/rss+xml" /><link>http://mariuzzo.com</link> <description>Desarrollo Web Empírico y Diseño de Interfaces Experimental</description> <lastBuildDate>Fri, 23 Mar 2012 14:58:57 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>Cómo resolver el error &#8220;Could not find any resources appropriate for the specified culture or the neutral culture&#8221;</title><link>http://mariuzzo.com/como-resolver-el-error-could-not-find-any-resources-appropriate-for-the-specified-culture-or-the-neutral-culture/</link> <comments>http://mariuzzo.com/como-resolver-el-error-could-not-find-any-resources-appropriate-for-the-specified-culture-or-the-neutral-culture/#comments</comments> <pubDate>Fri, 23 Mar 2012 13:06:55 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[ASP.NET]]></category> <category><![CDATA[Preguntas y Respuestas]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=689</guid> <description><![CDATA[Si te has encontrado con el siguiente error en ASP.NET: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure &#8220;AjaxControlToolkit.Properties.Resources.NET4.resources&#8221; was correctly embedded or linked into assembly &#8220;AjaxControlToolkit&#8221; at compile time, or that all the satellite assemblies required are loadable and fully signed. No te preocupes, no es [...]]]></description> <content:encoded><![CDATA[<p>Si te has encontrado con el siguiente error en <code>ASP.NET</code>:</p><blockquote><p>Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure &#8220;AjaxControlToolkit.Properties.Resources.NET4.resources&#8221; was correctly embedded or linked into assembly &#8220;AjaxControlToolkit&#8221; at compile time, or that all the satellite assemblies required are loadable and fully signed.</p></blockquote><p>No te preocupes, no es más que el equipo de desarrollo de AjaxControlToolkit en Microsoft, por alguna razón no pudieron poner un mensaje más descriptivo como este:</p><blockquote><p>Before using an AjaxControlToolkit&#8217;s control, create a &lt;asp:ScriptManager /&gt; tag or a &#038;ltajax:ToolkitScriptManager /&#038;gt</p></blockquote><h3>Solución</h3><p>Tan solo con insertar el siguiente TAG tendrás la solución al susodicho problema:</p><pre><code>&lt;asp:ScriptManager /&gt;</code></pre><p>O también puede solucionar agregando este otro TAG similar:</p><pre><code>&lt;ajax:ToolkitScriptManager runat="server" /&gt;</code></pre>]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/como-resolver-el-error-could-not-find-any-resources-appropriate-for-the-specified-culture-or-the-neutral-culture/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Propiedad CSS: min-width, funcional entre navegadores (cross browser)</title><link>http://mariuzzo.com/propiedad-css-min-width-funcional-entre-navegadores-cross-browser/</link> <comments>http://mariuzzo.com/propiedad-css-min-width-funcional-entre-navegadores-cross-browser/#comments</comments> <pubDate>Fri, 09 Mar 2012 07:08:39 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[cross-browser]]></category> <category><![CDATA[less]]></category> <category><![CDATA[min-width]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=668</guid> <description><![CDATA[La propiedad CSS min-width se utiliza para especificar el ancho mínimo que tendrá uno o varios elementos HTML. Desgraciadamente, esta propiedad no es reconocida por IE6 o IE7 (aka Internet Explorer 6 y 7). A continuación, mostramos un ejemplo de cómo utilizar esa propiedad entre todos los navegadores para un ancho mínimo de 480 pixeles: [...]]]></description> <content:encoded><![CDATA[<p>La propiedad CSS <code>min-width</code> se utiliza para especificar el ancho mínimo que tendrá uno o varios elementos <code>HTML</code>. Desgraciadamente, esta propiedad no es reconocida por IE6 o IE7 (aka Internet Explorer 6 y 7).</p><p>A continuación, mostramos un ejemplo de cómo utilizar esa propiedad entre <strong>todos los navegadores</strong> para un ancho mínimo de 480 pixeles:</p><pre><code class="css">/* CSS */
#contenedor {
  min-width: 480px;
  width:expression(document.body.clientWidth < 480 ? '480px' : 'auto' );
}
</code></pre><h3>Extra: LESS</h3><p>Si estás utilizando <a
href="http://lesscss.org/" title="Página oficial de LESS" target="_blank">LESS</a> podrías escribir lo anterior de la siguiente manera:</p><pre><code class="css">/* LESS */
/* Declaración de función */
.min-width(@w) {
  min-width: @w;
  width: ~"expression(document.body.clientWidth < parseInt('@{w}', 10) ? '@{w}' : 'auto' )";
}

/* Uso de la función */
#contenedor { .min-width(480px); }
</code></pre>]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/propiedad-css-min-width-funcional-entre-navegadores-cross-browser/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>¿Cómo desactivar la selección de texto en CSS?</title><link>http://mariuzzo.com/como-desactivar-la-seleccion-de-texto-en-css/</link> <comments>http://mariuzzo.com/como-desactivar-la-seleccion-de-texto-en-css/#comments</comments> <pubDate>Tue, 21 Feb 2012 14:09:00 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=658</guid> <description><![CDATA[En algún momento de nuestras vidas hemos querido desactivar la selección de texto de nuestros HTML. A continuación te presento la versión cross-browser. Código .no-seleccionable { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } Ejemplo Yo no soy seleccionable Yo soy seleccionable]]></description> <content:encoded><![CDATA[<p>En algún momento de nuestras vidas hemos querido desactivar la selección de texto de nuestros <code>HTML</code>. A continuación te presento la versión <em>cross-browser</em>.</p><h3>Código</h3><pre><code>.no-seleccionable {
  -webkit-touch-callout: none;
    -webkit-user-select: none;
     -khtml-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
         -o-user-select: none;
            user-select: none;
}</code></pre><h3>Ejemplo</h3><div><div
style="text-align:center; border:#666 solid 1px; width:300px; padding:1em 0; margin:1em auto; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;">Yo <strong>no</strong> soy seleccionable</div></div><div><div
style="text-align:center; border:#666 solid 1px; width:300px; padding:1em 0; margin:1em auto;">Yo soy seleccionable</div></div> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/como-desactivar-la-seleccion-de-texto-en-css/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>¿Qué archivos agregar al SVN, de un proyecto C# / ASP.NET?</title><link>http://mariuzzo.com/que-archivos-agregar-al-svn-de-un-proyecto-c-shar-asp-net/</link> <comments>http://mariuzzo.com/que-archivos-agregar-al-svn-de-un-proyecto-c-shar-asp-net/#comments</comments> <pubDate>Fri, 06 Jan 2012 14:03:55 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[C#]]></category> <category><![CDATA[Preguntas y Respuestas]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=618</guid> <description><![CDATA[Esta es una pregunta que muchos nos planteamos cuando un equipo está trabajando simultáneamente con un mismo proyecto compartido con SubVersion (SVN) o cualquier otro sistema de versionamiento. En los peores de los casos, esta pregunta nos llega como imprevisto cuando nos damos que cada vez que hacemos update lloramos. Por lo tanto, ya sea [...]]]></description> <content:encoded><![CDATA[<p>Esta es una pregunta que muchos nos planteamos cuando un <em>equipo</em> está trabajando simultáneamente con un mismo proyecto compartido con SubVersion (SVN) o cualquier otro sistema de versionamiento. En los peores de los casos, esta pregunta nos llega como imprevisto cuando nos damos que cada vez que hacemos <code>update</code> lloramos. Por lo tanto, ya sea que te haya sucedido o no, a continuación te muestro la lista que utilizo para ignorar aquellos archivos que -<em>a mi juicio</em>- no deberían de ser incluído en un sistema de versionamiento.</p><p>Esta es mi lista de archivos a ignorar (en el formato que acepta SVN) también conocido como <em>ignorelist</em> (svn:ignore):</p><p><code>*.pdb<br
/> *.exe<br
/> *.dll<br
/> debug/*<br
/> release/*<br
/> *.user<br
/> *.suo<br
/> obj/*<br
/> bin/*<br
/> obj<br
/> bin<br
/> VSMacros80</code></p><p>Espero que esto te sea de utilidad.</p> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/que-archivos-agregar-al-svn-de-un-proyecto-c-shar-asp-net/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Cambiando el Time Zone de Oracle Data Modeler</title><link>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-data-modeler/</link> <comments>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-data-modeler/#comments</comments> <pubDate>Tue, 14 Jun 2011 23:03:59 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[Preguntas y Respuestas]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=611</guid> <description><![CDATA[Si igual que a mi necesitas cambiar el time zone de tu copia de Oracle Data Modeler (versión 2 o 3) entonces te mostraré cómo hacerlo. Ubica el folder de instalación de Oracle Data Modeler. Edita el archivo datamodeler/bin/datamodeler.conf. Agrega al final la siguiente línea AddVMOption -Duser.timezone=GMT-4. Listo! Reiniciando Oracle Data Modeler hará que este [...]]]></description> <content:encoded><![CDATA[<p>Si igual que a mi necesitas cambiar el time zone de tu copia de Oracle Data Modeler (versión 2 o 3) entonces te mostraré cómo hacerlo.</p><ol><li>Ubica el folder de instalación de Oracle Data Modeler.</li><li>Edita el archivo <code>datamodeler/bin/datamodeler.conf</code>.</li><li>Agrega al final la siguiente línea <code>AddVMOption -Duser.timezone=GMT-4</code>.</li></ol><p>Listo! Reiniciando Oracle Data Modeler hará que este detecte los cambios. Cabe destacara que al utilizar la función <code>AddVMOption</code> puedes agregar cualquier variable de entorno Java, que en este caso, afectará a Oracle Data Modeler.</p> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-data-modeler/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Cambiando el Time Zone de Oracle SQL Developer</title><link>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-sql-developer/</link> <comments>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-sql-developer/#comments</comments> <pubDate>Tue, 03 May 2011 19:28:09 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[Preguntas y Respuestas]]></category> <category><![CDATA[Oracle SQL Developer]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=604</guid> <description><![CDATA[Si igual que a mi necesitas cambiar el time zone de tu copia de Oracle SQL Developer (versión 2 o 3) entonces te mostraré cómo hacerlo. Ubica el folder de instalación de Oracle SQL Developer. Edita el archivo sqldeveloper/bin/sqldeveloper.conf. Agrega al final la siguiente línea AddVMOption -Duser.timezone=GMT-4. Listo! Reiniciando Oracle SQL Developer hará que este [...]]]></description> <content:encoded><![CDATA[<p>Si igual que a mi necesitas cambiar el time zone de tu copia de Oracle SQL Developer (versión 2 o 3) entonces te mostraré cómo hacerlo.</p><ol><li>Ubica el folder de instalación de Oracle SQL Developer.</li><li>Edita el archivo <code>sqldeveloper/bin/sqldeveloper.conf</code>.</li><li>Agrega al final la siguiente línea <code>AddVMOption -Duser.timezone=GMT-4</code>.</li></ol><p>Listo! Reiniciando Oracle SQL Developer hará que este detecte los cambios. Cabe destacara que al utilizar la función <code>AddVMOption</code> puedes agregar cualquier variable de entorno Java, que en este caso, afectará a Oracle SQL Developer.</p> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/cambiando-el-time-zone-de-oracle-sql-developer/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>¿Cómo cambiar el &#8220;user agent&#8221; a Firefox 4, 5, 6, 7?</title><link>http://mariuzzo.com/%c2%bfcomo-cambiar-el-user-agent-en-firefox-4/</link> <comments>http://mariuzzo.com/%c2%bfcomo-cambiar-el-user-agent-en-firefox-4/#comments</comments> <pubDate>Mon, 04 Apr 2011 19:47:32 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[Anuncio]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[Workaround]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=600</guid> <description><![CDATA[Acabando de instalar Firefox 7 me vi en la necesidad de cambiar el user agent (agente de usuario) para poder darle la vuelta al proxy de mi lugar de trabajo y poder trabajar más rápido. Si quieres saber cómo cambiar el susodicho user agent pues deberá de hacer lo siguiente: Estando en Firefox 7 escribes [...]]]></description> <content:encoded><![CDATA[<p>Acabando de instalar <a
href="http://www.mozilla.com/">Firefox 7</a> me vi en la necesidad de cambiar el <a
href="http://es.wikipedia.org/wiki/Agente_de_usuario">user agent (agente de usuario)</a> para <strike>poder darle la vuelta al proxy de mi lugar de trabajo y</strike> poder trabajar más rápido. Si quieres saber cómo cambiar el susodicho user agent pues deberá de hacer lo siguiente:</p><ol><li>Estando en Firefox 7 escribes &#8220;about:config&#8221; y presionas &#8220;enter&#8221;.</li><li>Haz click en el único botón que aparece junto a un mensaje de alerta.</li><li>Sobre la tabla que te aparecerá haz click derecho dale a &#8220;new&#8221; y &#8220;String&#8221; (o &#8220;nuevo&#8221; y &#8220;cadena de caracteres&#8221;)</li><li>Te saldrá un popup para introducir un nombre y ahí pondrás el siguiente: &#8220;general.useragent.override&#8221; (sin las doble comillas)</li><li>Luego, en otro popup, vas a poner el &#8220;user agent&#8221; que desees.</li></ol><p>Listo! Ahí tienes tu <a
href="http://www.mozilla.com/">Firefox 7</a> con el &#8220;user agent&#8221; que siempre soñaste!</p> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/%c2%bfcomo-cambiar-el-user-agent-en-firefox-4/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Cómo interceptar las llamadas AJAX de jQuery y simular la latencia</title><link>http://mariuzzo.com/como-interceptar-las-llamadas-ajax-de-jquery-y-simular-la-latencia/</link> <comments>http://mariuzzo.com/como-interceptar-las-llamadas-ajax-de-jquery-y-simular-la-latencia/#comments</comments> <pubDate>Wed, 08 Dec 2010 17:39:10 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[jQuery]]></category> <category><![CDATA[ajax]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=576</guid> <description><![CDATA[Desarrollando una demo de una aplicación web, me vi en la necesidad de interceptar las llamadas AJAX para poder simular la latencia.]]></description> <content:encoded><![CDATA[<p>Desarrollando una demo de una aplicación web, me vi en la necesidad de interceptar las llamadas <abbr
title="JavaScript asíncrono y XML">AJAX</abbr> para poder simular la latencia, es decir, un tiempo en retardo que toman un conjunto de datos en viajar de un punto a otro.</p><p>Como estaba utilizando <a
href="http://jquery.com/">jQuery</a>, me puse a investigar en la documentación para determinar si existe algún punto en común que preceda a todas las llamadas asincrónicas realizadas a través de <code>$.ajax</code>. Mi idea era realizar algo del siguiente modo.</p><h3>Mi idea&#8230;</h3><pre><code>$.preAjax(function(argumentos) {

  // Intercepto todas las llamadas AJAX
  // y las ejecuto en un tiempo más tarde.

  setTimeout(function() {
    $.ajax.apply(this, argumentos);
  }, Math.random() * 1000);

});
</code></pre><p>Como dije previamente, <strong>dicha función no existe</strong>. Entonces procedí a crear un código que me permita realizar lo anterior. ¿El resultado? A continuación.</p><h3>El código</h3><pre><code>
// Este objeto guardará los argumentos
// y las referencia a this.

var testAjax = {
  args : {}, // argumentos
  thiz : {}, // referencias a this
  fn : {},   // donde se guardará la función original de $.ajax
  // Interceptor de las llamadas AJAX.
  ajax : function(uuid) {
    var args = this.args[uuid], thiz = this.thiz[uuid];
    delete this.args[uuid];
    delete this.thiz[uuid];
    this.fn.ajax.apply(thiz, args);
  }
};

jQuery(document).ready(function($) {

  // Guardo la función original de AJAX.

  testAjax.fn.ajax = $.ajax;

  // Sobrescribo la función original de AJAX.

  $.ajax = function() {

    // Generar único id.
    var uuid = (new Date()).getTime();

    // Guardar todos los argumentos originales.
    testAjax.args[uuid] = arguments;
    // Guardar la referencia original a this.
    testAjax.thiz[uuid] = this;

    // Generar delay variado de hasta 1000ms.
    var delay = Math.random() * 1000;

    // Ejecutar la función AJAX después del delay
    setTimeout('testAjax.ajax(' + uuid + ')', delay);
  };

});</code></pre><p>El código anterior permite que todas las llamadas AJAX utilizando jQuery sean retardadas aleatoriamente. Esto es sumamente útil a la hora de desarrollar una aplicación web donde no tenemos ninguna implementación server side y deseamos simular el comportamiento de la aplicación cuando se ejecute una llamada asincrónica.</p><h3>En el futuro no muy lejano</h3><ul><li>Agregar documentación</li><li>Implementar plugin de jQuery</li></ul> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/como-interceptar-las-llamadas-ajax-de-jquery-y-simular-la-latencia/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Zen Coding para escribir HTML/CSS a la velocidad de la luz</title><link>http://mariuzzo.com/zen-coding-para-escribir-htmlcss-a-la-velocidad-de-la-luz/</link> <comments>http://mariuzzo.com/zen-coding-para-escribir-htmlcss-a-la-velocidad-de-la-luz/#comments</comments> <pubDate>Thu, 26 Nov 2009 10:00:44 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[WebDev]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=525</guid> <description><![CDATA[Zen Coding es un conjunto de plugins para programar en HTML o CSS a la velocidad de la luz (casi literalmente). Estas magníficas herramientas te permiten escribir un selector de CSS y expandirlo en su representación del DOM y mucho más. Un ejemplo básico Si queremos crear la estructura más básica de un documento XHTML [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignnone size-full wp-image-527" title="html-light-speed" src="http://mariuzzo.com/wp-content/uploads/2009/11/html-light-speed.jpg" alt="html-light-speed" width="480" height="100" /></p><p><a
title="zen-coding" href="http://code.google.com/p/zen-coding/" target="_blank">Zen Coding</a> es un conjunto de plugins para programar en HTML o CSS a la velocidad de la luz (casi literalmente). Estas magníficas herramientas te permiten escribir un selector de CSS y expandirlo en su representación del DOM y mucho más.</p><h2>Un ejemplo básico</h2><p>Si queremos crear la estructura más básica de un documento XHTML transicional. Solo tenemos que poner lo siguiente.</p><pre><code>html:xt</code></pre><p>Y al presionar un <em>shortcut</em> o un <em>click</em> tendremos esto:</p><pre><code class="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre><p>Y eso es solo el comienzo de la magia de Zen Coding.</p><h2>Un segundo ejemplo</h2><p>Si queremos crear un elemento cualquiera, digamos un DIV con un ID header, entonces escribimos lo que sería un selector CSS:</p><pre><code>div#header</code></pre><p>Y esto se convertiría en:</p><pre><code class="html">&lt;div id="header"&gt;&lt;/div&gt;</code></pre><p>Sencillo y útil ¿verdad?</p><h2>Un ejemplo complejo</h2><p>Supongamos que queremos crear un documento HTML con varios DIVs, un menu de UL con varios LI con IDs diferente. Esto también podemos hacerlos en una sola línea:</p><pre><code>html:xt&gt;div#header+div#content&gt;ul#menu&gt;li.opcion-$*10</code></pre><p>Esto sería igual a:</p><pre><code class="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
  &lt;head&gt;
    &lt;title&gt;&lt;/title&gt;
    &lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id="header"&gt;&lt;/div&gt;
    &lt;div id="content"&gt;
      &lt;ul id="menu"&gt;
        &lt;li id="item-1"&gt;&lt;/li&gt;
        &lt;li id="item-2"&gt;&lt;/li&gt;
        &lt;li id="item-3"&gt;&lt;/li&gt;
        &lt;li id="item-4"&gt;&lt;/li&gt;
        &lt;li id="item-5"&gt;&lt;/li&gt;
        &lt;li id="item-6"&gt;&lt;/li&gt;
        &lt;li id="item-7"&gt;&lt;/li&gt;
        &lt;li id="item-8"&gt;&lt;/li&gt;
        &lt;li id="item-9"&gt;&lt;/li&gt;
        &lt;li id="item-10"&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;</code></pre><p>De seguro esto nos ahorrará bastante la creación de documentos HTML, les dejo <a
href="http://code.google.com/p/zen-coding/" target="_blank">el enlace para que puedan descargarlo</a> y prueben las demás extensiones fabulosas.</p><p>Nota, esta extensión está disponible para Aptana, TextMate, NetBeans entre otros IDEs. Espero que lo disfruten y me den su opinión.</p> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/zen-coding-para-escribir-htmlcss-a-la-velocidad-de-la-luz/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Instalando CakePHP</title><link>http://mariuzzo.com/instalando-cakephp/</link> <comments>http://mariuzzo.com/instalando-cakephp/#comments</comments> <pubDate>Sun, 22 Nov 2009 20:03:48 +0000</pubDate> <dc:creator>Rubens Mariuzzo</dc:creator> <category><![CDATA[CakePHP]]></category> <category><![CDATA[Guía]]></category><guid
isPermaLink="false">http://mariuzzo.com/?p=500</guid> <description><![CDATA[Artículo detallado de la instalación de CakePHP en Linux con imágenes y en en español (aplicación similar para otros sistemas operativos).]]></description> <content:encoded><![CDATA[<p><a
href="http://mariuzzo.com/wp-content/uploads/2009/04/cakephp.jpg"><img
class="alignnone size-full wp-image-50" title="Instalando CakePHP" src="http://mariuzzo.com/wp-content/uploads/2009/04/cakephp.jpg" alt="Instalando CakePHP" width="480" height="100" /></a></p><p>Este artículo es para quien por una razón u otra no ha podido instalar CakePHP o para recomendar a otras personas que necesitan una guía para iniciarse en esta excelente plataforma de desarrollo. Cabe destacar que los pasos descritos son aplicables para usuario de Linux (en mi caso Ubuntu).</p><h2>Prerequisitos</h2><p>Asegúrate que tengas&#8230;</p><ul><li>&#8230; una conexión a Internet (para descargar CakePHP).</li><li>&#8230; y una instalación fresca de XAMPP (LAMPP).</li></ul><h2><span
id="more-500"></span></h2><h3>1. Descargar CakePHP</h3><p><img
class="alignnone size-full wp-image-501" title="CakePHP downloads" src="http://mariuzzo.com/wp-content/uploads/2009/11/CakePHP-downloads.png" alt="CakePHP downloads" width="233" height="323" /></p><p>En tu navegador favorito dirígete a http://cakephp.org y descarga el archivo de CakePHP. Es posible que veas una lista de archivos y no sepas cual elegir, entonces busca la última versión <strong>estable</strong> con la extensión <strong>.tar.gz</strong>.</p><p>Luego de elegir el archivo CakePHP a descargar, es posible que te pregunten por dar alguna donación monetaria a favor del proyecto. Este paso es opcional. Puedes continuar descargando el archivo haciendo click en &#8220;No Thanks&#8221;.</p><h3>2. Descomprime el archivo CakePHP</h3><p>Dependiendo del lugar donde esté el archivo descargado de CakePHP, procederemos a descomprimirlo en el directorio <code>htdocs</code> de nuestra instalación de LAMPP. Para esto, asumiremos que LAMPP está instalado en el directorio <code>/opt</code>. Entonces ejecutamos el siguiente comando.</p><pre><code>sudo tar -xvzf cake_1.2.5.tar.gz -C /opt/lampp/htdocs/</code></pre><h3>3. Probamos la pre-instalación</h3><div><img
class="alignnone size-full wp-image-505" title="CakePHP pre installation" src="http://mariuzzo.com/wp-content/uploads/2009/11/CakePHP-pre-installation.png" alt="CakePHP pre installation" width="231" height="284" /></p><p>Hasta este punto podemos ver si lo que hemos hecho esta bien. Tan solo necesitamos subir a LAMPP con un simple <code>sudo /opt/lampp/lampp start</code>. Luego accedemos con nuestro navegador web a la dirección <a
title="http://localhost/cake_1.2.5/" href="http://localhost/cake_1.2.5/" target="_blank">http://localhost/cake_1.2.5/</a>. Si ves algo similar a la imagen de la izquierda todo está bien, no hay mayores complicaciones.</div><h3>4. Configuracion inicial</h3><p>Este es el último paso, el cual consiste en configurar las dependencias básicas de CakePHP. Estas configuraciones son mínimas y las podemos realizar siguiendo cada alerta que se nos presentaron al acceder a <a
title="http://localhost/cake_1.2.5/" href="http://localhost/cake_1.2.5/" target="_blank">http://localhost/cake_1.2.5/</a>.</p><ul><li><code>Warning (512): /opt/lampp/htdocs/cake_1.2.5/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 262]</code><p>Esto es un problema de permisos, para resolverlo daremos todos los permisos al directorio tmp y sus descendientes. Ejecutamos lo siguiente.</p><pre><code>sudo chmod 777 -R /opt/lampp/htdocs/cake_1.2.5/app/tmp/</code></pre></li><li><code>Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE/cake/libs/debugger.php, line 557]</code><p>Esto es una advertencia de seguridad donde se nos aconseja de cambiar el valor por defecto. Para modificarlo, tan solo necesitamos editar el archivo que se encuentra en <code>/opt/lampp/htdocs/cake_1.2.5/app/config/core.php</code>. En dicho archivo editaremos una línea parecida a esta.</p><pre><code class="php">Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubi');</code></pre><p>Y cambiamos el valor (garabato) puesto por otro.</li><li><code>Your database configuration file is NOT present.<br
/> Rename config/database.php.default to config/database.php</code></p><p>Tal como se describe en inglés tenemos que renombrar el archivo <code>config/database.php.default</code> a <code>config/database.php</code>. Al hacer solamente esto tendremos otro problema &#8220;Cake is NOT able to connect to the database.&#8221; que quiere decir que CakePHP no pudo conectarse a nuestra base de datos. Entonces, aparte de renombrar el archivo <code>database.php</code>, debemos editarlo para que apunte a nuestra base de datos. Pero primero necesitamos crear nuestra base de datos.<br
/> No te preocupes, eso es bien sencillo <a
href="http://localhost/phpmyadmin" target="_blank">http://localhost/phpmyadmin</a> y crear nuestra base de datos con cualquier que nos pase por la cabeza, para este artículo creamos una con nombre &#8216;bd_prueba&#8217;. Como se muestra en la siguiente imagen y presionamos el botón &#8220;Create&#8221; y listo.<br
/> <img
class="alignnone size-full wp-image-513" title="Creando una base de datos" src="http://mariuzzo.com/wp-content/uploads/2009/11/Creando-una-base-de-datos.png" alt="Creando una base de datos" width="502" height="119" /><br
/> Entonces, lo restante sería terminar de configurar nuestro archivo <code>database.php</code>. Para esto lo editamos y ponemos lo siguiente.</p><pre><code class="php">var $default = array(
  'driver' =&gt; 'mysql',
  'persistent' =&gt; false,
  'host' =&gt; 'localhost',
  'login' =&gt; 'root', // El usuario por defecto de mysql es root.
  'password' =&gt; '', // El usuario root no tiene contraseña.
  'database' =&gt; 'bd_prueba',
  'prefix' =&gt; '',
);</code></pre></li><h3>¡Listo a <span
style="text-decoration: line-through;">punchar</span> programar!</h3><p>A este punto verás que no habrán más alertas en <a
href="http://localhost/phpmyadmin" target="_blank">http://localhost/phpmyadmin</a>, todo estará verde, indicando que todo anda bien.</p><p>Como has visto son tan solo 4 pasos bien sencillo para instalar la plataforma de desarrollo CakePHP. A partir de ahí si sigues teniendo problemas, déjame saberlo en los comentarios. Y si no tienes ningún problemas no dejes de visitar para ver otro artículos similares.</ul> ]]></content:encoded> <wfw:commentRss>http://mariuzzo.com/instalando-cakephp/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic (User agent is rejected)
Database Caching 6/11 queries in 0.096 seconds using disk: basic

Served from: mariuzzo.com @ 2012-05-19 14:05:59 -->
