<?xml version="1.0" encoding="utf-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Phenobarbital con Soda</title>
	<link>http://www.jesuslara.com.ve/blog</link>
	<description>Las peripecias de una pildora viajera ...</description>
	<pubDate>Thu, 10 Jul 2008 22:58:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Una precaución que no tomaron &#8230;</title>
		<link>http://www.jesuslara.com.ve/blog/2008/07/10/una-precaucion-que-no-tomaron/</link>
		<comments>http://www.jesuslara.com.ve/blog/2008/07/10/una-precaucion-que-no-tomaron/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 22:58:33 +0000</pubDate>
		<dc:creator>phenobarbital</dc:creator>
		
		<category><![CDATA[Cultura Libre]]></category>

		<category><![CDATA[La soda y la pastilla]]></category>

		<category><![CDATA[Ni idea de donde ponerlo]]></category>

		<guid isPermaLink="false">http://www.jesuslara.com.ve/blog/2008/07/10/una-precaucion-que-no-tomaron/</guid>
		<description><![CDATA[Luego de ver errores ortográficos en los noticieros, en las publicidades de TV y pare de contar; ahora me encuentro que al llegar al Aeropuerto de Maturín existe un letrero que nos llama a la &#8220;PRECAUSION&#8221;:



Lo cual me imagino es algún tipo de precaución muy notable (y hasta en alemán está); bueno, a veces uno [...]]]></description>
			<content:encoded><![CDATA[<p>Luego de ver errores ortográficos en los noticieros, en las publicidades de TV y pare de contar; ahora me encuentro que al llegar al Aeropuerto de Maturín existe un letrero que nos llama a la &#8220;PRECAUSION&#8221;:</p>
<p><a href="http://www.jesuslara.com.ve/blog/wp-content/uploads/2008/07/27-06-08_1508.jpg" title="27-06-08_1508.jpg"></p>
<p style="text-align: center"><img src="http://www.jesuslara.com.ve/blog/wp-content/uploads/2008/07/27-06-08_1508.thumbnail.jpg" alt="27-06-08_1508.jpg" /></p>
<p></a></p>
<p>Lo cual me imagino es algún tipo de precaución muy notable (y hasta en alemán está); bueno, a veces uno no revisa lo que escribe (sobre todo en estos medios como los blogs); pero estamparlo en un plástico y colocarlo a la vista del público todos los días es distinto; me parece que ya deberían haberlo reemplazado, ¿o nadie allá se ha dado cuenta que &#8220;Precaución&#8221;no es con S?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jesuslara.com.ve/blog/2008/07/10/una-precaucion-que-no-tomaron/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Las dos caras de una ciudad sentado en un taxi</title>
		<link>http://www.jesuslara.com.ve/blog/2008/07/07/las-dos-caras-de-una-ciudad-sentado-en-un-taxi/</link>
		<comments>http://www.jesuslara.com.ve/blog/2008/07/07/las-dos-caras-de-una-ciudad-sentado-en-un-taxi/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 22:46:53 +0000</pubDate>
		<dc:creator>phenobarbital</dc:creator>
		
		<category><![CDATA[Cultura Libre]]></category>

		<category><![CDATA[Cultura Oldie]]></category>

		<category><![CDATA[La soda y la pastilla]]></category>

		<guid isPermaLink="false">http://www.jesuslara.com.ve/blog/2008/07/07/las-dos-caras-de-una-ciudad-sentado-en-un-taxi/</guid>
		<description><![CDATA[Las ciudades tienen muchos rostros; a veces los perdemos de vista, a veces simplemente no les hacemos caso, conectarse con esos rostros es lo que hace más humana nuestra vida en las para muchos selvas de concreto; ciertamente no espero que la gente salga a la calle disfrazada de colores brillantes y baile de alegría [...]]]></description>
			<content:encoded><![CDATA[<p>Las ciudades tienen muchos rostros; a veces los perdemos de vista, a veces simplemente no les hacemos caso, conectarse con esos rostros es lo que hace más humana nuestra vida en las para muchos selvas de concreto; ciertamente no espero que la gente salga a la calle disfrazada de colores brillantes y baile de alegría por los rincones; pero si espero que la gente le dedique un poco más de humanidad día a día cada vez que pisas el asfalto.</p>
<p>Hoy me tocó hacer diligencias todo el día; preparandome para otra asistencia más a la capital del concreto y acero, hablaba con un vecino mientras tomo un taxi y comienza mi primera conversación.</p>
<p><strong>El taxi humano de los recuerdos</strong></p>
<p>Lo primero que el hombre me pregunta, ¿es usted español?, ya que supuso que un acento tan extraño no podía ser de Lara, a lo cual respondo, &#8220;soy de Lara, firmo Lara, mi familia lleva generaciones en este estado, más guaro no puedo ser&#8221;; para no sonar grosero agrego en modo jocoso &#8220;claro que yendo a gochilandia siempre que puedo y de tanto vivir en todos lados, uno como que pierde el acento ¿no?&#8221;; y el señor responde muy graciosamente, &#8220;Si lo sabré yo, soy de San Cristobal y perdí el acento de vivir 15 años en Barquisimeto, na&#8217; guará!&#8221;; aquí empieza un viaje por recuerdos y conversaciones interesantes &#8230;</p>
<p>¿Sabía que Na&#8217;Guará es expresión Jirajara?, tal como Baradida, o Variquecemeto?; &#8220;más o menos habia escuchado&#8221;, me comenta el taxista; &#8220;aun con mucho tiempo aquí he escuchado pocas historias de Barquisimeto, aunque recuerdo las de mi abuela sobre San Cristobal&#8221;, &#8220;igual me pasa a mí con Barquisimeto versus otras ciudades&#8221;, le digo al taxista, las historias de mi abuela son infinitas&#8230;</p>
<p>&#8220;Esas historias de nuestros ancestros se pierden ¿verdad?&#8221;; si, pero a veces es nuestra culpa; ¿donde está nuestro cronista de la ciudad enseñando a futuras generaciones?, debe ir uno a escucharlo para aprender, no hay continuidad oral de nuestras tradiciones, tal vez muchos jóvenes si las quieren escuchar; pero, ¿quién se las cuenta?. Al doblar una esquina, me señala, &#8220;ahi quedaba una licorería muy vieja y la tumbaron para hacer un restaurant chino!&#8221;; &#8220;Si!&#8221; (le comento) &#8220;esa era la esquina del garrafón; tenía desde los años 40 existiendo y como nadie cuida las cosas antiguas, pos se la vendieron a un chino y vea como está&#8221;, y es que casualmente (continuo agregando) ¿la casa grande que pasamos al frente del parque ayacucho?, ¿la abandonada?, esa casa perteneció a Don Eustoquio Gómez, hermano del presidente Juan Vicente Gómez; posteriormente perteneció a un artista (creo que fué a José Requena) y al morir este, quedó en manos del banco que la embargó; pero el banco (Progreso) quebró durante la crisis bancaria del 93 y la casa (como muchas otras construcciones de Barquisimeto) quedó en manos de FOGADE, es que demás decir que es estar solo y abandonado!; creo que si la familia que vive en esa hermosa casa le pusiera más cariño (sabemos que están invadiendo, pero llevan años ahi) y vivieran como lo que realmente es, una mansión de Don Eustoquio Gómez en vez de hacer par de ranchos de lata dentro de la construcción, vivirían de otra manera más digna; pero al final de cuentas, ¿alguna vez se dignarán a hacer adobes y acomodar las paredes? &#8230;</p>
<p>&#8220;¿Como la torre de Banco La Guaira que está en la Calle 8 con Av. 20?&#8221;,  me pregunta el taxista, &#8220;Exacto!&#8221;, le indico yo, o como el &#8220;supuesto&#8221; banco de la mujer que está en la 19 con calle 27; antigua sede de banco Latino, que ahora está toda abandonada y pregunteme si han hecho algo ahí; o la comandancia de la policía en la 31 entre 19 y 20; simplemente ellos la &#8220;invadieron&#8221; y la fueron medio acomodando, pero sin visos de hacer algo bonito con ella.</p>
<p>&#8220;Esas cosas se están perdiendo&#8221;, me replica el taxista; &#8220;claro que se están perdiendo!&#8221;, en venezuela son pocas las cosas que tienen más de 50 años, todo lo que es monumento de un momento a otro lo descuidamos, lo dañamos y en vez de repararlo, lo dejamos al olvido hasta que el tiempo o una máquina de construcción lo derribe; fíjese el monumento cinético de la redoma del sol, ¿cómo es posible que le echen pintura Sherwin Williams a un monumento cinético y le roben las lámparas de iluminación especial?, claro está la habilidad cinética que Carlos Cruz Diez plasmó a la obra se perdió y ahora solo quedan unas planchas metálicas paradas con colores ridículos, solo porque se nos olvidó cuidar nuestro patrimonio.</p>
<p>&#8220;También está nuestro patromonio oral, decimos muchas cosas que los jovenes aunque las usan no las entienden, como el Na&#8217;Guará&#8221;; sip, es cierto también, fíjese como mi abuela cuando quería nombrar algo muy grande decía &#8220;uff, más grande que el Portón de Blohm&#8221;; mi abuela ni siquiera conocía a los Waldermann Blohm; pero esa familia dedicada al comercio y a la fabricación de Acero fundaron aquí (tanto como en Maracaibo y en Valencia) un emporio conocido como Blohm Enterprises Company (actualmente BECO, dedicados al Acero, los barcos y la ferro-minería (aunque una de sus hijas fundó la cadena de comercios BECO en los antiguos galpones de su familia); volviendo al tema, mi abuela comentaba que en el actual mercado de los buhoneros (donde antes estuvo BECO, en la Av. 20 con 28) estaban las oficinas de BECO Blohm; franqueadas por un portón de acero sólido inmenso (del mismo acero que ellos fabricaban y vendían); dicho portón por lo menos yo no sé donde está; tal vez en sus galpones en valencia o maracaibo, o tal vez hace muchas decadas ya fuera fundido; quien sabe, pero recordar que en Barquisimeto hubo un portón tan grande como el portón de Blohm es una grata historia para nuestros hijos.</p>
<p>Son como las frases de &#8220;Arranca Berroterán&#8221; (frase que expresaba el muy versado en refranes Don Luis Herrera Campíns, para indicar que uno estaba metido en problemas, Berroterán era su chofer y el gritó &#8220;Arranca Berroterán que me muerde el perro&#8221; un día que llegó a una casa y le lanzaron unos perros) o &#8220;El Macundal&#8221; (que en los años 30 y 40 llegaban los extranjeros a trabajar en petróleo y traían unos bolsos muy prácticos de lona militar, les cabía de todo, la gente decía que se podía hacer una mudanza con ellos; dichos bolsos militares eran marca &#8220;Mc. &amp; Dale (Mac And Dale)&#8221; lo cual degeneró en la frase &#8220;Agarra tu Mac un Dal&#8221; y te vaz pal &#8230; lo demás forma parte del coloquio regional) que a veces uno las usa y entender su historia no solo nos ayuda a comprenderlas sino llenar un poquito de querencia a nuestra ya poca nacionalidad.</p>
<p>Los jovenes ahora saben más la vida de Wisin y Yandel que cuando fuera fundada o construída su propia ciudad, su propia casa o cuando llegaron a venezuela sus primeros ancestros &#8230;</p>
<p>Despues de largos minutos de hablar de ancestros, de mis tatarabuelas Saturnina y Cantalicia, de la suscesión bolivar-palacios, del tren bolivar y los terrenos de la catedral, del cementerio abandonado de los monjes franciscanos debajo del actual colegio Diocesano entre otras cosas; bajo de su taxi con la grata experiencia de haber ocupado mi tiempo en hablar con un ser extraordinario, uno de los pocos humanos que aún quedan caminando por nuestra selva de concreto.</p>
<p><strong>El Taxi abandonado de todos los días</strong></p>
<p>Siempre he sido bastante práctico, llego a un sitio, converso un poco, salgo rápido, voy al banco, etc; nunca le dedico mucho tiempo a esas cosas, mi retorno fue en uno de esos seres que es taxista porque nunca aprendió otra cosa para hacer dinero y ser productivo en esta vida; se dignó a decirme el precio porque se lo pregunté y me hizo caso de desviarnos a regañadientes porque lleva todo el día obstinado de la cola de la ciudad (el anterior señor no le importó desviarse un poco por &#8220;caminos verdes&#8221; siempre y cuando pudiera evitarse una cola y un stress), me limitaba a decirle cosas como &#8220;por qué no te desvías por San Juan, hay menos cola que por la Carrera 18&#8243;; &#8220;¿Por aquí?, me replica el taxista, a lo cual respondo &#8220;No!, 3 calles más arriba&#8221; y pienso para mí &#8220;¿Cómo puede ser taxista alguien que no se sepa la ciudad, que no conozca que el sector entre la 14 y 15 con calles 34 a la 36 es San Juan?&#8221;, ¿Por qué no te desvías aquí para ir hacia el parque ayacucho?, al final vamos para el aeropuerto, no necesitamos ir por la 16, ¿te parece bien la ribereña?; &#8220;noooo, la ribereña nooo, es mucho desvío&#8221;; me dice el taxista y vuelvo a pensar &#8220;Si, sé que eres como el 90% de los taxistas que les da pereza aprenderse la ciudad y se meten siempre por las mismas calles causando las benditas colas que nos agobian a todos, desviarte a la ribereña te da grima porque es autopista y por lo que he visto se nota que aprendiste a manejar ayer&#8221;; después de la respuesta un poco energúmena dejé que se calara su cola, igual me debía cobrar lo mismo que me dijo hace 40 minutos que lo tomé en el centro-este de Barquisimeto; asi que &#8220;Te jodes!, te quise ayudar, ahora te calas tu cola!&#8221;. punto!.</p>
<p><strong>Y la vida es un taxi &#8230;</strong></p>
<p>Me llegué a dar cuenta que la vida es así; muchos malos taxistas, que debemos calarnos su mal humor, su poca humanidad, su falta de conciencia y las tremendas colas en la que nos meten; además de su incansable y horrendo reggeton a todo volumen y sus ambientadores frutales, nos los calamos durante más tiempo que a los buenos taxistas, que con una conversa sabrosa, una radio sonando &#8220;Carmen la que contaba 16 años&#8221; y un conocimiento excelso del conducir y de la ciudad, te llevan rápido a tu destino; si la vida fuera al revés, me disfrutara mis viajes pacíficamente tomando café y hablando de las miles de historias de nuestra ciudad perdída en huecos y colas y desviaría a los malos taxistas por rápidas autopístas para salir de ellos lo antes posible; pero tristemente nunca es así &#8230;</p>
<p>Siempre me tendré que calar a mis abandonados, tristes y malgeniados taxis y los buenos taxis siempre llegarán rápido a su destino &#8230;</p>
<p>moraleja: siempre disfruten sus pocos momentos buenos entre tanto endurecimiento frío de concreto citadino, nunca sabes cuando dejarás de tener esos momentos de humanidad &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jesuslara.com.ve/blog/2008/07/07/las-dos-caras-de-una-ciudad-sentado-en-un-taxi/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[MS] Que es mi Content-Type!, que te lo digo en serio!</title>
		<link>http://www.jesuslara.com.ve/blog/2008/07/06/ms-que-es-mi-content-type-que-te-lo-digo-en-serio/</link>
		<comments>http://www.jesuslara.com.ve/blog/2008/07/06/ms-que-es-mi-content-type-que-te-lo-digo-en-serio/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 01:05:20 +0000</pubDate>
		<dc:creator>phenobarbital</dc:creator>
		
		<category><![CDATA[Cultura Libre]]></category>

		<category><![CDATA[Cultura Oldie]]></category>

		<category><![CDATA[La soda y la pastilla]]></category>

		<category><![CDATA[Otros lenguajes]]></category>

		<category><![CDATA[PlanetaLinux]]></category>

		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.jesuslara.com.ve/blog/2008/07/06/ms-que-es-mi-content-type-que-te-lo-digo-en-serio/</guid>
		<description><![CDATA[No conformes con las cosas horribles que le pasan a Windows Vista y su pronto reemplazo por Windows 7 (o Windows Seven plagues como algunos ya lo llaman; el vaticinio del fin del mundo); la fiebre de soluciones &#8220;Chaborras&#8221; e ilusas ahora viene de la mano de la gente de Internet Explorer 8.
Si; este es [...]]]></description>
			<content:encoded><![CDATA[<p>No conformes con las cosas horribles que le pasan a Windows Vista y su pronto reemplazo por Windows 7 (o Windows Seven plagues como algunos ya lo llaman; el vaticinio del fin del mundo); la fiebre de soluciones &#8220;Chaborras&#8221; e ilusas ahora viene de la mano de la gente de Internet Explorer 8.</p>
<p>Si;<a href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx"> este es mi content-type; que te lo digo en serio!</a> &#8230;</p>
<p>Durante milenios los documentos han viajado de los servidores hasta el navegador de una manera más o menos igual; el documento declara un tipo de contenido (Content-Type + charset) y aun así; los navegadores son algo desconfiados y echan una &#8220;mirada&#8221; al documento; sin embargo, es renderizado &#8220;tal cual es&#8221; sin ningún inconveniente; esto ha sido el comportamiento &#8220;por defecto&#8221; de absolutamente todo el mundo menos la gente &#8220;desvergonzada&#8221; de Redmont.</p>
<p>Al parecer su manía de desconfiar de cualquier código que no sea generado por ellos mismos (y si es generado por ellos; más desconfían) los hace &#8220;tratar de interpretar&#8221; el contenido obviando &#8220;olímpicamente&#8221; la declaración de Content-Type y enviando el contenido a los distintos &#8220;parsers&#8221; de acuerdo a su contenido; esto podría sonar interesante cuando se trata por ejemplo de imágenes (donde por lo general nadie declara el type) pero si dentro de un bloque en vez de contenter text/xml colocamos código javascript; en vez de ser enviado a pantalla (como debería ser, es un código javascript declarado como texto; como si lo colocara dentro de un &lt;PRE&gt;) este es ejecutado; siendo la total maldición de los sitios web y de los ataques de &#8220;MIME-sniffing&#8221;.</p>
<p>Para algo que es una &#8220;aplicación&#8221; habiamos inventado una declaración &#8220;<tt>application/xhtml+xml&#8221;</tt> esta permite indicar que nuestra página es una aplicación XML que combina HTML y otros &#8220;lenguajes&#8221; como javascript&#8221;; pero antes de IE7 los navegadores microsoft asumían esa declaración como un &#8220;binario&#8221; e intentaban descargar la página; ¿Como lo solventaban los desarrolladores para IE?; colocando 2 declaraciones Content-Type; una haciendo referencia a application/xhtml+xml y otra para IE de text/html.</p>
<p>Observen este &#8220;burdo&#8221; ejemplo de como las &#8220;cosas&#8221; se pasan por alto dentro de la casa de Redmont:</p>
<p>Con un bloque como:</p>
<blockquote><p><font face="Courier New">HTTP/1.1 200 OK<br />
Content-Length: 108<br />
Date: Thu, 26 Jun 2008 22:06:28 GMT<br />
Content-Type: text/plain;</font></p>
<p><font face="Courier New" color="#008080">&lt;html&gt;<br />
&lt;body bgcolor=&#8221;#AA0000&#8243;&gt;<br />
This page renders as HTML in IE7/IE8.<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p></blockquote>
<p>Como vemos; el content Type es &#8220;text/plain&#8221;; eso significa que &#8220;DEBERIA!&#8221; renderizarse como texto; pero la presencia de etiquetas HTML hace que IE7 e IE8 &#8220;interpreten&#8221; el contenido y lo envíen a pantalla.</p>
<p>En medida de seguridad; esto significa que un bloque de texto, conteniendo código Javascript (Jscript de MS) o VBScript será ejecutado en vez de ser &#8220;renderizado como texto&#8221;.</p>
<p>La burda solución de IE8? &#8230; inventarse una &#8220;declaración HTTP&#8221; indicando de que &#8220;en verdad&#8221; hay que hacerle caso al servidor y asumir el content-type como cierto; Authoritative=true:</p>
<blockquote><p><font face="Courier New">HTTP/1.1 200 OK<br />
Content-Length: 108<br />
Date: Thu, 26 Jun 2008 22:06:28 GMT<br />
Content-Type: text/plain; <strong><font color="#ff0000">authoritative=true;</font></strong></font></p>
<p><font face="Courier New" color="#008080">&lt;html&gt;<br />
&lt;body bgcolor=&#8221;#AA0000&#8243;&gt;<br />
This page renders as HTML source code (text) in IE8.<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p></blockquote>
<p>Nos les parece estúpido?; no le hago caso al content-type declarado; pero si a una declaración autoritativa?; si puedo &#8220;falsificar&#8221; una declaración de &#8220;content-type&#8221; ahora puedo &#8220;OBLIGAR&#8221; al navegador a no &#8220;intentar&#8221; analizar el contenido y a confiar en mí; si antes podía meter droga en la casa escondida en una caja de pizza; ahora con solo decir &#8220;Si mamá; es pizza&#8221; ella no revisará la caja y pasaré tranquilo con lo que desee entrar.</p>
<p>La idea es simple; HTML 5 obliga a los navegadores a obtener los primeros 512 bytes del documento e intentar analizar (via la cabecera del documento) todo el contenido de la página e informar al usuario de cualquier posible &#8220;discordancia&#8221; con el contenido; cualquier contenido &#8220;mal declarado&#8221; deberá ser tratado como text/plain o text/html y no &#8220;ejecutado&#8221; como viene haciendo IE7 (de hecho; HTML5 OBLIGA al UA (navegador) a informar al usuario de que un &#8220;contenido&#8221; está intentando ejecutarse cuando no debería; lo cual viene haciendo Firefox y otros navegadores como Opera hace tiempo); pero en vez de seguir con la corriente; con Authoritative=true la gente de IE8 se estará ahorrando el tener que escribir toda esta &#8220;mega-implementación&#8221; de interpretación y errores de excepción y &#8220;pasar a confiar en el servidor&#8221; sin tratar de analizar nada.</p>
<p>Es decir; no solo quieren seguir con el jueguito de &#8220;todo lo que me llegue lo ejecuto&#8221;; sino que además; &#8220;si el server me dice que EN SERIO debo ejecutarlo; entonces más lo haré sin chistar!&#8221; &#8230;</p>
<p>Cada día da más escalofríos pensar que será de Windows 7 e Internet Explorer en un par de años &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jesuslara.com.ve/blog/2008/07/06/ms-que-es-mi-content-type-que-te-lo-digo-en-serio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Exportando datos en vivo desde mySQL hasta postgreSQL usando mysqldump</title>
		<link>http://www.jesuslara.com.ve/blog/2008/06/17/exportando-datos-en-vivo-desde-mysql-hasta-postgresql-usando-mysqldump/</link>
		<comments>http://www.jesuslara.com.ve/blog/2008/06/17/exportando-datos-en-vivo-desde-mysql-hasta-postgresql-usando-mysqldump/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 05:03:35 +0000</pubDate>
		<dc:creator>phenobarbital</dc:creator>
		
		<category><![CDATA[Cultura Libre]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[PlanetaLinux]]></category>

		<category><![CDATA[trucos de la abuela]]></category>

		<category><![CDATA[dpt]]></category>

		<category><![CDATA[exportar]]></category>

		<category><![CDATA[insert into]]></category>

		<category><![CDATA[live data]]></category>

		<category><![CDATA[migracion]]></category>

		<category><![CDATA[migration]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[mysql 5]]></category>

		<category><![CDATA[mysqldump]]></category>

		<category><![CDATA[pipe]]></category>

		<category><![CDATA[postgresql]]></category>

		<category><![CDATA[postgresql 8]]></category>

		<category><![CDATA[sed]]></category>

		<category><![CDATA[sed -e]]></category>

		<guid isPermaLink="false">http://www.jesuslara.com.ve/blog/2008/06/17/exportando-datos-en-vivo-desde-mysql-hasta-postgresql-usando-mysqldump/</guid>
		<description><![CDATA[En muchos casos el proceso de migración de datos de una base de datos a otra se convierte en un tedioso proceso de convertir cosas de un punto a otro (ejemplo: crear archivos separados por coma o dumps SQL que debemos modificar) y muchas veces la gente no explota las capacidades de mySQL como &#8220;agente [...]]]></description>
			<content:encoded><![CDATA[<p>En muchos casos el proceso de migración de datos de una base de datos a otra se convierte en un tedioso proceso de convertir cosas de un punto a otro (ejemplo: crear archivos separados por coma o dumps SQL que debemos modificar) y muchas veces la gente no explota las capacidades de mySQL como &#8220;agente de migración&#8221; rápido y efectivo.</p>
<p>MySQL goza de una capacidad interesante para &#8220;emular&#8221; el comportamiento de otras bases de datos, esto se logra via la variable sql_mode; a nivel de la herramienta de migración mysqldump es a través del parámetro &#8211;compatible; con esta capacidad, podremos generar &#8220;volcados&#8221; (dumps) de tablas completas de una manera &#8220;compatible&#8221; con otras bases de datos, incluyendo postgreSQL.</p>
<p><strong>La situación de ejemplo:</strong></p>
<p>Tengo dos bases de datos, una en mysql llamada dpt_venezuela (División Político Territorial Venezolana), la obtuve a partir de interesantes transformaciones de la data que entrega el INE (Instituto Nacional de Estadística) que es una vulgar hoja de excel a la cual hay que hacerle muchas transformaciones en los datos (y que gracias a<a href="http://www.jesuslara.com.ve/blog/2007/08/03/cargar-datos-en-mysql-con-load-data-infile/"> LOAD DATA INFILE</a> en mySQL eso es un paseo); tengo las 4 tablas (entidades, municipios, parroquias y ciudades) en un schema &#8220;dpt&#8221; dentro de una DB en postgreSQL para un proyecto (iut); la idea ahora es llenar esas tablas sin tener que hacerlo a mano ni tener que generar un DUMP para trabajar con COPY, sino hacerlo directo y &#8220;en vivo&#8221;.</p>
<p>Describe de la tabla dpt_entidades (mySQL)</p>
<pre>CREATE TABLE `dpt_entidades` (
  `id_entidad` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `entidad` varchar(50) DEFAULT NULL,
  `cod_entidad` char(3) DEFAULT NULL,
  `capital` varchar(128) DEFAULT NULL,
  `mostrar` tinyint(1) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`id_entidad`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8</pre>
<p>Tabla dpt.entidades (postgreSQL):</p>
<pre>CREATE TABLE dpt.entidades
(
  id_entidad int4 NOT NULL,
  entidad varchar(65) NOT NULL,
  cod_entidad char(3) NOT NULL,
  capital varchar(128),
  mostrar int2 NOT NULL DEFAULT 1,
  CONSTRAINT dpt_entidades_pk PRIMARY KEY (id_entidad)
)
WITHOUT OIDS;
ALTER TABLE dpt.entidades OWNER TO postgres;</pre>
<p><strong>Entendiendo a mysqldump:</strong></p>
<p>mysqldump puede generar archivos separados por coma, xml o en su defecto (que usaremos) sentencias INSERT INTO; como hay diferencias sintácticas entre mySQL y postgreSQL usaremos un parámetro de mysqldump conocido como &#8220;&#8211;compatible&#8221; y que recibe como valor la palabra &#8220;postgresql&#8221;, el resto de parámetros son útilitarios de mysqldump (&#8211;skip-opt elimina comentarios y opciones &#8220;solo mysql&#8221; y -n me permite obviar las sentencias de CREATE TABLE de la tabla respectiva, &#8211;tables me permite generar una lista de tablas que serán exportadas).</p>
<p>Nota: debemos agregar &#8211;default-character-set=utf8 ya que por defecto, mysql hará el dump en latin1 y postgreSQL es por defecto utf8.</p>
<p>Inicialmente, la sentencia de mysqldump quedaría asi:</p>
<pre>mysqldump -u root --password=paswd001! --database dpt_venezuela -t -n --compact --skip-opt --default-character-set=utf8 --compatible=postgresql --tables dpt_entidades</pre>
<p>El único problema que tenemos ahora, es que la sentencia INSERT INTO generada:</p>
<pre>INSERT INTO "dpt_entidades" VALUES (1,'Distrito Capital','DCA','Caracas',1);</pre>
<p>No es aún compatible con postgresql, ya que como verán, la relación public.dpt_entidades no existe, sino que es dpt.entidades (schema: dpt, tabla: entidades); pero no hay nada que el comando linux <a href="http://www.gentoo.org/doc/es/articles/l-sed1.xml">sed</a> no pueda arreglar.</p>
<p><strong>Arreglando la salida con sed:</strong></p>
<p>sed es en resumidas cuentas un comando editor; nos permite hacer sustituciones y reemplazos sobre archivos o sobre la salida std de nuestra consola; por ende, podemos pasar toda la salida del comando mysqldump a través de sed y modificar lo que queramos, en nuestro caso, un reemplazo de &#8220;dpt_entidades&#8221; &gt; dpt.entidades.</p>
<p>Para ello, adicionalmente usamos pipe ( | ) un &#8220;concatenador&#8221; de la consola Unix, que nos permite indicar que la salida de un comando irá integramente hacia la entrada del comando siguiente; de esta manera, nuestra sentencia mysqldump ahora dice:</p>
<pre>mysqldump -u root --password=paswd001! --database dpt_venezuela -t -n --compact --skip-opt --default-character-set=utf8 --compatible=postgresql --tables dpt_entidades | sed -e "s|\"dpt_entidades\"|dpt.entidades|"</pre>
<p>Ahora si vemos, nuestras sentencias INSERT tienen la forma que postgreSQL necesita:</p>
<pre>INSERT INTO dpt.entidades VALUES (1,'Distrito Capital','DCA','Caracas',1);</pre>
<p>Ahora solo falta entregarle estas sentencias a psql (el comando de entrada de postgreSQL).</p>
<p><strong>psql y entrando datos a postgreSQL:</strong></p>
<p>Usar psql es bastante simple, solamente convocamos la DB (iut) usando el usuario owner de la misma (jesuslara) y pidiendo password (-W), en nuestro caso, recibirá datos de entrada usando PIPE ( | ) que viene desde el comando mysqldump+sed anteriormente ejecutado:</p>
<p>psql -U jesuslara -W -h localhost -d iut</p>
<p>y la cosa al final queda:</p>
<pre>mysqldump -u root --password=paswd001! --database dpt_venezuela -t -n --compact --skip-opt --default-character-set=utf8 --compatible=postgresql --tables dpt_entidades | sed -e "s|\"dpt_entidades\"|dpt.entidades|" | psql -U jesuslara -W -h localhost -d iut</pre>
<p>Entrando los datos correctamente hasta la tabla dpt.entidades de la base de datos iut.</p>
<p>Repetimos esto para municipios, parroquias o ciudades (o de plano, hacemos un dump de todas las tablas, agrandando acorde el sed para transformar todas las salidas a la vez) y tendremos migrados nuestras tablas desde mysql a postgresql sin necesidad de archivos intermedios.</p>
<p><strong>Usando mySQL como gestor de migraciones:</strong></p>
<p>sql_mode y &#8211;compatible son grandes aliados a la hora de migrar datos;<a href="http://www.jesuslara.com.ve/blog/2007/08/03/cargar-datos-en-mysql-con-load-data-infile/"> LOAD DATA INFILE</a> es mucho más poderoso que COPY y por ejemplo, hay muchas cosas allá afuera en MS Access o MS Fox Pro que ameritan ser migradas y mySQL ayuda muchisimo para cargar (además de normalizar y transformar) la data que venga de orígenes heterogéneos y llevarla limpia y sin problemas a postgreSQL.</p>
<p>Que disfruten este truco de la abuela!.</p>
<p><strong>Nota:</strong> recuerden que sed es un comando muy poderoso y pueden por ejemplo, aplicar expresiones regulares de reemplazo para la transformación de los datos y los metadatos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jesuslara.com.ve/blog/2008/06/17/exportando-datos-en-vivo-desde-mysql-hasta-postgresql-usando-mysqldump/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Ponencia] Linux Tweak &#038; Tunning</title>
		<link>http://www.jesuslara.com.ve/blog/2008/06/14/ponencia-linux-tweak-tunning-2/</link>
		<comments>http://www.jesuslara.com.ve/blog/2008/06/14/ponencia-linux-tweak-tunning-2/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 19:46:26 +0000</pubDate>
		<dc:creator>phenobarbital</dc:creator>
		
		<category><![CDATA[Cultura Libre]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[PlanetaLinux]]></category>

		<category><![CDATA[trucos de la abuela]]></category>

		<guid isPermaLink="false">http://www.jesuslara.com.ve/blog/2008/06/14/ponencia-linux-tweak-tunning-2/</guid>
		<description><![CDATA[Durante algún tiempo he agrupado una colección de trucos y detalles sobre los sistemas Linux y fue hace poco que decidí agruparlos en una presentación que he llamado &#8220;Linux Tweak &#38; Tunning&#8221;; espero ir agrandándola a medida que vaya coleccionando trucos y nuevas cosas.
Agrego adicionalmente unas modificaciones a la charla de &#8220;integración de Servicios de [...]]]></description>
			<content:encoded><![CDATA[<p>Durante algún tiempo he agrupado una colección de trucos y detalles sobre los sistemas Linux y fue hace poco que decidí agruparlos en una presentación que he llamado &#8220;Linux Tweak &amp; Tunning&#8221;; espero ir agrandándola a medida que vaya coleccionando trucos y nuevas cosas.</p>
<p>Agrego adicionalmente unas modificaciones a la charla de &#8220;integración de Servicios de infraestructura con openLDAP&#8221; con la integración hacia freeRadius y autenticación.</p>
<p>Charla: <a href="http://www.jesuslara.com.ve/blog/wp-content/uploads/File/tunning_linux.pdf">Linux Tweak &amp; Tunning</a></p>
<p>Charla: <a href="http://www.jesuslara.com.ve/blog/wp-content/uploads/File/openLDAP.pdf">Integración de servicios de infraestructura sobre openLDAP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jesuslara.com.ve/blog/2008/06/14/ponencia-linux-tweak-tunning-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
