<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Linux Hispano &#187; mysql</title> <atom:link href="http://www.linuxhispano.net/etiqueta/mysql/feed/" rel="self" type="application/rss+xml" /><link>http://www.linuxhispano.net</link> <description>Noticias, tira, podcast, juegos, Linux y software libre</description> <lastBuildDate>Thu, 09 Feb 2012 22:01:44 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Diferencia entre DELETE, TRUNCATE y DROP en SQL</title><link>http://www.linuxhispano.net/2012/02/06/diferencia-entre-delete-truncate-y-drop-en-sql/</link> <comments>http://www.linuxhispano.net/2012/02/06/diferencia-entre-delete-truncate-y-drop-en-sql/#comments</comments> <pubDate>Mon, 06 Feb 2012 10:12:14 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[delete]]></category> <category><![CDATA[drop]]></category> <category><![CDATA[drop database]]></category> <category><![CDATA[drop table]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[sql]]></category> <category><![CDATA[truncate]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8874</guid> <description><![CDATA[Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que &#8230; <a
href="http://www.linuxhispano.net/2012/02/06/diferencia-entre-delete-truncate-y-drop-en-sql/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que cumplan una serie de condiciones, de todos los datos de una tabla o de la tabla con su estructura. Veamos cada una de ellas, con su sintaxis y un ejemplo.</p><p>Manejamos para el ejemplo una tabla entradas, que trata sobre la entradas de un blog y que almacena básicamente la siguiente información: identificador, título, cuerpo y tiempo de salida.</p><p><strong>DELETE</strong></p><p>Borra una serie de filas de la tabla. Podemos usar una claúsula WHERE para limitar las filas a borrar, a las que cumplan una condición. La sintaxis sería:</p><pre>DELETE FROM nombre_tabla WHERE condicion</pre><p><span
id="more-8874"></span></p><p>Para nuestro caso:</p><pre>DELETE FROM entradas WHERE id = 2;</pre><p><strong>TRUNCATE</strong></p><p>A diferencia de DELETE, TRUNCATE elimina todas las filas de la tabla sin borrar la tabla. También <a
href="http://www.linuxhispano.net/2010/02/03/resetear-autoincremento-en-mysql/" target="_blank">resetea los contadores de auto incremento a 0</a>. No borra la tabla como tal, la llamada estructura, por lo que luego puede comenzar a hacer inserciones. La sintaxis es:</p><pre>TRUNCATE TABLE nombre_tabla;</pre><p>Y para nuestro caso:</p><pre>TRUNCATE TABLE entradas;</pre><p><strong>DROP</strong></p><p>Finalmente llegamos a DROP. A diferencia de la anterior, DROP no sólo elimina los datos, sino que también eliminar la estructura de la tabla.</p><pre>DROP TABLE nombre_tabla;</pre><p>Y para nuestro caso:</p><pre>DROP TABLE entradas;</pre><p><strong>DROP DATABASE</strong></p><p>A modo de bonus os traigo una instrucción más. Es idéntica a la anterior pero en lugar de borrar una tabla, borra una base de datos al completo. Podemos incluir en la sentencia IF EXISTS de forma que evitemos el error en caso de que no exista la base de datos (muy útil a la hora de <a
href="http://www.linuxhispano.net/2011/03/31/hacer-backup-y-restaurar-copia-de-seguridad-con-mysql/" target="_blank">hacer copias de seguridad</a> de las bases de datos).</p><pre>DROP DATABASE [IF EXISTS] nombre_base_datos;</pre><p>Y para nuestro caso:</p><pre>DROP DATABASE blog;</pre><p>Señalar que en MySQL no eliminar la estructura de permisos asociada a la base de datos. Para ello usaremos <a
target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/grant.html" target="_blank">GRANT</a>, pero de eso ya hablaremos en otra entrada en la que comentaremos los permisos con <a
target="_blank" href="http://linuxhispano.net/etiqueta/mysql" target="_blank">MySQL</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/02/06/diferencia-entre-delete-truncate-y-drop-en-sql/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Formatear y redondear un número en MySQL</title><link>http://www.linuxhispano.net/2012/01/18/formatear-y-redondear-un-numero-en-mysql/</link> <comments>http://www.linuxhispano.net/2012/01/18/formatear-y-redondear-un-numero-en-mysql/#comments</comments> <pubDate>Wed, 18 Jan 2012 19:00:05 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[formatear]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[número]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[redondear]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8873</guid> <description><![CDATA[Cuando trabajamos con cantidades con decimales en MySQL, es posible que queramos formatear nuestro número. Este problema es muy usual si usamos números en coma flotante: FLOAT y DOUBLE. Yo siempre suelo recomendar excepto para aplicaciones de muy alto rendimiento &#8230; <a
href="http://www.linuxhispano.net/2012/01/18/formatear-y-redondear-un-numero-en-mysql/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando trabajamos con cantidades con decimales en MySQL, es posible que queramos formatear nuestro número. Este problema es muy usual si usamos <a
target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html" target="_blank">números en coma flotante</a>: FLOAT y DOUBLE. Yo siempre suelo recomendar excepto para aplicaciones de muy alto rendimiento usar el tipo <a
target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html" target="_blank">DECIMAL</a>, de forma que guardemos el valor exacto y no aproximado (otro día hablaremos de la representación de números decimales en forma de coma flotante y las ventajas e inconvenientes que tiene).</p><p>Imaginemos que guardamos las cantidades de un determinado importe en DOUBLE, al hacer una consulta nos sale una cantidad de números decimales demasiado grande. La idea es redondear el número de forma que sólo aparezcan sólo dos decimales:</p><pre>SELECT ROUND(importe, 2)
FROM compras;</pre><p><span
id="more-8873"></span></p><p>Si queremos formatear el número de forma que aparezca separado por comas los miles y por un punto la parte decimal (estilo americano), usaremos la función <a
target="_blank" href="http://dev.mysql.com/doc/refman/5.0/es/miscellaneous-functions.html" target="_blank">FORMAT</a>. También le indicamos cuántos decimales queremos.</p><pre>SELECT FORMAT(12332.1,4);</pre><p>La salida sería: &#8217;12,332.1000&#8242; y será una cadena, no un número.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/18/formatear-y-redondear-un-numero-en-mysql/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Unir cadenas en MySQL</title><link>http://www.linuxhispano.net/2012/01/16/unir-cadenas-en-mysql/</link> <comments>http://www.linuxhispano.net/2012/01/16/unir-cadenas-en-mysql/#comments</comments> <pubDate>Mon, 16 Jan 2012 10:58:39 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[cadena]]></category> <category><![CDATA[concatenar]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[unir]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8869</guid> <description><![CDATA[Es muy frecuente que a la hora de almacenar los nombres y apellidos, por ejemplo, de unas personas en la base de datos los pongamos en dos columnas separadas. A la hora de hacer consultas, necesitaremos hacer unirlas, es decir &#8230; <a
href="http://www.linuxhispano.net/2012/01/16/unir-cadenas-en-mysql/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Es muy frecuente que a la hora de almacenar los nombres y apellidos, por ejemplo, de unas personas en la base de datos los pongamos en dos columnas separadas. A la hora de hacer consultas, necesitaremos hacer unirlas, es decir concatenarlas.</p><p>En <a
href="http://www.linuxhispano.net/etiqueta/mysql/" target="_blank">MySQL</a> esta operación puede ser directa, imaginemos una tabla personas con la siguiente estructura:</p><ul><li>DNI: varchar que es clave primaria</li><li>Nombre: varchar</li><li>Apellidos: varchar</li></ul><p>Queremos hacer una consulta en la que aparezca el dni seguido de los apellidos y el nombre unidos y separados por una coma. Sólo tendremos que hacer lo siguiente, usar la función <a
target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat" target="_blank">CONCAT()</a>:</p><p><span
id="more-8869"></span></p><pre>SELECT dni, CONCAT(apellidos, ', ', nombre)
FROM personas;</pre><p>La función acepta un número indeterminado de parámetros de tipo cadena y devuelve la concatenación de las mismas.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/16/unir-cadenas-en-mysql/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Diferencias entre un servicio de alojamiento con Linux y otro con Windows</title><link>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/</link> <comments>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/#comments</comments> <pubDate>Mon, 02 Jan 2012 18:28:45 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[.net]]></category> <category><![CDATA[asp]]></category> <category><![CDATA[hosting]]></category> <category><![CDATA[iis]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[servidor]]></category> <category><![CDATA[windows]]></category> <category><![CDATA[windows server]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8758</guid> <description><![CDATA[En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas &#8230; <a
href="http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas funciones. Aparte de otras alternativas que existen derivadas de sistemas como la familia BSD, las empresas que proporcionan hosting suelen decantarse mayoritariamente por dos sistemas operativos, GNU/Linux y Windows. Sin tener estadísticas fiables, no puedo decir a ciencia cierta que la mayoría usan GNU/Linux, aunque dando una paseo por la red, podemos hacernos una idea de que sí puede ser cierta dicha afirmación. También podremos ver bastantes empresas de hosting que ofrecen planes basados en servidores de Microsoft, por lo que en este artículo veremos en qué influye como clientes de un servicio de alojamiento web, que elijamos uno u otro sistema.</p><h2>Introducción</h2><p>Como en otros tantos aspectos de las nuevas tecnologías, en el mercado del hosting, tenemos varias posibilidades en cuanto a sistema operativo se refiere. Las dos mayoritarias a día de hoy, GNU/Linux y <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Microsoft Windows</a>, se reparten una gran cuota de mercado lo que no quiere decir que no existan otras alternativas, como por ejemplo servidores basados en NetBSD o FreeBSD. En este artículo veremos desde el punto de vista de cliente de una empresa de hosting, qué puede hacer que nos decantemos entre una u otra opción.</p><p><span
id="more-8758"></span></p><p>A priori, cualquier linuxero (entre los que me incluyo) no pensaría en ningún momento en usar un servidor basado en Internet Information Services (el servidor web de Microsoft) sobre un Microsoft Windows Server 2008. Sin embargo, os puedo asegurar que hay circunstancias en las que no sólo es recomendable usar esta opción, sino necesario. De todas maneras si nosotros somos los que elegimos la tecnología a usar y no nos imponen ciertas restricciones (si estamos trabajando para alguien) un poco “especiales”, en líneas generales podríamos decir que la mejor opción es usar GNU/Linux.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_windows_server.jpg" class="broken_link"><img
class="aligncenter" title="logo_windows_server" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_windows_server.jpg" alt="Logo Windows Sever 2008" width="440" height="330" /></a></p><p>Veamos a continuación, desglosados un poco más los detalles que pueden hacer que nos decantemos por una alternativa o por otra.</p><h2>Precio</h2><p>Puesto que a la hora de la verdad en todo lo referente a negocios privados, el aspecto más determinante de todos es el presupuesto, comencemos por el precio medio de los hosting. Dado que para poder tener un servidor corriendo bajo Microsoft Windows Server 2003 o 2008, hace falta pagar una licencia comercial y a un precio que no es bajo ni mucho menos, los hosting que ofrecen sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> suelen ser más caros que los basados en GNU/Linux. Antes de seguir me gustaría aclarar que hay muchas empresas que venden hosting con las dos posibildiades y uno a la hora de contratarlo, elige cuál le interesa.</p><p>Siguiendo con el tema económico, hay que contar que en un servicio de hosting, el precio que se paga por un sistema o por otro, no es sólo la licencia del sistema operativo en sí. Hay muchos factores aparte como por ejemplo, el coste del soporte, el gasto energético o la necesidad de comprar licencias de terceros programas, entre otras.</p><p>El coste del soporte era una de las excusas esgrimidas por Microsoft sobre el coste real de mantener un servidor en GNU/Linux, porque afirmaban que el soporte era bastante más caro que en GNU/Linux. Sin embargo, debido a la mayor automatización de muchos procesos en GNU/Linux y lo que es más importante, a su mayor difusión, cada vez el soporte es más barato y fácil para este sistema.</p><p>En cuanto a los otros factores que hemos también mencionado, el gasto de energía y la necesidad de comprar licencias a terceros, decir de la primera que para ver un consumo de energía real habría que hacer una serie de test y benchamarks con mucha exactitud para poder emitir un juicio objetivo. En el segundo caso, en el de comprar software de terceros, en <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> suele ser más frecuente esta necesidad, aunque en GNU/Linux también puede darse este caso y por supuesto, en ambos se puede utilizar software libre para satisfacer muchas necesidades.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/fundacion_apache.gif" class="broken_link"><img
class="aligncenter size-full wp-image-8775" title="fundacion_apache" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/fundacion_apache.gif" alt="Logo Apache" width="356" height="107" /></a></p><h2>Seguridad</h2><p>Se ha hablado tantísimo de este aspecto, comparando además a <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> y a Linux, que creo que no es necesario dar mucha información. La seguridad de los sistemas GNU/Linux está más que contrastada, más aún en ambientes de hosting; y además la facilidad de actualización que tiene el software instalado en este sistema hace que ante cualquier versión nueva que tape algún agujero, la actualización sea rápida y no haya de por medio problemas como obligar a reiniciar el servidor.</p><p>Este y otros muchos detalles, provenientes de un sistema que nació en un ambiente profesional, hacen de GNU/Linux el ganador por diferencia de este apartado.</p><h2>Eficiencia</h2><p>Este aspecto depende mucho del hardware que se use en la máquina en la que resida el servidor así como de la línea que tenga contratado con su ISP (proveedor de servicios de Internet) nuestro servicio de hosting. A priori puede que GNU/Linux distribuya mejor la carga de trabajo que <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Microsoft Windows</a>, pero es un aspecto que más que preocuparnos a nosotros que somos los que contratamos el host debe preocuparle al que ofrece el servicio.</p><p>También es verdad que cada vez son más las aplicaciones web basadas en tecnologías no tan eficientes como PHP, por ejemplo Ruby On Rails o Python (bastante más eficiente que Ruby pero aún así más lento que PHP) con Django o Turbo Gears; que requieren una mayor cantidad de recursos.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_internet_information_services.png"><img
class="aligncenter size-full wp-image-8777" title="logo_internet_information_services" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_internet_information_services.png" alt="Logo Intenet Information Services" width="160" height="76" /></a></p><h2>Posibilidades y necesidades específicas</h2><p>En este punto es donde quizás nos tengamos que decantar por una solución Microsoft Windows por obligaciones de los requisitos. Imaginemos que necesitamos usar por obligación una base de datos SQL Server, de Microsoft. Ante este caso, dado que este sistema gestor de base de datos sólo ejecuta en el sistema operativo de Microsoft, estaremos obligados a usar un host con Windows Server que ofrezca esta posibilidad. También es verdad que éste no suele ser el caso más común, por fortuna, y que para muchísimas otras circunstancias, la solución correcta es Linux, por razones casi idénticas. Por ejemplo, a día de hoy, es difícil encontrar un sistema basado en <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> que ofrezca soporte para ejecutar aplicaciones web implementadas con Ruby o Python, dos tecnologías en alza.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/tux-servidor.jpg" class="broken_link"><img
class="aligncenter size-full wp-image-8778" title="tux-servidor" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/tux-servidor.jpg" alt="Tux Servidor" width="200" height="230" /></a></p><p>Por lo tanto en este apartado, dependiendo de nuestro caso deberemos elegir una plataforma u otra, aunque como repito en la mayor parte de los casos el resultado es favorable para GNU/Linux. De hecho, en mi caso personal, por ejemplo, nunca elegiría trabajar con ASP.NET y SQL Server, por ejemplo, pudiendo trabajar con tecnologías libres que cubren las mismas necesidades ya que además de resultarme más barato, dispongo de una cantidad de documentación y soporte mucho mayor (aparte de que las tecnologías de Microsoft no son código abierto). Sin embargo, si tenemos un encargo profesional y por razones ajenas a nosotros hay que utilizar dichas tecnologías, tendremos que dencantarnos por un host con Windows Server.</p><h2>Adaptabilidad</h2><p>Normalmente, las tecnologías libres suelen estar mejor estandarizadas que sus equivalentes propietarias, por lo que de cara a migrar datos de un sistema gestor de base de datos a otro distinto, o a la hora de cambiar el servidor, si estamos operando con un host que trabaje con GNU/Linux, posiblemente se nos presenten menos problemas.</p><h2>Futuro</h2><p>Tanto el soporte como las nuevas versiones de software, están prácticamente aseguradas en los dos sistemas. Los costes de actualización de una versión a otra en el caso de software privado, no os repercutirán demasiado, dado que al igual que el coste de la licencia, estos son gastos que paga la empresa a la que contratamos. Por esta razón suelen ser más caros los servicios de host basados en sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a>. Aparte de eso, aunque este es un tema importante a la hora de elegir un servicio de host, el asegurarnos que el software está siempre actualizado y alejado de posibles vulnerabilidades, no existen diferencias de un sistema a otro.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_mysql.jpg" class="broken_link"><img
class="aligncenter size-full wp-image-8779" title="logo_mysql" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_mysql.jpg" alt="Logo MySQL" width="399" height="291" /></a></p><h2>Conclusiones</h2><p>A lo largo del artículo, habréis observado que para la mayor parte de las necesidades, excepto para las que necesitan expresamente ciertas tecnologías como .NET, podemos usar GNU/Linux por multitud de razones. Comenzando por el precio, terminando en la seguridad y pasando por variedad de otros aspectos como por ejemplo la capacidad de adaptación, GNU/Linux suele ser el más idóneo o en casos extraños, estar al nivel de su rival. También es cierto que como digo haya aplicaciones que por cuestiones de los requisitos necesiten sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> o en todo caso ejecuten con Mono (no os lo recomiendo si vais a usarlo como un sistema en producción y no en pruebas o de uso personal). En un futuro, también habrá que tener en cuenta aspectos como la virtualización en servidores, tecnología bastante avanzada ya pero que no se ofrece en muchos servicios de host.</p><p>Elegido el sistema, tenéis que elegir la empresa de hosting que contratar. En otros artículos os contarán mejor cómo seleccionar a dicha empresa de entre todas las que se ofertan en la red, pero como primer paso os recomiendo no comprobar sólo la cantidad de servicios que ofrecen, sino la calidad de los mismos.</p><p>Por último, os dejo unos cuantos enlaces en la sección “En la red”, de servidores web disponibles para GNU/Linux y un poco más de información para que leáis en la red sobre las versiones de servidor de Microsoft Windows y el servidor web que usan, Internet Information Services.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Curso ADO.NET con MySQL &#8211; Conclusiones</title><link>http://www.linuxhispano.net/2011/12/29/curso-ado-net-con-mysql-conclusiones/</link> <comments>http://www.linuxhispano.net/2011/12/29/curso-ado-net-con-mysql-conclusiones/#comments</comments> <pubDate>Thu, 29 Dec 2011 18:09:46 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[conclusiones]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8751</guid> <description><![CDATA[Se acaba el año y con él quiero dar por finalizado el curso de ADO.NET sobre Mono con MySQL que desde hace unos meses empecé en este portal. Llegamos a las conclusiones. En breve, anunciaré un nuevo curso de algo &#8230; <a
href="http://www.linuxhispano.net/2011/12/29/curso-ado-net-con-mysql-conclusiones/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Se acaba el año y con él quiero dar por finalizado <a
href="http://www.linuxhispano.net/cursos/curso-ado-net-con-mono-y-mysql/" target="_blank">el curso de ADO.NET sobre Mono con MySQL</a> que desde hace unos meses empecé en este portal. Llegamos a las conclusiones. En breve, anunciaré un nuevo curso de algo que domine y que no me cueste mucho tiempo desarrollar, cuando se me acaben las ideas, ya os pediré directamente recomendaciones.</p><p><strong>Conclusiones</strong></p><p>Aunque existen otras opciones para realizar labores similares a ésta, como Hibernate o directamente JDBC, siempre es bueno como he dicho desde un comienzo, conocer más posibilidades sobre todo en el caso de este tipo de tecnologías tan difundidas a día de hoy. No digo que Mono esté tan difundido como algunos querríamos, pero sí es verdad que por suerte o por desgracia, .NET Framework está presente en cada vez más ordenadores, y la compatibilidad de Mono con la plataforma de Microsoft le augura un futuro muy prometedor.</p><p><span
id="more-8751"></span></p><p>A través de este curso, he intentado mostraros las operaciones básicas y preliminares para comenzar a funcionar con ADO sobre Mono, utilizando además, una base de datos libre, MySQL que a su vez tiene una implementación de ADO propia. Sin lugar a dudas, un cocktail interesante.</p><p>Lo dicho, espero que os haya gustado y sobre todo que os haya sido lo suficientemente interesante como para que os animéis a desarrollar aplicaciones algo más complejas utilizando estas tecnologías.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/12/29/curso-ado-net-con-mysql-conclusiones/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL – Rellenando un DataSet</title><link>http://www.linuxhispano.net/2011/12/15/curso-ado-net-con-mono-y-mysql-rellenando-un-dataset/</link> <comments>http://www.linuxhispano.net/2011/12/15/curso-ado-net-con-mono-y-mysql-rellenando-un-dataset/#comments</comments> <pubDate>Thu, 15 Dec 2011 13:48:29 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[dataset]]></category> <category><![CDATA[datatable]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[mysqlcommand]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8599</guid> <description><![CDATA[Posiblemente, leer hacia delante sea una opción muy interesante en algunas ocasiones&#8230; pero en otras muchas no lo será y tendremos que recurrir a los versátiles DataSet. Haremos un uso básico de los mismos en este ejemplo, porque como os &#8230; <a
href="http://www.linuxhispano.net/2011/12/15/curso-ado-net-con-mono-y-mysql-rellenando-un-dataset/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Posiblemente, leer hacia delante sea una opción muy interesante en algunas ocasiones&#8230; pero en otras muchas no lo será y tendremos que recurrir a los versátiles <em>DataSet</em>. Haremos un uso básico de los mismos en este ejemplo, porque como os he dicho ya sus posibilidades son realmente amplias. Insertaremos un nuevo concepto, el de la clase <em>MySqlAdapter </em>que será quien se encargue de rellenar el <em>DataSet</em> a través del comando que ejecute el <em>SELECT</em>.</p><p>Previamente deberemos incluir la referencia a nuestro proyecto para el ensamblado <em>System.Data</em> que lo encontraréis dentro del menú de referencias en la pestaña “Paquetes”. En el comienzo del fichero también deberéis rellenar su respectivo <em>using System.Data</em>.</p><p>Una vez hecho esto, para rellenar el <em>DataSet </em>sólo tendremos que hacer:</p><p><span
id="more-8599"></span></p><pre>public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open();
	// nuevos objetos a utilizar
	DataSet datos = new DataSet();
	MySqlDataAdapter adaptador = new MySqlDataAdapter();
	try
	{
		MySqlCommand comando = new MySqlCommand
("SELECT * FROM ejemplo", conexion);
		adaptador.SelectCommand = comando;
		adaptador.Fill(datos);
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}</pre><p>Dentro de datos, tendremos un <em>DataTable </em>con todos los datos. Pero, ¿cómo acceder a ellos? Espero que con el siguiente bucle que voy a mostrar se quede todo un poco más claro. En este bucle recogeremos la tabla del <em>DataSet </em>y posteriormente la recorreremos primero por filas y luego cada fila por elementos. Imprimiremos el resultado por pantalla. Para no repetir código sólo pondremos la parte nueva y dónde va insertada.</p><pre>[...]
// nuevos objetos a utilizar
DataSet datos = new DataSet();
MySqlDataAdapter adaptador = new MySqlDataAdapter();
[...]
	adaptador.Fill(datos);
	DataTable tabla = datos.Tables[0];
	int i = 0;
	foreach(DataRow fila in tabla.Rows)
	{
		Console.WriteLine("Fila " + i.ToString()
 + " --&gt; Elementos : ");
		int j = 0;
		foreach(Object celda in fila.ItemArray)
		{
			Console.WriteLine("\tElemento : "
 + j.ToString() + " - " +  celda.ToString());
			j++;
		}
		i++;
	}
}
catch(MySqlException exc)
[...]</pre><p>La salida sería algo así:</p><pre>Fila 0 --&gt; Elementos :
	Elemento : 0 - 25
	Elemento : 1 - Gráficos
