Lazy people works hard

Keep in mind that this is my first post in english, please if you see something written bad, let me know leaving a comment. well here we go.

some days ago I was very bored and tired at my job enough to do nothing that day, however I remembered that I would had to do one task, I needed to compare two databases to know what tables there was into the first one but not in the other one (each database had lots of tables), I’m a very very lazy person when I have to do humdrum tasks and that was definitely. I wouldn’t had wanted to acomplish that task reviewing table by table. I started to think how to do my task in a diferent way, suddenly an idea through across my mind, I would be able to list the name of all tables from each database then I could put all those names into a table containing only the names and making a SQL statement to group the names I would get group’s name, groups having only one element would be the result that I had been searching, but it all still was lot of work for my laziness, therefore I had to find out another way to solve my problem otherwise I would end doing it by hand and thought to myself “never mind, I never going to do that by hand”. It was the time when I remembered that Unix systems has lots of tools to manage text files maybe I could use something tools. Suddenly I remembered a command line tool called diff, the diff command compare two text files (actually it can be binary files) and show their differences, unfortunatly diff doesn’t do the work exactly as easy as I would like, by example having two files called db_one.txt and db_two.txt whit the name of the tables:

db_one.txt

table1
table2
table3
table4
table7
table9
table10

db_two.txt

table1
table2
table3
table4
table5
table6
table7
table8

Using diff command we would obtain this result:

[espartano@ ~/pruebas/diff]$ diff db_one.txt db_two.txt
4a5,6
table5
table6
6,7c8
table9
table10
---
table8
[espartano@ ~/pruebas/diff]$

but it doesn’t enough good for me, I would have liked a command more straightforward than diff (maybe with patch but I not remembered it in those times), well I had to continue searching a command that just make my work in a easy way, then was when I found the blessed command comm, yes, comm going to solve all my problem because as man page says:

utility comm reads file1 and file2, which should be sorted lexically, and produces three text columns as output: lines only in file1; lines only in file2; and lines in both files.


having the same two files from the last time:

[espartano@ ~/pruebas/diff]$ comm db_one.txt db_two.txt
                table1
                table2
                table3
                table4
        table5
        table6
                table7
        table8
 
table9
table10
 
[espartano@ ~/pruebas/diff]$

voiala this is the result that I was finding. At those point I wasn’t tired nor bored :) because I learned a couple new things, but I think that I worked more than what was do it by hand.

Only if you insist, this is the way which I would have done with SQL:

[espartano@ ~/pruebas/diff]$ cat db_two.txt >> db_one.txt
 
[espartano@ ~/pruebas/diff]$ cat db_one.txt
table1
table2
table3
table4
table7
table9
table10
 
table1
table2
table3
table4
table5
table6
table7
table8
 
[espartano@ ~/pruebas/diff]$ cat db_one.txt | sed -e s/^/"insert into tablas (nombre) values ('"/g > insert.sql
 
