domingo, 30 de diciembre de 2007

Cambio de Zona Horaria en Argentina

Como muchos sabrán, a nuestra presidenta se le ocurrió tener un nuevo uso horario. Para ello Microsoft debe largar un parche que actualice el uso horario de Buenos Aires e incorpore el DayLigth Saving como le llaman los norteamericanos. Como todavia Microsoft no largo el parche vamos a tener que tocar el registro a mano y esta entrada pretende ser un resumen practico de como hacerlo.
El DTS es simplemente adelantar y atrasar una hora en un determinado momento, para que esto suceda de forma automática encontré un articulo que modifica el registro y nos deja el uso horario correcto de acuerdo a nuestra nueva legislacion.
Procedo a resumir / traducción los pasos para dejar nuestra PC de escritorio o Laptop con el correcto uso horario sin complicarse la vida.
Si hacen estos pasos en marzo la hora se atrasara sola y se sincronizara correctamente si están usando algún servidor de hora para controlar la efectividad de el reloj de la pc.
El articulo esta inspirado en un blog de microsoft y es para configurar el daylight saving de argentina en una pc con Windows, yo lo probe en XP.

También pueden encontrar artículos en el mismo lugar para arreglar las citas dell outlook pero como quiero documentar solo el procedimiento para una pc hogareña me limito solo a lo importante:

1) Registramos el siguiente archivo en el registro de windows: archivo de registro que agrega el nuevo uso horario.
Para registrar un .reg le damos doble clic y luego clic en si. Si tenemos permisos de administrador con eso bastara, sino tenemos que loguearnos con una cuenta administradora primero.

2) Cambiamos el uso horario, le damos doble clic en la hora (abajo a la izquierda). Vamos a ver el siguiente uso seleccionado (GMT -03:00) Georgetown:

Luego seleccionamos (GMT -03:00) Buenos Aires. Si hicimos todo bien vamos a notar abajo un checkbox nuevo que indica que se cambiara la hora automáticamente de acuerdo al "horario de verano".
Es importante dejar marcado el mismo. Cuando le demos aceptar y si tenemos la fecha de la pc después del 30 de dic de 07 vamos a tener la hora de acuerdo al nuevo uso horario de Cristina.

lunes, 5 de noviembre de 2007

Joost Television IP P2P

Esta entrada es para comentarles un programa denominado Joost. Este programa utiliza el paradigma p2p (es decir vos bajas de todos y a la vez le subís a todos tu info); para distribuir vídeos legales de alta calidad en imagen y sonido.
Todos los vídeos de Joost son propietarios por lo que no podrás subir tus propias aberraciones :P pero es una buena alternativa para ver algún que otro dibujo animado en ingles, history channel o escuchar y ver vídeo clips de música en alta calidad al mismo tiempo que los bajas.
El programa es una moledora de ancho de banda así que si no tenes al menos 1 mb de down ni hagas el intento de usarlo ya que andará en dirección hacia atrás.
De todas formas si tenen arnet de 1 mb, dependerán de cuando arnet este de buenas para que te ande sin saltos.
La calidad de los videos y el sonido es muy buena y la verdad que pinta interesante solo falta esperar que se masifique de verdad y de a poco tenga mas contenidos y quien dice algún día tengamos algo en español latino...
Les dejo el link, y si tienen banda ancha de al menos 1 mb no dejen de probarlo www.joost.com

martes, 23 de octubre de 2007

IT Crowd - el mejor episodio

Ultimamente deje de ver pelis y comencé a ver series completas.... la típica e inicial fue lost (que todavia no termino ya que falta bocha de temporadas).
Pero esta entrada no va a hablar de lost sino que quiero destacar una serie llamada II Crowd (la muchedumbre de IT).

Es una serie bastante particular que trata de la vida laboral (y no tanto) de dos personajes de IT (es decir los que trabajan en el área e IT de las empresas o sea atienden a los temibles Usuarios).

La serie esta muy buena y combina un poco del humor de Dilbert con las típicas comedias "talk show" norteamericana diría (aunque no se si ese es el origen verdadero).