Fila 1 --&gt; Elementos :
	Elemento : 0 - 26
	Elemento : 1 - Programación
Fila 2 --&gt; Elementos :
	Elemento : 0 - 27
	Elemento : 1 – Sonido</pre><p>A partir de aquí, podríamos modificar los registros y no almacenarlos luego en la base de datos, convertir la salida en un fichero XML de manera directa, realizar un mapeo de la base de datos y hacer que los cambios sean instantáneos en ella&#8230; en definitiva, todo un mundo de opciones a muy pocas líneas de código de distancia que posibilitan, como he dicho desde un comienzo, un desarrollo del código ligero y rápido en el manejo de datos.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/12/15/curso-ado-net-con-mono-y-mysql-rellenando-un-dataset/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL &#8211; Primeras consultas</title><link>http://www.linuxhispano.net/2011/12/01/curso-ado-net-con-mono-y-mysql-primeras-consultas/</link> <comments>http://www.linuxhispano.net/2011/12/01/curso-ado-net-con-mono-y-mysql-primeras-consultas/#comments</comments> <pubDate>Thu, 01 Dec 2011 14:15:26 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[datacolumn]]></category> <category><![CDATA[datarow]]></category> <category><![CDATA[dataset]]></category> <category><![CDATA[datatable]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[mysqlcommand]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8514</guid> <description><![CDATA[La clase que utilizaremos ahora será MySqlCommand y nuestra primera consulta, será una inserción sobre la base de datos. Insertaremos un registro más. La secuencia de pasos a efectuar es la siguiente: Creamos la consulta y la asignamos a una &#8230; <a