[espartano@ ~/pruebas/diff]$ cat insert.sql
insert into tablas (nombre) values ('table1
insert into tablas (nombre) values ('table2
insert into tablas (nombre) values ('table3
insert into tablas (nombre) values ('table4
insert into tablas (nombre) values ('table7
insert into tablas (nombre) values ('table9
insert into tablas (nombre) values ('table10
insert into tablas (nombre) values ('
insert into tablas (nombre) values ('table1
insert into tablas (nombre) values ('table2
insert into tablas (nombre) values ('table3
insert into tablas (nombre) values ('table4
insert into tablas (nombre) values ('table5
insert into tablas (nombre) values ('table6
insert into tablas (nombre) values ('table7
insert into tablas (nombre) values ('table8
insert into tablas (nombre) values ('
 
[espartano@ ~/pruebas/diff]$ cat insert.sql | sed -e s/$/"');"/g > completed_inserts.sql
 
[espartano@ ~/pruebas/diff]$ cat completed_inserts.sql
insert into tablas (nombre) values ('table1');
insert into tablas (nombre) values ('table2');
insert into tablas (nombre) values ('table3');
insert into tablas (nombre) values ('table4');
insert into tablas (nombre) values ('table7');
insert into tablas (nombre) values ('table9');
insert into tablas (nombre) values ('table10');
insert into tablas (nombre) values ('');
insert into tablas (nombre) values ('table1');
insert into tablas (nombre) values ('table2');
insert into tablas (nombre) values ('table3');
insert into tablas (nombre) values ('table4');
insert into tablas (nombre) values ('table5');
insert into tablas (nombre) values ('table6');
insert into tablas (nombre) values ('table7');
insert into tablas (nombre) values ('table8');
insert into tablas (nombre) values ('');
mysql>; CREATE DATABASE prueba;
Query OK, 1 row affected (0.13 sec)
 
mysql> USE prueba;
DATABASE changed
 
mysql> CREATE TABLE tablas (nombre varchar(50));
Query OK, 0 rows affected (0.42 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table1');
Query OK, 1 row affected (0.11 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table2');
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table3');
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table4');
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table7');
Query OK, 1 row affected (0.02 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table9');
Query OK, 1 row affected (0.01 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table10')
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('');
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table1');
Query OK, 1 row affected (0.06 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table2');
Query OK, 1 row affected (0.02 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table3');
Query OK, 1 row affected (0.02 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table4');
Query OK, 1 row affected (0.01 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table5');
Query OK, 1 row affected (0.03 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table6');
Query OK, 1 row affected (0.01 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table7');
Query OK, 1 row affected (0.01 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('table8');
Query OK, 1 row affected (0.02 sec)
 
mysql> INSERT INTO tablas (nombre) VALUES ('');
Query OK, 1 row affected (0.03 sec)

then

mysql> SELECT nombre FROM tablas GROUP BY nombre HAVING count(nombre) = 1;
+---------+
| nombre  |
+---------+
| table10 |
| table5  |
| table6  |
| table8  |
| table9  |
+---------+
5 rows IN SET (0.02 sec)
Posted under DataBases, Funny, Influenza, My life, Operating Systems by Espartano on Sunday 31 May 2009 at 9:06 pm

Informacion sobre virus y pandemias y II

Como ya decía en el post anterior sobre este tema, la información sobre el nuevo virus A/H1N1 que podría interesarme no es precisamente la que un político o alguien no entendido del tema podría citar, hace ya unos días encontré una entrada en un blog perteneciente a alguien que dice ha trabajado anteriormente en la WHO, y ha convivido y trabajado con virologos en otros virus de influenza, la entrada de su blog con respecto al tema es bastante interesante a tal grado que pretendía traducirla pero afortunadamente Federico Mena ya lo hizo y paso a citar literalmente su traducción, si alguien esta interesado en leer la entrada original pueden dirigirse a http://www.fluidinfo.com/terry/2009/04/26/a-few-comments-on-pandemic-influenza/ si quieren leer la entrada original de federico mena puede hacerlo en http://www.gnome.org/~federico/news-2009-04.html#26 o si quieren pueden leerla aquí que es la misma :p a continuacion la tradducción de Federico Mena:

Aquí van algunas ideas sobre la actual epidemia de influenza porcina. Vienen de lo que se me ocurre - seguramente se me ocurrirán más cosas y las pondré en los comentario o en otro artículo. Me disculpo por la falta de ligas a otros sitios. Puede ser que regrese y las ponga.

Estoy a la vez calificado y no calificado para hacer algunos comentarios. Estoy no calificado porque ya no trabajo en el virus de la influenza, porque no soy un virólogo, porque no tengo información interna sobre la epidemia actual. Por otra parte, creo que puedo decir que sé de lo que hablo. Trabajé por algunos años en el virus de la influenza como parte del equipo de Cartografía de Antígenos de la Universidad de Cambridge. Le ayudamos a la Organización Mundial de la Salud a escoger la variedad H3N2 para la vacuna humana. He conocido a los dirigentes de 4 centros internacionales de la influenza y he estado en el Cuarto de Emergencias de la OMS en Ginebra - una fortaleza subterránea autónoma. Pasé mucho tiempo conviviendo y hablando con virólogos de la influenza. He leido todos los libros sobre la pandemia de 1918, lo que me da entendimiento retrospectiv sobre lo que ocurrió entonces, y tal vez algo de entendimiento sobre lo que podría ocurrir ahora.

Siento que es bueno que alguien como yo haga comentarios porque estoy fuera del mundillo de la influenza y la gente que está dentro es poco probable que diga mucho. La influenza es un tema muy politizado, en pocas palabras. La gente que trabaja en la comunidad de investigación de la influenza no va a querer hablar. Entonces debo dejar claro que los comentarios siguientes son sólo mis opiniones, y no representan las ideas de nadie más.

Voy a decir varios puntos que creo que son bastante sobrios - ni alarmistas, ni que menosprecian la situación - e intentaré dejar la especulación a un lado.

Además de los detalles del virus en sí, el lado social de una posible pandemia es sumamente interesante. Muy poca gente tendrá información realmente concreta, y los que la tengan sólo podrán dar sus mejores deducciones.

En una pandemia, o en algo que parece que podría ser una, rumores muy variados se dispersan por la población. Esto ocurrirá en una escala sin precentes en esta ocasión.

Según lo que sabemos, el virus no ha pasado aun mucho tiempo en humanos. Ya que lo haya hecho, comenzará a adaptarse de formas no predecibles. Puede volverse más virulento, o menos virulento. Puede desarrollar resistencia a los antivirales que actualmente son efectivos. La resistencia antiviral ha sido un tema de mucha preocupación por algunos años. Sabemos que el virus actual es resistente a la amantadina y la rimantadina, aunque el oseltamivir todavía es efectivo.

Si le preguntas a los virólogos cuál es la probabilidad de que haya otra pandemia, te responderán que es de 1.0. Es sólo cuestión de tiempo para que ocurra una. Es como una probabilidad diferente de cero en un proceso Markoviano. Cuando ocurre una pandemia, lo que se hace primero es de importancia crítica. En caso de la gripe aviar intentaron aislar inmediatamente a las aves potencialmente infectadas, detener la propagación del virus y su mutación y que se volviera susceptible de infectar a humanos. Cuando en efecto se introdujo en la población humana, hubo acciones rápidas para aislarlo, una vez más para reducir la propagación y el tiempo que tuviera el virus para adaptarse. En caso de la gripe aviar en humanos, hubo muy poca propagación aérea, y tenemos suerte de ello. Pero el virus actual parece ya tener esa propiedad, lo que lo hace muy preocupante.

Sería un milagro si la vacuna existente para epidemias diera cualquier protección para este virus. La vacuna humana en efecto contiene una variedad contra H1N1, pero es una variedad elegida con base en virus sacados de humanos hace muchos meses. La vacuna para epidemias se enfoca en evitar lo que se conoce como variación antigénica (antigenic drift) - la acumulación lenta de mutaciones puntuales en el virus. Las variedades pandémicas surgen del cambio antigénico (antigenic shift) en el que trozos grandes de material genético viral, a veces genes completos, se mezclan entre virus de influenza de especies diferentes. En una variedad pandémica algo del material genético y las proteinas que codifica es posible que nunca se hayan visto en un sistema inmune de humanos.

El kit estándar para prueba de influenza de la OMS no es muy útil para identificar esta variedad. Ya han publicado instrucciones avisando de falsos negativos.

Algunos aspectos de la epidemia actual son, para mí, muy preocupantes.

El director del Centro de Control de Enfermedades (de Atlanta) ha dicho, “hemos visto cosas que sugieren que el aislamiento del virus no es muy probable”. Esto es decir algo muy franco. Creo que el gato ya se escapó de la bolsa. La cuestión es qué tan grave va a ser. Esto es imposible de decir justo ahora, porque no sabemos cómo va a ser el virus en el futuro, ya que haya tenido tiempo de mutar y adaptarse dentro de humanos.

En circunstancias normales toma más o menos 6 meses hacer la cantidad de vacuna necesaria para una epidemia mundial. Es un proceso largo y difícil que requiere que se cultiven toneladas del virus en huevos de gallina. Se debe identificar una variedad del virus para la vacuna, tiene que ser una que crezca bien en huevos de pollo (y esto incluye no matar al pollito). Aun bajo la alta presión de una pandemia potencial, hacer una vacuna nueva va a tomar meses. Para entonces, el virus puede haber evolucionado (a travez de mutaciones) y la vacuna puede ser menos efectiva. Nótese que en 1918 el virus mató a decenas de millones de personas durante un período mucho más corto que éste.

Redirigir los recursos mundiales de la influenza para atender una amenaza pandémica, necesariamente los desvía del trabajo en vacunas para epiedemia. La influenza epidémica mata cada año alrededor de 0.5M de personas. El no poder prestarle atención a tiempo a las variedades epidémicas también es malo.

El nuevo virus ha aparecido en varios lugares en los EUA durante los últimos días. Supongo que va a aparecer por todo el mundo durante los días siguientes, como máximo. ¿Qué hay para detenerlo? El virus se ha aislado en varias áreas diversas y en muchos casos es genéticamente idéntico. El virus de 1918 también apareció, en muchos casos sin explicación, por todo EUA. El libro “La pandemia olvidada de los EUA” (America’s Forgotten Pandemic) es digno de leerse.

Hubo 3 oleadas de la pandemia de 1918/19. La primera fue en el verano de 1918 - muy inusual, pues la influenza normalmente cae a niveles extremadamente bajos durante el verano. Nótese que la epidemia actual también está fuera de temporada.

La pandemia de 1918 mató a gente con un patrón de edades muy inusual. En vez de tener picos sólo en los muy jóvenes y los muy viejos, hubo una gráfica de W, con un gran número de gente joven y saludable que normalmente no debió haber muerto de influenza. Hay varias conjeturas sobre el porqué de esto. El virus actual también está matando adultos jóvenes y saludables.

La descomposición social durante una pandemia es extraordinaria. Si has leido “La Gran Pandemia” (The Great Pandemic) de John Barry, tendrás idea de ello. “La pandemia olvidada de los EUA” también ayuda a dar una idea de lo que debió haber sido.

Nadie sabe cuánta gente murió en la pandemia de 1918. Los cálculos varían entre 40M y 100M, y se han incrementado a lo largo de los años. La influenza no es lo más fácil de diagnosticar (de ahí la categoría ESI - enfermedades similares a la influenza). También elimina la capa protectora de células epiteliales de la garganta, dejándote susceptible a infecciones oportunistas, como neumonía, que son las que con frecuencia terminan por matar.

Nadie sabe qué tan mala sería otra pandemia en términos de mortalidad. Los cálculos optimistas son de menos de una decena de millones. Alguien de la OMS sugirió un número mucho más elevado hace unos 4 años en el contexto de la gripe aviar, y ese número lo retractaron rápidamente. Jeff Taubenberger, que fue responsable de resucitar y secuenciar el virus de 1918 (una historia extraordinaria, contada en varios libros) ha publicado trabajos que dicen que 100M podrían ser posibles. Nadie sabe, y depende de muchos factores, que incluyen las características del virus, qué tan pronto se detecte, qué tan fácilmente se propague, qué virulento sea (obviamente), las medidas sociales que se tomen para combatirlo, resistencia antiviral, y otros factores.

No creo que nadie sepa cómo se combinarán los factores de conocimiento médico muy elevado y de viajes nacionales e internacionales muy frecuentes. Si el virus no aparece por todo el mundo dentro de una semana, voy a estar sorprendido. Los aeropuertos ya están monitoreando gente que llega de México, pero me imagino que ya es demasiado tarde y seguramente no se hace de forma global.

La historia dice que probablemente no debes creer nada que diga ningún político sobre la influenza pandémica. Hay una gran tendencia a desvalorar los riesgos. Hay muchos factores en juego cuando se comunica con el público. Puedes estar seguro que todo lo que dicen oficialmente la OMS y el Centro de Control de Enfermedades ha sido vetado y considerado muy cuidadosamente. Por otra parte, no hay razón para creer nada de lo que nadie te dice :)

Las mascarillas tienen una historia interesante, y se han vuelto ley en varias ocasiones. En 1918 ni siquiera sabíamos lo que era un virus, mucho menos qué tan diminutos son, entonces las mascarillas de gaza eran probablmente inútiles.

En conclusión, creo que diría que la cosa está de nuestras manos por el momento. Vamos a tener que esperar y ver qué pasa, y hacer nuestros mejores esfuerzos en el camino.

La gente que trabaja en influenza en el Centro de Control de Enfermedades y otros laboratorios internacionales es un equipo increíble de expertos. Han trabajando en este juego por mucho tiempo y trabajan extremadamente duro y generalmente se habla mal de ellos. Es de esperarse que la influenza sea un tema tan politizado, la responsabilidad es muy alta y la tendencia a la opacidad es comprensible. Contra toda la experiencia que hay, en el fondo hay un virus extremadamente complejo - gran parte de cuya conducta se desconoce, en especial en caso del cambio antigénico (antigenic shift), en especial cuando es tan joven, y en especial cuando no se sabe qué mutaciones cercanas son posibles en el espacio antigénico - esparcirse en un entorno mucho más complejo (nuestros cuerpos), y con nosotros desplazándonos e interactuando de formas extrañas en un mundo complejo y muy interconectado. Es milagroso que sepamos todo lo que sabemos, pero de muchas maneras no sabemos mucho.

Artículo original de Terry Jones.

Posted under Bilogic Viruses, Influenza, Pandemia by admin on Monday 4 May 2009 at 10:15 pm

Información sobre virus y pandemias

Hace tiempo que tengo la intención de revivir este blog, pensaba poner contenido 100% técnico (aun es mi intención), sin embargo debido al actual situación en México y el mundo creo que es mejor poner información como la de los vídeos de esta entrada, desde que comenzó la contingencia he estado buscando información “diferente” de la que ha dado las autoridades mexicanas, NO estoy diciendo que la información que las autoridades han difundido este erronea ni tampoco estoy diciendo que sea información incompleta, modificada, distorsionada o que se este ocultando algo, simplemente creo que la informacion difundida por las autoridades hasta el momento no es suficiente para mi, tengo varias dudas de ¿como?, ¿porque? y ¿de que forma podría evolucionar la actual situación?, definitivamente no es información que un político pueda ¿deba? proporcionar, estoy buscando información que solo un científico podría describir, entiendo que las autoridades tengan la responsabilidad de informar de cierta forma a la gente para no causar pánico no necesario pero para aquellos que tengan inquietudes como las mías he aquí un documental de national geographic que vi hace tiempo, es viejo pero muy informativo.

NOTA para los despistados: el documental no trata de la actual situación, hace uso de un caso hipotético para ejemplificar como surgen y evolucionan las pandemias.

En los siguientes días pondré mas información que considere importante o interesante.

Posted under Bilogic Viruses, Influenza, Pandemia by admin on Saturday 2 May 2009 at 12:08 am