Les dejo un episodio el que para mi es por lejos el mejor de la serie... pese a que este capitulo en particular no tiene muchos chistes de "oficina".



Aqui el capitulo completo 2 de la temporada 2 que yo considero el mas gracioso de las dos temporadas que ya ví: (de todas formas les recomiendo consigan las temporadas completas para empezar a ver desde el 1).





viernes, 14 de septiembre de 2007

Identador SQL Alpha

Acá dejo un link (link) para descargar una versión super alpha de un identador sql.

Un identador, se encarga de acomodar las líneas de código para que queden tabuladas correctamente y así sea más fácil leerlas.

Hasta el día de hoy no encontré ninguna tool gratis que haga esto con scripts t-sql. Esta tool es especifica para identar procedimientos almacenados.
Como no conosco tools gratis tuve que ponerme a codificar mi versión la cual básicamente identa stored procedures pero quizas pueda identar algo mas,, y esta basada en que todas las sentencias de T-SQL arrancan con BEGIN y terminan con END.

Por lo que podrán ver que el código es sencillo. Acá dejo el código y el .exe por si a alguien le es útil; a mi me ha servido alguna vez y seguramente me seguirá siendo útil, mientras existan programadores de T-SQL desprolijos y tenga que seguir corrigiendo sus bugs :(....

Si conocen alguna tool terminadita que sirva para esto y ande bien, avisen!....

sábado, 1 de septiembre de 2007

La puerta del cielo

Explorando con Google Earth, me encontré con esta panoramica espectacular de un lugar único en Córdoba.
La puerta del cielo es una parte especifica de las sierras de Córdoba cerca de Ongamira donde la montaña se pone muuuy alta... de chico sabia ir con mi viejo y mi flia a ese lugar a caballo,,,, hoy ver la foto me da una sensación de nostalgia rara y ganas de aparecerme por ahí donde no hay nada de que preocuparse verdaderamente....

Les dejo una foto,,,, simplemente para mi espectacular:

(Clic para ampliar)...

Aprovecho para contarles que toda esta zona esta por arruinarse absolutamente por que hemos tenido la desgracia de que aparezca "oro" y quieren poner una mina..... realmente una pena esperemos que suceda algún "milagro" pero conociendo el desastre político que es mi país, ese oro ya esta regalado a algún país extranjero
http://www.noalamina.org/index.php?module=announce&ANN_user_op=categories&category=28

viernes, 24 de agosto de 2007

Generadores de Codigo

Un generador de código permite agilizar el desarrollo de aplicaciones, yo lo estoy utilizando con un proyecto pequeño para ver que resultados obtengo.
Hasta ahora he logrado ahorrar tiempo y a la vez programar dentro de todo algo prolijo, es una buena forma de no caer en la típica programación con toda la logica pegada a la interfaz al estilo VB6 cuando necesitas hacer algo rápido. Asi queda algo elegante sin que ello nos involucre horas y horas de programar capas.
La aplicación que utilice para hacer esto se llama MyGeneration esta aplicación permite utilizar distintos templates que escriben código, vos podes armar el tuyo o usar alguno de los que ofrece entre ellos dOOdads y NHibernate, el último es muy conocido en el mundo de java.
Yo opte por probar con dOOdads, que por medio de una jerarquia de herencia te permite crear clases que mapean contra las tablas de tu base de datos para que después puedas usarlas de esta forma:

// Load and Save
Employees emps = new Employees();
if(emps.LoadByPrimaryKey(42))
{
emps.LastName
= "Just Got Married";
emps.Save();
}

// Add a new record
Employees emps = new Employees();
emps.AddNew();
emps.FirstName
= "Mr.";
emps.LastName
= "dOOdad";
emps.Save();



// After save the identity column is already here for me.
int i = emps.EmployeeID;
Les comento a grandes rasgos los pasos que hay que hacer para que salga andando:
1) bajar MyGenerator desde sourcefoge que es donde esta la última version del generador y del template.(acá el link http://sourceforge.net/projects/mygeneration )
2) Una vez instalado el programa necesitaras tener una base de datos bonita y lista para mapear hacia objetos.
3) La arquitectura de oddododos (o como se escriba) tiene los siguientes modulos:
a- un proyecto que tiene las clases bases que van a implementarse luego por el generador de código
b- los procedimientos almacenados que utilizan las clases para guardarse en la base de datos
c- un conjunto de vistas en la base de datos que debes crear para utilizar datos relacionados de forma eficiente.
4) Entonces para que esto ande primero tenemos que agregar a nuestro proyecto el proyecto de arquitectura de dOOdads, el mismo se encuentra en C:\Program Files\MyGeneration\Architectures\dOOdads\CSharp para la version C#.
5) Una vez que elegimos cual es la base de datos a usar tenemos que marcar la clases de la carpeta C:\Program Files\MyGeneration\Architectures\dOOdads\CSharp\MyGeneration.dOOdads\DbAdapters que vamos a usar (ver los prefijos) para que compilen. Para ello la seleccionamos y en el cuadro de propiedades la maracamos para incluirla en el build.

