lunes, 30 de marzo de 2009

buscar textos en procemientos almacenados.

hace unos dias, vi aun compañero de trabajo buscar texto en los procedimientos almacenados. que es bastante util, cuando queremos ver cuando se hace un insert a una tabla o cosas por el estilo.


select SUBSTRING(text,0,40) from syscomments where text like '%textoABuscar%'


Remplazen el "textoABuscar" por lo que quieran buscar.

esto es para Sql Server



--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

martes, 24 de marzo de 2009

Backups automáticos en SQL Server 2005

hoy estuve con Paul, un compañero de trabajo cuestienandonos la mejor forma de hacer respaldos en Sql Server de forma Automatica.

primero hay que generar un script al cual llamaremos backup.sql y lo crearemos en c:\

DECLARE @fecha VARCHAR(50)
DECLARE @archivo VARCHAR(50)
SET @fecha = CONVERT(VARCHAR(4), YEAR(GETDATE()))+'-'+ CONVERT(VARCHAR(2), MONTH(GETDATE()))+'-'+CONVERT(VARCHAR(2), DAY(GETDATE()))
SET @archivo = 'C:\tmp\BD_'+ @fecha +'.bak'
ALTER DATABASE BD SET SINGLE_USER WITH ROLLBACK IMMEDIATE
BACKUP DATABASE BD TO DISK = @archivo
ALTER DATABASE BD SET MULTI_USER
GO
EXIT


Ojo en hay que Cambiar DB por el nombre de la base de datos. Ademas este script cambia la Db a "MULTI USER".

luego crearemos backup.bat, con el siguiente contenido

SQLCMD -S(local)\SQLEXPRESS -E -i"C:\backup.sql"
"C:\Archivos de programa\WinRAR\rar" a BACKUP.rar c:\TMP\*.*
ECHO S | DEL c:\TMP


Utilizamos la utilidad SQLCMD para que ejecute en backup.sql en x servidor.
Aqui hay un manual de SQLCMD

Ahora solo es cosa de programar una tarea cada x tiempo para que ejecute el bat
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

martes, 10 de marzo de 2009

Svn Diff View mi primer proyecto openSource :) .

Svndiffview es una aplicacion bastanta pequeña, pero con una utilidad bien especifica.

Svndiffview es un site que sirve para ver las diferencias entre una revision contra la revision anterior. su uso es muy simple. Ademas las diferencias entre archivos las muestra de forma bastante intuitiva y amistosa.

Se hizo en python, con pySvn. esta bajo Django.
Ademas por costumbre se uso mochikit para js, ya que es una libreria muy poderosa.

Aqui ahi mas info de la aplicacion http://code.google.com/p/svndiffview/

Use como base para este desarrollo, un proyecto open source llamado codeflow, desarrollado por Leo Soto.

Bueno aqui les dejo unas capturas de la aplicacion.













--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

viernes, 6 de marzo de 2009

Un proyecto no solo es programar[Herramientas de apoyo]

Muchas veces un proyecto se complica o facilita independiente de que el equipo tenga un nivel tecnico alto. Para facilitar cosas Anexas al desarrollo existen varias herramientas de automatizacion y de apoyo, la mayoria son openSource,Free o como quieran llamarles.

Aqui detallo algunas que por lo menos para mi son fundamentales, a lo mejor voy a estar muy orienta a .net.

Sistema de control de versiones:
Hay muchos cvs, ,Svn, soursafe, etc. pero el que mas sobresale es Svn. la gracia de usar Svn serian
  • Codigo respaldado.
  • Posibilidad de trabajar en equipo.
  • Posibilidad de tener acceso a todo el historial de cambios, por archivo o proyecto completo.
  • poder volver atras en cambios que pudiesen estar malos.
Para mi ya seria muy complicado trabajar sin svn, o algun sistemas de estos, mas cuando trabajas en equipo.[aun recuerdo mi primer trabajo donde no existia nada de eso, y se me perdian a menudo los fuentes :)].
Esto no importa en el lenguaje que trabajes solo almacena historial de texto, en el caso de svn, creo que tiene modulos para mesclar word y esas cosas.

Test Unitario:
Lo mismo que lo anterior, existen para java, .Net. pero siempre bajo el mismo concepto y comportamiento. [JUnit, NUnit].
Estos test se programan, y nos sirven para asegurar que nuestros codigos nos retornen resultados esperados. de aqui sale la programación orientada a los test.

Logger :
Si logger no blogger :). muchas veces e visto sistemas que no tienen ningun tipo de log. y que nisiquiera requistran las excepciones. para Java tenemor log4J para .NET tambien tenemos Log4NEt. para punto net tambien existe la Enterprise Library que tambien sirve para hacer log entre muchas otras cosas, no he visto mucho de esto.

FxCop:
Una Herramienta Microsoft para ver buenas practicas de programación. uno le da una dll, y el nos dice que cosas deberiamos mejorar, como por ejemplo no capturar Excepciones genericas, por dar un ejemplo.
Uno puedes crear o quitar nuevas reglas, viene cargado por defecto con muchas reglas asi que hay que sacarle varias, que por lo menos prefiero usar mas el sentido comun en algunas.

Cruise Control:
Es una herramienta comúnmente utilizada en integración continua Si no usamos esa metodologia. de igual forma es muy importate en un proyecto.
CC esta para Java y para .net. Este es un Ant, es decir, realiza tareas programadas, lo que podemos hacer con CC:
  • Bajar las ultimas fuentes de nustros repositorios.
  • Compilar.
  • Ejecutar los test, hechos en Nunit o Junit respectivamente.
  • Comprobar reglas con fxcop o simililar para otro lenguaje o plataforma.
  • CheckStyles. No se como todavia, pero existe forma en java de comprobar los membretes, comentarios de las clases tenga cierta Estructura.
  • Generar Release ,instaladores, publicaciones.
  • Envio de mails, con resultados de cada proceso[configurable].
Antes C.C. era un plus para las empresas de desarrollo, ahora es casi un standard.


Wiki, Base de Conocimientos, Blog:
Es importante que el conocimiento o expertis de los desarrolladores quede plasmado en algun lado. existen muchas formas cada uno elige la mas apropiada o intuitiva.
Ademas es bueno poner datos relevantes en estas herramientas, como descripcion de servidores, base de datos, etc.



Resumen:
En resumen, un proyecto no solo se define con saber programar, mas aun si es un equipo de trabajo grande. El que se use estas herramientas tampoco no dara un exito, si no que hay que saberlas usar y sacar partido a cada una de ellas.
implantar estas cosas es relativamente facil, y el beneficio es mucho, asi no nos preocupamos de cosas anexas al desarrollo.









--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com