<?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"?><!-- generator="Joomla! 1.5 - Open Source Content Management" --><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
	<channel>
		<title>Portada</title>
		<description>vifito.eu - portal de desenvolvemento web en código aberto</description>
		<link>http://vifito.eu/gl/component/content/frontpage.html</link>
		<lastBuildDate>Thu, 06 Sep 2012 00:22:15 +0000</lastBuildDate>
		<generator>Joomla! 1.5 - Open Source Content Management</generator>
		<language>gl-es</language>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vifito/zSts" /><feedburner:info uri="vifito/zsts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
			<title>Poñer permisos nun directorio web de traballo</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/5cII4u3EqoI/78-poner-permisos-nun-directorio-web-de-traballo.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/recursos/22-bash-scripting/78-poner-permisos-nun-directorio-web-de-traballo.html</guid>
			<description><![CDATA[<p>Chuleta para establecer os permisos a un directorio web de traballo nunha instalación LAMP. O sistema de ficheiros ten que soporta ACL.</p>
<p> </p>
<div class="rj_insertcode">
<div style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: none repeat scroll 0% 0% #f8f8f8;" class="rj_insertcode_bash">
<table style="border-collapse: collapse; width: 100%;" class="bash">
<tbody>
<tr class="li1">
<td style="width: 1px; background: none repeat scroll 0% 0% #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: right;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1
2
3
4
5
6
7
</pre>
</td>
<td style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #007800;">DIR</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>directory</span>
<span style="vertical-align:top"><span style="color: #c20cb9; font-weight: bold;">sudo</span> setfacl <span style="color: #660033;">-R</span> <span style="color: #660033;">-m</span> u:www-data:rwx <span style="color: #660033;">-m</span> u:<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">whoami</span><span style="color: #000000; font-weight: bold;">`</span>:rwx <span style="color: #007800;">$DIR</span></span>
<span style="vertical-align:top"><span style="color: #c20cb9; font-weight: bold;">sudo</span> setfacl <span style="color: #660033;">-dR</span> <span style="color: #660033;">-m</span> u:www-data:rwx <span style="color: #660033;">-m</span> u:<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">whoami</span><span style="color: #000000; font-weight: bold;">`</span>:rwx <span style="color: #007800;">$DIR</span></span>
<span style="vertical-align:top">getfacl <span style="color: #007800;">$DIR</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"> </span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p> </p>
<br />
<p> </p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Wed, 11 Apr 2012 19:34:59 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/recursos/22-bash-scripting/78-poner-permisos-nun-directorio-web-de-traballo.html</feedburner:origLink></item>
		<item>
			<title>Crea un proxecto HTML5 en 15 segundos</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/C_ZkZR4ChI4/77-crea-un-proxecto-html5-en-15-segundos.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/component/content/article/14-html5/77-crea-un-proxecto-html5-en-15-segundos.html</guid>
			<description><![CDATA[<p><a target="_blank" title="http://initializr.com" href="http://initializr.com"><img alt="HTML5_Logo" width="100" src="http://vifito.eu/images/stories/HTML5_Logo.png" style="float: left;" />Initializr</a> é un asistente que facilita a creación de plantillas HTML5. O asistente permite escoller se a plantilla incluirá contido, que librerías de javascript incluir (jQuery, modernizr, html5shiv, ...), ficheiros de configuración do lado servidor (.htaccess, web.config ou nginx.conf), si se inclúe código de seguemento (google analytics),...</p>
<p>Despois de escoller as nosas preferencias e premer en Download, descargarase nun zip unha plantilla moi útil para comezar a traballar cun código HTML5. O código está moi limpo e coidado, e os engadidos coma o ficheiro .htaccess ten en conta moitos aspectos que mellorarán o comportamento do servidor, só basta botarlle unha ollada:</p>
<ul>
<li><a title="https://github.com/paulirish/html5-boilerplate-server-configs" href="https://github.com/paulirish/html5-boilerplate-server-configs">HTML5 Boilerplate Server Configs</a> </li>
</ul>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Tue, 21 Jun 2011 19:48:49 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/component/content/article/14-html5/77-crea-un-proxecto-html5-en-15-segundos.html</feedburner:origLink></item>
		<item>
			<title>Seminario técnico sobre Web Services</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/GpcotJxAAo4/76-seminario-tecnico-sobre-web-services.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/component/content/article/16-xeral/76-seminario-tecnico-sobre-web-services.html</guid>
			<description><![CDATA[<p>Organizado polo Centro de Novas Tecnoloxías de Galicia (CNTG) da Consellería de Traballo e Benestar en colaboración con Oracle, o vindeiro martes día 7 de xuño, de 10:00 a 13.30 horas, terá lugar nas instalacións do CNTG un seminario técnico sobre web services.</p>
<p>O seminario, de carácter práctico e dirixido a un perfil de profesional técnico interesado en contidos de interoperabilidade e intercambio de datos entre aplicacións, está orientado a mostrar o tipo de aplicacións que se poden desenvolver utilizando servizos web. O relator do evento será D.Daniel Gómez Vendrell, técnico consultor de Oracle especializado na área de Java.</p>
<p>Axenda da xornada e contidos a desenvolver:</p>
<ol>
<li>Que é un web service </li>
<li>Exemplos de usos de web services </li>
<li>Demostración da construción dunha aplicación baseada en web services </li>
</ol>
<p> </p>
<p>O acceso, previa inscrición a realizar en liña a través do portal web do CNTG é de balde e condicionado ao aforo do local.</p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Wed, 11 May 2011 22:59:03 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/component/content/article/16-xeral/76-seminario-tecnico-sobre-web-services.html</feedburner:origLink></item>
		<item>
			<title>Lembrando os clásicos, overlib</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/npoYGewpre4/75-lembrando-os-clasicos-overlib.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/codigo-fonte/1-javascript/75-lembrando-os-clasicos-overlib.html</guid>
			<description><![CDATA[<p><img alt="http://www.bosrup.com/web/overlib/cmn/logo.gif" src="http://www.bosrup.com/web/overlib/cmn/logo.gif" style="float: left; margin: 5px;" /><a target="_blank" title="http://www.bosrup.com/web/overlib/" href="http://www.bosrup.com/web/overlib/">overlib</a> é unha biblioteca javascript que <del cite="inda permite" datetime="2011-05-10T00:28:30">permitía</del> permite crear o típico efecto de "tooltip" dende hai anos. A aparición de framework javascript coma jQuery, prototype, dojo, ... facilitaron a proliferación dunha morea de alternativas máis atractivas e que siguen deseños máis accesibles e menos intrusivos.</p>
<p> </p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Mon, 09 May 2011 22:22:47 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/codigo-fonte/1-javascript/75-lembrando-os-clasicos-overlib.html</feedburner:origLink></item>
		<item>
			<title>IBM lanza Maqetta, a súa ferramenta HTML5 de código aberto en resposta a Silverlight</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/b5pYSmarcos/72-ibm-lanza-maqetta-a-sua-ferramenta-html5-de-codigo-aberto-en-resposta-a-silverlight.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/component/content/article/14-html5/72-ibm-lanza-maqetta-a-sua-ferramenta-html5-de-codigo-aberto-en-resposta-a-silverlight.html</guid>
			<description><![CDATA[<p style="text-align: justify;"><img style="margin: 5px; float: right;" alt="Maqetta_Logo_250x76" src="http://vifito.eu/images/stories/Maqetta_Logo_250x76.png" height="76" width="250" />IBM vén de anunciar a súa ferramenta de edición visual con HTML5, <a target="_blank" title="http://maqetta.org/" href="http://maqetta.org/">Maqetta</a>, para desenvolver aplicacións web ricas, baixo licenza open source e cedida á  <a target="_blank" title="http://dojofoundation.org/" href="http://dojofoundation.org/">Dojo Foundation</a>. <a title="http://maqetta.org/" href="http://maqetta.org/">Maqetta</a> preséntase coma un proxecto de código aberto para ter unha ferramenta, empregando HTML5 con soporte drag &amp; drop, para o desenvolvemento de interfaces web, tanto para contornos de escritorio como para móbiles.</p>
<p style="text-align: justify;">Ao estar creada seguindo os estándares da web o aplicativo traballará nos navegadores sen a necesidades de complementos adicionais. O código fonte do aplicativo <a title="http://maqetta.org/downloads/" href="http://maqetta.org/downloads/">pódese descargar</a> e instalar en servidores propios ou realizar «customizacións» adicionais.</p>
<p style="text-align: justify;">Rod Smith, vicepresidente de tecnoloxías emerxentes de IBM dixo no seu lanzamento:</p>
<blockquote>
<p style="text-align: justify;"><span class="open-quote" style="font-size: 18pt;"></span><span style="font-family: georgia,palatino;"><em>O problema en poucas palabras é que o ecosistema de Ajax quédase curto en canto a ferramentas coma Adobe Flash, Microsoft Silverlight ou outras similares. Tivemos ata 120 empresas na OpenAjax Alliance e a queixa máis frecuente era a interoperabilidade dos widgets e a necesidade de ferramentas visuais, polo que se decidiu facer fronte a todo iso. A nosa idea foi facer todo na web</em></span></p>
</blockquote>
<p style="text-align: justify;">Estas son algunhas das características de Maqetta:</p>
<div style="text-align: justify;">
<ul>
<li>Editor visual da páxina</li>
<li>Interface Drag/Drop </li>
<li>Deep Support para CSS </li>
<li>Mecanismo para a organización dun prototipo de interface de usuario e dentro de “estados de aplicación”, un sistema que permitirá un deseño de interface para definir a interactividade sen necesidade de programación. </li>
<li>Review basada en web Wire.framing, característica que permite aos deseñadores crear propostas de interface de usuario. </li>
<li>Editor de temas para personalizar o estilo visual da colección de widgets </li>
</ul>
</div>
<p> </p>
<p style="text-align: center;"><img alt="maqetta" src="http://vifito.eu/images/stories/maqetta.png" height="443" width="588" /></p>
<p>OLLO: Maqetta está nunha fase inicial. IBM donou a ferramenta á Fundación Dojo, a cal alberga varias iniciativas de código aberto.</p>
<p>Fonte: <a title="http://bitelia.com/2011/04/ibm-lanza-maqetta-su-herramienta-html5-de-codigo-abierto-en-respuesta-a-silverlight" href="http://bitelia.com/2011/04/ibm-lanza-maqetta-su-herramienta-html5-de-codigo-abierto-en-respuesta-a-silverlight">Bitelia</a></p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Tue, 12 Apr 2011 22:18:00 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/component/content/article/14-html5/72-ibm-lanza-maqetta-a-sua-ferramenta-html5-de-codigo-aberto-en-resposta-a-silverlight.html</feedburner:origLink></item>
		<item>
			<title>Introdución a Spring Roo</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/iwRZMBCFTeM/71-introducion-a-spring-roo.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/codigo-fonte/17-java/71-introducion-a-spring-roo.html</guid>
			<description><![CDATA[<div style="width:425px" id="__ss_2805183"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/benalexau/introduction-to-spring-roo-100-2805183" title="Introdución a Spring Roo 1.0.0">Introducián a Spring Roo 1.0.0</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/2805183" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Tue, 12 Apr 2011 21:36:41 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/codigo-fonte/17-java/71-introducion-a-spring-roo.html</feedburner:origLink></item>
		<item>
			<title>Desmontar todos os puntos de montaxe CIFS</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/oeqP5TH5dU8/70-desmontar-todos-os-puntos-de-montaxe-cifs.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/recursos/22-bash-scripting/70-desmontar-todos-os-puntos-de-montaxe-cifs.html</guid>
			<description><![CDATA[<p>Script en <strong>bash </strong>para desmontar todos os puntos de montaxe CIFS:</p>
<div class="rj_insertcode">
<div class="rj_insertcode_bash" style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: none repeat scroll 0% 0% #f8f8f8;"></div>
</div>
<table class="bash" style="border-collapse: collapse; width: 100%;">
<tbody>
<tr class="li1">
<td style="width: 1px; background: none repeat scroll 0% 0% #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: right;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1
2
3
4
5
6
</pre>
</td>
<td style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>mounts <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{if($3 == "cifs"){print $2}}'</span><span style="color: #000000; font-weight: bold;">`</span></span>
<span style="vertical-align:top"><span style="color: #000000; font-weight: bold;">do</span></span>
<span style="vertical-align:top">    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">"Unmounting <span style="color: #007800;">$i</span> ..."</span></span>
<span style="vertical-align:top">    <span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: #007800;">$i</span></span>
<span style="vertical-align:top">    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">" done."</span></span>
<span style="vertical-align:top"><span style="color: #000000; font-weight: bold;">done</span></span></pre>
</td>
</tr>
</tbody>
</table>
<div class="rj_insertcode">
<div class="rj_insertcode_bash" style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: none repeat scroll 0% 0% #f8f8f8;">
<table class="bash" style="border-collapse: collapse; width: 100%;">
</table>
</div>
</div>
<br />
<p> </p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Thu, 07 Apr 2011 09:58:43 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/recursos/22-bash-scripting/70-desmontar-todos-os-puntos-de-montaxe-cifs.html</feedburner:origLink></item>
		<item>
			<title>Eliminar os exploits r57 e c99 en servidores LAMP</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/4fvn0bJdixI/69-eliminar-os-exploits-r57-e-c99-en-servidores-lamp.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/recursos/8-php/69-eliminar-os-exploits-r57-e-c99-en-servidores-lamp.html</guid>
			<description><![CDATA[<p style="text-align: justify;">Examinando os logs de apache atopo uns erros 404 a un ficheiro «r57.php». Polo visto este é un coñecido script PHP ruso que compromete o servidor web permitindo o upload de ficheiros, descarga de ficheiros, spam relay, control das SQL, ...</p>
<p style="text-align: justify;">Para eliminar este shellScript dun servidor infectado pódese executar os seguintes comandos:</p>
<div class="rj_insertcode">
<div style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: #f8f8f8;" class="rj_insertcode_bash">
<table style="border-collapse: collapse; width: 100%;" class="bash">
<tbody>
<tr class="li1">
<td style="width: 1px; background: #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: right;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1
2
3
</pre>
</td>
<td style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">"*.php"</span> <span style="color: #660033;">-type</span> f <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> \</span>
<span style="vertical-align:top">       <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> r57 <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">uniq</span> <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-u</span> <span style="color: #000000; font-weight: bold;">|</span> \</span>
<span style="vertical-align:top">       <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span><span style="color: #ff0000;">":"</span> <span style="color: #660033;">-f1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print "rm -rf " $2}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">uniq</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>Tamén se pode agochar baixo extensión gif ou txt (entre outras). Outro shellScript coñecido é c99, podendo eliminalo co seguinte comando:</p>
<div style="text-align: justify;">
<div class="rj_insertcode">
<div style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: #f8f8f8;" class="rj_insertcode_bash">
<table style="border-collapse: collapse; width: 100%;" class="bash">
<tbody>
<tr class="li1">
<td style="width: 1px; background: #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: right;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1
2
3
</pre>
</td>
<td style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">"*.php"</span> <span style="color: #660033;">-type</span> f <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> \</span>
<span style="vertical-align:top">       <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> c99 <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">uniq</span> <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-u</span> <span style="color: #000000; font-weight: bold;">|</span> \</span>
<span style="vertical-align:top">       <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span><span style="color: #ff0000;">":"</span> <span style="color: #660033;">-f1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print "rm -rf " $2}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">uniq</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p> </p>
</div>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Sat, 02 Apr 2011 00:35:57 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/recursos/8-php/69-eliminar-os-exploits-r57-e-c99-en-servidores-lamp.html</feedburner:origLink></item>
		<item>
			<title>Web Developer Tools,  caixa de ferramentas para o desenvolvemento web</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/_zVRp0uD78Q/68-web-developer-tools-caixa-de-ferramentas-para-o-desenvolvemento-web.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/component/content/article/16-xeral/68-web-developer-tools-caixa-de-ferramentas-para-o-desenvolvemento-web.html</guid>
			<description><![CDATA[<p style="text-align: justify;"><a href="http://gnome-look.org/content/show.php/WDT+-+Web+Developer+Tools?content=129726" title="http://gnome-look.org/content/show.php/WDT+-+Web+Developer+Tools?content=129726" target="_blank"><img style="float: right; margin: 10px;" src="http://vifito.eu/images/stories/wdt.png" width="48" height="48" alt="wdt" /></a>Está dispoñible a versión 2.6.6 de WDT (<a title="http://gnome-look.org/content/show.php/WDT+-+Web+Developer+Tools?content=129726" href="http://gnome-look.org/content/show.php/WDT+-+Web+Developer+Tools?content=129726">Web Developer Tools</a>), unha toolbox de aplicacións e utilidades para axilizar o desenvolvemento web. OLLO! non confundir coa toolbar para firefox "<a href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/" title="https://addons.mozilla.org/en-US/firefox/addon/web-developer/">Web Developer Toolbar</a>", outra ferramenta indispensable.</p>
<p>Entre outras ferramentas inclúe:</p>
<ul>
<li>Task Manager</li>
<li>Dean Edwards Javascript Compressor</li>
<li>JSMin</li>
<li>Css Minifier</li>
<li>Css Type Set Generator</li>
<li>Css Button Generator</li>
<li>Cool Button Generator</li>
<li>RGB / HEX Color chart</li>
<li>VTE Terminal</li>
<li>WYSIWYG HTML 5 Editor</li>
<li>Website Analyzer (Yslow+PageSpeed)</li>
<li>3 x online W3C validators</li>
<li>ScriptBook</li>
</ul>
<p> </p>
]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Wed, 30 Mar 2011 19:45:53 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/component/content/article/16-xeral/68-web-developer-tools-caixa-de-ferramentas-para-o-desenvolvemento-web.html</feedburner:origLink></item>
		<item>
			<title>CCKs para Joomla! 1.5</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/Kfnc0fwq_Vs/67-ccks-para-joomla-15.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/xestion-de-contidos/7-joomla/67-ccks-para-joomla-15.html</guid>
			<description><![CDATA[<div style="width: 425px;" id="__ss_5539735"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/jleomiranda/developing-components-using-joomla-ccks-5539735" title="Developing components using Joomla CCKs">Developing components using Joomla CCKs</a></strong> 
<object data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=developing-components-using-joomla-ccks-by-leo-miranda-101023145950-phpapp02&amp;stripped_title=developing-components-using-joomla-ccks-5539735&amp;userName=jleomiranda" type="application/x-shockwave-flash" height="355" width="425">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=developing-components-using-joomla-ccks-by-leo-miranda-101023145950-phpapp02&amp;stripped_title=developing-components-using-joomla-ccks-5539735&amp;userName=jleomiranda" />
</object>
<div style="padding:5px 0 12px">Ver máis <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/jleomiranda">Leo Miranda</a></div>
</div>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Tue, 29 Mar 2011 22:27:05 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/xestion-de-contidos/7-joomla/67-ccks-para-joomla-15.html</feedburner:origLink></item>
		<item>
			<title>OperaWatir, un novo membro na familia Watir</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/MO6oINhcELc/65-operawatir-un-novo-membro-na-familia-watir.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/ferramentas/3-testing/65-operawatir-un-novo-membro-na-familia-watir.html</guid>
			<description><![CDATA[<p style="text-align: justify;"><a target="_blank" title="http://wiki.openqa.org/display/WTR/Tutorial" href="http://wiki.openqa.org/display/WTR/Tutorial">Watir</a> (pronunciado water, é un acrónimo para "<strong>W</strong>eb <strong>A</strong>pplication <strong>T</strong>est<strong>i</strong>ng en <strong>R</strong>uby") é un toolkit para automatización de interaccións cos navegadores web (FF, Chrome, Opera, IE) dos mesmos creadores que <a target="_self" title="http://seleniumhq.org/" href="http://seleniumhq.org/">Selenium</a>, (<a target="_blank" title="http://openqa.org/" href="http://openqa.org/">openqa</a>).</p>
<p style="text-align: justify;"><a target="_self" title="http://www.opera.com/developer/tools/operawatir/" href="http://www.opera.com/developer/tools/operawatir/">OperaWatir</a> é un novo membro da familia de toolkits de testing Watir. Combinado cun framework de testing conducido por comportamento (behavior-driven testing framework) tal que <a target="_self" title="http://rspec.info/" href="http://rspec.info/">RSpec</a>, é posible testear as túas aplicacións web nos actuais navegadores, emulando o comportamento do usuario.</p>
<p style="text-align: justify;">Para instalar OperaWatir é necesario instalar primeiro <a target="_self" title="http://jruby.org/" href="http://jruby.org/">jRuby</a> e despois executar na consola:</p>
<div class="rj_insertcode">
<div class="rj_insertcode_bash" style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: none repeat scroll 0% 0% #f8f8f8;">
<table class="bash" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="width: 1px; background: none repeat scroll 0% 0% #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br /></pre>
</td>
<td style="margin: 0pt; background: none repeat scroll 0% 0% transparent; vertical-align: top; padding: 0px 4px; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top">jruby <span style="color: #660033;">-S</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> operawatir</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p> </p>
<p>Para ver todos os comandos:</p>
<div class="rj_insertcode">
<div class="rj_insertcode_bash" style="overflow: auto; width: 100%; height: auto; border: 1px solid #054b6e; background: none repeat scroll 0% 0% #f8f8f8;">
<table class="bash" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="width: 1px; background: none repeat scroll 0% 0% #f0f0f0; vertical-align: top; color: #676f73; border-right: 1px dotted #dddddd; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br /></pre>
</td>
<td style="margin: 0pt; background: none repeat scroll 0% 0% transparent; vertical-align: top; padding: 0px 4px; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top">operawatir <span style="color: #660033;">--help</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: center;"> </p>
<p style="text-align: justify;">Os programadores Ruby poden comezar a implementar os seus test botándolle unha ollada ao seguinte <a target="_blank" title="http://dev.opera.com/articles/view/opera-watir-tutorial/" href="http://dev.opera.com/articles/view/opera-watir-tutorial/">tutorial</a>.</p>]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Mon, 21 Feb 2011 23:58:03 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/ferramentas/3-testing/65-operawatir-un-novo-membro-na-familia-watir.html</feedburner:origLink></item>
		<item>
			<title>Vifito_Filter_Unhyphenate, un filtro de ZF para arrays</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/OQxUVS9N6iI/63-vifitofilterunhyphenate-un-filtro-de-zf-para-arrays.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/codigo-fonte/2-php/63-vifitofilterunhyphenate-un-filtro-de-zf-para-arrays.html</guid>
			<description><![CDATA[<p style="text-align: justify;">A potencia que ofrecen os arrays en PHP non está dispoñible en Javascript. En ocasións vémonos obrigados a facer verdadeiros quebracabezas a hora de transportar datos entre cliente e servidor se traballamos con <em>formularios dinámicos</em>. Co termo "<em>formularios dinámicos</em>" refírome a ese tipo de formularios que poden variar o seu número de campos no lado cliente antes de que sexan enviados. Por exemplo unha situación típica son as liñas dunha factura, os ítems dun pedido, ...</p>
<p>Un exemplo aclarará o que pretendo dicir. Partimos do seguinte formulario:</p>
<br />
<div class="rj_insertcode">
<div class="rj_insertcode_html4strict" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; overflow: auto; width: 100%; height: auto;"></div>
</div>
<table class="html4strict" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br />2<br />3<br />4<br />5<br /></pre>
</td>
<td style="margin: 0pt; padding: 0px 4px; background: transparent none repeat scroll 0% 0%; vertical-align: top; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-1"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-2"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-3"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-4"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top">...</span></pre>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: justify;">Estes campos non presentan ningún problema para ser procesados dende PHP (os datos estarán dispoñibles no array $_REQUEST[nome][]), ou para traballar con identificadores javascript (document.getElementById('nome-1') para recuperar un elemento en concreto).</p>
<p style="text-align: justify;">A complicación aparece cando queremos ter unha identificación a nivel de fila tanto no lado cliente como no servidor, entón o código debería incluir no índice do array o identificador correspondente:</p>
<br />
<div class="rj_insertcode">
<div class="rj_insertcode_html4strict" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; overflow: auto; width: 100%; height: auto;"></div>
</div>
<table class="html4strict" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br />2<br />3<br />4<br />5<br /></pre>
</td>
<td style="margin: 0pt; padding: 0px 4px; background: transparent none repeat scroll 0% 0%; vertical-align: top; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-1"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[1]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-7"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[7]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-12"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[12]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text"</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome-40"</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"nome[40]"</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">""</span> <span style="color: #66cc66;">/</span>&gt;</span></span><br /><span style="vertical-align:top">...</span></pre>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">O funcionamento seguiría sendo válido e funcional, pero estaríamos tendo unha sintase duplicada, tendo en conta que con id="nome-1" é o mesmo que name="nome[1]". Ademáis complicaríase o código javascript na xeración de campos dinámica, xa tería que ter en conta as dúas situacións.</p>
<p style="text-align: justify;">Vexamos agora outro código que almacena información que pode ser enviada ao servidor pero que non emprega formularios:</p>
<br />
<div class="rj_insertcode">
<div class="rj_insertcode_html4strict" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; overflow: auto; width: 100%; height: auto;"></div>
</div>
<table class="html4strict" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br />2<br />3<br />4<br />5<br />6<br /></pre>
</td>
<td style="margin: 0pt; padding: 0px 4px; background: transparent none repeat scroll 0% 0%; vertical-align: top; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span></span><br /><span style="vertical-align:top">  <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"person-1"</span>&gt;</span>Manuel ... #1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>		</span><br /><span style="vertical-align:top">  <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"person-2"</span>&gt;</span>Perico ... #2<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span></span><br /><span style="vertical-align:top">  <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"person-3"</span>&gt;</span>Lucas ... #3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span></span><br /><span style="vertical-align:top">  <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"person-4"</span>&gt;</span>Agapito ... #4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span></span><br /><span style="vertical-align:top"><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span></span></pre>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Esta estructura podería ser un menú dinámico, unha lista "sortable", unha árbore, ... que mediante javascript permitise o mantemento da metainformación. Para este caso interesaríame enviar nunha petición Ajax os datos serializados empregando como claves os identificadores (person-1=...&amp;person-2=...&amp;person-3=...) e no servidor dispoñer dunha estructura PHP máis manexable.</p>
<p style="text-align: justify;">Facendo uso do filtro Vifito_Filter_Unhyphenate será posible transformar estes envíos en estructuras máis manexables dende código PHP. Para un dato enviado nunha petición POST tal que:</p>
<p> </p>
<div class="rj_insertcode">
<div class="rj_insertcode_php" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; overflow: auto; width: 100%; height: auto;"></div>
</div>
<table class="php" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br /></pre>
</td>
<td style="margin: 0pt; padding: 0px 4px; background: transparent none repeat scroll 0% 0%; vertical-align: top; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'contenedor-subcont-otro-10-2'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span>&gt; <span style="color: #0000ff;">'mi valor'</span><span style="color: #339933;"></span></span></pre>
</td>
</tr>
</tbody>
</table>
<p>será convertido nun array coas claves aniñadas en función dos guións:</p>
<p> </p>
<div class="rj_insertcode">
<div class="rj_insertcode_php" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; overflow: auto; width: 100%; height: auto;"></div>
</div>
<table class="php" style="border-collapse: collapse; width: 100%;">
<tbody style="text-align: left;">
<tr style="text-align: left;" class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1<br /></pre>
</td>
<td style="margin: 0pt; padding: 0px 4px; background: transparent none repeat scroll 0% 0%; vertical-align: top; font-size: 12px; text-align: left;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #000088;">$array</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'contenedor'</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'subcont'</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'otro'</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span>&gt; <span style="color: #0000ff;">'mi valor'</span><span style="color: #339933;"></span></span></pre>
</td>
</tr>
</tbody>
</table>
<p>Na sección de descargas está dispoñible o código fonte para a súa <a title="http://www.vifito.eu/gl/descargas/category/4-zend-framework.html" href="http://vifito.eu/gl/descargas/category/4-zend-framework.html">descarga</a> que inclúe un exemplo de uso con jQuery.</p>
<p> </p>
]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Sun, 09 Jan 2011 19:59:55 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/codigo-fonte/2-php/63-vifitofilterunhyphenate-un-filtro-de-zf-para-arrays.html</feedburner:origLink></item>
		<item>
			<title>Pintado carteis con canvas: Prohibido Fumar</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/74racsGeTBc/62-pintado-carteis-con-canvas-prohibido-fumar.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/codigo-fonte/1-javascript/62-pintado-carteis-con-canvas-prohibido-fumar.html</guid>
			<description><![CDATA[<p style="text-align: justify;">O día 2 de xaneiro entrou en vigor a Ley Antitabaco que prohibe fumar na maioría dos locais públicos salvo excepcións contadas. Para lembrarllo a xente ten que existir a cartelería correspondente nos locais. É aquí cando vexo os carteis de "Prohibido Fumar", e o sinxelo que sería debuxalos con simples trazos de liñas e círculos. Entón venme a cabeza a idea de debuxar un cartel de prohibido fumar empregando a tag canvas para deste modo ir probando funcionalidades de HTML5.</p>
<p style="text-align: justify;">Botando man do libro "<a target="_blank" title="http://diveintohtml5.org/" href="http://diveintohtml5.org/">Dive into HTML5</a>" do autor <em>Mark Pilgrim</em> e do seu capítulo "<a target="_blank" title="http://diveintohtml5.org/canvas.html" href="http://diveintohtml5.org/canvas.html">Let's Call it a Draw(ing Surface)</a>" póñome mans a obra.</p>
]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Mon, 03 Jan 2011 12:49:35 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/codigo-fonte/1-javascript/62-pintado-carteis-con-canvas-prohibido-fumar.html</feedburner:origLink></item>
		<item>
			<title>Liberado ZK Spreadsheet 2.0</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/kqHjy6EnyRs/60-liberado-zk-spreadsheet-20.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/component/content/article/12-javascript/60-liberado-zk-spreadsheet-20.html</guid>
			<description><![CDATA[<p style="text-align: justify;"><a target="_blank" title="http://www.zkoss.org/release/zkspreadsheet-2.0.0.dsp" href="http://www.zkoss.org/release/zkspreadsheet-2.0.0.dsp"><strong>ZK Spreadsheet</strong></a> é un compoñente ajax que permite embeber unha folla de cálculo nunha web con todas as funcionalidades dun Excel. Seguindo o estilo de<a href="http://www.google.com/google-d-s/spreadsheets/" title="http://www.google.com/google-d-s/spreadsheets/" target="_blank"> Google Docs</a> permite a edición colaborativa do documento online.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: center;"><img height="467" width="640" src="http://vifito.eu/images/stories/zk-spreadsheet.png" alt="zk-spreadsheet" /><br /><sup><strong>Pantallazo de ZK Spreadsheet</strong></sup></p>
<p style="text-align: justify;"> </p>
<p style="text-align: center;"><a href="http://zssdemo.zkoss.org/" title="http://zssdemo.zkoss.org/" target="_blank">Ver a demo</a> |  <a href="http://www.zkoss.org/download/zkspreadsheet.dsp" title="http://www.zkoss.org/download/zkspreadsheet.dsp" target="_blank">Descargar</a></p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Características</h3>
<ul align="justify">
<li>Importar os teus ficheiros Excel 2003/2007 a ZK Spreadsheet.</li>
<li>Controlar e configurar a folla de cálculo ajax con código Java e integrala coas nosas solucións de back-end.</li>
<li>Rexistrar eventos (listeners) sobre as filas, colunas, celas, ou calquera rango de celas selecionadas para crear as iteracións desexadas con outros compoñentes.</li>
<li>Inserir expresión en celas para facer bindings con Java beans no back-end dun modo transparente, incluíndo Spring e benas CDI.</li>
<li>Extender funcionalidades por medio de código Java para que despois sexan empregadas no compoñente ZK Spreadsheet.</li>
<li>Uso de ZK Spreadsheet coma un compoñente JSF.</li>
</ul>
<p> </p>
]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Wed, 29 Dec 2010 20:56:20 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/component/content/article/12-javascript/60-liberado-zk-spreadsheet-20.html</feedburner:origLink></item>
		<item>
			<title>Spring Roo, desenvolvemento web áxil e sinxelo 100% Java</title>
			<link>http://feedproxy.google.com/~r/vifito/zSts/~3/1C8AV4KamzE/56-spring-roo-desenvolvemento-web-axil-e-sinxelo-100-java.html</link>
			<guid isPermaLink="false">http://vifito.eu/gl/codigo-fonte/17-java/56-spring-roo-desenvolvemento-web-axil-e-sinxelo-100-java.html</guid>
			<description><![CDATA[<p style="text-align: justify;">Xa non sorprende ver cada día un novo framework para desenvolvemento web áxil empregando técnicas de andamiaxe (scaffolding), modelado Obxecto-Relacional, sistema de plugins, integración coa nube, ... todo o que vén sendo un <strong>Full Stack Web Framework</strong>. Dende o "boom" Ruby on Rails foron moitos os desenvolvedores que implementaron o seu stack empregando ferramentas de consola para automatizar a creación de código (CakePHP, symfony, <a target="_blank" title="http://framework.zend.com/" href="http://framework.zend.com/">Zend_Tool</a>, django, Grails, ...)</p>
<p style="text-align: justify;">No mundo "puramente" Java, co cal quito desta afirmación <a target="_blank" title="http://www.grails.org/" href="http://www.grails.org/">Grails</a> (xa que é linguaxe Groovy), parece que son máis reticentes a isto das ferramentas para automatización de código e os desenvolvedores prefiren perder tempo en interminables ficheiros de configuración XML, véxase a configuración dun proxecto Struts.</p>
<p style="text-align: justify;">Non deixa de ser certo que linguaxes como Ruby, Python ou PHP, son máis flexibles e permiten a implementación destas funcionalidades dun xeito máis simple e directo mediante metaprogramación ou polo simple feito de xerar un ficheiro de texto co código a interpretar.</p>
<p style="text-align: justify;"><a target="_blank" title="http://www.springsource.org/roo/why" href="http://www.springsource.org/roo/why"><img alt="roo_logo" src="http://vifito.eu/images/stories/roo_logo.png" style="float: right; margin: 8px;" height="142" width="256" /></a>PERO é aquí cando a xente de SpringSource decidiu incrementar a productividade dos desenvolvedores creando <a target="_blank" title="http://www.springsource.org/roo/why" href="http://www.springsource.org/roo/why">Spring Roo</a>. Esta ferramenta facilita o acceso a todas as principais e máis importantes tecnoloxías Java do momento, para crear aplicacións empresarias sen perder en rendemento. Facendo uso da consola que proporciona <strong>roo</strong> podemos crear a estructura do proxecto, as entidades JPA, os controladores e as vistas en Spring MVC, a interface en GWT, as buscas con Solr, fluxos con Spring Web Flow, desenvolver os nosos propios «addons», ... e finalmente paquetizar a nosa aplicación nun ficheiro WAR para posteriormente despregalo nun contedor web.</p>
<p style="text-align: justify;"> </p>
]]></description>
			<author>vifito@vifito.eu (vifito)</author>
			<category>frontpage</category>
			<pubDate>Tue, 14 Dec 2010 08:09:09 +0000</pubDate>
		<feedburner:origLink>http://vifito.eu/gl/codigo-fonte/17-java/56-spring-roo-desenvolvemento-web-axil-e-sinxelo-100-java.html</feedburner:origLink></item>
	</channel>
</rss>
