Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas
Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas

jueves, 12 de noviembre de 2015

PuTTY | con soporte de impresión a texto y visor

ACTUALIZADO:
Actualice el codigo en github, por favor mira este link para mas información


Bien en esta oportunidad y de mucho tiempo (escribiendo en el blog), finalmente conclui la modificación del famoso PuTTY desarrollado principalmente por Simon Tatham.  Que en su versión original no tiene el soporte de impresión a texto (print to file).

Para aburrirlos un poco (Antecedentes): 

Terminales de conexión hay cientos, pero la mayoría son de pago el caso del SecureNetTerm que es el mas usado en el medio financiero también es el mas caro llegando a costar la licencia de 1 a 5 terminales (usuarios) hasta 70 dolares.

Según normativa de la ASFI vigente para entidades de intermediación financiera en la circular 193 claramente especifica  lo siguiente en el articulo 3,sección 3,capitulo II,Titulo VII del Libro 3:

Artículo 3° - (Licencias de software) Todo software utilizado por la entidad supervisada debe contar con las licencias respectivas. 

Ante esto los mismos supervisores de la ASFI omiten la supervisión de este aspecto,el uso de la terminal de conexión.

Ante esto y temiendo a una sanción o multa por incumplir el articulo decidí en el 2011 hacer uso de la herramienta PuTTY, que es gratuita (No tiene costo) tal y como indica en su web principal:

The PuTTY executables and source code are distributed under the MIT licence, which is similar in effect to the BSD licence. (This licence is Open Source certified and complies with the Debian Free Software Guidelines.)

Luego de leer mucho allá por el 2011 encontré esta implementación de puttyclip
misma que se encargaba de imprimir las salidas convencionales a impresora al ClipBoard haciendo uso del API propia del sistema operativo. 
Basto aplicar el patch a src de putty 0.60 para que todo funcione compilando con Cygwin esta implementación trabaja bien y hasta ahora lo hace, pero con el tiempo paso a estar en segundo plano ya que no actualicé las fuentes de putty desde la versión 0.60, ademas que había uno que otro fallo que por falta de tiempo no se corrigió en dicha versión.

También tropecé por el inconveniente de que para sacar el clipboard a texto requería un programa adicional, aquel entonces por la premura del tiempo opte por usar el tal vez no tan conocido winclip finalmente esa implementación inicial funciona bastante bien por no decir super bien (ja ja ja).

Implementación 0.65:

Un 18 de octubre de 2015 me preocupo bastante que el programa oficial ya se encuentra en la versión 0.65b mientras mi modificación estaba basada en la version 0.60, decidí comenzar el upgrade inmediatamente.

Tropecé con algunos inconvenientes, uno de ellos, las fuentes de putty entre la 0.60 y 0.65 cambiaron bastante debido a una re-organización del código fuente (Decisión del autor Simon).

Debido a esto se comenzó de cero, prácticamente tuve que reusar código de puttyclip, pero a la vez adecuarlo a la versión 0.65.

El binario de winclip me pareció exagerado dado un momento ya que podía incluirse el mismo en el putty original, entonces decidí hacer un método propio de "clipboard to file" el mismo funciona razonablemente bien y se quitó la necesidad de incluir un binario extra o adicional(que venia por separado).

Resultados obtenidos:

Como les comente a algunos colegas de trabajo, publicaré el binario de la modificación que realicé y cuando se estabilice completamente, liberaré el código que por cierto esta completamente en ANSI C (C puro para los amigos) para que compilen y modifique el programa  bajo los términos de licencia del autor original, por github en https://github.com/garysan/.

Mientras aquí el detalle de lo que tiene esta entrega:

1. Impresión a texto.


Para mejorar la impresión opté por incluir la ruta de instalación de notepad++ y obviamente si no esta instalado usa el notepad del sistema operativo.

2. Impresión a visor.

Así también como puede apreciarse en la figura del punto 1, se tiene otra opción, enviar al visor misma que se detalla a continuación, Visor es un programa desarrollado por AXON SRL. pero lamentablemente el visor requiere de otro programa llamado Agente, para funcionar así también requiere la instalación manual de otra impresora (Virtual) para enviar documentos al visor, mis pruebas con el agente prácticamente fueron frustrantes al inicio, funciona pero requiere mucha configuración y para un entorno donde se administran mas de 200 equipos y usuarios es una tarea maratonica!.

Por este motivo el visor, debe estar instalado en c:\axon\visor\ para que putty lo reconozca y envié a imprimir con este programa (Caso para las facturas).


3. Impresión de pantalla a texto.
Esta función permite sacar una especie de screenshot pero de la pantalla actual en moto texto(no imagen) muy útil en casos específicos.

4. Funciones de hotkeys:

Esto para acelerar tareas que demorarn en cambio de propiedades de la sesion actual. las hotkeys funcionan de la siguiente forma:

alt+F10 Impresión de pantalla a texto.
alt+F9 Duplicar sesión actual.

alt+F7 Cambia el modo de impresión a "Enviar a texto"
alt+F6 Cambia el modo de impresión a "Enviar a visor"
alt+F5 Restaura la impresora por defecto.

En los casos de cambio de impresora o modo de impresión se muestra un mensaje como este:

Esto con el fin de notificar y no causar inconvenientes posteriores.

5. El binario (Lo que esperaban):

Por cuestiones de seguimiento subí una versión del programa a mi DropBox en:
Comentarios y sugerencias a:

gary.gsv (Skype) o por los comentarios en este blog :D


Finalmente un vídeo de su funcionamiento:


happy hacking!!!

martes, 5 de julio de 2011

Los retos de crear un sistema para una microfinanciera (Pensamientos)

A modo rapido me tomo el tiempo para escribir de las principales dificultades al momento de emprender el desarrollo de un software para una micro financiera un software tipo SFI o Merc pero en menor escala y ajustado a las necesidades de la microfinanciera.
1ro no me gusta para nada usar las metodologias agiles para el desarrollo del proyecto por que para cada reunion con la junta de ejecutivos sufren de no se que, que olvidan lo que dijeron en la reunion anterior y perdemos la hora revisando el acta de la anterior reunion.
2do que la empresa te encargue software modular abierto es algo complicado ya que hay poca información "concreta" al respecto.
3ro usar monodevelop no es la mejor opción en un ambiente windows.
4to usar VS2008 (opcional) y SharpDevelop fue la mejor elección.
5to pasar de SVN a GIT es algo que estamos viendo por cuestiones meras de gusto y costumbre.
6to jamas pero jamas dejes el producto mas de 2 dias sin leerlo lo programadores nuevos hacen cualquier barbaridad con los modulos que estan por terminarse.
7mo toma 1 hora por lo menos corregir los bugs que generan los diferentes puntos de vista en la representación de un dato (decimales, cuantos?, cuantos despues?, redondeo cada cuantos? y cosas asi que solo 2 de cada 5 piensan).
8vo acomodar todo a las cuentas que día a día cambian en la ASFI es una total perdida de tiempo preferiblemente usar una version de cuentas de la ASFI de mayo de 2011 para no tener que soportar las updates de cuentas de cada 2 meses en la ASFI.
9no lo rustico e intuitivo vale mas que lo bonito y adornado en los forms.
10mo deberia seguir programando.