En la imagen muestro las dos clases que abría que cambiar la propiedad "Build Action" para que compile un proyecto con base de datos SQL Server 2000 o 2005.

6) una vez que tenemos el proyecto referenciado, vamos a generar nuestras clases de negocio. Para ello iniciamos mygeneration configuramos la cadena de conexión hacia la base de datos que vamos a mapear y procedemos a buscar en el arbol de la izquierda los templates a usar.

7) para crear las clases de negocios usamos el template dOOdads Business Entity que se encuentra bajo la rama c# de dOOdas. Este template les genera clases abstractas, si quieren las concretas también hay que hacerlo con el mismo método.
La idea de las clases concretas bobas es que ahí metamos el código especifico de nuestras aplicaciones.
Si van a usar vistas para obtener datos relacionados con joins también se generan desde ese apartado.
8) Tambien necesitamos crear los procedimientos almacenados para eso elegimos la base de datos correspondiente en el arbol de template (por ejemplo Microsoft SQL Server) y corremos el template de dOOdad Stored Procedures. Esto escupe un monton de stores por cada tabla que son necesarios para correr las clases generadas por MyGeneration.
Aca esta bueno tocarlos un poco para que hagan lo que nosotros querramos, por ejemplo en mi caso modifique los deletes para que no borren sino que marquen un campo de baja, y toque también el procedimiento que trae todo para que solo traíga aquellos que no estan marcados como borrados.
TIP: si a cada columna le agregan un campo RowVersion de tipo timestamp, el template va a utilizarla para manejar la concurrencia de los updates y puede llegar a generarles una sentencia TSEQUAL que no compila en 2005, no se hagan drama cambienlo por un igual y sale con frítas.
9) Agregamos todo el código generado a nuestra solución de C#
10) Configuramos TransactionMgr para que obtenga una query string válida para nuestro aplicativo en la fúncion private IDbConnection CreateSqlConnection(BusinessEntity entity), donde pueden traerla directamente del app.config o web.config.

Y con eso ya tendríamos andando una elegante capa de datos completa en no mas de 30 minutos.
Cualquier cosa no duden en preguntar... en la página de mygeneration hay un pdf de 6 paginas que dice básicamente lo mismo que acá y esta práctico para ver como usar bien toda la interfaz que te da.
Por ejemplo tiene un generador dinámico de querys muy piola.

Eso es todo por ahora hasta la próxima espero que le sea útil a alguien....

jueves, 16 de agosto de 2007

Donde hostear tu codigo de fuente parte II

Luego de charlar con el resto del team de la tesis, llegamos a la conclusión de que el ganador para hostear nuestra tesis es: Google Code.

El principal motivo que hizo inclinar la balanza hacia google fue que necesitamos un servicio que sea principalmente confiable, es decir que no nos deje a pata. Y si algo tiene google es performance y disponibilidad.

