Tip...XSane en red

Posteado por Joil | 27/11/2012 07:18:57 p.m.
Filed under Tips | Comments (0)

Hace un tiempo compramos una multifuncional HP, para que XSane encontrara el scaner en red en mi Debian, segui los siguientes pasos...

apt-get install hplip-cups
hp-makeuri IP-ADDRESS
xsane SANE-URI

Listo, funciono perfecto

Desarrollo Web...vamos por MVC

Posteado por Joil | 22/11/2012 11:06:00 p.m.
Filed under Desarrollo | Comments (0)

Me defino (profesionalmente hablando) como desarrollador a pesar de actualmente desempeñarme en otra area de TI, pero como la pasión nos mueve veamos en que estoy. Por decantación y/o eleccion me centro en la plataforma .NET en particular desarrollo sobre Mono, mucho tiempo desarrolle utilizando lo que se conoce como WebForm en el ambiente de .NET que no es mas que un intento de emular el desarrollo de escritorio pero en ambiente web, si bien esto funciona de hecho existen muy buenos trabajos desarrollados esta manera creo que aveces se pierde de vista que se esta desarrollando para la web, es por eso que al conocer el patron MVC fue claro ver en que sentido debia seguir, ahora bien existe varias implementaciones de este patrón, pero mi búsqueda estaba acotada a la plataforma .NET/Mono.

Por aquellos años comence a utilizar MonoRail que es parte de Castle Project, veamos en primer lugar que es MVC. Es un patron de diseño el cual separa los datos de la interfaz de usuario y de la logica de negocio, me paso muchas veces que al trabajar con WebForm me topaba con proyectos donde estaba todo disperso sin un orden claro (eso no es culpa de WebForm) de esta forma te obliga a seguir un orden que limita las responsabilidades algo que a mi gusto se ve muy bien, sigamos veamos de que se trata este patron:

 

MVC

  • Modelo : define la capa de dominio y persistencia, es la encargada de guardar los datos.
  • Vista : es la encarga de presentar la interfaz de usuario.
  • Controlador : es el que escucha los cambios en la vista y se los envía al modelo, el cual le regresa los datos a la vista, es un ciclo donde cada acción del usuario causa que se inicie de nuevo un ciclo

 

De esta forma cada elemento tiene su responsabilidad definida, como mensionaba la implementacion que yo utilizo es MonoRail, existen varias un listado lo pueden encontrar en Wikipedia. Veamos como iniciar un proyecto, en mi ecosistema uso Debian como sistema operativo, Mono como plataforma de desarroollo, Monodevelop como IDE, a continuacion veamos como hacer un ya clasico Hola Mundo.

 

Ingredientes para cocinar nuestro "Hola Mundo desde MonoRail"

  1. Distribucion de GNU/Linux : en mi caso uso Debian, pero de igual manera con cualquier otra.
  2. Entorno de desarrollo Mono : existe un meta paquete mono-complete el cual instala todo la plataforma de desarrollo.
  3. IDE MonoDevelop :  recomiendo por simplicidad instalar la version empaquetada en su distribucion aunque siempre se pueden descargar los fuentes y compilar.
  4. Descargar MonoRail : se puede descargar desde Sourceforge

Comencemos con nuetras reseta, iniciamos MonoDevelop vamos a Archivo->Nuevo->Solución y seleccionamos "Aplicacion Web" como se ve en la figura.

 

En el proximo post crearemos nuestro hola Mundo desde MonoRail...

Nueva versión de Mono, 3.0

Posteado por Joil | 31/10/2012 02:12:34 a.m.
Filed under Mono | Comments (0)

Podemos leer en blog de Miguel de Icaza que fue lanzada la versión 3.0 de Mono, en esta nueva liberación nos encontramos con varias novedades, entre ellas :

  • Compilador C# 5.0 con soporte para programación asíncrona.
  • Consola interactiva de C#.
  • Profile 4.5, superconjunto de la API 4.0 y que se convierte en el perfil por defecto.
  • Nuevos stacks Open Source de Microsoft (Razor, MVC4, Webpages…).
  • Nuevo recolector de basura de gran rendimiento.
  • Optimizaciones del runtime y de las librerías de clases.

Podemos ver el detalle en la pagina oficial del Relase note.

Esto nos demuestra el gran trabajo que se a realizado, mis felicitaciones y a disfrutar de las nuevas caracteristicas.

 

Con que Framework esta corriendo ?

Posteado por Joil | 23/05/2012 12:00:00 a.m.
Filed under Mono | Comments (0)

En mas de una ocasión nos habremos hecho esta pregunta (hoy por ejemplo), queremos saber con que versión de framework esta corriendo determinado sitio web o aplicación web, bueno en mi caso hago uso de Environment.Version para saber esto, dejo un una pagina

<%@ Page Languaje="C#" %>
<html>
	<head></head>
	<body>
		<% Response.Write('Version del Framework = ' + Environment.Version.ToString()) %>
	</body>
</html>

Al abrir esta pagina nos mostrara la versión del Framework con que esta corriendo nuestro sitio

Automatizar backups de PostgreSql

Posteado por Joil | 10/05/2012 02:09:07 p.m.
Filed under Desarrollo | Comments (0)

Necesitaba realizar backups de mis bases de datos en PostgreSql y claro lo primero fue simplemente crear un script que realizara tal labor, en particular backup.sh :
#!/bin/sh
NOW=$(date +'%d-%m-%Y')

pg_dump -i -h 127.0.0.1 -p 5432 -U nombre_usuario -F c -b -v -f '/home/backup/DB-$NOW.backup' nombre_db
Reemplazando nombre_usuario y nombre_db por lo que corresponde en cada caso funciona sin problema y realiza lo esperado, ahora solo bastaba crear un crontab con dicho script para ser ejecutado una vez al día y todo estaría listo, pero acá es donde algo pasaba no se generaba el dichoso backup. Bueno cuento corto la solución es hacer uso de pgpass. Este es una variable de entorno que permite registrar la password, por tanto basta hacer lo siguiente :
echo '127.0.0.1:5432:nombre_db:nombre_usuario:password' >> ~/.pgpass
Con esto el crontab funciona sin problema