Push The Button

Worklog de electronica, DIY, e informática de Alwar

Quijost - El mejor hosting de origen manchego
El mejor hosting de origen español y manchego

Este programa está escrito con la intención de proporcionar una solución a los alumnos de la Universidad Rey Juan Carlos I de Madrid, usuarios de Linux que necesitan entregar sus practicas empaquetadas con el programa que proporciona la universidad. Yo no guardo ninguna relación con la universidad, salvo que estudio allí.
PaKetX - Empaquetador de practicas para linux
Su funcionamiento es bien sencillo. Lee un archivo XML (que se distribuye en zip con extensión *.dac) en el cual se especifica que archivos hay que entregar para la realización de la practica, y cuantos miembros puede tener el grupo de trabajo. El programa mira que en el directorio donde se encuentra estén los archivos de la practica, y si están pide los datos de los miembros de grupo (nombre y expediente), lo guarda en un archivo de texto y lo “zipea” todo junto. Este zip debería ser totalmente compatible con los que genera la aplicación para windows. Aunque esto todavía no lo he comprobado.

Ademas le he añadido otra funcionalidad (como mola el software libre) y es que si la ejecutas con la opción make (no la de compilar si no “paketX make”) pues te crea una carpeta con el nombre de la practica y en ella todos los archivos (en blanco claro) que hay que entregar, así te ahorras el trabajo de crearte la estructura de la practica. Claro que solo funciona con archivos de texto (por ejemplo para los VHDl *.vhd o los sources de Pascal *.pas), si te genera un archivo *.pdf lo puedes borrar porque solo sirve para ver que tienes que entregar.

Es mi primer script serio en bash, y espero que no seáis muy duros con el, ya que hace dos dias, sabía bien poco sobre este lenguaje de scripting. Osea que tendrá sus fallos.
Esta escrito y testado bajo Debian GNU/LINUX squeeze. Que yo sepa solo necesita para funcionar, bash, p7zip y XMLStarlet.

El programa lo podéis bajar desde el archivo de alwar

Actualización v0.2

He actualizado el script, ya que antes separaba los nombres con un espacio y el programa para windows lo hace con un tabulador. Ahora el script también mete un tabulador. Estuve comparando una practica empaquetada con ambos programas, y a excepción del tabulador el archivo era idéntico. Solo cambia una cosa, y es que el programa para windows nombra a la practica con los nombres de los expedientes a la inversa de como los escribes, mientras que el script para linux lo pone en el orden que fueron escritos. Esto no creo que sea un problema ya que cuando examinen la practica no creo que sepan en que orden los introdujiste.

Me he comprado un dell Vostro 1520 como portatil para ir a la universidad. El cacharro va muy bien equipado y visualmente es elegante y sencillo. Al abrirlo (descubres el primer defecto, alguno tenía que tener) ves que el teclado es mas pequeño, pero no, solo es un efecto visual de tener los altavoces a los lados del teclado y un biselado muy pronunciado en las teclas.

Matriz Luciendo

Ya por fin conseguí hacerme con unas cuantas matrices de LEDs y así me ahorro soldar centenares de leds.

Por falta de previsión no me he hecho con un convertidor serie paralelo (shift register) y no he podido probar como mostrar caracteres en una matriz de 8×8 como la de la fotografía, a sí que me he tenido que conformar con  hacer un pequeño efecto de cortinilla con un modulo para ir probando. Es bastante sencillito.  Tras localizar cada pin (que es bastante laborioso y no he encontrado un datasheet decente) conectamos los negativos al GND de la placa arduino, y los 8 positivos a 8 entradas de la placa arduino. Y después con un bucle encendemos las columnas que queremos…

Como se me da también el ingles que tengo que estar siempre buscando palabritras en el diccionario, y me gusta hacer las cosas rapido, me canse de tener que estar cargando siempre la web del wordreference, escribir la palabreja y esperar a la traducción. Ahora es mas rápido! Gracias a firefox y sus motores de busqueda (si os digo la verdad, esta mucho mejor el del IE7, que puedes agregar todos los que tu quieras sin necesidad de estar creando *.xml. Simplemente con poner “TEST” en el cuadro de busqueda que quieras agregar, cuando carga la pagina de resultados el IE te saca un mensajito de si quieres agregarlo. Así de sencillo!, pero como sigue siendo igual de lento que el IE6, yo sigo con mi FF3).