Por ahora fuera de esa ventaja no he encontrado nada más. Es mas me resulta difícil usar la interfaz que trae y no puedo encontrar manera de borrar cosas como documentos que subís o simplemente administrar el issue tracker una vez que cargaste un issue de prueba.

Supongo que de a poco le voy a ir agarrando la mano.

De todas formas no dejo a www.assembla.com de lado, y a este último lo voy a probar con proyecto comerciales pequeños que tengo dando vuelta. Y como solo son de 1 developer no tengo grandes riesgos al perder información, al tiempo que pongo a prueba ese potente servicio.

viernes, 10 de agosto de 2007

¿donde hostear tu código de fuente?

Donde hostear, hospedar, guardar o gestionar tu código de fuente para trabajar de manera distribuida y organizada? en un repositorio claro....

Bueno,, esa pregunta puede tener una una respuesta rápida instalarte en tu casa un servidorcito svn o cvs y salís andando....

Un repositorio es un lugar donde guardar archivos de manera organizada, la ventaja de estos sistemas antes mencionados es que guardan la historia de cada archivo. De esta manera podes ver como va evolucionando los cambios y gestionarlos.

Aparentemente instalar tu servidor en casa para proyectos de la facu o personales, funciona pero para corto plazo. Al menos así lo marca mi experiencia, ya que a la larga al ser una pc de uso diario no siempre estará encendida y lo que más se sufre es la falta de un buen upload para poder manipular el repositorio de manera fácil y rápida.

Buscando alternativas me tope con 4, de los cuales 1 solo de estos no te obliga a que abras el código, es decir no obliga que tu proyecto sea Open Source. Las alternativas que obligan a que sea open son:
1) Google Code

Ventajas: la velocidad de sus servidores, te ofrece SVN que es una herramienta muy práctica para versionado. Otra ventaja es el botón para borrar proyecto, por lo que si algún día quieres que ya no este disponible le das click y vuala desparece.... ahora no se si andará esta función pero de que esta esta....

Desventajas: aparentemente tienes una cuota de 100 mb para laburar, pero según leí en varios lugares puedes extenderla una vez que sea necesaria.


2) CodePlex

Esta es la versión Microsoft de GoogleCode, las ventajas vienen de la mano de microsoft y su Team Foundation Server (que aparentemente puedes una parte si usas su servicio de hosting).
En cuanto al espacio requerido no dice demasiado, por lo que no puedo compararlo. Tampoco encontré un botón para borrar el proyecto por lo que supongo que el mismo quedaría siempre en el sitio.
También si o si te obliga a que tu proyecto sea open source.


3) SourceForge.net

Este es un clásico del open source, te ofrece svn y cvs pero tiene que pasar por un tramite para poder crear un nuevo proyecto. No he podido ver mas nada de este, pero no podía dejar de nombrarlo ya que hospeda mucho de los programas mas exitosos Open Source de la actualidad.

4) Assembla

Assembla me pareció muy buen producto, no te obliga a que sea abierto (es decir que puedes tener tu código para tu team solamente) y ofrece varias herramientas de tracking y managment.
tiene una plantilla de scrum que me parece practica y sencilla, y otras tools mas para la administración de proyectos, trackeo de tickets, etc.
La versión gratis se encuentra limitada a 200 mb por proyecto, y siempre esta la alternativa de pagar una suma en dolares para tener más espacio y servicios (que para la gente de acá se vuelve imposible).
Podes borrar el proyecto fácilmente algo que es útil para sacar de la nube de internet tu código si así lo deseas.
El punto en contra que le encontré es que no esta apoyada por una gran organización ni es muy conocida. Por lo que poner tu código de fuente allí y no estar pagando nada puede ser un riesgo, si la empresa desaparece.

Bueno voy a seguir analizando que alternativa conviene más, ya que sin duda es una herramienta indispensable para poder confeccionar una tesis de ingeniería y coordinar los cambios de código (que al fin y al cabo es lo que busco hacer).

Más adelante les comento que alternativa resulto la ganadora.