miércoles, 31 de agosto de 2016

Software Visual para aprender programación

VisualAlgo 
Es un software basado en web que permite visualizar la ejecución de algoritmos de forma bastante didáctica, tanto en código (como una especie de seguimiento o debug) y con ejemplos concretos (como el ordenamiento de piezas de diferentes valores representados en tamaños equivalentes, etc).

Esta herramienta presenta diferentes estructuras de datos y algoritmos para trabajar con éstas; como los diferentes tipos de ordenamiento, árboles, gráfos, MST, etc. Es interesante mencionar que esta herramienta fue diseñada y desarrollada por Steve Halim, conocido coach de las competencias ICPC ACM con equipos de Singapur, junto con sus alumnos.

http://www.comp.nus.edu.sg/~stevenha/visualization/index.html


AlgoViz
http://algoviz.com/ que permite ver de forma visual el comportamiento de muchos algoritmos ...

JGrasp
http://www.jgrasp.org/ basicamente sirve para ver de forma visual la estructura interna e una variable cualquiera
es especialmente util para visualizar cosas un poquito mas complejas como listas, arboles, etc ...
cualquier compilador solo muestra el contenido de una variable ... este las grafica y ayuda mucho a ver como esta armandose una estructura ...

Ambas herramientas las vi en el SIGCSE ya desde hace un par de años ... es fuertemente recomendado que vayan a ese evento todos los años especialmente los profesores y directores ... es bueno observar como se esta enseñando computacion en otras partes del mundo ...

(Aportes de Rudy Godoy y Ernesto Cuadros)

lunes, 11 de enero de 2016

Cerrar todas las conexiones de un usuario en MySQL/MariaDB

Basado en http://www.itmovil.com/2012/04/25/cerrar-todas-las-conexiones-de-un-usuario-en-mysql/

Abrir conexión por el cliente de consola de MySQL/MariaDB:

mysql -u root -p

luego creamos dinamicamente todas las sentencias para todos los procesos activos de un determinado usuario y lo guardamos en un archivo del disco duro, para ello ejecutamos :

select concat('KILL ',id,';') from information_schema.processlist where user='usuariodb' into outfile '/tmp/a.txt';

Ahora lo único que se debe hacer es ejecutar el archivo de texto que contiene las instrucciones, para ello ejecutamos

source /tmp/a.txt;

That's all..


martes, 19 de agosto de 2014

Imprimir un comprobante desde web con un applet


Holas!!, como siempre un gran problema al hacer un sistema web de venta retail oal menudeo es la impresion de comprobantes, porque debemos hacerlo al estilo "desktop", es decir sin pasar por un pdf previo.. o un "diseño" html con impresion javascript, porque debemos usar muchas veces la "potencia" de impresoras matriciales. Entonces si lo hacemos con tecnologia MS la solucion es a traves de un COM/DLL o como quieran llamarlo. Si es con nuestro querido java entonces debemos incrustar en un jsp un lindo Applet que llame a un bonito diseño en jasperreport que se conecta a nuestra base de datos en forma remota desde el cliente.

Como hacemos eso???? Pues aqui viene la explicacion (vale decir que tambien sirve para cualquier applet que quieran se conecte a una base de datos remota)
 
1. Crear su applet en netbeans, sino saben como se crea un applet pueden seguir el tutorial de aqui:
https://netbeans.org/kb/docs/web/applets.html

2. Firmar sus .jar ; tanto el applet .jar como las librerias adicionales que esten usando en su Applet. Para este caso especifico del comprobante:
 postgres jdbc
     postgresql-8.1-414.jdbc2ee.jar
 jasperreports libs
     commons-collections-3.2.1.jar
     commons-digester-2.1.jar
     commons-logging-1.1.jar
     jasperreports-5.1.0.jar
     groovy-all-2.0.1.jar (este lo pueden obviar si cambian el lenguaje groovy por java en el mismo jasper            diseñado)

Ahora para firmar los .jar seguimos estos 3 pasos desde consola linux o DOS (el keytool y jarsigner estan en la carpeta de ejecutables donde instalaste tu JDK):

                              1. keytool -genkey -keystore myKeyStore -alias me
                              2. keytool -selfcert -keystore myKeyStore -alias me
                              3. jarsigner -keystore myKeyStore jarfile.jar me

Cuando te pregunte por la clave coloca la de tu gusto, lo demas dejalo como "default" o si deseas pon la informacion de tu empresa u organizacion, eso lo decides tu,

3. Recuerda que la etiqueta HTML debe ser algo como esto:

codebase="classes" 
code="comet/ClsPrint.class" 
archive="printApplet.jar,
postgresql-8.1-414.jdbc2ee.jar,
commons-collections-3.2.1.jar,
commons-digester-2.1.jar,
commons-logging-1.1.jar,
groovy-all-2.0.1.jar,
jasperreports-5.1.0.jar" 

El codebase indica la carpeta donde estaran los .jar , el code es la clase que se ejecutara cuando el Applet cargue.
Si desean ver los errores de su applet no olviden activar la consola de Java.

Eso es todo.. hasta otra