sábado, 11 de mayo de 2013

Recurso enseñanza de inglés. Marco Polo-R Propuesta europea para el retorno de muestras de un asteriode

Daniel Marín informa de la propuesta para el retorno de muestras de un asteroide dentro del programa Cosmic Vision de la Agencia Espacial Europea ESA.

Me ha hecho mucha gracia el cómic que acompaña al proyecto: Explica la misión, el diseño, fases, ciencia, etc. en un nivel perfectamente comprensible para alumnos de secundaria.

Como está en inglés he pensado que tal vez podría servir de recurso para dar clases de este idioma y de paso que los chavales aprendan algo de exploración espacial.

El cómic viene en jpgs de diferentes tamaños; los he juntado y he creado un pdf más fácil de manejar e imprimir aunque la resolución de las imágenes originales no es muy alta. Les he pedido una versión en alta resolución.

De momento sólo llega hasta la página 16, lo iré actualizando así como vayan apareciendo nuevos episodios.

Recurso enseñanza inglés: Descargar Marco Polo R el cómic.


Instalar Django en Windows

Una de las formas es esta:
  1. Bajar e instalar python (2.7 en este momento)
  2. Incluir C:\Python27;C:\Python27\Scripts en el path
  3. Copiar este script de instalación de distribute en un fichero (distribute_setup.py) y ejecutarlo python distribute_setup.py
  4. Bajar ultima versión de pip y copiar a directorio; instalar usando python setup.py install
  5. Instalar Django con pip install Django==1.5 (1.5 es la última versión en este momento)
  6. Probar python -c "import django" (no debe dar ningún error)
  7. Crear la última killer app ;-)



viernes, 10 de mayo de 2013

Buscar en inglés con google

Para realizar búsquedas en google con resultados en inglés

http://www.google.com/ncr

o bien

http://www.google.com/webhp?hl=en

Esta url también acepta otros idiomas codificados en ISO-639-1 de dos caracteres, por ejemplo, prueba en albanés o en kanuri (hablado en Nigeria).

lunes, 6 de mayo de 2013

Eivissa des de la ISS (Eivissa from the ISS)

L'expedició 35 de l'Estació Espacial Internacional va prendre aquesta imatge de la nostra estimada casa el 22/03/2013.



Font:
Nasa: International Space Station Imagery

lunes, 29 de abril de 2013

Apache httpd CentOS Certificate not verified: 'Server-Cert'

En CentOS, si de repente tenéis el servidor web caido y os sale este error en /var/log/nss_error_log es porque está instalado el módulo mod_nss y aunque el httpd no lo está cargando, detecta que el certificado de prueba que instala nss automáticamente está caducado.

La solución es desinstalar el módulo

yum remove mod_nss


Ejemplo de error:

[Mon Apr 29 13:37:24 2013] [error] Certificate not verified: 'Server-Cert'
[Mon Apr 29 13:37:24 2013] [error] SSL Library Error: -8181 Certificate has expired
[Mon Apr 29 13:37:24 2013] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.


Bug en RH:

https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=711085

miércoles, 6 de marzo de 2013

Backup de los procedimientos almacenados mysql

El mysqldump no copia los stored procedures por defecto pero si los triggers, es decir, los parámetros por defecto son:

--routines FALSE por defecto
--triggers TRUE por defecto

Para volcar sólo los procedimientos almacenados:

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt database > procedimientos.sql

Para importar los procedimientos a otra db:


mysql database < procedimientos.sql

Para hacer un backup de datos y triggers que también copie los procedimientos almacenados:


mysqldump --routines outputfile.sql


Fuente:
http://www.ducea.com/2007/07/25/dumping-mysql-stored-procedures-functions-and-triggers/

jueves, 28 de febrero de 2013

Depurar procedimientos almacenados mysql

Depurar procedimientos de bases de datos suele ser una tarea ingrata a no ser que tengamos alguna herramienta de desarrollo. Pero aún estas herramientas suelen modificar internamente el procedimiento para efectuar el depurado además de crear multitud de tablas intermedias para guardar el estado de las variables en cualquier punto de la ejecución.

Si no te interesa este enfoque y sólo necesitas ir haciendo un log de lo que ocurre propongo el siguiente sistema que he ido mejorando a partir de diversas fuentes y experiencias.

La idea se basa en la creación de una tabla temporal donde vamos realizando el log mediante una llamada al procedimiento doLog(msg).

Primero creamos una tabla de configuración:

CREATE TABLE `internal_config` (
`debug` tinyint(4) NOT NULL DEFAULT '1'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

insert into internal_config(debug) values(0);

Que nos servirá para activar/desactivar el debug con:

update internal_config set debug=true;

El procedimiento que crea la tabla temporal es:

CREATE PROCEDURE `setupTmpLog`()
BEGIN
 CREATE TEMPORARY TABLE IF NOT EXISTS tmplog(
   lin integer NOT NULL AUTO_INCREMENT primary key,
   msg VARCHAR(512)
 ) ENGINE = MEMORY;
END

y el que escribe el log:

CREATE PROCEDURE `doLog`(IN logMsg VARCHAR(512))
BEGIN
 declare do_debug bool default false;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET do_debug=false;
 DECLARE CONTINUE HANDLER FOR 1146 -- Table not found
  BEGIN
    CALL setupTmpLog();
    INSERT INTO tmplog(msg) VALUES ('resetup tmp table');
    INSERT INTO tmplog(msg) VALUES (logMsg);
  END;

 select debug from internal_config limit 1 into do_debug;

 -- escribimos en el log solo si debug esta activado
 if (do_debug) then
   INSERT INTO tmplog(msg) VALUES (logMsg);
 end if;
END

y finalmente, un procedimiento que nos muestra el log (con el último mensaje primero) y después borra la tabla:

CREATE PROCEDURE `view_log`()
BEGIN
  DECLARE CONTINUE HANDLER FOR 1146 -- Table not found
   BEGIN
    CALL setupTmpLog();
   end;

   select msg from tmplog order by lin desc;

   drop table tmplog;
END

Ya lo tenemos todo, para ir logeando en nuestros procedimientos sólo tenemos que llamar a doLog así:

call doLog(concat("Hola", " que ", " tal " ));

Y cuando queramos ver (y limpiar) el log hacemos:

call view_log();

Espero que os sirva. Good Luck ;-)


Fuentes:
http://www.drdobbs.com/database/debugging-mysql-stored-procedures/218100564?pgno=1