<?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>Taula Consulting</title>
	<atom:link href="http://www.taula-consulting.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.taula-consulting.com</link>
	<description>Web design and web application development</description>
	<lastBuildDate>Tue, 06 Jul 2010 23:04:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Problema con botones de youtube en Flash Player de Ubuntu</title>
		<link>http://www.taula-consulting.com/problema-con-botones-de-youtube-en-flash-player-de-ubuntu/</link>
		<comments>http://www.taula-consulting.com/problema-con-botones-de-youtube-en-flash-player-de-ubuntu/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 23:04:49 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=571</guid>
		<description><![CDATA[He instalado por segunda vez Ubuntu 10.04, pero esta vez en un ordenador nuevo, y tras instalar el Flash Player de Adobe, he visto que no funcionaban según qué funciones tales como los botones o el indicador de sonido.
Después de [...]]]></description>
			<content:encoded><![CDATA[<p>He instalado por segunda vez Ubuntu 10.04, pero esta vez en un ordenador nuevo, y tras instalar el Flash Player de Adobe, he visto que no funcionaban según qué funciones tales como los botones o el indicador de sonido.</p>
<p>Después de probar, quitar y poner, he dado con la solución que he encontrado en los foros de Ubuntu, en concreto en este <a href="http://ubuntuforums.org/showthread.php?t=1313366&amp;page=3">post</a>. Así que la solución es, editar el siguiente fichero y añadir una línea:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #007800;">$sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nspluginwrapper<span style="color: #000000; font-weight: bold;">/</span>i386<span style="color: #000000; font-weight: bold;">/</span>linux<span style="color: #000000; font-weight: bold;">/</span>npviewer</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Y cambiamos esto:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/sh</span></li><li><span style="color: #007800;">TARGET_OS</span>=linux</li><li><span style="color: #007800;">TARGET_ARCH</span>=i386</li><li>. <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nspluginwrapper<span style="color: #000000; font-weight: bold;">/</span>noarch<span style="color: #000000; font-weight: bold;">/</span>npviewer</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>por esto:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">#!/bin/sh</span></li><li><span style="color: #007800;">TARGET_OS</span>=linux</li><li><span style="color: #007800;">TARGET_ARCH</span>=i386</li><li><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">GDK_NATIVE_WINDOWS</span>=<span style="color: #000000;">1</span></li><li>. <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nspluginwrapper<span style="color: #000000; font-weight: bold;">/</span>noarch<span style="color: #000000; font-weight: bold;">/</span>npviewer</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Y problema solucionado. Esperemos que arregulen este molesto error pronto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/problema-con-botones-de-youtube-en-flash-player-de-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definir la longitud del excerpt de Wordpress</title>
		<link>http://www.taula-consulting.com/definir-la-longitud-del-excerpt-de-wordpress/</link>
		<comments>http://www.taula-consulting.com/definir-la-longitud-del-excerpt-de-wordpress/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:49:23 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Programación web]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=570</guid>
		<description><![CDATA[Wordpress es un sistema gestor de contenidos muy potente y configurable, aunque su objetivo original fuera el de publicar artículos a través de su motor blog, tiene muchas más opciones que lo hacen muy atractivo para crear sistemas sencillos. Además [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress es un sistema gestor de contenidos muy potente y configurable, aunque su objetivo original fuera el de publicar artículos a través de su motor blog, tiene muchas más opciones que lo hacen muy atractivo para crear sistemas sencillos. Además de éso, la facilidad que nos ofrece para configurarlo es un signo más inequívoco para que tantos usuarios lo elijan.</p>
<p>Para los que no lo sepan el <em>excerpt</em>, que en inglés significa <em>pasaje</em>, se utiliza para definir un extracto de los artículos deseados, aunque si no lo definimos el sistema lo hará automáticamente por nosotros y cogerá las primeras palabras de dichos artículos.</p>
<p>Por defecto, Wordpress mostrará las 55 primeras palabras, pero dicha cantidad se puede modificar definiendo una función en el fichero <em>functions.php</em>, que en el caso de existir está siempre presente en el directorio raíz de cada tema, de lo contrario lo tendrás que crear tu mismo. </p>
<p>En definitiva, pon estas líneas poniendo la longitud que tu quieras, en este caso hay 20, en dicho fichero y ya está listo:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #666666; font-style: italic;">/** excerpt length */</span></li><li><span style="color: #000000; font-weight: bold;">function</span> new_excerpt_length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></li><li>	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span></li><li><span style="color: #009900;">&#125;</span></li><li>add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'excerpt_length'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'new_excerpt_length'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--> </p>
<p>Ahora ya tendrás todos tus <em>exceprt</em> con la longitud deseada.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/definir-la-longitud-del-excerpt-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Síguenos en las redes sociales</title>
		<link>http://www.taula-consulting.com/siguenos-en-las-redes-sociales/</link>
		<comments>http://www.taula-consulting.com/siguenos-en-las-redes-sociales/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 09:22:39 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=566</guid>
		<description><![CDATA[En Taula Consulting sabemos de la importancia de las redes sociales. Para estar al día de nuestras novedades, ofertas o artículos técnicos de interés publicados en nuestro blog, ya nos podéis seguir a través de Twitter o Facebook.


]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.taula-consulting.com">Taula Consulting</a> sabemos de la importancia de las redes sociales. Para estar al día de nuestras novedades, ofertas o artículos técnicos de interés publicados en nuestro blog, ya nos podéis seguir a través de <a href="http://www.twitter.com/TaulaConsulting">Twitter</a> o <a href="http://www.facebook.com/pages/Tokyo/Taula-Consulting/309863133537">Facebook</a>.</p>
<p style="text-align: center;">
<img title="Social Networking" src="http://www.marketinginmalta.com/wp-content/uploads/2009/03/social_networking.jpg" alt="" width="400" height="300" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/siguenos-en-las-redes-sociales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usar router ADSL con WIFI como AP (Access Point)</title>
		<link>http://www.taula-consulting.com/usar-router-wifi-como-ap-access-point/</link>
		<comments>http://www.taula-consulting.com/usar-router-wifi-como-ap-access-point/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 21:06:47 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[ADSL]]></category>
		<category><![CDATA[AP]]></category>
		<category><![CDATA[D-Link 604T]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=549</guid>
		<description><![CDATA[Hace poco que hemos cambiado la red en las oficinas y nos vimos con la necesidad de habilitar una parte de dicha red por WIFI. Lo lógico sería comprar un AP (Access Point) o punto de acceso inalámbrico para cubrir [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco que hemos cambiado la red en las oficinas y nos vimos con la necesidad de habilitar una parte de dicha red por WIFI. Lo lógico sería comprar un <a href="http://es.wikipedia.org/wiki/Punto_de_acceso">AP</a> (Access Point) o punto de acceso inalámbrico para cubrir dicha necesidad, pero pensando un poco pudimos reutilizar un router ADSL <em>D-Link 604T</em> utilizando unas sencillas instrucciones. En teoría debería funcionar con otros modelos y marcas, pero no lo puedo garantizar.</p>
<p>La idea es dejar de lado la función ADSL y usar un puerto el cual se conecta a la red cableada que provenga el router principal que tenga acceso directo a internet u otros sistemas de la misma red. Los puertos de ethernet serán los van gestionar el tráfico de datos así que la entrada WAN no la usamos.</p>
<p style="text-align:center">
<img title="router_ap_config" src="http://www.taula-consulting.com/wp-content/uploads/2010/01/router_ap_config.gif" alt="router_ap_config" width="392" height="177" />
</p>
<p>Nótese que vamos a llamar a este router AP a partir de ahora. Lo que debemos hacer para que esto funcione es configurar el AP de la siguiente manera:</p>
<ul class="lista">
<li>No conectes el AP a la LAN, aún</li>
<li>Conecta tu ordenador al AP vía cable</li>
<li>Entra a través de la web poniendo 192.168.0.1 (en mi caso, en el tuyo averígualo con el comando <em>ifconfig</em> para Linux o <em>ipconfig</em> para Windows)</li>
<li>Ahora deshabilita el DHCP</li>
<li>Debemos cambiar la IP fija del AP (ahora es 192.168.0.1), la cual debe estar dentro del rango de máscara de red. En mi caso he puesto 192.168.0.99, por lo tanto para acceder al AP, a partir de salvar los datos y reiniciarlo, deberás acceder a él a través de dicha IP</li>
<li>Listo, conecta el cable de la LAN al AP y ya debería funcionar!</li>
</ul>
<p>Esta es una manera de aprovechar esos router WIFI que tenemos por ahí sin usar y que de repente nos sirven a la vez que nos ahorran unos Euros.</p>
<p>Información parcialmente sacada de <a href="http://kb.netgear.com/app/answers/detail/a_id/1080">http://kb.netgear.com/app/answers/detail/a_id/1080</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/usar-router-wifi-como-ap-access-point/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SK1: Corel Draw para Linux</title>
		<link>http://www.taula-consulting.com/sk1-corel-draw-para-linux/</link>
		<comments>http://www.taula-consulting.com/sk1-corel-draw-para-linux/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 15:30:40 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Diseño gráfico]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Corel Draw]]></category>
		<category><![CDATA[Illustrator]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=548</guid>
		<description><![CDATA[Si alguna vez trabajando con Linux y has necesitado usar el programa de diseño vectorial Corel Draw (e incluso Illustrator) y no has encontrado una alternativa convincente, yo recomendaría sK1 illustration program. La verdad es que las veces que lo [...]]]></description>
			<content:encoded><![CDATA[<p>Si alguna vez trabajando con Linux y has necesitado usar el programa de diseño vectorial <em>Corel Draw</em> (e incluso <em>Illustrator</em>) y no has encontrado una alternativa convincente, yo recomendaría <em>sK1 illustration program</em>. La verdad es que las veces que lo he usado me ha hecho un buen trabajo y me has sacado de más de un apuro.</p>
<p>Lo puedes descargar de <a href="http://sk1project.org/">sk1project.org</a> y en la mismas web incluye otras herramientas interesantes como el importador/exportador del formato CDR (<em>Corel Draw</em>) a otros.</p>
<p>Las instrucciones para la instalación en Ubuntu están en la sección de <em>Download</em> de la web. Las incluyo por si a caso.</p>
<p>Hay que instalar las siguiente librerías en orden:</p>
<ul>
<li>tcl-8.5</li>
<li>tk-8.5</li>
<li>python-imaging</li>
<li>python-imaging-tk</li>
<li>python-liblcms</li>
<li>python-reportlab</li>
</ul>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> tcl8.5 tk8.5 python-imaging python-imaging-tk python-liblcms python-reportlab</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Y finalmente instalamos el paquete .deb que no descargamos de <a href="http://sk1project.org/modules.php?name=Products&amp;product=sk1&amp;op=download">aquí</a>.</p>
<p>Para ello podemos hacer lo siguiente:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> sk1_0.9.1pre_rev730-<span style="color: #000000;">1</span>_i386.deb</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Y después para ejecutarlo escribimos <em>sk1</em> en el terminal y ya está. Listo para usar! </p>
<p style="text-align: center;"><img title="Sk1" src="http://sk1project.org/content/sk1/screenshots/screenshot04_tn.png" alt="Sk1" width="250" height="150" /> <img class="alignnone" title="Sk1" src="http://sk1project.org/content/sk1/screenshots/screenshot03_tn.png" alt="" width="250" height="150" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/sk1-corel-draw-para-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redimensionar y rotar imágenes con Gnome en Ubuntu</title>
		<link>http://www.taula-consulting.com/redimensionar-y-rotar-imagenes-con-gnome-en-ubuntu/</link>
		<comments>http://www.taula-consulting.com/redimensionar-y-rotar-imagenes-con-gnome-en-ubuntu/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 14:03:32 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[nautilus-image-converter]]></category>
		<category><![CDATA[redimensionar imágenes]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=540</guid>
		<description><![CDATA[Si bien es cierto que ya expliqué un poco cómo redimensionar imágenes por lotes (batch) con mogrify, no es menos cierto que es un poco engorroso si lo que queremos hacer es una edición rápida y simple de una sola [...]]]></description>
			<content:encoded><![CDATA[<p>Si bien es cierto que ya expliqué un poco <a href="http://www.taula-consulting.com/redimensionar-imagenes/">cómo redimensionar imágenes por lotes</a> (batch) con <strong>mogrify</strong>, no es menos cierto que es un poco engorroso si lo que queremos hacer es una edición rápida y simple de una sola imagen o unas pocas. Pues que puede haber más fácil que hacer click con el botón derecho sobre la imagen en cuestión un elegir la opción de redimensionar o retocar.</p>
<p>La solución está en paquete llamado <a href="http://www.bitron.ch/software/nautilus-image-converter.php">nautilus-image-converter</a> y se puede instalar fácilmente a través del gestor de paquetes <em>Synaptic</em> o a través del comando <em>apt-get</em>:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> nautilus-image-converter</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Ahora lo que debes hacer es reiniciar <em>Nautilus</em>, bien saliendo de la sesión y entrar de nuevo o a través del siguiente comando:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>nautilus -q; nautilus <span style="color: #000000; font-weight: bold;">&amp;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Y ya está listo para usar. Espero que te sea de ayuda!</p>
<p style="text-align: center;"><img class="size-full wp-image-544" title="resize_img" src="http://www.taula-consulting.com/wp-content/uploads/2009/12/resize_img.png" alt="resize_img" width="258" height="470" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/redimensionar-y-rotar-imagenes-con-gnome-en-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo hacer una imagen ISO en Linux</title>
		<link>http://www.taula-consulting.com/como-hacer-una-imagen-iso-en-linux/</link>
		<comments>http://www.taula-consulting.com/como-hacer-una-imagen-iso-en-linux/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 02:09:30 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[comandos]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=539</guid>
		<description><![CDATA[Lo primero que debemos tener en cuenta es de dónde van a provenir los datos, es decir, si nuestra intención es crear una imagen de un DVD, CD, o algún tipo de unidad física o si, por el contrario, lo [...]]]></description>
			<content:encoded><![CDATA[<p>Lo primero que debemos tener en cuenta es de dónde van a provenir los datos, es decir, si nuestra intención es crear una imagen de un DVD, CD, o algún tipo de unidad física o si, por el contrario, lo que deseamos es crear un imagen ISO desde una carpeta. Ninguno de los procedimientos es difícil sólo hay que usar unos comandos y listo.</p>
<p>La primera opción se lleva a cabo con el comando <strong>dd</strong>, que significa <strong>disk dump</strong>, lo que en castellano viene a decir un volcado de disco. En definitiva, este potente comando nos hace una copia exacta byte por byte de los datos. Normalmente, las unidades de disco serán las mismas que las que indico en los ejemplos de abajo, pero asegúrate.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li><span style="color: #c20cb9; font-weight: bold;">dd</span> <span style="color: #000000; font-weight: bold;">if</span>=<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>dvd <span style="color: #007800;">of</span>=dvd.iso <span style="color: #666666; font-style: italic;"># para un dvd</span></li><li><span style="color: #c20cb9; font-weight: bold;">dd</span> <span style="color: #000000; font-weight: bold;">if</span>=<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>cdrom <span style="color: #007800;">of</span>=cd.iso <span style="color: #666666; font-style: italic;"># para un cdrom</span></li><li><span style="color: #c20cb9; font-weight: bold;">dd</span> <span style="color: #000000; font-weight: bold;">if</span>=<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>scd0 <span style="color: #007800;">of</span>=cd.iso <span style="color: #666666; font-style: italic;"># para un cdrom scsi </li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Ahora bien, para crear una imagen ISO desde un directorio, usaremos el comando <strong>mkisofs</strong> de la siguiente manera:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Bash"><div class="devcodeoverflow"><ol><li>mkisofs <span style="color: #660033;">-o</span> <span style="color: #000000; font-weight: bold;">/</span>ruta<span style="color: #000000; font-weight: bold;">/</span>a<span style="color: #000000; font-weight: bold;">/</span>tu<span style="color: #000000; font-weight: bold;">/</span>cd.iso <span style="color: #000000; font-weight: bold;">/</span>tu<span style="color: #000000; font-weight: bold;">/</span>directorio<span style="color: #000000; font-weight: bold;">/</span>de<span style="color: #000000; font-weight: bold;">/</span>origen</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>De este modo todo el contenido de dicho directorio se guardará dentro de la ISO con el nombre que le hayas dado, en este caso, cd.iso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/como-hacer-una-imagen-iso-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX autocomplete en CakePHP 1.2</title>
		<link>http://www.taula-consulting.com/ajax-autocomplete-en-cakephp-1-2/</link>
		<comments>http://www.taula-consulting.com/ajax-autocomplete-en-cakephp-1-2/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 07:23:17 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación web]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=533</guid>
		<description><![CDATA[CakePHP es un extraordinario framework para programar aplicaciones web en PHP de una manera rápida y segura. Una, de las muchas, características que tiene es la de proporcionar el uso sencillo de AJAX.
A continuación vamos a explicar el uso de [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP es un extraordinario framework para programar aplicaciones web en PHP de una manera rápida y segura. Una, de las muchas, características que tiene es la de proporcionar el uso sencillo de AJAX.</p>
<p>A continuación vamos a explicar el uso de la función <em>autocomplete</em> del <em>helper</em> AJAX.</p>
<p>Antes de todo pásate por el <a href="http://book.cakephp.org/view/632/autoComplete">manual</a> de CakePHP para ver el ejemplo que dan, pero hay ciertos matices que no explican.</p>
<p>Primero se deben incluir las librerías Javascript de <a href="http://prototypejs.org/">Prototype</a> y <a href="http://script.aculo.us/">Script.aculo.us</a>, además de las librerías de <em>Script.aculo.us</em> llamadas <em>effects</em> y  <em>controls</em>. CakePHP usa el <em>autocomplete</em> que incluye <em>Script.aculo.us</em>, así que esto no es más que un envoltorio o <em>wrapping</em> para facilitarnos las cosas, aunque algunos prefieren poner el código Javascript directamente.</p>
<p>Se hace de la siguiente manera, poniendo en el <em>layout</em> de tu aplicación:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$javascript</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'prototype'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$javascript</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'scripts'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$javascript</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'scriptaculous'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$javascript</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'effects'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$javascript</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'controls'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Ten en cuenta que las librerías las he puesto en el directorio <em>app/webroot/js</em>. Si quieres poner las librerías en algún subdirectorio debes especificar dicha ruta, obviamente.</p>
<p>Bien, ahora en la vista dónde quieras poner la caja de texto (sólo es una caja de texto, sin <em>label</em>) <em>autocomplete</em> y dentro de un formulario, escribe el siguiente código:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #990000;">echo</span> <span style="color: #0000ff;">$ajax</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">autoComplete</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'data_name'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> </li><li> <span style="color: #0000ff;">'controller'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'mycontroller'</span><span style="color: #339933;">,</span> </li><li> <span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'myaction'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span></li><li> <span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'myid'</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'maxlength'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'100'</span><span style="color: #009900;">&#41;</span></li><li> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>El primer parámetro es la id que recibirá el array data cuando mandemos los datos vía AJAX. En nuestro ejemplo quedaría de las siguiente manera: <em>$this-&gt;data['mycontroller']['data_name']</em></p>
<p>El segundo parámetro es la url dónde se hace la llamada AJAX, es decir, allí dónde se encuentre la función. En el ejemplo lo he especificado en un array indicando el controlador y su acción porque queda más claro, aunque también es posible poner una cadena fija. Por ejemplo, <em>&#8216;mycontroller/myaction&#8217;</em>.</p>
<p>Finalmente, el tercer parámetro son las opciones, que en teoría deberían ser la que se indican <a href="http://book.cakephp.org/view/209/AjaxHelper-Options">aquí</a>, pero <strong>ojo!</strong>, no es así. Hay muchas de esas opciones que no funcionan, entre ellas la llamada <strong>with</strong>, la cual permite enviar más parámetros a la acción AJAX indicada, ya que por defecto sólo se envían la cadenas introducidas en la caja de texto del <em>autocomplete</em>. En el ejemplo he puesto un par de parámetros como el <em>id</em> y <em>maxlength</em>, para ver más claramente la variedad de parámetros que se le pueden pasar.</p>
<p>Bien, ahora toca definir en el controlador <em>mycontroller</em> la acción <em>myaction</em>:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #000000; font-weight: bold;">class</span> MycontrollerController <span style="color: #000000; font-weight: bold;">extends</span> AppController <span style="color: #009900;">&#123;</span> </li><li> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$name</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'Mycontroller'</span><span style="color: #339933;">;</span> </li><li>&nbsp;</li><li> <span style="color: #000000; font-weight: bold;">function</span> myaction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #666666; font-style: italic;">//Buscamos en la base de datos</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;	<span style="color: #0000ff;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Mycontroller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'list'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;		<span style="color: #0000ff;">'conditions'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;			<span style="color: #0000ff;">'nombre LIKE'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Mycontroller'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>data_name<span style="color: #0000ff;">']). '</span><span style="color: #339933;">%</span><span style="color: #0000ff;">',</span></li><li><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;		'</span>order<span style="color: #0000ff;">' =&gt; '</span>nombre<span style="color: #0000ff;">')</span></li><li><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;	);</span></li><li><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;set('</span>resultado<span style="color: #0000ff;">', $resultado);</span></li><li><span style="color: #0000ff;"> }</span></li><li><span style="color: #0000ff;"></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Esta acción es llamada cuando se escribe algo en la caja de texto. Se reciben los datos a través de <em>$this-&gt;data['Mycontroller'][data_name']</em> y lo que queremos hacer es obtener los datos que coincidan con los <em>nombres</em> que tenoms en la base de datos. Para ello hacemos un <em>find</em> en forma de lista sencilla y lo que nos devuelva la búsqueda lo pasamos a la vista para formatear los datos.</p>
<p>La vista, cuyo fichero se ha de llamar <em>myaction.ctp</em>, queda de la siguiente manera:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #000000; font-weight: bold;">&lt;?php</span></li><li> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$resultado</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span></li><li><span style="color: #000000; font-weight: bold;">?&gt;</span></li><li> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$resultado</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$id</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$nombre</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;<span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #0000ff;">$id</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;</span>&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #0000ff;">$nombre</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span></li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">&lt;?php</span> endforeach<span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></li><li> <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></li><li><span style="color: #000000; font-weight: bold;">&lt;?php</span> </li><li> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">?&gt;</span> </li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Lo único que hacemos es crear una lista con un bucle y ya está todo listo a falta del <em>CSS</em> para acondicionar la capa que genera el <em>autocomplete</em>. Por ejemplo, puedes usar algo parecido a esto:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="CSS"><div class="devcodeoverflow"><ol><li>div<span style="color: #6666ff;">.auto_complete</span> <span style="color: #00AA00;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#888</span><span style="color: #00AA00;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span><span style="color: #00AA00;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span><span style="color: #00AA00;">;</span></li><li><span style="color: #00AA00;">&#125;</span> </li><li>li<span style="color: #6666ff;">.selected</span><span style="color: #00AA00;">&#123;</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ffb</span><span style="color: #00AA00;">;</span> </li><li><span style="color: #00AA00;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Una vez hecho todo esto ya se han realizado todos los pasos necesarios. Esto no es más que un pequeño ejemplo para ver cómo se hace, pero la estructura básica de cómo se hace e, incluso, cómo se desarrolla en AJAX en CakePHP se puede apreciar.</p>
<p>Ya lo he comentado antes, y espero que le pueda servir a alguien, ya que a mi me llevó cierto tiempo ver que no funcionan ciertos parámetros con el <em>autocomple</em> tal y como sí lo hace con el <em>observeField</em>. En el <em>Trac</em> nos dice que <a href="https://trac.cakephp.org/ticket/2064">este bug</a> está solucionado, pero a día de hoy sigue sin funcionar, ya que genera código correctamente pero no funciona el Javascript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/ajax-autocomplete-en-cakephp-1-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Chuletas para Linux</title>
		<link>http://www.taula-consulting.com/chuletas-para-linux/</link>
		<comments>http://www.taula-consulting.com/chuletas-para-linux/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 06:10:35 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[referencias]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=531</guid>
		<description><![CDATA[Para todos aquellos que usamos Linux y su famoso bash, siempre hay algún comando que se nos puede olvidar su funcionamiento exacto. La solución es sencilla, tener una referencia o chuleta a mano que nos sirva para refrescar la memoria [...]]]></description>
			<content:encoded><![CDATA[<p>Para todos aquellos que usamos Linux y su famoso <em>bash</em>, siempre hay algún comando que se nos puede olvidar su funcionamiento exacto. La solución es sencilla, tener una referencia o chuleta a mano que nos sirva para refrescar la memoria rápidamente sin perder tiempo entre libros o búsquedas por internet.</p>
<p>Existen infinidad de estas chuletas y ya hay gente que ha recopilado algunas de ellas, así que miráis en <a href="http://www.techieblogger.com/2009/10/linux-unix-ubuntu-solaris-cheat-sheets.html">este artículo</a> encontraréis 27 interesantes enlaces. En dichas referencias encontramos entre comandos para <em>bash</em>, seguridad Linux, administración Linux , Gnome/KDE, sed/awk/vim y códigos específicos para ciertas distribuciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/chuletas-para-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Layout Error 404 en CakePHP</title>
		<link>http://www.taula-consulting.com/layout-error-404-en-cakephp/</link>
		<comments>http://www.taula-consulting.com/layout-error-404-en-cakephp/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 05:40:35 +0000</pubDate>
		<dc:creator>Bernardino</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programación web]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.taula-consulting.com/?p=524</guid>
		<description><![CDATA[En CakePHP cuando queremos crear un layout específico para mostrar errores de una manera más ordenada y separada de nuestro layout por defecto debemos crear un fichero error.php dentro del directorio /app.
El código que debe contener error.php es el siguiente:
class [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://cakephp.org/">CakePHP</a> cuando queremos crear un <em>layout</em> específico para mostrar errores de una manera más ordenada y separada de nuestro <em>layout</em> por defecto debemos crear un fichero <strong>error.php</strong> dentro del directorio <strong>/app</strong>.</p>
<p>El código que debe contener <strong>error.php</strong> es el siguiente:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP (brief)"><div class="devcodeoverflow"><ol><li><span style="color: #000000; font-weight: bold;">class</span> AppError <span style="color: #000000; font-weight: bold;">extends</span> ErrorHandler <span style="color: #009900;">&#123;</span></li><li>&nbsp;</li><li> <span style="color: #000000; font-weight: bold;">function</span> error404<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$params</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;	<span style="color: #0000ff;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">layout</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;error&quot;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent<span style="color: #339933;">::</span><span style="color: #004000;">error404</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li><span style="color: #009900;">&#125;</span> </li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>A continuación debemos crear dentro del directorio <strong>/app/view/layouts</strong> el fichero <strong>error.ctp</strong>. </p>
<p>Eso es todo, así de sencillo. Ah! Eso sí, está claro que en dicho fichero debemos crear el <em>layout</em> deseado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taula-consulting.com/layout-error-404-en-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
