<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5752439517691679363</atom:id><lastBuildDate>Thu, 24 Oct 2024 09:45:09 +0000</lastBuildDate><category>rails</category><category>Linux</category><category>error</category><category>ruby</category><category>form</category><category>gems</category><category>java5</category><category>java6</category><category>rake</category><category>sql</category><category>x11</category><category>xorg</category><category>915resolution</category><category>Railscasts</category><category>access</category><category>activerecord</category><category>acts_as_tree</category><category>adobe</category><category>air</category><category>antivir</category><category>antivirus</category><category>apache</category><category>archivo</category><category>avira</category><category>beans</category><category>betwixt</category><category>break</category><category>buffer</category><category>bug</category><category>cache_template_loading</category><category>cadena</category><category>cambios</category><category>charset</category><category>commons</category><category>compilacion</category><category>concat</category><category>config</category><category>delay</category><category>dri</category><category>emacs</category><category>emerge</category><category>environment</category><category>feedtools</category><category>feedupdater</category><category>file</category><category>fileupload</category><category>flisol</category><category>from</category><category>gentoo</category><category>glxgears</category><category>glxinfo</category><category>html</category><category>instalacion</category><category>intel</category><category>java</category><category>jsp</category><category>jvm</category><category>kopete</category><category>lenguaje</category><category>lento</category><category>libmawt.so</category><category>libre</category><category>libros</category><category>licencia</category><category>license</category><category>login</category><category>login_generator</category><category>mapping</category><category>mejoras</category><category>mesa</category><category>mmc</category><category>mysql</category><category>nVidia</category><category>newgem</category><category>newline</category><category>oracle</category><category>pininos</category><category>plugin</category><category>poppler-bindings</category><category>portage</category><category>recipes</category><category>registrar</category><category>registrarse</category><category>registrate</category><category>registro</category><category>retardo</category><category>ricoh</category><category>rss</category><category>rssruby</category><category>rubygems</category><category>sd</category><category>sdk</category><category>securedisc</category><category>select</category><category>slackware</category><category>software</category><category>sqlserver</category><category>string</category><category>sum</category><category>sun</category><category>tarjeta</category><category>tips</category><category>unexpected</category><category>utf8</category><category>video</category><category>xawt</category><category>xcb</category><category>xlib</category><category>xml</category><title>Proyecto Script</title><description>Este blog trata de ser un medio para compartir soluciones y consejos prácticos sobre la programación.</description><link>http://proyectoscript.blogspot.com/</link><managingEditor>noreply@blogger.com (NeoRiddle)</managingEditor><generator>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-8919322061939317309</guid><pubDate>Thu, 02 Apr 2009 02:08:00 +0000</pubDate><atom:updated>2009-04-01T23:59:02.970-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">from</category><category domain="http://www.blogger.com/atom/ns#">select</category><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">sum</category><title>Productos Cruzados en SQL</title><description>&lt;p align=&quot;justify&quot;&gt;Los productos cruzados de conjuntos son muy útiles para hacer combinaciones de ellos principalmente, aquí tendremos un ejemplo para una forma de tabulación.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Supongamos que tenemos los datos de un alumno y queremos desplegar sus datos de forma que nos pueda ayudar a visualizarlos mejor, para eso nos gustaría saber cuanto es el total de sus parciales pero también el porcentaje del total de cada parcial. Imaginemos los siguientes datos:&lt;/p&gt;&lt;br /&gt;&lt;code&gt;Alumno, Parcial, Total, Porcentaje&lt;/code&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;Si quisieramos sacar estos datos, una forma de hacerlo es por medio de &quot;producto cruzado&quot; en tablas para eso podemos hacer un conteo de los parciales, hacer producto cruzado con los datos de los parciales y por último hacer una proyección más para hacer el cálculo del porcentaje.&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;class=&quot;keyword&quot;&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;*&lt;/span&gt;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;alumnos&lt;span class=&quot;symbols&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;code&quot;&gt;&lt;br /&gt;&amp;nbsp;id&amp;nbsp;|&amp;nbsp;nombre&amp;nbsp;|&amp;nbsp;parcial&lt;br /&gt;======================&lt;br /&gt;&amp;nbsp;&amp;nbsp;1&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;class=&quot;keyword&quot;&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;*&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&lt;class=&quot;keyword&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;alumnos&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;SELECT&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#000000&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;parcial&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;AS&lt;/span&gt;&amp;nbsp;CONTADOR&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;alumnos&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&amp;nbsp;TOTAL&lt;span class=&quot;symbols&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;code&quot;&gt;&lt;br /&gt;&amp;nbsp;id&amp;nbsp;|&amp;nbsp;nombre&amp;nbsp;|&amp;nbsp;parcial&amp;nbsp;|&amp;nbsp;contador&lt;br /&gt;=================================&lt;br /&gt;&amp;nbsp;&amp;nbsp;1&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;class=&quot;keyword&quot;&gt;SELECT&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;*,&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;parcial&lt;span class=&quot;symbols&quot;&gt;/&lt;/span&gt;TOTAL.CONTADOR&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&lt;class=&quot;keyword&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;alumnos&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;SELECT&lt;/span&gt;&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#000000&quot;&gt;SUM&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;parcial&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;AS&lt;/span&gt;&amp;nbsp;CONTADOR&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;class=&quot;keyword&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;alumnos&lt;br /&gt;&lt;class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&amp;nbsp;TOTAL&lt;span class=&quot;symbols&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;code&quot;&gt;&lt;br /&gt;&amp;nbsp;id&amp;nbsp;|&amp;nbsp;nombre&amp;nbsp;|&amp;nbsp;parcial&amp;nbsp;|&amp;nbsp;contador&amp;nbsp;|&amp;nbsp;porcentaje&lt;br /&gt;==============================================&lt;br /&gt;&amp;nbsp;&amp;nbsp;1&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.17&lt;br /&gt;&amp;nbsp;&amp;nbsp;2&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.23&lt;br /&gt;&amp;nbsp;&amp;nbsp;3&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.26&lt;br /&gt;&amp;nbsp;&amp;nbsp;4&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;5&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.2&lt;br /&gt;&amp;nbsp;&amp;nbsp;6&amp;nbsp;|&amp;nbsp;Balam&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.03&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;</description><link>http://proyectoscript.blogspot.com/2009/04/productos-cruzados-en-sql.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-5658527863167985879</guid><pubDate>Tue, 31 Mar 2009 18:23:00 +0000</pubDate><atom:updated>2009-04-01T23:21:23.331-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">access</category><category domain="http://www.blogger.com/atom/ns#">cadena</category><category domain="http://www.blogger.com/atom/ns#">concat</category><category domain="http://www.blogger.com/atom/ns#">mysql</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">sqlserver</category><category domain="http://www.blogger.com/atom/ns#">string</category><title>Concatenación de cadenas en SQL</title><description>&lt;p align=&quot;justify&quot;&gt;Concatenar cadenas en SQL no es algo estandar así que depende mucho del manejador de base de datos que estemos usando y aquí tenemos ejemplos con tres de ellos:&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Con oracle existen dos formas, una es con la funcion &quot;CONCAT&quot; y otra con el operador &quot;||&quot;, con la funcion &quot;CONCAT&quot; no podemos concatenar mas de dos cadenas, es decir, acepta dos argumentos, en cambio con el operador &quot;||&quot; podemos concatenar mas (si somos estrictos el operador &quot;||&quot; tampoco concatena mas de dos por ser un operador binario pero por la sintaxis se puede aparentar hacerlo):&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundo&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONTACT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundohola&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;))&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holaholamundo&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;||&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundo&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;||&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;||&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundohola&#39;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;En el caso de mysql, existe también esta función solo que si acepta mas de dos cadenas (parámetros):&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundo&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundohola&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;CONCAT&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&amp;nbsp;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundoholamundo&#39;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;Y el caso de sqlserver o access, ellos tienen el operador &quot;+&quot; y de la misma forma que el operador &quot;||&quot; de oracle, es binario pero aparenta &quot;recibir&quot; mas de dos parámetros:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundo&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;mundo&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;hola&#39;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;holamundohola&#39;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;</description><link>http://proyectoscript.blogspot.com/2009/03/concatenacion-de-cadenas-en-sql.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7400020306703954957</guid><pubDate>Tue, 24 Mar 2009 05:48:00 +0000</pubDate><atom:updated>2009-03-24T00:23:13.097-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">adobe</category><category domain="http://www.blogger.com/atom/ns#">air</category><category domain="http://www.blogger.com/atom/ns#">gentoo</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">slackware</category><title>Adobe Air en Gentoo (y verdaderos Linux)</title><description>&lt;p&gt;El archivo de instalación de Air para Linux que distribuye Adobe en su página (http://get.adobe.com/es/air/) solo funciona para distribuciones de Linux basadas en rpm y debian. Así que para distribuciónes como Gentoo el instalador no funciona.&lt;/p&gt;&lt;p&gt;Los pasos para instalar Adobe Air que segui son estos:&lt;/p&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;ol&gt;&lt;li&gt;Descargar de http://www.adobe.com/products/air/tools/sdk/ el archivo comprimido (en el momento que lo descarge la url era http://airdownload.adobe.com/air/lin/download/latest/AdobeAIRSDK.tbz2).&lt;/li&gt;&lt;li&gt;Crear un directorio -por ejemplo- &quot;adobe-air-sdk&quot;.&lt;/li&gt;&lt;li&gt;Descomprimir el archivo del SDK descargado dentro del directorio &quot;adobe-air-sdk&quot;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;También recomiendo agregar a la variable PATH los archivos ejecutables que se encuentran dentro del directorio &quot;adobe-air-sdk/bin&quot; (es decir &quot;adl&quot; y &quot;adt&quot;) por practicidad.&lt;/p&gt;&lt;p&gt;Para ejecutar aplicaciones para Air:&lt;/p&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;ol&gt;&lt;li&gt;Crear un directorio -por ejemplo- &quot;adobe-air-apps&quot;.&lt;/li&gt;&lt;li&gt;En este directorio -recomiendo- descargar todas las aplicaciones y descomprimirlas.&lt;/li&gt;&lt;li&gt;Y utilizar el ejecutable &quot;adl&quot; (para mayores detalles ver la documentación de este ejecutable).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://proyectoscript.blogspot.com/2009/03/adobe-air-en-gentoo-y-verdederos-linux.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-4650885246448685660</guid><pubDate>Sun, 01 Feb 2009 03:48:00 +0000</pubDate><atom:updated>2009-02-01T02:20:27.849-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cache_template_loading</category><category domain="http://www.blogger.com/atom/ns#">config</category><category domain="http://www.blogger.com/atom/ns#">environment</category><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">gems</category><category domain="http://www.blogger.com/atom/ns#">rails</category><category domain="http://www.blogger.com/atom/ns#">rake</category><title>Error &quot;undefined method `cache_template_loading=&#39;&quot;</title><description>&lt;p&gt;En Rails 2.2.2 (no tengo conocimiento hasta el momento de publicar esta entrada si en otra versión también ocurre este error), me di cuenta que al ejecutar mi aplicacion en modo de &quot;producción&quot;, arrojaba el siguiente error:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;   1 &lt;/span&gt;/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:530:in `send&#39;: undefined method `cache_template_loading=&#39; for ActionView::Base:Class (NoMethodError)&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   2 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:530:in `initialize_framework_settings&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   3 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:529:in `each&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   4 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:529:in `initialize_framework_settings&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   5 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:526:in `each&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   6 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:526:in `initialize_framework_settings&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   7 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:154:in `process&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   8 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   9 &lt;/span&gt;        from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run&#39;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;  10 &lt;/span&gt;        from /home/neoriddle/etc/rails_apps/miproyecto/config/environment.rb:13&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Tomando en cuenta el volcado anterior en la ultima línea visible esta una referencia a la línea número 13 del archivo &lt;code class=&quot;ruby-code&quot;&gt;enviroment.rb&lt;/code&gt;, esa línea es la siguiente:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;Rails::Initializer.run do |config|&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Sabemos que en ejecutar esta línea se carga también el archivo de configuración específico del modo de ejecución (que podría ser &quot;development&quot;, &quot;test&quot; o &quot;production&quot;), en mi caso al ejecutar el modo de producción, se generaba el error, de ahí que en la línea 13 del archivo de configuracion del modo produccion tiene lo siguiente:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;config.action_view.cache_template_loading            = true&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Al parecer este método ya no existe en esta versión por lo que una solución es borrar o simplemente comentar esta línea. No estoy seguro si esta sea una solución correcta pero al menos elimina el error el cual no permite que el servicio se ejecute, es decir, el proceso se finaliza.&lt;/p&gt;</description><link>http://proyectoscript.blogspot.com/2009/01/error-undefined-method.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-6832808410748004826</guid><pubDate>Sat, 31 Jan 2009 20:12:00 +0000</pubDate><atom:updated>2009-02-01T02:34:53.165-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bug</category><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">gems</category><category domain="http://www.blogger.com/atom/ns#">rails</category><category domain="http://www.blogger.com/atom/ns#">rake</category><title>Error &quot;nil.dependencies&quot; en `rake gems`</title><description>&lt;p&gt;En la versión 2.2.2 de Rails, al ejecutar &lt;code class=&quot;ruby-code&quot;&gt;rake:gems&lt;/code&gt; aparece el siguiente mensaje (con alguna posible variación dependiendo de las gemas principalmente):&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;neoriddle@neobalam ~/proyectos/miproyecto $ rake gems&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;(in /home/neoriddle/proyectos/miproyecto)&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;calendar_date_select &amp;gt;= 1.13&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;hoe = 1.8.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;rubyforge = 1.0.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;rake = 0.8.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;mini_magick &amp;gt;= 1.2.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;hoe = 1.8.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;rubyforge = 1.0.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;rake = 0.8.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;11&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;RedCloth &amp;gt;= 4.1.1&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;12&amp;nbsp;&lt;/span&gt;rake aborted!&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&lt;/span&gt;You have a nil object when you didn&#39;t expect it!&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&lt;/span&gt;The error occurred while evaluating nil.dependencies&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;16&amp;nbsp;&lt;/span&gt;(See full trace by running task with --trace)&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;17&amp;nbsp;&lt;/span&gt;neoriddle@neobalam ~/proyectos/miproyecto $&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Este es un error que hay en la versión de la gema, así que para solucionarlo hay que abrir el archivo &lt;code&gt;/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/gem_dependency.rb&lt;/code&gt; (esta ubicación podría variar por el sistema operativo o alguna opción en la instalación) y ubicar el siguiente fragmento de código:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;def&lt;/span&gt; dependencies&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; framework_gem&lt;span class=&quot;symbols&quot;&gt;?&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies &lt;span class=&quot;symbols&quot;&gt;=&lt;/span&gt; specification&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;map &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;|&lt;/span&gt;dependency&lt;span class=&quot;symbols&quot;&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GemDependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;dependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;name&lt;span class=&quot;symbols&quot;&gt;, :&lt;/span&gt;requirement &lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt; dependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;version_requirements&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies &lt;span class=&quot;symbols&quot;&gt;+=&lt;/span&gt; all_dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&amp;amp;:&lt;/span&gt;dependencies&lt;span class=&quot;symbols&quot;&gt;).&lt;/span&gt;flatten&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;uniq&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Basta con agregar la siguiente línea &lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; specification&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;?&lt;/span&gt;&lt;/code&gt;, de manera que quedaría de la siguiente forma:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;def&lt;/span&gt; dependencies&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; framework_gem&lt;span class=&quot;symbols&quot;&gt;?&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; specification&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;?&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies &lt;span class=&quot;symbols&quot;&gt;=&lt;/span&gt; specification&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;map &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;|&lt;/span&gt;dependency&lt;span class=&quot;symbols&quot;&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GemDependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;dependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;name&lt;span class=&quot;symbols&quot;&gt;, :&lt;/span&gt;requirement &lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt; dependency&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;version_requirements&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies &lt;span class=&quot;symbols&quot;&gt;+=&lt;/span&gt; all_dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&amp;amp;:&lt;/span&gt;dependencies&lt;span class=&quot;symbols&quot;&gt;).&lt;/span&gt;flatten&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;all_dependencies&lt;span class=&quot;symbols&quot;&gt;.&lt;/span&gt;uniq&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Una vez editado, hay que guardar los cambios y regresemos a ejecutar de nuevo la instrucción inicial &lt;code class=&quot;ruby-code&quot;&gt;rake:gems&lt;/code&gt; y el resultado es el siguiente:&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;neoriddle@neobalam ~/proyectos/miproyecto $ rake gems&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;(in /home/neoriddle/proyectos/miproyecto)&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;calendar_date_select &amp;gt;= 1.13&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;hoe = 1.8.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;rubyforge = 1.0.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;rake = 0.8.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;mini_magick &amp;gt;= 1.2.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;hoe = 1.8.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;rubyforge = 1.0.2&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;rake = 0.8.3&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;11&amp;nbsp;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;[I]&amp;nbsp;RedCloth &amp;gt;= 4.1.1&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;12&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;[&amp;nbsp;]&amp;nbsp;echoe&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&lt;/span&gt;I = Installed&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&lt;/span&gt;F = Frozen&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;16&amp;nbsp;&lt;/span&gt;R = Framework (loaded before rails starts)&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;&amp;nbsp;&amp;nbsp;17&amp;nbsp;&lt;/span&gt;neoriddle@neobalam ~/proyectos/miproyecto $&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Este es un bug en esta versión de Rails.&lt;/p&gt;</description><link>http://proyectoscript.blogspot.com/2009/01/error-nildependencies-en-rake-gems.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7105512189252879529</guid><pubDate>Mon, 08 Dec 2008 08:41:00 +0000</pubDate><atom:updated>2008-12-10T02:53:38.128-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">activerecord</category><category domain="http://www.blogger.com/atom/ns#">acts_as_tree</category><category domain="http://www.blogger.com/atom/ns#">plugin</category><category domain="http://www.blogger.com/atom/ns#">rails</category><title>Tabla simulando un arbol</title><description>Seguramente se ha presentado el caso donde tiene una tabla a nivel base de datos que guarda la información de una entidad que tiene un comportamiento de árbol, peensando un ejemplo práctico tenemos una tabla de Categorias la cual esta construida por el siguiente script:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;sql-code&quot;&gt;&lt;span class=&quot;line_number&quot;&gt;   1 &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;CREATE TABLE&lt;/span&gt; &lt;span style=&quot;color:#000000;&quot;&gt;categories&lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line_number&quot;&gt;   2 &lt;/span&gt;  id BIGINT &lt;span class=&quot;keyword&quot;&gt;NOT NULL&lt;/span&gt; AUTO_INCREMENT &lt;span class=&quot;keyword&quot;&gt;PRIMARY KEY&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line_number&quot;&gt;   3 &lt;/span&gt;  nombre &lt;span style=&quot;color:#208920;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;NOT NULL&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line_number&quot;&gt;   4 &lt;/span&gt;  parent_id BIGINT &lt;span class=&quot;keyword&quot;&gt;NULL&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line_number&quot;&gt;   5 &lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;De esta manera podriamos tener lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;General de División&lt;/li&gt;&lt;ul&gt;&lt;li&gt;General de Brigada&lt;/li&gt;&lt;ul&gt;&lt;li&gt;General Brigadrier&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Y visto como una tabla tendrías:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;code&quot;&gt;id |        nombre       | parent_id&lt;br /&gt;------------------------------------&lt;br /&gt; 1 | General de División |   null&lt;br /&gt; 2 | General de Brigada  |     1&lt;br /&gt; 3 | General Brigadier   |     2&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Vayamos al código...&lt;br /&gt;Existe una funcion llamada &quot;acts_as_tree&quot; la cual nos ayuda con ese comportamiento, es importante hacer la aclaración que hasta la versión 1.x de Rails (mas específicamente en ActiveRecord) era parte de ésta, pero apartir de la versión 2.x, ésta fue seprada para convertirse en un plugin.&lt;br /&gt;&lt;br /&gt;La instalación del plugin es muy sencilla, basta con ejecutar la siguiente linea:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;code&quot;&gt;script/plugin install acts_as_tree&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, podemos ir a nuestra clase model &quot;Categoria&quot;:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;ruby-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;   1 &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt; Categoria &lt;span class=&quot;symbols&quot;&gt;&amp;lt;&lt;/span&gt; ActiveRecord&lt;span class=&quot;symbols&quot;&gt;::&lt;/span&gt;Base&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   2 &lt;/span&gt;  acts_as_tree &lt;span class=&quot;symbols&quot;&gt;:&lt;/span&gt;order &lt;span class=&quot;symbols&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&quot;color:#bd8d8b;&quot;&gt;&#39;parent_id&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;   3 &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;De esta manera tenemos los isguientes metodos disponibles para aprovechar mucho mejor el comportamiento en arbol:&lt;br /&gt;&lt;table style=&quot;border: solid 1px #9c20ee;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Método&lt;/td&gt;&lt;td&gt;Descripcion&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;children&lt;/td&gt;&lt;td&gt;devuelve todos los hijos inmediatos&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;parent&lt;/td&gt;&lt;td&gt;devuelve el padre (objeto inmediato)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;siblings&lt;/td&gt;&lt;td&gt;devuelve todos los hijos del mismo padre (hermanos)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;self_and_siblings&lt;/td&gt;&lt;td&gt;devuelve todos los hermanos incluyéndome&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ancestors&lt;/td&gt;&lt;td&gt;devuelve todos los objetos padre hasta llegar a la raiz (padre, abuelo, etc)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;root&lt;/td&gt;&lt;td&gt;devuelve el objeto raiz de la jerarquía&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/12/tabla-simulando-un-arbol.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-2275333937018450668</guid><pubDate>Fri, 05 Dec 2008 19:57:00 +0000</pubDate><atom:updated>2008-12-10T03:13:22.697-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">compilacion</category><category domain="http://www.blogger.com/atom/ns#">emerge</category><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">poppler-bindings</category><category domain="http://www.blogger.com/atom/ns#">portage</category><title>Problems compiling app-text/poppler-bindings-0.8.7</title><description>Hace algunos días trataba de compilar el paquete &quot;app-text/poppler-bindings-0.8.7&quot; pero me arrojaba el siguiente error en la compilación:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;code-div&quot;&gt;&lt;code class=&quot;bash-code&quot;&gt;&lt;span class=&quot;line-number&quot;&gt;0001 &lt;/span&gt;neobalam proyectos &lt;span class=&quot;comment&quot;&gt;# emerge -q1 =app-text/poppler-bindings-0.8.7&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0002 &lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; Verifying ebuild Manifests...&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0003 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0004 &lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; Emerging &lt;span class=&quot;symbols&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;1&lt;/span&gt; of &lt;span style=&quot;color:#000000&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;symbols&quot;&gt;)&lt;/span&gt; app&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;text&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;bindings&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.8.7&lt;/span&gt; to &lt;span class=&quot;symbols&quot;&gt;/&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0005 &lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;*&lt;/span&gt; Applying poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.6&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;bindings.&lt;span style=&quot;color:#0000ff&quot;&gt;patch&lt;/span&gt; ...                                                                                                                                      &lt;span class=&quot;symbols&quot;&gt;[&lt;/span&gt; ok &lt;span class=&quot;symbols&quot;&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0006 &lt;/span&gt; &lt;span class=&quot;symbols&quot;&gt;*&lt;/span&gt; Running eautoreconf &lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;/var/tmp/portage/app-text/poppler-bindings-0.8.7/work/poppler-0.8.7&#39;&lt;/span&gt; ...&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0007 &lt;/span&gt; ...&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0008 &lt;/span&gt;checking &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; Qt headers... &lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;qt&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;include&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0009 &lt;/span&gt;checking &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; Qt libraries... &lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;qt&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;lib&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0010 &lt;/span&gt;checking &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; Qt needs &lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;pthread... no&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0011 &lt;/span&gt;checking &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; POPPLER_QT4... configure&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt; error&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt; Package requirements &lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;QtCore &lt;span class=&quot;symbols&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;4.1.0&lt;/span&gt; QtGui &lt;span style=&quot;color:#000000&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;4.1.0&lt;/span&gt; QtXml &lt;span style=&quot;color:#000000&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;4.1.0&lt;/span&gt; QtTest &lt;span style=&quot;color:#000000&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;4.1.0&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;)&lt;/span&gt; were not met&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0012 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0013 &lt;/span&gt;No package &lt;span class=&quot;string&quot;&gt;&#39;QtGui&#39;&lt;/span&gt; found&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0014 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0015 &lt;/span&gt;Consider adjusting the PKG_CONFIG_PATH environment variable &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; you&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0016 &lt;/span&gt;installed software &lt;span class=&quot;keyword&quot;&gt;in&lt;/span&gt; a non&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;standard prefix.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0017 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0018 &lt;/span&gt;Alternatively&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; you may &lt;span style=&quot;color:#208920&quot;&gt;set&lt;/span&gt; the environment variables POPPLER_QT4_CFLAGS&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0019 &lt;/span&gt;and POPPLER_QT4_LIBS to avoid the need to call pkg&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;config.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0020 &lt;/span&gt;See the pkg&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;config man page &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;more&lt;/span&gt; details.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0021 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0022 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0023 &lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;!!!&lt;/span&gt; Please attach the following &lt;span style=&quot;color:#0000ff&quot;&gt;file&lt;/span&gt; when seeking support&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0024 &lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;!!! /&lt;/span&gt;var&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;tmp&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;portage&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;app&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;text&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;bindings&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.8.7&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;work&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.8.7&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;config.log&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0025 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0026 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; ERROR&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt; app&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;text&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;bindings&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.8.7&lt;/span&gt; failed.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0027 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; Call stack&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0028 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;               ebuild.sh&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; line   &lt;span style=&quot;color:#000000&quot;&gt;49&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;  Called src_compile&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0029 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;             environment&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; line &lt;span style=&quot;color:#000000&quot;&gt;2536&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;  Called econf &lt;span class=&quot;string&quot;&gt;&#39;src_compile&#39;&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;src_compile&#39;&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;--enable-cairo-output&#39;&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;--enable-poppler-glib&#39;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0030 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;               ebuild.sh&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; line  &lt;span style=&quot;color:#000000&quot;&gt;519&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;  Called die&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0031 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; The specific snippet of code&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0032 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;                      die &lt;span class=&quot;string&quot;&gt;&amp;quot;econf failed&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0033 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;  The die message&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0034 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;   econf failed&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0035 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0036 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; If you need support&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; post the topmost build error&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; and the call stack &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; relevant.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0037 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; A complete build log is located &lt;span style=&quot;color:#0000ff&quot;&gt;at&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;/var/tmp/portage/app-text/poppler-bindings-0.8.7/temp/build.log&#39;&lt;/span&gt;.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0038 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; The ebuild environment &lt;span style=&quot;color:#0000ff&quot;&gt;file&lt;/span&gt; is located &lt;span style=&quot;color:#0000ff&quot;&gt;at&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&#39;/var/tmp/portage/app-text/poppler-bindings-0.8.7/temp/environment&#39;&lt;/span&gt;.&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0039 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0040 &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;line-number&quot;&gt;0041 &lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;*&lt;/span&gt; Messages &lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt; package app&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;text&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;poppler&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;bindings&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;0.8.7&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Cabe mencionar que usaba el administrador &quot;Portage&quot; (para los que no sepan algo como el &quot;apt-get&quot;, &quot;yast&quot;, etc, a diferencia que este descara el código fuente y lo compila).&lt;br /&gt;&lt;br /&gt;Por fin pude compilar ese paquete, basta con incluir en la compulacion qt-4 y poppler-bindings en la misma llamada de emerge-&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/12/problems-compiling-app-textpoppler.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-1597934923038503984</guid><pubDate>Tue, 14 Oct 2008 22:27:00 +0000</pubDate><atom:updated>2008-10-15T02:05:23.323-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">beans</category><category domain="http://www.blogger.com/atom/ns#">betwixt</category><category domain="http://www.blogger.com/atom/ns#">mapping</category><category domain="http://www.blogger.com/atom/ns#">unexpected</category><category domain="http://www.blogger.com/atom/ns#">xml</category><title>Unexpected result mapping beans with betwixt</title><description>Dadas dos clases (beans), las intentaba mapear con betwixt, pero a la hora de hacer la generación del XML a partir de los beans, curiosamente no aparecia el XML que yo esperaba. Lo que hice fue (por razones de practicidad del momento) en un archivo definir algunas clases entre ellas los beans a manera, donde ninguno de los beans tenía el modificador &lt;code&gt;public&lt;/code&gt;, algo como lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;public class&lt;/span&gt; Prueba &lt;span style=&quot;color:#000000&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// Definicion de clase&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;class&lt;/span&gt; Familia &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;implements&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;Serializable&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0000ff&quot;&gt;List&lt;/span&gt; personas&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// setters y getters&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;11&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;class&lt;/span&gt; Persona &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;implements&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;Serializable&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;12&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;String&lt;/span&gt; nombre&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;String&lt;/span&gt; apellido&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// setters y getters&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y los beans mapeados de la siguiente forma:&lt;br /&gt;&lt;br /&gt;Primero el archivo Persona.betwixt:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;info&lt;/span&gt; primitiveTypes=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;element&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;element&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;persona&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;attribute&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;nombre&amp;quot;&lt;/span&gt; property=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;nombre&amp;quot;&lt;/span&gt;  updater=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;setNombre&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;attribute&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;apellido&amp;quot;&lt;/span&gt; property=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;apellido&amp;quot;&lt;/span&gt; updater=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;setApellido&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/element&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y en segundo lugar el archivo Familia.betwixt:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;info&lt;/span&gt; primitiveTypes=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;element&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;element&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;familia&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;element&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;personas&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;element&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;personas&amp;quot;&lt;/span&gt; property=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;personas&amp;quot;&lt;/span&gt; updater=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;setPersonas&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/element&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/element&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/info&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;El problemas radica en que &lt;span&gt;todas las clases a mapear deben estar definicas con el modificador public&lt;/span&gt;. Así que hay que ponerlo en archivos separados.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt; &lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt; &lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/10/unexpected-result-mapping-beans-with.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-695922740106059850</guid><pubDate>Sat, 27 Sep 2008 18:07:00 +0000</pubDate><atom:updated>2008-10-04T12:19:04.238-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">break</category><category domain="http://www.blogger.com/atom/ns#">buffer</category><category domain="http://www.blogger.com/atom/ns#">emacs</category><category domain="http://www.blogger.com/atom/ns#">newline</category><title>Agregar automáticamente salto de línea en Emacs</title><description>Para agregar de manera automática un salto de línea en cualquier buffer al momento de guardar a un archivo en Emacs basta con agregar la siguiente línea:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;setq&lt;/span&gt; require-final-newline t&lt;span style=&quot;color:#000000&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Nótese que se pasa como parámetro a la funcion una t, lo cual podríamos ver para fines prácticos como un true, recordemos que el lenguaje es Lisp y dado que utiliza listas, podríamos decir que &quot;algo&quot; está o no en una lista, asi que podríamos ver como un valor &lt;em&gt;false&lt;/em&gt; a &lt;code&gt;nil&lt;/code&gt; (lo cual significa &lt;em&gt;Not In List&lt;/em&gt;).&lt;br /&gt;&lt;br /&gt;Es decir, si lo queremos deshabilitar estaría asi:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;setq&lt;/span&gt; require-final-newline nil&lt;span style=&quot;color:#000000&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt; &lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt; &lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/09/agregar-automticamente-salto-de-lnea-en.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-738995636976840463</guid><pubDate>Tue, 16 Sep 2008 02:39:00 +0000</pubDate><atom:updated>2008-09-16T21:21:23.319-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">newgem</category><category domain="http://www.blogger.com/atom/ns#">rubygems</category><title>Error en NewGem con RubyGems 1.1.1: Undefined method `add_development_dependency&#39;</title><description>Para empaquetar proyectos en gem&#39;s de ruby, una vez que ejecutaba &lt;code&gt;rake&lt;/code&gt;, arroja lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;neoriddle@neobalam ~/proyectos/amatohtli $ rake&lt;br /&gt;(in /home/neoriddle/proyectos/amatohtli)&lt;br /&gt;rake aborted!&lt;br /&gt;undefined method `add_development_dependency&#39; for #&lt;Gem::Specification:0xb7314554&gt;&lt;br /&gt;/home/neoriddle/proyectos/amatohtli/Rakefile:2&lt;br /&gt;(See full trace by running task with --trace)&lt;br /&gt;neoriddle@neobalam ~/proyectos/amatohtli $&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;El error se soluciona con actualizar la version de &lt;code&gt;rubygems&lt;/code&gt; a la versión 1.2.0.&lt;br /&gt;&lt;br /&gt;En mi caso muy particular yo tenia a versión 1.1.1:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;neobalam amatohtli # emerge -vp =dev-ruby/rubygems-1.2.0&lt;br /&gt;&lt;br /&gt;These are the packages that would be merged, in order:&lt;br /&gt;&lt;br /&gt;Calculating dependencies... done!&lt;br /&gt;[ebuild     U ] dev-ruby/rubygems-1.2.0 [1.1.1] USE=&quot;doc server&quot; 242 kB&lt;br /&gt;&lt;br /&gt;Total: 1 package (1 upgrade), Size of downloads: 242 kB&lt;br /&gt;neobalam amatohtli # &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Una vez hecho esto ya no arrojaró errores.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt; &lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt; &lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/09/error-en-newgem-con-rubygems-111.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-1103763878478457726</guid><pubDate>Sun, 14 Sep 2008 05:14:00 +0000</pubDate><atom:updated>2008-10-05T19:48:43.562-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">charset</category><category domain="http://www.blogger.com/atom/ns#">form</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">utf8</category><title>Problemas con caracteres al enviar un formulario HTML</title><description>Muchas ocaciones tenemos el problema donde el enviar una forma de html los caracteres cambiar por caracteres &lt;em&gt;raros&lt;/em&gt; o simplemente no son los que esperabamos.&lt;br /&gt;&lt;br /&gt;Esto es principalmente porque al momento que se hace la encapsulación de la petición se toma un &lt;em&gt;charset&lt;/em&gt; (conjunto de caracteres) que no corresponde al que necesitamos para que estos caracteres sean válidos.&lt;br /&gt;&lt;br /&gt;La solución es simple, basta con especificar el charset en el atributo &lt;code&gt;accept-charset&lt;/code&gt; del tag &lt;code&gt;form&lt;/code&gt; de html:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;form&lt;/span&gt; method=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt; accept-charset=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;CHARSET&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para mayor información sobre &lt;em&gt;charset&lt;/em&gt;&#39;s consulte la &lt;a href=&quot;http://www.w3.org/TR/html401/types.html#h-6.9&quot;&gt;sección 6.9&lt;/a&gt; y para detalles del tag &lt;code&gt;form&lt;/code&gt; la &lt;a href=&quot;http://www.w3.org/TR/html401/interact/forms.html#h-17.3&quot;&gt;sección 17.3&lt;/a&gt; de la especificación de &lt;a href=&quot;http://www.w3.org/TR/html401/&quot;&gt;html 4.01&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt; &lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt; &lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/09/problemas-con-caracteres-al-enviar-un.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7121978264979908913</guid><pubDate>Sun, 14 Sep 2008 02:36:00 +0000</pubDate><atom:updated>2008-10-05T20:01:10.946-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">apache</category><category domain="http://www.blogger.com/atom/ns#">commons</category><category domain="http://www.blogger.com/atom/ns#">fileupload</category><category domain="http://www.blogger.com/atom/ns#">form</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">jsp</category><title>Carga de archivos en un tag &amp;lt;FORM&amp;gt; con Java (Apache FileUpload)</title><description>La carga de archivos requiere -según la especificacion de HTML 4.0-&lt;br /&gt;básicamente dice que para poder enviar un archivo hay que poner el valor&lt;br /&gt;&lt;code&gt;multipart/form-data&lt;/code&gt; al atributo &lt;code&gt;enctype&lt;/code&gt; del tag&lt;br /&gt;&lt;code&gt;form&lt;/code&gt;, de la siguiente manera:&lt;/p&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;form&lt;/span&gt; method=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt; action=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;miaccion&amp;quot;&lt;/span&gt; enctype=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;multipart/form-data&amp;quot;&lt;/span&gt;&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Esto es con respecto a el archivo HTML (o JSP, o algún tipo similar), pero&lt;br /&gt;ahora falta la programación del lado del servidor. Por suerte existe Apache&lt;br /&gt;Commons FileUpload, el cual implementa la solución dejandonos solo unas&lt;br /&gt;clases para obtener los archivos.&lt;br /&gt;&lt;br /&gt;Como ejemplo, imaginemos que tenemos el siguiente archiv jsp:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;form&lt;/span&gt; method=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt; action=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;MiServlet&amp;quot;&lt;/span&gt; enctype=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;multipart/form-data&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   2 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;input&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;cancion&amp;quot;&lt;/span&gt; type=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;file&amp;quot;&lt;/span&gt; value=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;~/jaguares_-_45_-_alquimista.mp3&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   3 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;input&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;grupo&amp;quot;&lt;/span&gt; type=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; value=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;Jaguares&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   4 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;input&lt;/span&gt; name=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; type=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; value=&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;Enviar&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   5 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Entonces en nuestra clase &lt;code&gt;MiServlet&lt;/code&gt; podríamos hacer lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;   1 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;import&lt;/span&gt; org&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;apache&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;commons&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;fileupload&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;disk&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;DiskFileItemFactory&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   2 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;import&lt;/span&gt; org&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;apache&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;commons&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;fileupload&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;servlet&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;ServletFileUpload&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   3 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;import&lt;/span&gt; org&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;apache&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;commons&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;fileupload&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;FileItem&lt;span style=&quot;color:#000000&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   4 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   5 &lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;public class&lt;/span&gt; MiServlet &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;extends&lt;/span&gt; HttpServlet &lt;span style=&quot;color:#000000&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   6 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#208920&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;doPost&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;HttpServletRequest req&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; HttpServletResponse resp&lt;span style=&quot;color:#000000&quot;&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   7 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DiskFileItemFactory factory &lt;span style=&quot;color:#000000&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;DiskFileItemFactory&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   8 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServletFileUpload upload &lt;span style=&quot;color:#000000&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;ServletFileUpload&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;factory&lt;span style=&quot;color:#000000&quot;&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;   9 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0000ff&quot;&gt;List&lt;/span&gt; params &lt;span style=&quot;color:#000000&quot;&gt;=&lt;/span&gt; upload&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;parseRequest&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;request&lt;span style=&quot;color:#000000&quot;&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  10 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#0000ff&quot;&gt;Map&lt;/span&gt; paramsMap &lt;span style=&quot;color:#000000&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;HashMap&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  11 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;FileItem param &lt;span style=&quot;color:#000000&quot;&gt;:&lt;/span&gt; params&lt;span style=&quot;color:#000000&quot;&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  12 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// paramsMap[&amp;quot;grupo&amp;quot;,&amp;quot;Jaguares&amp;quot;];&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  13 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;paramsMap&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;param&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;getFieldName&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(),&lt;/span&gt;param&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;getString&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;());&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  14 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  15 &lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;  16 &lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Una vez ya en este punto, tenemos los siguientes métodos en la interfaz &lt;code&gt;FileItem&lt;/code&gt;: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;getInputStream()&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;getName()&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;getOutputStream()&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;getSize()&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;write(java.io.File file)&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;code&gt;getContentType()&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Cuando algunos de los parámetros es un archivo el método &lt;code&gt;getContentType&lt;/code&gt; es diferente de &lt;code&gt;null&lt;/code&gt; por lo es importante señalar que los parámetros como típicamente se obtienen aquí no tiene efecto, es decir:&lt;br /&gt;&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;public class&lt;/span&gt; MiServlet &lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;extends&lt;/span&gt; HttpServlet &lt;span style=&quot;color:#000000&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#9c20ee; font-weight:bold&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#208920&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;doPost&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;HttpServletRequest req&lt;span style=&quot;color:#000000&quot;&gt;,&lt;/span&gt; HttpServletResponse resp&lt;span style=&quot;color:#000000&quot;&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;req&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;getParameter&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;cancion&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;);&lt;/span&gt; &lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// null&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;req&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;getParameter&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#bd8d8b&quot;&gt;&amp;quot;grupo&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;);&lt;/span&gt; &lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// null&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;req&lt;span style=&quot;color:#000000&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;getParameterNames&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;();&lt;/span&gt; &lt;span style=&quot;color:#ac2020; font-style:italic&quot;&gt;// Enumeration vacio&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#555555&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt; &lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt; &lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/09/carga-de-archivos-en-un-tag-con-java.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7839829255774158150</guid><pubDate>Thu, 17 Jul 2008 18:50:00 +0000</pubDate><atom:updated>2008-10-05T20:11:36.485-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java5</category><category domain="http://www.blogger.com/atom/ns#">java6</category><category domain="http://www.blogger.com/atom/ns#">jvm</category><category domain="http://www.blogger.com/atom/ns#">libmawt.so</category><category domain="http://www.blogger.com/atom/ns#">xawt</category><category domain="http://www.blogger.com/atom/ns#">xcb</category><category domain="http://www.blogger.com/atom/ns#">xlib</category><title>Problema &#39;xcb_xlib_unlock&#39; al actualizar JVM</title><description>Después de cada actualización a la JVM es posible que cuando se quiere ejecutar algo en Java nos arroje algún error similar, en este reproduciré el error al ejecutar un archivo jar (el cual es el un diagramador de modelos entidad-relación):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;neoriddle@neobalam ~/dbwrench_1.4.7 $ java -jar DbWrenchAll.jar&lt;br /&gt;java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c-&gt;xlib.lock&#39; failed.&lt;br /&gt;Abortado&lt;br /&gt;neoriddle@neobalam ~/dbwrench_1.4.7 $&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y esto se corrige deshabilitando el &lt;em&gt;XCB Xlib&lt;/em&gt; de la siguiente manera, basta con ejecutar la línea correspondiente (con los suficientes privilegios) dependiendo de la versión de la JVM.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Para Java 5:&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;i &lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;s/XINERAMA/FAKEEXTN/g&#39;&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;1.5.0&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;sun&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;1.5.0.11&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;jre&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;xawt&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;libmawt.so&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Para Java 6:&lt;br /&gt;&lt;code style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;i &lt;span style=&quot;color:#bd8d8b&quot;&gt;&#39;s/XINERAMA/FAKEEXTN/g&#39;&lt;/span&gt; &lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;jvm&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;java&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;sun&lt;span style=&quot;color:#000000&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;1.6.0.00&lt;/span&gt;&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;jre&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;i386&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;xawt&lt;span style=&quot;color:#000000&quot;&gt;/&lt;/span&gt;libmawt.so&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;Según he visto en varios foros, el problema se puede reproducir con muchas aplicaciones escritas o ejecutables en Java.&lt;br /&gt;&lt;br /&gt;Como referencias aqui tienen las siguientes ligas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.gentoo.org/show_bug.cgi?id=156353&quot;&gt;http://bugs.gentoo.org/show_bug.cgi?id=156353&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.gentoo.org/show_bug.cgi?id=181617&quot;&gt;http://bugs.gentoo.org/show_bug.cgi?id=181617&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://bugs.gentoo.org/show_bug.cgi?id=181854&quot;&gt;http://bugs.gentoo.org/show_bug.cgi?id=181854&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/07/problema-xcbxlibunlock-al-actualizar.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-6624509590491181916</guid><pubDate>Tue, 24 Jun 2008 05:51:00 +0000</pubDate><atom:updated>2008-06-24T01:22:39.750-05:00</atom:updated><title>Registro de Nick en IRC</title><description>Muchos de los canales de IRC, solicitan que los nicknames (o apodos) sean registrados, unos servidores (como por ejemplo Freenode) lo requieren para entrar a algún canal y otros simplemente para mandar mensajes privados a los integrantes del canal.&lt;br /&gt;&lt;br /&gt;Aquí escribo los pasos básicos para realizar este proceso:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Una vez dentro del servidor hay que elegir el &lt;span style=&quot;font-style: italic;&quot;&gt;apodo&lt;/span&gt; (de hecho para entrar al servidor se debió haber elegido un nick) pero si se quiere cambiar se puede hacer con el siguiente comando: &lt;code style=&quot;font-weight: bold;&quot;&gt;/nick nuevo_nombre&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Después si el apodo ha sido elegido lo notificará en tal caso pide autentificarse (lo cual se explica mas adelante), en caso de que el apodo este libre hay que registrar la contraseña y un correo electrónico relacionados con el apodo, esto se hace con el siguiente comando: &lt;code style=&quot;font-weight: bold;&quot;&gt;/msg nickserv register &amp;lt;password&amp;gt;&lt;/code&gt;, o &lt;code style=&quot;font-weight: bold;&quot;&gt;/msg nickserv register &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;/code&gt; (es importante escribir un correo electrónico válido porque ahí se enviará una confirmación de registro que hay que realizar forzosamente).&lt;/li&gt;&lt;li&gt;Una vez realizado el paso anterior es posible que se mande un correo electrónico para confirmar el registro, en tal caso ahí se envían unas instrucciones para enviar el código de verificación del registro.&lt;/li&gt;&lt;li&gt;Y por ultimo lo que queda es iniciar sesión con este apodo (nombre de usuario) y con su contraseña registrada, con el siguiente comando &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;code&gt;/msg nickserv identify password&lt;password&gt;&lt;/password&gt;&lt;/code&gt;&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;Por ejemplo imaginemos que mi apodo es &#39;usuarioirc&#39;, la contraseña es &#39;claveirc&#39; y el correo eletrónico al registrar es &#39;micorreo@miservidor.com&#39;, el registro sería de la siguiente manera:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/nick &lt;span style=&quot;font-weight: bold;&quot;&gt;usuarioirc&lt;/span&gt;&lt;br /&gt;/msg nickserv register &lt;span style=&quot;font-weight: bold;&quot;&gt;claveirc micorreo@miservidor.com&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;/msg nickserv identify &lt;span style=&quot;font-weight: bold;&quot;&gt;claveirc&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/06/registro-de-nick-en-irc.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-2710453897450584590</guid><pubDate>Mon, 16 Jun 2008 02:28:00 +0000</pubDate><atom:updated>2008-09-13T21:35:24.960-05:00</atom:updated><title>Mas sobre JSTL</title><description>Bueno,hoy quiero compartir algo de lo que aprend&amp;iacute; haciendo mi proyecto con JSP y JSTL.&lt;br /&gt;&lt;br /&gt;Intente hacer todo el proyecto usando las librer&amp;iacute;as est&amp;aacute;ndar que ofrece JSTL 1.1, evitando el  uso de java tradicional.&lt;br /&gt;&lt;br /&gt;Mientras iba avanzado en el proyecto me di cuenta de que no se puede reemplazar uno por el otro; aunque JSTL engloba las funciones principales JSP tiene m&amp;aacute;s ventaja para nosotros  los que no estamos familiarizados con la web.&lt;br /&gt;&lt;br /&gt;Un ejemplo de ello en mi sistema fue cuando gener&amp;eacute; una lista de captura de calificaciones de asignaturas (mostrando las calificaciones de acuerdo al grado y/o al plan de estudios y nombrando los SELECT de las calificaciones con el nombre de la asignatura), pero en la p&amp;aacute;gina donde recib&amp;iacute; el valor no pude referenciar la variable de ningun modo por que en ${param.atributo} atributo no es un string y eso me genera un grave problema a la hora de iterar.&lt;br /&gt;En cambio si hubiera usado algo del lenguaje java pude haber creado un arreglo de String con los nombres de las materias de dicho grado y/o plan de estudios e insertar los valores con request.getParam(arreglo[posicion]); .&lt;br /&gt;&lt;br /&gt;Con esto no digo que JSTL no sirva ni mucho menos, es mucho m&amp;aacute;s f&amp;aacute;cil usar DBCP con JSTL, solo indicando el dataSource como atributo de la etiqueta &lt;sql:transaction&gt;&lt;br /&gt;en lugar de crear objetos Context,DataSource... en fin, aprend&amp;iacute; que combinando estas dos cosas podemos hacer cosas muy hermosas y funcionales:D.&lt;br /&gt;&lt;br /&gt;Quiz&amp;aacute; muchos de ustedes ya sepan eso, pero yo tuve que aprenderlo del modo dif&amp;iacute;cil y quiero que el pr&amp;oacute;ximo que este en una situacion similar lo piense dos veces antes de hacer a un lado el buen lenguaje java.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/06/mas-sobre-jstl.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-5569036795583057744</guid><pubDate>Sun, 15 Jun 2008 03:36:00 +0000</pubDate><atom:updated>2008-06-17T02:25:37.868-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">antivir</category><category domain="http://www.blogger.com/atom/ns#">antivirus</category><category domain="http://www.blogger.com/atom/ns#">archivo</category><category domain="http://www.blogger.com/atom/ns#">avira</category><category domain="http://www.blogger.com/atom/ns#">file</category><category domain="http://www.blogger.com/atom/ns#">licencia</category><category domain="http://www.blogger.com/atom/ns#">license</category><title>Avira Antivir License File</title><description>Seguramente los usuarios del programa de Antivirus &lt;strong&gt;Avira AntiVir&lt;/strong&gt; a la hora de hacer la actualización de la definición de virus, les ha pedido este programa un archivo de licencia.&lt;br /&gt;&lt;br /&gt;Sucede que si vamos a la &lt;a href=&quot;http://www.free-av.com/&quot;&gt;página oficial&lt;/a&gt; del programa, deberíamos encontrar una forma rápida para descargar este archivo, pero bajo el esquema espacial del sitio en estos momentos, simplemente no se encuentra en la secci&amp;oacute;n de soporte, descargas, ni ninguna.&lt;br /&gt;&lt;br /&gt;Resulta que existe una liga a este archivo en la sección &lt;em&gt;&lt;a href=&quot;http://www.free-av.com/en/support/index.html&quot;&gt;Support&lt;/a&gt;&lt;/em&gt;, despu&amp;eacute;s a &lt;em&gt;&lt;a href=&quot;http://www.free-av.com/en/pages/22/faq.html&quot;&gt;FAQ&lt;/a&gt;&lt;/em&gt; y finalmente en la primera pregunta del FAQ se encuentra la liga a este archivo, por si las dudas aquí pondré una liga a el:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://dl2.avgate.net/down/windows/hbedv.key&quot;&gt;Liga al 14 de junio de 2008&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Debido a que los administradores de ese sitio pueden cambiar la url hacia este archivo (y obviamente yo no tengo control sobre eso)  es posible que la liga se rompa, en ese caso por favor envienme un mensaje informando este caso y a&amp;uacute;n mejor la nueva ruta para que se actualize.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/06/avira-antivir-license-file.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-4683263899696565500</guid><pubDate>Mon, 09 Jun 2008 05:19:00 +0000</pubDate><atom:updated>2008-06-17T02:26:14.492-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rails</category><category domain="http://www.blogger.com/atom/ns#">Railscasts</category><category domain="http://www.blogger.com/atom/ns#">recipes</category><category domain="http://www.blogger.com/atom/ns#">ruby</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Railscasts</title><description>A todos los programadores de Rails muy seguramente les servir&amp;aacute; esta p&amp;aacute;gina, se llama &lt;em&gt;&lt;a href=&quot;http://railscasts.com/&quot;&gt;Railscasts&lt;/a&gt;&lt;/em&gt;, la cual tiene peque&amp;ntilde;as &quot;recetas de cocina&quot; sobre el trabajo con Rails. Y para los que est&amp;aacute;n cansados de que cuando le preguntan a alguien los manda a Google, aqu&amp;iacute; a parte de dar soluciones tienen un video como demostraci&amp;oacute;n para ver la implementaci&amp;oacute;n paso a paso. Vale la pena tenerlo entre los favoritos y hasta tener el &lt;a href=&quot;http://feeds.feedburner.com/railscasts&quot;&gt;feed&lt;/a&gt; suscrito.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/06/railscasts.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7238633279759965963</guid><pubDate>Sun, 01 Jun 2008 20:40:00 +0000</pubDate><atom:updated>2008-06-17T02:26:27.639-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">login</category><category domain="http://www.blogger.com/atom/ns#">login_generator</category><category domain="http://www.blogger.com/atom/ns#">rails</category><title>Error al generar controlador con Login_Generator en Rails 2.0</title><description>Tratando de implementar un sistema de seguridad por logeo en una aplicacion en Rails &lt;b&gt;2.0&lt;/b&gt;, uno de los pasos señala que hay que generar un controlador con la siguiente instrucci&amp;oacute;n:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ruby script/generate login &lt;em&gt;&amp;lt;controlador&amp;rt;&lt;/em&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;En mi caso lo hice as&amp;iacute;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ruby script/generate login Security&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  lib/login_system.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/controllers/security_controller.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  test/functional/security_controller_test.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/helpers/security_helper.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/models/user.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  test/unit/user_test.rb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  test/fixtures/users.yml&lt;br /&gt;No such file or directory - /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml&lt;br /&gt;$&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Revisando un poco el directorio para comprobar si realmente ese archivo no existia me di cuenta que &lt;b&gt;si existe, pero con otro nombre&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ls -l /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/rails_generator/generators/components/scaffold/templates/&lt;br /&gt;total 40&lt;br /&gt;-rw-r--r-- 1 root root 2464 may 13 23:47 controller.rb&lt;br /&gt;-rw-r--r-- 1 root root 1256 may 13 23:47 functional_test.rb&lt;br /&gt;-rw-r--r-- 1 root root   46 may 13 23:47 helper.rb&lt;br /&gt;-rw-r--r-- 1 root root  495 may 13 23:47 layout.html.erb&lt;br /&gt;-rw-r--r-- 1 root root 1152 may 13 23:47 style.css&lt;br /&gt;-rw-r--r-- 1 root root  463 may 13 23:47 view_edit.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  697 may 13 23:47 view_index.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  411 may 13 23:47 view_new.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  285 may 13 23:47 view_show.html.erb&lt;br /&gt;$&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y como podemos ver si existe pero con la convenci&amp;oacute;n de nombres de la versi&amp;oacute;n de Rails 2.0 (la cual es &lt;b&gt;.html.erb&lt;/b&gt;) y no con la versi&amp;oacute;n 1.2 (la cual es &lt;b&gt;.rhtml&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;As&amp;iacute; que solo basta con hacer una copia del archivo con el nombre de la versi&amp;oacute;n 2.0 a uno con el nombre de la versi&amp;oacute;n 1.2:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ cp layout.html.erb layout.rhtml&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;De esta manera ya existir&amp;aacute;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ls -l /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/rails_generator/generators/components/scaffold/templates/&lt;br /&gt;total 40&lt;br /&gt;-rw-r--r-- 1 root root 2464 may 13 23:47 controller.rb&lt;br /&gt;-rw-r--r-- 1 root root 1256 may 13 23:47 functional_test.rb&lt;br /&gt;-rw-r--r-- 1 root root   46 may 13 23:47 helper.rb&lt;br /&gt;-rw-r--r-- 1 root root  495 may 13 23:47 layout.html.erb&lt;br /&gt;&lt;b&gt;-rw-r--r-- 1 root root  495 jun  1 15:38 layout.rhtml&lt;/b&gt;&lt;br /&gt;-rw-r--r-- 1 root root 1152 may 13 23:47 style.css&lt;br /&gt;-rw-r--r-- 1 root root  463 may 13 23:47 view_edit.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  697 may 13 23:47 view_index.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  411 may 13 23:47 view_new.html.erb&lt;br /&gt;-rw-r--r-- 1 root root  285 may 13 23:47 view_show.html.erb&lt;br /&gt;$&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y con esto ya podremos seguir con la creacion del controlador (en mi caso aqu&amp;iacute; esta el ejemplo):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ruby script/generate login Security&lt;br /&gt;   identical  lib/login_system.rb&lt;br /&gt;   identical  app/controllers/security_controller.rb&lt;br /&gt;   identical  test/functional/security_controller_test.rb&lt;br /&gt;   identical  app/helpers/security_helper.rb&lt;br /&gt;   identical  app/models/user.rb&lt;br /&gt;   identical  test/unit/user_test.rb&lt;br /&gt;   identical  test/fixtures/users.yml&lt;br /&gt;overwrite app/views/layouts/scaffold.rhtml? (enter &quot;h&quot; for help) [Ynaqdh]&lt;br /&gt;Y - yes, overwrite&lt;br /&gt;n - no, do not overwrite&lt;br /&gt;a - all, overwrite this and all others&lt;br /&gt;q - quit, abort&lt;br /&gt;d - diff, show the differences between the old and the new&lt;br /&gt;h - help, show this help&lt;br /&gt;overwrite app/views/layouts/scaffold.rhtml? (enter &quot;h&quot; for help) [Ynaqdh] Y&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;force  app/views/layouts/scaffold.rhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;identical  public/stylesheets/scaffold.css&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/views/security&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/views/security/welcome.rhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/views/security/login.rhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/views/security/logout.rhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  app/views/security/signup.rhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create  README_LOGIN&lt;br /&gt;$&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/06/error-al-generar-controlador-con.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-3203303356141876122</guid><pubDate>Sun, 25 May 2008 17:36:00 +0000</pubDate><atom:updated>2008-06-17T02:26:43.899-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">mmc</category><category domain="http://www.blogger.com/atom/ns#">ricoh</category><category domain="http://www.blogger.com/atom/ns#">sd</category><category domain="http://www.blogger.com/atom/ns#">securedisc</category><title>SD/SDIO/MMC/MS/MSPro funcionando en linux</title><description>Para usar el dispositivo para SD/MMCMS/MSPro, basicamente en el kernel hay que tener habilitadas algunas opciones:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Code maturity level options  ---&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;[*] Prompt for development and/or incomplete code/drivers&lt;br /&gt;Device Drivers  ---&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;MMC/SD Card support  --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;*&gt; MMC support&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ ]   MMC debugging&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;*&gt;   MMC block device driver&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;*&gt;   Secure Digital Host Controller Interface support  (EXPERIMENTAL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt; &gt;   Winbond W83L51xD SD/MMC Card Interface support&lt;br /&gt;File systems ---&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;*&gt; DOS FAT fs support&lt;br /&gt;&amp;nbsp;&amp;nbsp;DOS/FAT/NT Filesystems  --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;*&gt;   MSDOS fs support&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt; &gt;     UMSDOS: Unix-like file system on top of standard MSDOS fs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;*&gt;   VFAT (Windows-95) fs support &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;En mi caso tengo un dispositivo de la marca Ricoh:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# lspci | grep -i mmc&lt;br /&gt;03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Asi que solo lo recompilamos y usamos ese kernel y listo.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/05/sdsdiommcmsmspro-funcionando-en-linux.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7205126168723909040</guid><pubDate>Sat, 24 May 2008 21:48:00 +0000</pubDate><atom:updated>2008-06-17T02:27:01.497-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">delay</category><category domain="http://www.blogger.com/atom/ns#">kopete</category><category domain="http://www.blogger.com/atom/ns#">lento</category><category domain="http://www.blogger.com/atom/ns#">retardo</category><title>Kopete tarda en iniciar</title><description>He encontrado que Kopete suele tardar en iniciar mucho tiempo debido a que la carga de los plugins que a su vez éste carga son pesados. En mi caso tuve la desafortunada experiencia durante casi mas de 4 meses donde Kopete tardaba en iniciar 5 minutos al principio y esto se extendió hasta casi 25 minutos, obviamente eso no es normal ni deseable, así que encontré que el archivo donde guarda la configuración de usuario &lt;b&gt;&lt;code&gt;~/.kde/share/config/kopeterc&lt;/code&gt;&lt;/b&gt;, y ahí hay una linea que activa el plugin (muchas veces ya instalado, esto dependiendo del administrador de paquetes de dicha distribución), esta línea es:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;kopete_statisticsEnabled=true&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;por lo que hay que cambiar su valor a false en caso de que no se pueda desactivar por la interfaz gráfica, de tal modo dicha linea cambiaría a:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;kopete_statisticsEnabled=false&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;De este modo ya no carga las estadísticas que guarda por cada contacto y ya no hay retardo.&lt;br /&gt;&lt;br /&gt;Aquí dejo el vínculo hacia el foro donde escribí un post sobre este problema (&lt;a href=&quot;http://forums.gentoo.org/viewtopic-t-586184-highlight-kopete+waiting.html&quot;&gt;Gentoo Forums&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/05/kopete-tarda-en-iniciar.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-6851137757715098349</guid><pubDate>Tue, 13 May 2008 05:52:00 +0000</pubDate><atom:updated>2008-05-13T00:55:02.700-05:00</atom:updated><title>JSTL =O!</title><description>Bueno, soy algo novato en esto de jstl y quisiera la opinion de todo aquel que sea capaz de darla, sobre si jstl es diferente de jsp, si es una extension de jsp, en que casos la usas, cualquier cosa s valida x]</description><link>http://proyectoscript.blogspot.com/2008/05/jstl-o.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-7276475939779423231</guid><pubDate>Thu, 24 Apr 2008 20:11:00 +0000</pubDate><atom:updated>2008-07-07T03:18:03.108-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">feedtools</category><category domain="http://www.blogger.com/atom/ns#">feedupdater</category><category domain="http://www.blogger.com/atom/ns#">rss</category><category domain="http://www.blogger.com/atom/ns#">rssruby</category><category domain="http://www.blogger.com/atom/ns#">ruby</category><title>Manejo de RSS con Ruby</title><description>Recientemente investigé un poco como manejar los RSS con Ruby y encontré varias APIs, como &lt;span style=&quot;font-style: italic;&quot;&gt;FeedTools&lt;/span&gt;, &lt;span style=&quot;font-style: italic;&quot;&gt;FeedUpdater&lt;/span&gt;, RSSRuby&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;, etc.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Y aquí les dejo un código (que ya probé y funciona).&lt;br /&gt;&lt;br /&gt;Para escribir RSS:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require &#39;rss/maker&#39;&lt;br /&gt;&lt;br /&gt;version = &quot;2.0&quot; # [&quot;0.9&quot;, &quot;1.0&quot;, &quot;2.0&quot;]&lt;br /&gt;destination = &quot;test_maker.xml&quot; # local file to write&lt;br /&gt;&lt;br /&gt;content = RSS::Maker.make(version) do |m|&lt;br /&gt;m.channel.title = &quot;Example Ruby RSS feed&quot;&lt;br /&gt;m.channel.link = &quot;http://www.rubyrss.com&quot;&lt;br /&gt;m.channel.description = &quot;Old news (or new olds) at Ruby RSS&quot;&lt;br /&gt;m.items.do_sort = true # sort items by date&lt;br /&gt;&lt;br /&gt;i = m.items.new_item&lt;br /&gt;i.title = &quot;Ruby can parse RSS feeds&quot;&lt;br /&gt;i.link = &quot;http://www.rubyrss.com/&quot;&lt;br /&gt;i.date = Time.parse(&quot;2007/2/11 14:01&quot;)&lt;br /&gt;&lt;br /&gt;i = m.items.new_item&lt;br /&gt;i.title = &quot;Ruby can create RSS feeds&quot;&lt;br /&gt;i.link = &quot;http://www.rubyrss.com/&quot;&lt;br /&gt;i.date = Time.now&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;File.open(destination,&quot;w&quot;) do |f|&lt;br /&gt;f.write(content)&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Y para leer:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;require &#39;rss/1.0&#39;&lt;br /&gt;require &#39;rss/2.0&#39;&lt;br /&gt;require &#39;open-uri&#39;&lt;br /&gt;&lt;br /&gt;source = &quot;http://rubyforge.org/export/rss_sfnewreleases.php&quot; # url or local file&lt;br /&gt;content = &quot;&quot; # raw content of rss feed will be loaded here&lt;br /&gt;open(source) do |s| content = s.read end&lt;br /&gt;rss = RSS::Parser.parse(content, false)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/04/manejo-de-rss-con-ruby.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-8112087894629642413</guid><pubDate>Sun, 20 Apr 2008 01:55:00 +0000</pubDate><atom:updated>2008-09-13T21:35:47.163-05:00</atom:updated><title>File system del iPhone</title><description>Un dia me encontraba jugando con mi iphone&lt;br /&gt;I descubri ke el system operative es algo asi&lt;br /&gt;komo freebsd y ademas el entorno de desarrollo&lt;br /&gt;del iphone utiliza objetive C para desarrollar sus&lt;br /&gt;aplikaciones.&lt;br /&gt;&lt;br /&gt;Estoy por conseguir su  entorno de desarrollo para windows para compartirlo aka ademas de&lt;br /&gt;todo un file system del iPhone para aprender nuevas kosas.&lt;br /&gt;pronto estara en la red.&lt;br /&gt;&lt;br /&gt;BY T E&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;br /&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; alt=&quot;Digg!&quot; height=&quot;20&quot; width=&quot;100&quot; /&gt;&lt;br /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/04/file-system-del-iphone.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-1318756079538049219</guid><pubDate>Tue, 08 Apr 2008 21:22:00 +0000</pubDate><atom:updated>2008-04-08T16:49:13.746-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">nVidia</category><category domain="http://www.blogger.com/atom/ns#">x11</category><category domain="http://www.blogger.com/atom/ns#">xorg</category><title>Arrancando una tarjeta nVidia</title><description>Para poder hacer uso de una tarjeta grafica nVidia bajo Linux, primeramente deberemos de tenerla instalada, por lo cual deberemos de buscar los drivers, para lo cual dentro de el CD o medio de datos que nos dan con el producto buscaremos si en este estan los drives (estos deben ser compatibles con nuestro Kernel), en caso de que no existan dichos archivos, podemos acudis a las siguientes paginas.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.nvidia.es/object/linux_es.html&quot;&gt;http://www.nvidia.es/object/linux_es.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.linux-drivers.org/&quot;&gt;http://www.linux-drivers.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si en &quot;Linux Drivers&quot; tu dispositivo aparece como &quot;unsupported&quot; lamentablemente sera poco probable que logres compatibilidad, en otro caso siempre esta Google.&lt;br /&gt;&lt;br /&gt;Una vez instalados los drivers (No lo explicare, ya que el fabricante o proveedor de dichos archivos inclue las instrucciones y estas llegan a variar segun modelo, fuente, etc), proseguimos a arrancar nuestro dispositivo, ya que normalmente este no se encuentra activo despues de instalar.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Accediendo como root&lt;/span&gt;&lt;br /&gt;En la terminal de Linux teclear: ($ es el prompt, lo que seria c:\&gt; en windows)&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt; $su&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&quot;Ingresa el password del root&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Apagando el modo grafico&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$init 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Te aparecera la terminal pero en toda tu pantalla, no te asustes.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Configuranción de nVidia recomendada. (Puede cambiar ligeramente según modelo)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$nvidia--xconfig --composite&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$nvidia--xconfig --render-acel&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$nvidia--xconfig --add-argb-glx-visuals -d 24&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Arrancando modo grafico&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En mi caso, yo uso KDE y x11 con OpenSuSe 10.3 (Sax2 es elprograma que ayuda a la configuración grafica de x11)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$sax2 -r -m 0=nvidia&lt;/span&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&quot;ojo que 0 ---&gt; es un cero, si no usas &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SuSe&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;deberás&lt;/span&gt; hacerlo con tu administrador &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;gráfico&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;init&lt;/span&gt; 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;o en su defecto&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(192, 192, 192);&quot;&gt;$&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;startx&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;**Esto lo &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;e&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;probado&lt;/span&gt; en &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;SuSe&lt;/span&gt; 10.3, si tienes otra &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;distro&lt;/span&gt; y se requiere modificar algo, &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;por favor&lt;/span&gt;, no dudes en &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;colaborar&lt;/span&gt; con ello&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0); font-style: italic;&quot;&gt;¿ERRORES?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Si encuentras un error en esto, &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;por favor&lt;/span&gt;, has el favor de indicarlo, pero no borrarlo ya que mes mejor marcar el error que borrarlo. (&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;Así&lt;/span&gt; se &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;aprenderá&lt;/span&gt; mas de ello)&lt;/span&gt;</description><link>http://proyectoscript.blogspot.com/2008/04/arrancando-una-tarjeta-nvidia.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5752439517691679363.post-8801731322977830024</guid><pubDate>Mon, 07 Apr 2008 18:37:00 +0000</pubDate><atom:updated>2008-06-17T02:28:38.148-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">flisol</category><category domain="http://www.blogger.com/atom/ns#">instalacion</category><category domain="http://www.blogger.com/atom/ns#">libre</category><category domain="http://www.blogger.com/atom/ns#">software</category><title>FLISOL 2008</title><description>Estamos casi a un mes de que el FLISOL (Festival Latinoamericano de Software Libre) en su edición 2008 se lleve a cabo.&lt;br /&gt;&lt;br /&gt;Este festival tienes como objetivo ser una puerta de entrada y alternativa para todas las personas que quieren usar software libre y/o necesitan ayuda o tienen problemas instalado dicho software.&lt;br /&gt;&lt;br /&gt;Este festival se realiza simultáneamente en las principales ciudades de latinoamérica, en la Ciudad de México las sedes serán las siguientes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CECyT No.8&lt;/li&gt;&lt;li&gt;CUGS-CIC&lt;/li&gt;&lt;li&gt;ESCOM-CIDETEC&lt;/li&gt;&lt;li&gt;UACM&lt;/li&gt;&lt;li&gt;UAMA&lt;/li&gt;&lt;li&gt;UAMI&lt;/li&gt;&lt;li&gt;UNAM (LIDSOL)&lt;/li&gt;&lt;li&gt;UNITEC Campus Sur&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;En el Estado de México también habrá sedes (para mayor información vaya a la &lt;a href=&quot;http://www.flisol.org.mx/&quot;&gt;página de FLISOL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En este festival existen personas experimentadas (y veces con mucho ánimo), y están ahí para ayudar a los demás en la instalación de software pero también para dar consejos de como usarlos de una manera adecuada o quizá mas óptima de la que lo venimos haciendo. También existen exposiciones sobre este temas relacionados con este tipo de software.&lt;br /&gt;&lt;br /&gt;Asi que es una buena recomendación, cabe señalar que en cada una de las sedes las actividades (talleres de instalación, exposiciones, platicas, etc) pueden variar y muy probablemente no ser las mismas.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://digg.com/&quot;&gt;&lt;img src=&quot;http://digg.com/img/badges/100x20-digg-button.png&quot; width=&quot;100&quot; height=&quot;20&quot; alt=&quot;Digg!&quot; /&gt;&lt;/a&gt;</description><link>http://proyectoscript.blogspot.com/2008/04/flisol-2008.html</link><author>noreply@blogger.com (NeoRiddle)</author><thr:total>0</thr:total></item></channel></rss>