href="http://www.linuxhispano.net/2011/12/01/curso-ado-net-con-mono-y-mysql-primeras-consultas/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>La clase que utilizaremos ahora será <em>MySqlCommand</em> y nuestra primera consulta, será una inserción sobre la base de datos. Insertaremos un registro más. La secuencia de pasos a efectuar es la siguiente:</p><ol><li>Creamos la consulta y la asignamos a una cadena</li><li>Creamos el comando con la consulta que acabamos de crear</li><li>Asignamos la conexión pertinente al comando</li><li>Lo ejecutamos</li></ol><p>Ampliando nuestro ejemplo, quedaría así:</p><pre>public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open();
	try
	{
		string consulta = "INSERT INTO ejemplo (numero , tema)
 VALUES ('27', 'Sonido')";
		MySqlCommand comando = new MySqlCommand(consulta);
		comando.Connection = conexion;
		int resultado = comando.ExecuteNonQuery();
		Console.WriteLine("Filas afectadas : "
 + resultado.ToString());
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}</pre><p>Como se puede apreciar, hemos cuidado que se finalice la conexión aunque existan errores, con finally y hemos controlado los posibles errores que aparezcan. En nuestro caso debería decir: “Filas afectadas: 1”, puesto que la inserción sólo realiza una.</p><p><span
id="more-8514"></span></p><p>A la hora de realizar la inserción podríamos haber utilizado <em>MySqlParameter</em>, que nos provee de un mejor tratamiento de los datos de cara a mejorar la seguridad y ampliar las posibilidades, pero se escapaba del carácter introductorio de este texto.</p><p>Como veis hemos ejecutado el comando con el método <em>ExecuteNonQuery</em> que utilizaremos para operaciones de inserción, borrado y actualización. En el caso de consultas como tales con <em>SELECT</em>, utilizaremos <em>ExecuteReader</em> y en el caso que veremos a continuación, cuando trabajamos con escalares <em>ExecuteScalar</em>. No siempre es así y depende de lo que vayamos a hacer varía el método pero para este punto nos vale.</p><p>Las consultas que devuelven escalares son aquellas que devuelven un sólo número, por ejemplo, si preguntamos a la base de datos que nos cuente cuántas filas hay en la tabla. Veamos este ejemplo, el proceso es el mismo pero utilizamos ahora el método <em>ExecuteScalar</em> y cambiamos convenientemente la consulta. Utilizaremos el constructor de <em>MySqlCommand</em> para inicializar con la consulta y la conexión el objeto, de forma que nos ahorremos una sentencia:</p><pre>public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open();
	try
	{
		MySqlCommand comando = new MySqlCommand
("SELECT COUNT(*) FROM ejemplo", conexion);
		string resultado = comando.ExecuteScalar().ToString();
		Console.WriteLine("Filas en la tabla : " + resultado);
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}</pre><p>La salida por consola debe ser “Filas en la tabla: 3”. Finalmente, veamos cómo recorrer hacia adelante la tabla con <em>ExecuteReader()</em>. La metodología a seguir es ejecutar el comando con este método y posteriormente, imprimir por pantalla el resultado que va devolviendo el lector mientras haya filas que recorrer. El código lo tenéis a continuación:</p><pre>public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open();
	try
	{
		MySqlCommand comando = new MySqlCommand
("SELECT tema FROM ejemplo", conexion);
		MySqlDataReader lector = comando.ExecuteReader();
		while(lector.Read())
		{
			Console.WriteLine(lector.GetString(0));
		}
		lector.Close();
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}</pre><p>El resultado debería ser en tres líneas distintas, los tres temas que hay presentes en estos momentos en la base de datos. Pasadas estas primeras operaciones, en el siguiente punto vamos a rellenar un <em>DataSet</em> con los datos de la base de datos y vamos a recorrerlo a través de las clases: <em>DataTable</em>, <em>DataColumn</em> y <em>DataRow</em> antes de dar por terminado este artículo.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/12/01/curso-ado-net-con-mono-y-mysql-primeras-consultas/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL – DataSet, DataTable, DataColumn y DataRow</title><link>http://www.linuxhispano.net/2011/11/29/curso-ado-net-con-mono-y-mysql-%e2%80%93-dataset-datatable-datacolumn-y-datarow/</link> <comments>http://www.linuxhispano.net/2011/11/29/curso-ado-net-con-mono-y-mysql-%e2%80%93-dataset-datatable-datacolumn-y-datarow/#comments</comments> <pubDate>Tue, 29 Nov 2011 13:35:26 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[datacolumn]]></category> <category><![CDATA[datarow]]></category> <category><![CDATA[dataset]]></category> <category><![CDATA[datatable]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8498</guid> <description><![CDATA[La potencia de ADO.NET es proporcional al número de conceptos que lo rodean, así que en esta entrada como hemos dicho haremos una visión introductoria, pero espero que suficiente para comenzar a profundizar más en el tema. Uno de los &#8230; <a
href="http://www.linuxhispano.net/2011/11/29/curso-ado-net-con-mono-y-mysql-%e2%80%93-dataset-datatable-datacolumn-y-datarow/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>La potencia de <a
href="http://www.linuxhispano.net/etiqueta/ado.net/" target="_blank">ADO.NET</a> es proporcional al número de conceptos que lo rodean, así que en esta entrada como hemos dicho haremos una visión introductoria, pero espero que suficiente para comenzar a profundizar más en el tema.</p><p>Uno de los aspectos esenciales de <a
href="http://www.linuxhispano.net/etiqueta/ado.net/" target="_blank">ADO</a>, como no podía ser de otra manera, es la interacción directa con los datos provenientes de las bases de datos. Para comenzar a operar con ello os presento estas cuatro clases: DataSet, DataTable, DataColumn y DataRow; conjunto de datos, tabla de datos, columna de datos y fila de datos, respectivamente.</p><p>Un conjunto de datos, es un objeto que almacena datos, en forma de tablas por ejemplo, y que pueden provenir de distintos orígenes. Una tabla de datos, es el objeto que almacena los datos de, una consulta, por ejemplo, en forma de tabla en la memoria y a la que podremos acceder, básicamente, a través de sus filas y columnas. Todas estas clases suelen tener una representación física en la base de datos, pero no tiene que ser así siempre, y podemos trabajar de manera asíncrona con la base de datos o directamente con datos provenientes de otras fuentes como por ejemplo ficheros XML.</p><p><span
id="more-8498"></span></p><p>Una de las ventajas de <a
href="http://www.linuxhispano.net/etiqueta/ado.net/" target="_blank">ADO</a> es lo transparente que hace al desarrollador el origen de los datos así como la interacción con los mismos, pues al hacer a través de objetos, el manejo en la aplicación es muy intuitivo. Llegados a este punto y para seguir progresando vamos a crear una tabla en la base de datos a la que le agregaremos una serie de registros, de manera que posteriormente podamos interactuar con ellos. Se tratará de una base de datos de revistas.</p><p>En la tabla almacenaremos sólo dos campos para el ejemplo: uno de tipo entero que representará el número de la revista, “numero”; y otro de tipo cadena donde almacenaremos la temática de ese número de revista, “tema”. El número será la clave primaria y ambos no podrán ser nulos.</p><p>Nos dirigimos de nuevo a la <em>shell </em>de MySQL y escribimos:</p><pre>CREATE TABLE `linuxhispano`.`ejemplo` (
`numero` INT NOT NULL ,
`tema` VARCHAR( 64 ) NOT NULL ,
PRIMARY KEY ( `numero` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci</pre><p>Como comprobaréis, además de indicar los campos he añadido a la tabla el motor a utilizar, ISAM y el juego de caracteres UTF-8 para evitar problemas de acentos y eñes, entre otros. Pasemos a agregar un par de registros:</p><pre>INSERT INTO `lpmagazine`.`ejemplo` (
`numero` ,
`tema`
)
VALUES (
'25', 'Gráficos'
);
INSERT INTO `linuxhispano`.`ejemplo` (
`numero` ,
`tema`
)
VALUES (
'26', 'Programación'
);</pre><p>Ya tenemos los datos en la base de datos. Nuestra labor ahora es conectarnos para realizar consultas sobre ellos. Veamos cómo.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/29/curso-ado-net-con-mono-y-mysql-%e2%80%93-dataset-datatable-datacolumn-y-datarow/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Configurar AdSense (anuncios) y Analytics (estadísticas) en WPTouch</title><link>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/</link> <comments>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/#comments</comments> <pubDate>Thu, 17 Nov 2011 14:30:28 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[adsense]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[móvil]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wptouch]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7870</guid> <description><![CDATA[Una vez hemos instalado y configurado correctamente WPtouch, tal como vimos ayer, vamos a proceder configuraciones adicionales para que el portal se quede completamente funcional, también en su versión móvil. Integrar estadísticas con Google Analytics Las estadísticas son algo básico &#8230; <a
href="http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Una vez hemos <a
href="http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/" target="_blank">instalado y configurado correctamente WPtouch</a>, tal como vimos ayer, vamos a proceder configuraciones adicionales para que el portal se quede completamente funcional, también en su versión móvil.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/configuracion_wptouch2.png"><img
class="aligncenter size-full wp-image-8387" title="configuracion_wptouch" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/configuracion_wptouch2.png" alt="Configuración WPtouch con Google AdSense y Google Analytics" width="650" height="181" /></a></p><p><strong>Integrar estadísticas con Google Analytics</strong></p><p>Las estadísticas son algo básico para un blogger, así que si usáis <a
href="http://www.linuxhispano.net/2011/01/18/incluir-google-analytics-en-wordpress/" target="_blank">Google Analytics</a> os interesará esta parte. Dentro de la configuración hay una parte que lo especifica: &#8220;AdSense, estadísticas y código a medida&#8221;, sin embargo, no es trivial la configuración.</p><p>Dentro de esa parte tenemos un <em>textarea</em> para rellenar con título: &#8220;Estadísticas y código a medida&#8221;. Deberemos introducir el siguiente código JavaScript, modificando sólo nuestro identificador de cliente de <a
href="http://www.linuxhispano.net/2011/01/18/incluir-google-analytics-en-wordpress/" target="_blank">Google Analytics</a> (es una cadena de la siguiente forma: &#8220;UA-XXXXXX-X). Veamos:</p><p><span
id="more-7870"></span></p><blockquote><p>&lt;script type=&#8221;text/javascript&#8221;&gt;</p><p>var _gaq = _gaq || [];<br
/> _gaq.push(['_setAccount', 'UA-EL_TUYO-X']);<br
/> _gaq.push(['_trackPageview']);</p><p>(function() {<br
/> var ga = document.createElement(&#8216;script&#8217;); ga.type = &#8216;text/javascript&#8217;; ga.async = true;<br
/> ga.src = (&#8216;https:&#8217; == document.location.protocol ? &#8216;https://ssl&#8217; : &#8216;http://www&#8217;) + &#8216;.google-analytics.com/ga.js&#8217;;<br
/> var s = document.getElementsByTagName(&#8216;script&#8217;)[0]; s.parentNode.insertBefore(ga, s);<br
/> })();</p><p>&lt;/script&gt;</p></blockquote><p>Una vez hecho esto guardamos y nuestro blog móvil también contará en la visitas de Analytics.</p><p><strong>Integrar publicidad con Google AdSense</strong></p><p>Los canales convencionales de publicidad para <a
href="http://www.linuxhispano.net/etiqueta/adsense/" target="_blank">AdSense</a> no tienen el formato apropiado para la web móvil. Por lo tanto, deberemos comenzar creando un canal para móviles en nuestra cuenta de <a
href="http://www.linuxhispano.net/etiqueta/adsense/" target="_blank">AdSense</a>.</p><p>Para ello inicias sesión en la plataforma de anuncios de Google y dentro de ella te diriges a:</p><ol><li>Mis anuncios</li><li>Contenido para móviles</li><li>Criterios de seguimiento personalizados</li></ol><p>Una vez creado el criterio de seguimiento, dentro de &#8220;Contenido para móviles&#8221;, elegimos &#8220;Bloques de anuncios&#8221; y creamos un anuncio a nuestro gusto. Guardamos y obtenemos el código.</p><p>Con este código, el criterio que acabamos de crear y nuestra identidad de AdSense, tenemos ya todo listo. Rellenamos nuestra identidad y nuestro canal dentro de los campos preparados para ello en la configuración de WPtouch:</p><ul><li>Identidad de Google AdSense</li><li>Canal de Google AdSense</li></ul><p>Y el código lo incluimos en el mismo <em>textarea</em> en el que hemos introducido el código de Analytics, incluyendo algún salto de línea entre ellos.</p><p>Con ésto estará todo listo.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>WP Questions: pregunta o responde preguntas sobre WordPress con recompensa económica</title><link>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/</link> <comments>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/#comments</comments> <pubDate>Mon, 14 Nov 2011 18:17:17 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[asesoría]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wpquestion]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8085</guid> <description><![CDATA[La asesoría y consultoría es algo básico dentro de los modelos de negocio del software libre. WordPress es a día de hoy uno de los proyectos más dinámicos dentro de todo el panorama libre: es el CMS más popular y &#8230; <a
href="http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>La asesoría y consultoría es algo básico dentro de los modelos de negocio del software libre. <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> es a día de hoy uno de los proyectos más dinámicos dentro de todo el panorama libre: es el CMS más popular y su crecimiento sigue siendo constante.</p><p
style="text-align: center;"><a
target="_blank" href="http://wpquestions.com/affiliates/register/name/carazo"><img
class="aligncenter size-full wp-image-8353" title="wpquestions" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/wpquestions.jpg" alt="WP Questions logo" width="150" height="150" /></a></p><p>Dentro de los modelos de negocio del software libre, la consultaría es un pilar básico. Existe el asesoramiento clásico, donde particulares o empresas ofrecen mediante comunicaciones a otros particulares o empresas; soluciones para problemas puntuales.</p><p>Sin embargo, gracias a los sistemas en la nube, es posible extrapolar este servicio para hacerlo llegar al gran público. <a
target="_blank" href="http://wpquestions.com/affiliates/register/name/carazo" target="_blank">WordPress Questions</a> es un proyecto creado por <a
target="_blank" href="http://www.krubner.com/" target="_blank">Lawrence Krubner</a> y <a
target="_blank" href="http://www.darrenhoyt.com/" target="_blank">Darren Hoyt</a>. Nos ofrece una plataforma en la que todos podemos ser:</p><ul><li>Asesores de WordPress, recibiendo una recompensa económica por cada asesoramiento prestado</li><li>Usuarios, podemos preguntar cualquier cosa sobre WordPress y obtener una respuesta rápida y fiable a cambio de un precio que nosotros fijaremos entre 1 y 100 dólares.</li></ul><div><span
style="font-size: small;"><span
class="Apple-style-span" style="line-height: 24px;"><span
id="more-8085"></span></span></span></div><p>Os dejo un vídeo presentándolo (está en inglés):</p><p><object
width="560" height="315" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/SvTLK9r8biI?version=3&amp;hl=es_ES" /><param
name="allowfullscreen" value="true" /><embed
width="560" height="315" type="application/x-shockwave-flash" src="http://www.youtube.com/v/SvTLK9r8biI?version=3&amp;hl=es_ES" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos</title><link>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/</link> <comments>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/#comments</comments> <pubDate>Wed, 02 Nov 2011 14:15:33 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[base de datos]]></category> <category><![CDATA[complementos]]></category> <category><![CDATA[deshabilitar]]></category> <category><![CDATA[habilitar]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[sql]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8068</guid> <description><![CDATA[Cuando sufrimos el temido &#8220;pantallazo blanco de la muerte&#8221; de WordPress, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. No podemos acceder al panel de administración y necesitamos tratar de resolverlo cuanto &#8230; <a
href="http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando sufrimos el temido &#8220;pantallazo blanco de la muerte&#8221; de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a>, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. <strong>No podemos acceder al panel de administración</strong> y necesitamos tratar de resolverlo cuanto antes. ¿Qué hacemos? Deshabilitar todos los plugins desde la base de datos. Veamos cómo hacerlo.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/wordpress-plugin1.jpg"><img
class="aligncenter size-full wp-image-8088" title="wordpress-plugin1" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/wordpress-plugin1.jpg" alt="WordPress Plugins" width="275" height="259" /></a></p><p>Ésto puede ser también útil no sólo para problemas de pantallazos, sino para ahorrar tiempo en la habilitación o deshabilitación de plugins.</p><p>Veamos, lo primero que tenemos que hacer es acceder a nuestra base de datos. Con los datos de inicio de sesión que tiene WordPress almacenados internamente en &#8220;wp-config.php&#8221; podemos acceder usando un cliente como:</p><p><span
id="more-8068"></span></p><ul><li><a
href="http://www.linuxhispano.net/?s=phpmyadmin" target="_blank">phpMyAdmin</a></li><li><a
target="_blank" href="http://www.heidisql.com/" target="_blank">HeidiSQL</a></li><li><a
target="_blank" href="http://code.google.com/p/sqlyog/" target="_blank">SQLyog</a> (la versión Community es de código libre y funciona bien con <a
href="http://www.linuxhispano.net/etiqueta/wine/" target="_blank">Wine</a>)</li><li>O directamente con la línea de comandos</li></ul><p>Una vez dentro de la base de datos de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a>, nos dirigimos a la tabla de opciones, normalmente &#8220;wp_options&#8221; (puede cambiar el prefijo). Dentro de dicha tabla, hacemos una consulta para ver los plugins activos:</p><pre>SELECT * FROM wp_options WHERE option_name = 'active_plugins';</pre><p>El resultado será algo similar a esto:</p><blockquote><p>a:20:{i:0;s:19:&#8221;akismet/<wbr>akismet.php&#8221;;i:1;s:43:&#8221;all-in-<wbr>one-seo-pack/all_in_one_seo_<wbr>pack.php&#8221;;i:2;s:19:&#8221;anti-<wbr>email-spam.php&#8221;;i:3;s:36:&#8221;<wbr>contact-form-7/wp-contact-<wbr>form-7.php&#8221;;i:4;s:28:&#8221;embed-<wbr>iframe/embediframe.php&#8221;;i:5;s:<wbr>32:&#8221;facepress-ii/FT-Facepress-<wbr>II.php&#8221;;i:6;s:50:&#8221;google-<wbr>analytics-for-wordpress/<wbr>googleanalytics.php&#8221;;i:7;s:36:<wbr>&#8220;google-sitemap-generator/<wbr>sitemap.php&#8221;;i:8;s:21:&#8221;hgk-<wbr>smtp/hgk-smtp.php&#8221;;i:9;s:24:&#8221;<wbr>ic-besocial/besocial.php&#8221;;i:<wbr>10;s:45:&#8221;limit-login-attempts/<wbr>limit-login-attempts.php&#8221;;i:<wbr>11;s:37:&#8221;shutter-reloaded/<wbr>shutter-reloaded.php&#8221;;i:12;s:<wbr>65:&#8221;subscribe-to-comments-<wbr>reloaded/subscribe-to-<wbr>comments-reloaded.php&#8221;;i:13;s:<wbr>23:&#8221;wp-minify/wp-minify.php&#8221;;<wbr>i:14;s:27:&#8221;wp-pagenavi/wp-<wbr>pagenavi.php&#8221;;i:15;s:39:&#8221;wp-<wbr>recentcomments/wp-<wbr>recentcomments.php&#8221;;i:16;s:25:<wbr>&#8220;wp-smushit/wp-smushit.php&#8221;;i:<wbr>17;s:27:&#8221;wp-super-cache/wp-<wbr>cache.php&#8221;;i:18;s:31:&#8221;wp-to-<wbr>twitter/wp-to-twitter.php&#8221;;i:<wbr>19;s:19:&#8221;wptouch/wptouch.php&#8221;;<wbr>} </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p></blockquote><p><strong>Guardamos este resultado en un fichero de texto y lo conservamos</strong> (nos lo mandamos por correo o algo por si lo necesitamos restaurar). Ahora nos toca actualizar esta opción para <strong>deshabilitarlos todos</strong> en una sola instrucción, depende de la versión de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> que manejemos:</p><ul><li>Si usamos <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> 2.9 o superior (lo recomendable):</li></ul><pre>UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';</pre><ul><li>Si usamos una versión anterior:</li></ul><pre>UPDATE wp_options
SET option_value = ''
WHERE option_name = 'active_plugins';</pre><p>Para volver a habilitar los plugins deshabilitados, haríamos lo mismo pero dentro de <em>SET  option_value = &#8216;aquí el contenido antiguo&#8217;</em> y todo volverá a estar como antes (esto es útil por ejemplo si estamos seguros de que el problema no es de los plugins).</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL – Creación del proyecto</title><link>http://www.linuxhispano.net/2011/10/27/curso-ado-net-con-mono-y-mysql-%e2%80%93-creacion-del-proyecto/</link> <comments>http://www.linuxhispano.net/2011/10/27/curso-ado-net-con-mono-y-mysql-%e2%80%93-creacion-del-proyecto/#comments</comments> <pubDate>Thu, 27 Oct 2011 13:30:26 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[bases de datos]]></category> <category><![CDATA[c]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[datos]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[miguel de icaza]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[proyecto]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8044</guid> <description><![CDATA[Nos dirigimos a MonoDevelop y creamos una solución nueva, en C#, para consola. Elegís el nombre, el que le he puesto para el ejemplo es: ejemplo_mono_ado. Os aparecerá en pantalla un fichero de nombre: Main.cs junto a un árbol a la &#8230; <a
href="http://www.linuxhispano.net/2011/10/27/curso-ado-net-con-mono-y-mysql-%e2%80%93-creacion-del-proyecto/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Nos dirigimos a <a
target="_blank" href="http://es.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a> y creamos una solución nueva, en C#, para consola. Elegís el nombre, el que le he puesto para el ejemplo es: <em>ejemplo_mono_ado. </em>Os aparecerá en pantalla un fichero de nombre: <em>Main.cs</em> junto a un árbol a la izquierda con características de la solución. Una de ellas, las referencias es donde importaremos el ensamblado.</p><p>Antes de seguir sería conveniente que copiarais al directorio del proyecto el fichero “mysql.data.dll” que venía dentro del paquete comprimido del <a
href="http://www.linuxhispano.net/2011/10/20/curso-ado-net-con-mono-y-mysql-%E2%80%93-preparacion-e-instalacion/" target="_blank">conector</a>. Os dirigís a referencias y haciendo clic sobre el mismo título “Referencias”, elegís “Editar referencias&#8230;”. De las tres pestañas que aparecen en el diálogo elegís “Ensamblado .NET” y os dirigís al directorio del proyecto o donde tengáis guardado el fichero. Lo elegís y lo añadís.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/10/aspecto_interfaz_monodevelop.png"><img
class="aligncenter size-full wp-image-8045" title="aspecto_interfaz_monodevelop" src="http://www.linuxhispano.net/wp-content/uploads/2011/10/aspecto_interfaz_monodevelop.png" alt="Aspecto interfaz MonoDevelop" width="640" height="387" /></a></p><p><span
id="more-8044"></span></p><p>Desde este momento tenéis referenciado el conector dentro de vuestro programa. Ahora el siguiente paso es importarlo al fichero <em>Main.cs. </em>Para ello escribís debajo de “<em>using System; </em>”, “<em>using MySql.Data.MySqlClient;</em>”. El archivo quedaría así:</p><pre>using System;
using MySql.Data.MySqlClient;
namespace ejemplo_mono_ado
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("¡Hola Mundo!");
// Hola Mundo inicial creado por el IDE
		}
	}
}</pre><p>Con ésto ya tendríamos el espacio de nombres del conector <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a> disponible en nuestro código por lo que a partir de ahora sí que podríamos tratar con las clases del mismo.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/27/curso-ado-net-con-mono-y-mysql-%e2%80%93-creacion-del-proyecto/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL – Preparación e instalación</title><link>http://www.linuxhispano.net/2011/10/20/curso-ado-net-con-mono-y-mysql-%e2%80%93-preparacion-e-instalacion/</link> <comments>http://www.linuxhispano.net/2011/10/20/curso-ado-net-con-mono-y-mysql-%e2%80%93-preparacion-e-instalacion/#comments</comments> <pubDate>Thu, 20 Oct 2011 13:15:39 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[bases de datos]]></category> <category><![CDATA[c]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[datos]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[miguel de icaza]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7995</guid> <description><![CDATA[Pasado más de un mes desde la entrada que anunciaba este curso, volvemos a la carga, veamos. Antes de nada, de forma básica, vamos a revisar qué necesitamos, cómo obtenerlo y en caso necesario, cómo configurarlo. En este momento ,creo &#8230; <a
href="http://www.linuxhispano.net/2011/10/20/curso-ado-net-con-mono-y-mysql-%e2%80%93-preparacion-e-instalacion/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Pasado más de un mes desde la entrada que anunciaba este curso, volvemos a la carga, veamos.</p><p>Antes de nada, de forma básica, vamos a revisar qué necesitamos, cómo obtenerlo y en caso necesario, cómo configurarlo. En este momento ,creo conveniente señalar que utilizaremos <a
target="_blank" href="http://es.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a>,el entorno de desarrollo integrado para <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a> más popular, en lugar de utilizar directamente el compilador, <em>mcs</em>; para centrarnos directamente en el desarrollo con <a
target="_blank" href="http://es.wikipedia.org/wiki/ActiveX_Data_Objects" target="_blank">ADO</a> y dejar de lado los detalles que no son necesarios.</p><p
style="text-align: center;"><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/10/MonoDevelopLogo.png"><img
class="aligncenter size-full wp-image-7998" title="MonoDevelopLogo" src="http://www.linuxhispano.net/wp-content/uploads/2011/10/MonoDevelopLogo.png" alt="Logo MonoDevelop" width="256" height="256" /></a></p><p><strong>Mono y MonoDevelop</strong></p><p>En función de la distribución que utilicéis, las circunstancias particulares cambiaran, pero básicamente os comento dos alternativas que probablemente os sirvan prácticamente a todos. La primera es dirigiros a vuestro gestor de paquetes y buscar los paquetes correspondientes. Como <em>monodevelop, </em>que será más o menos así el nombre del paquete, depende de <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>, si elegís éste se os seleccionaran los demás paquetes necesarios para desarrollar y ejecutar programas con <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>. Es decir, básicamente instalando <a
target="_blank" href="http://es.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a> a través del paquete homónimo, tendréis todo preparado. Además, es más que probable que tengáis instalado Mono en vuestro equipo por defecto. Por ejemplo, el entorno de escritorio Gnome utiliza esta tecnología ampliamente.</p><p><span
id="more-7995"></span></p><p>La segunda solución, la más larga y menos recomendable es instalar Mono compilando el código fuente. Necesitaremos tener instalados: cmpilador de C (gcc), Bison y las librerías de desarrollo para glib. Descargaremos el código fuente desde la sección de descargas del <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Proyecto Mono</a> (pondrá algo así como <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a> el número de la versión seguido de “sources”). Utilizaremos el directorio “/opt” para evitar problemas. Más o menos el proceso de instalación sería:</p><ol><li>Descomprimimos y desempaquetamos el código fuente, gráficamente o mediante la consola: <em>$ tar zxvf mono-X.XX.tar.gz</em></li><li>Configuramos los archivos para realizar el <em>make</em>: <em>$ ./configure &#8211;prefix=/opt/mono</em></li><li>Ejecutamos <em>make </em>para ejecutar el código fuente: <em>$</em> <em>make</em></li><li>Finalmente instalamos: <em>$ sudo make install</em></li></ol><p>Tras la instalación deberemos configurar debidamente las variables de entorno. Para ello ejecutamos desde la terminal:</p><pre>$ export PATH=$PATH:/opt/mono/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mono/lib
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/mono/lib/pkgconfig
$ export MONO_PATH=/opt/mono/lib</pre><p>Una vez ya tenemos instalado <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>, pasamos a instalar <a
target="_blank" href="http://es.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a> de una forma análoga. Accedemos al sitio de <a
target="_blank" href="http://es.wikipedia.org/wiki/MonoDevelop" target="_blank">MonoDevelop</a>, descargamos el código fuente y:</p><ol><li>Desempaquetamos el código fuente y lo descomprimimos: <em>$ tar zxvf monodevelop-X.X.tar.bz2</em></li><li>Configuramos para crear el <em>make</em>: ./configure &#8211;prefix=`pkg-config &#8211;variable=prefix mono`</li><li>Compilamos: <em>$ make </em></li><li>Instalamos: <em>$</em> <em>make install</em></li></ol><p>Ya tendríamos esta parte lista, pero como dije antes, mucho mejor utilizar el sistema gestor de paquetes para evitar problemas derivados de no poder actualizar tan fácilmente o por ejemplo, las dependencias insatisfechas.</p><p
style="text-align: center;"><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/10/MySQL1.png"><img
class="aligncenter size-full wp-image-8000" title="MySQL" src="http://www.linuxhispano.net/wp-content/uploads/2011/10/MySQL1.png" alt="Logo MySQL" width="512" height="265" /></a></p><p><strong>MySQL</strong></p><p>De igual manera instalaremos el servidor <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a> al que nos conectaremos desde nuestra aplicación con C#. Dado que hay gran cantidad de tutoriales y manuales en la red, voy a ser bastante breve. Básicamente deberéis buscar en vuestro gestor de repositorios el paquete <em>mysql-server</em> y ya tendréis el servidor de base de datos instalado.</p><p><strong>Conector</strong></p><p>Finalmente, descargaremos el fichero con el conector de <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a> para <a
target="_blank" href="http://es.wikipedia.org/wiki/Microsoft_.NET" target="_blank">.NET</a> y Mono. Es un fichero con extensión <em>.dll</em>, que es la extensión con que suelen ser almacenados los ensamblados, como es el caso de <a
target="_blank" href="http://es.wikipedia.org/wiki/Microsoft_.NET" target="_blank">.NET</a>/<a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>. Si queréis saber más sobre ensamblados, el CLI, o cualquier otro detalle más técnico propio de <a
target="_blank" href="http://es.wikipedia.org/wiki/Microsoft_.NET" target="_blank">.NET</a>/<a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>, podéis visitar la Wikipedia (preferiblemente en inglés) o la <a
target="_blank" href="http://msdn.microsoft.com/es-es/ms348103" target="_blank">MSDN</a> (antes también <a
target="_blank" href="http://www.mono-hispano.org/" target="_blank">Mono-Hispano</a> pero ahora mismo parece que no está accesible). Aunque no sea el objetivo de este artículo definiré brevemente dichos conceptos para que quede algo más claro. Podríamos decir que un ensamblado en <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a> es un conjunto de clases implementadas junto con sus metadatos correspondientes para ser utilizados, recogidos en un fichero que puede ser llamado desde un proyecto <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a>.</p><p>En el caso que nos ocupa utilizaremos una implementación de la arquitectura ADO.NET creada por el propio proyecto <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a> para posibilitar una comunicación lo más nativa e integrada posible entre aplicaciones desarrolladas con <a
target="_blank" href="http://es.wikipedia.org/wiki/Microsoft_.NET" target="_blank">.NET</a>/<a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a> y <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a>. El conector, que así se llama, podéis encontrarlo en la web de <a
target="_blank" href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a> (<a
target="_blank" href="http://dev.mysql.com/downloads/connector/net/">http://dev.mysql.com/downloads/connector/net/</a>).</p><p>Una vez nos encontremos en el sitio, descargamos los ficheros para Windows sin instalador (un fichero .zip con varios ensamblados), lo descomprimimos y ya tendremos todo preparado para comenzar el proyecto.</p><p>Antes de continuar un detalle importante. Microsoft Windows no es <em>case sensitive</em>, sensible a mayúsculas/minúsculas, en cuanto a rutas, pero GNU/Linux sí lo es, por lo que deberéis renombrar los ficheros dll que utilicemos conforme se llaman en el programa que será: “MySql.Data” en lugar de “mysql.data” como vienen nombrados por defectos (los demás también de manera análoga).</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/20/curso-ado-net-con-mono-y-mysql-%e2%80%93-preparacion-e-instalacion/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Web famosas hechas con WordPress</title><link>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/</link> <comments>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/#comments</comments> <pubDate>Sat, 15 Oct 2011 11:49:19 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[administración]]></category> <category><![CDATA[automattic]]></category> <category><![CDATA[cms]]></category> <category><![CDATA[empresa]]></category> <category><![CDATA[famosa]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[organización]]></category> <category><![CDATA[php]]></category> <category><![CDATA[web]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7949</guid> <description><![CDATA[A raíz de una discusión en el grupo de WordPress en español de LinkedIn, he descubierto esta lista tan interesante que una usuaria del grupo ha publicado: Página oficial del Primer Ministro Británico: http://www.number10.gov.uk Mozilla Labs: http://mozillalabs.com Spotify: http://www.spotify.com Mashable: http://mashable.com Stallone: http://sylvesterstallone.com Jane Fonda: http://janefonda.com &#8230; <a
href="http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>A raíz de una discusión en <a
target="_blank" href="http://www.linkedin.com/groups/Cual-es-web-m%C3%A1s-famosa-1242577.S.69265533?view=&amp;srchtype=discussedNews&amp;gid=1242577&amp;item=69265533&amp;type=member&amp;trk=eml-anet_dig-b_pd-ttl-cn&amp;ut=3mBRiZlSFTmQY1" target="_blank">el grupo de WordPress en español</a> de <a
target="_blank" href="http://es.wikipedia.org/wiki/LinkedIn" target="_blank">LinkedIn</a>, he descubierto esta lista tan interesante que <a
target="_blank" href="http://www.linkedin.com/groups?viewMemberFeed=&amp;gid=1242577&amp;memberID=110879257" target="_blank">una usuaria del grupo</a> ha publicado:</p><ul><li>Página oficial del Primer Ministro Británico: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Enumber10%2Egov%2Euk&amp;urlhash=yKeM&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.number10.gov.uk</a></li><li>Mozilla Labs: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fmozillalabs%2Ecom&amp;urlhash=Mwt4&amp;_t=tracking_disc" rel="nofollow" target="blank">http://mozillalabs.com</a></li><li>Spotify: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Espotify%2Ecom&amp;urlhash=Fy2v&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.spotify.com</a></li><li>Mashable: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fmashable%2Ecom&amp;urlhash=dSux&amp;_t=tracking_disc" rel="nofollow" target="blank">http://mashable.com</a></li><li>Stallone: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fsylvesterstallone%2Ecom&amp;urlhash=IYVr&amp;_t=tracking_disc" rel="nofollow" target="blank">http://sylvesterstallone.com</a></li><li>Jane Fonda: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fjanefonda%2Ecom&amp;urlhash=w0qC&amp;_t=tracking_disc" rel="nofollow" target="blank">http://janefonda.com</a></li><li>Tom Jones: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Etomjones%2Ecom&amp;urlhash=Xhdl&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.tomjones.com</a></li><li>Fresh Apps: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Efreshapps%2Ecom&amp;urlhash=NyGW&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.freshapps.com</a></li><li>ZDNet: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fnews%2Ezdnet%2Ecom&amp;urlhash=flyd&amp;_t=tracking_disc" rel="nofollow" target="blank">http://news.zdnet.com</a></li></ul><p><strong>¿Qué otra web famosa o de empresa u organismo de relevancia conoces que esté hecha con WordPress? </strong>A ver si entre todos, vía comentarios, conseguimos hacer una lista de más de 100 webs de este tipo que usen webs. Porque no sé si lo sabéis pero <a
target="_blank" href="http://xombit.com/2011/08/wordpress-esta-detras-del-15-de-las-paginas-web-mas-visitadas" target="_blank">WordPress está detrás del 15% de las páginas web más visitadas</a>.</p><p><strong></strong>Por supuesto, <strong>Linux Hispano</strong> funciona bajo <a
target="_blank" href="http://es.wikipedia.org/wiki/WordPress" target="_blank">WordPress</a> y otro proyecto personal que llevo adelante con Alberto y otro amigo, <a
target="_blank" href="http://www.reddeautores.com/" target="_blank">Red de Autores</a>, también.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Curso ADO.NET con Mono y MySQL – Introducción</title><link>http://www.linuxhispano.net/2011/09/19/curso-ado-net-con-mono-y-mysql-%e2%80%93-introduccion/</link> <comments>http://www.linuxhispano.net/2011/09/19/curso-ado-net-con-mono-y-mysql-%e2%80%93-introduccion/#comments</comments> <pubDate>Mon, 19 Sep 2011 13:15:01 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ado.net]]></category> <category><![CDATA[c]]></category> <category><![CDATA[curso]]></category> <category><![CDATA[mono]]></category> <category><![CDATA[mysql]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7566</guid> <description><![CDATA[El desarrollo de software es una labor en la que intervienen tal cantidad de variables que debemos siempre conocer el mayor número de tecnologías distintas para poder dar siempre la mejor respuesta en cada caso. Muy frecuentemente, es necesario desarrollar &#8230; <a
href="http://www.linuxhispano.net/2011/09/19/curso-ado-net-con-mono-y-mysql-%e2%80%93-introduccion/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>El desarrollo de software es una labor en la que intervienen tal cantidad de variables que debemos siempre conocer el mayor número de tecnologías distintas para poder dar siempre la mejor respuesta en cada caso. Muy frecuentemente, es necesario desarrollar un sistema software que sea multiplataforma, a la vez que trate con muchos datos situados en un servidor de datos ajeno. Para estos casos es idóneo utilizar el binomio <a
target="_blank" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">Mono</a> y <a
target="_blank" href="http://es.wikipedia.org/wiki/Mysql" target="_blank">MySQL</a>.</p><p>Las facilidades que provee una tecnología multiplataforma de alto nivel como Mono, unido a la integración en el mismo de <a
target="_blank" href="http://es.wikipedia.org/wiki/Mysql" target="_blank">MySQL</a> a través de un conector nativo para <a
target="_blank" href="http://es.wikipedia.org/wiki/Ado.net" target="_blank">ADO.NET</a>, hacen que tengamos al alcance de nuestra mano un binomio de software libre con una potencia envidiable. Siempre tenemos otras opciones también libres, como Java en el caso de tecnología de desarrollo multiplataforma; y otras bases de datos como <a
target="_blank" href="http://es.wikipedia.org/wiki/PostgreSQL">PostgreSQL</a> para arquitecturas cliente-servidor, o <a
target="_blank" href="http://es.wikipedia.org/wiki/SQLite">SQLite</a> para máquinas locales, que gozan de muy buena salud.</p><p>A lo largo de este curso explicaremos de una manera introductoria el uso de <a
target="_blank" href="http://es.wikipedia.org/wiki/Ado.net" target="_blank">ADO.NET</a>; y lo utilizaremos a través de un interfaz en modo texto. Sin lugar a dudas, las personas que hayan programado anteriormente para la .NET Framework de Microsoft en Windows, conocerán bastantes de los detalles que aquí relatamos y es que como ya muchos sabréis, Mono es una implementación libre de esta plataforma.</p><p><strong>Mono, MySQL y ADO.NET</strong></p><p>Vamos a ser breves en la presentación de las herramientas con las que vamos a tratar, pero siempre considero útil situar al lector, para que en caso de que no conozca las herramientas sepa situarse en un contexto apropiado.</p><p>Mono es un proyecto libre, creado por <a
target="_blank" href="http://es.wikipedia.org/wiki/Ximian" target="_blank">Ximian</a> en su día y actualmente impulsado por Novell tras la compra de la primera por parte de la segunda, que ofrece una serie de herramientas libres que cumplen las especificaciones de .NET. La figura más destacada del Proyecto Mono es Miguel de Icaza, cofundador de <a
target="_blank" href="http://es.wikipedia.org/wiki/Gnome" target="_blank">Gnome</a>, hombre fuerte en Novell y una persona un tanto polémica dentro del software libre por sus aportaciones a la vez que sus acercamientos a Microsoft.</p><p>MySQL como sabréis, es el sistema gestor de base de datos creado por una empresa del mismo nombre y que posteriormente ha sido adquirido por Sun Microsystems, y recientemente por Oracle. Su popularidad en la red gracias al binomio que forma con PHP la han llevado a convertirse en la base de datos más conocidas del mundo web y una de las alternativas libres más eficaces en este tema.</p><p>Finalmente, ADO.NET, es un conjunto de componentes que permiten acceder a datos y a servicios de datos, a través de un arquitectura completa que facilita enormemente ciertas labores al desarrollador. Está integrado dentro de Mono y existe un conector creado ex profeso para ligar a MySQL con Mono/.NET a través de esta arquitectura. Existen otras alternativas similares como Hibernate que nunca está de más conocer.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/09/19/curso-ado-net-con-mono-y-mysql-%e2%80%93-introduccion/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> </channel> </rss>