Ahora basta con poner la palabra clave y la palabra a buscar en la barra de direcciones y tachan!

¿Como?
Ves a mi archivo y te bajas los que te interesen (hay 7 ingles, español, frances e italiano, ESEN, ENES, ENFR FREN, ITEN, ENIT, ENDef).
Luego de bajartelos los guardas en la carpeta del firefox “searchplugins\” que posiblemente este en: “C:\Archivos de programa\Mozilla Firefox 3 Beta 3\” y cuando los hayas copiado hay, reinicias el FF y ya estaran funcionando.

Ahora si quieres utilizarlos desde la barra de navegación tienes que asociarles a cada plugin una plabra clave:
1º Abre el administrador de motores de busqueda:

2º Pincha el plugin en el que quieres asociar una palabra, y dale a “editar palabra clave”. Escribe una palabra sencilla, que te vallas acordar cuando quieras utilizar el motor… porque si no esto no tiene sentido…

3º Ahora solo te queda probarlo y aprovechar que en decimas de segundos realizas una busqueda :D

Y el resultado:

Y ya ta! Si quereis hacer plugins para otros motores de busqueda podeis consultar el siguiende manual en developer.mozilla.org y crear todos los que querais!
Nota: Está en proceso de traducción, vamos que está en ingles, pero como ya teneis el wordreference creo que no tendreis problemas xDDD

He encontrado una web que me ha gustado bastante, pero que está en ingles, y que trae mucha informacion sobre la mayoria de sentencias del protocolo NMEA para GPS’s.

El miercoles estuve en el rio Jarama (en Titulcia) haciendo unas practicas de fisica y de quimica y me lleve la PDA para que me digese las coordenadas en las que nos encontrabamos (N40.140203 W3.573868) pero me surgió la necesidad de saber a la altura en la que nos encontrabamos y me di cuenta de que ni el TomTom ni el GPSplex me las decía, y entonces me pregunte si es que no todos los chips pueden calcular la altura, entonces me meti en la web de Sirf y vi en los datasheet que todos los GPS podían dar la altura, a si que hoy me he puesto a buscar sobre el protocolo que utiliza el GPS (NMEA 0183) y encontre la web.

Hoy me apetecía escribir en el blog xD, y en vez de dejarme cosas para días que no tenga nada que contar, voy a pegar aquí un pequeño script en php para que veáis como podéis hacer una cuenta atrás, o un contador de tiempo hacia delante con las funciones de tiempo que nos ofrece php.

function countdown($hor,$min,$seg,$mes,$dia,$ano) {
//mktime(hora, min, seg , mes, dia, anyo)
$final_day= mktime($hor,$min,$seg,$mes,$dia,$ano); //Calculamos la fecha unix del dia final
$hoy_exed = time(); //Calculamos la fecha unix de hoy
if ($final_day > $hoy_exed) //Si la fecha final es mayor a la de hoy
{
$remaining = $final_day – $hoy_day; //Averiguamos cuantos segundos quedan para el dia d y hora h
$hora = $remaining/3600; //Dividimos los segundos entre 3600 para obtener las horas que quedan.
$minx = explode(“.”,$hora); //Extraemos parte entera y decimal
$min = (“0.”.$minx[1]) * 60; //Multiplicamos por 60 para saber cuantos minutos quedan
$segx = explode(“.”,$min); //Extraemos parte entera y decimal
$segd = (“0.”.$segx[1]) * 60; //Multiplicamos por 60 para saber cuantos segundos quedan.
$seg = explode(“.”,$segd); //Desechamos parte decimal
return “$minx[0]h:$segx[0]m:$seg[0]s”; //Devolvemos un string formateado con lo que queda.
}
else
{
return “Fin”;
}
}

Lee el resto de la entrada para ver la explicacion

Desde que llevo con linux, ya me ha pasado que he reinstalado
windows y el muy capullo se carga el mbr (Master Boot Record, donde se indica
a la bios que sistema cargar). Pues el otro dia me volvio a pasar en casa de un
amigo y no era plan de volver a instalar linux (hasta la fecha lo hacia asi), entonces
buscando por la web encontre como hacerlo (en ubuntu-es.org), pero la forma que explicaba
no me resulto, pero leyendo los comentarios encontre la forma de hacerlo y me funciono!