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

Diferencias en herramientas de diferencias e integración con SourceGear Vault

domingo 10 de junio de 2007 | categorías: , , | 0 comentarios -- da clic aquí para dejar el tuyo

Cuando desarrollas software como parte de un equipo, es bastante común que en algún momento tú y Fulanito De Tal modifiquen el mismo archivo para dos cambios distintos y que tengas que reconciliar las diferencias antes de que puedas hacer el check-in. Pero a menudo, las herramientas que vienen con el controlador de código son HO-rrendas (SourceSafe 6.0 anyone?)

Es por eso que una buena herramienta de diferencias es escencial en el toolkit de un desarrollador, y si eres igual de codo ejem, digo... práctico que yo, pues siempre buscas lo bueno, bonito y barato (léase gratis, de preferencia).  Así que voy a mencionar 3 de mis favoritas en esta categoría: WinMerge, DiffMerge y BeyondCompare.  Todas ellas soportan básicamente las mismas características: comparación de fólderes, múltiples archivos, y archivos con diferentes encodings, pero también tienen uno que otro extra que las hace diferentes e interesantes.

Finalmente, veremos también cómo hacerle para integrarlas a SourceGear Vault (el controlador de código que uso en mi trabajo) de manera que solo tengas que darle clic derecho en el Solution Explorer de Visual Studio, selecciones "Compare..." y voilá, compares la versión local contra la versión controlada.

WinMerge

WinMerge es una herramienta de esas que son gratis en todo el sentido de la palabra.  Es gratis para descargar y open source.  De las cosas interesantes que ofrece son que permite la creación de los parches de código (para aquellos controladores como CVS, supongo) y tiene integración al shell de Windows, incluso en las versiones de 64 bits (osea que sale si le das un clic-derecho a un archivo en Windows Explorer, te sale la opción para comparar archivos). 

De las cosas que no me gustan (y dirás que qué payaso, pero en fin) son que la interfaz está un poco fea, estéticamente hablando y no tan intuitiva. Solo corre en Windows, y la capacidad de editar archivos a la hora de hacer el merge es limitada.  Pero aún así es una herramienta bastante competente.

Puedes ver algunos screenshots aquí, y descargalo desde acá.

DiffMerge

Vault viene con una herramienta llamada DiffMerge la cual solo la obtenías con el producto y no era muy robusta.  Sin embargo, la semana pasada Eric Sink anunció que DiffMerge 3.0 ahora está disponible de manera gratis y separada.  La nueva versión tiene varias bondades que la anterior carecía: comparación de 3 archivos a la vez, soporte para edición de archivos y oh sí, corre en Windows, en Mac OS X o en Linux (!)

De las cosas que no me gustaron está que no tiene integración con el shell de Windows, limitando un poco la capacidad de hacer comparaciones rápidas.  Además, cuando comparas fólderes enteros tarda un poco ya que lee todos los archivos en todos los subfólderes de un solo golpe.  Pero si no te importa esto, pues vale la pena que lo pruebes.

Puedes ver algunos screenshots aquí, y descargarlo desde acá.

BeyondCompare

BeyondCompare es una de las herramientas que cuesta dinero, pero no mucho ($30 dlls por una licencia individual).  De hecho, nosotros compramos 10 licencias a $13 dlls cada una, lo cual es una ganga si lo comparan con otras como Araxis Merge, donde UNA licencia cuesta $130 dlls.  He usado BC por años y cada versión solo se pone mejor.  Soy fan, y al parecer no soy el único.

Aparte de lo estándar, el feature que nos mantiene con este producto es la habilidad de exportar el reporte de diferencias a un archivo HTML (o XML si así lo deseas). Ninguna otra herramienta barata o gratis que yo haya visto trae esto.  Nosotros lo utilizamos para la documentación de los cambios al código, y como parte de nuestro proceso de revisión de código para que otros desarrolladores puedan darle el visto bueno antes de que se le haga check-in a los cambios. 

En la columna de "contras" está que carece de la capacidad de hacer un merge automático--lo cual podría ser irrelevante si eres igual de desconfiado que yo en esas operaciones.  Y su capacidad de edición de archivos es limitada.  Sin embargo, parece que van a agregarle todo eso a la versión 3.0 de BC que va a salir a finales de este año.  No estoy seguro si la integración al shell que trae funcione bajo 64 bits. 

Puedes descargar una versión shareware de 30 días desde aquí.

Integración de herramientas de diferencia a SourceGear Vault

En mi equipo usamos Vault de SourceGear como nuestro controlador de código.  No les voy a escribir una carta de amor sobre el producto, pero sí les diré que es lo que SourceSafe debió ser desde un principio (¿y les comenté que está hecho en .NET?)

El caso es que una de las razones por las que Vault me cae bien, es que te permite configurar la herramienta que desees utilizar para las comparaciones (diff) o para la reconciliación de cambios (merge). Para hacerlo solo tienes que ir a las opciones de Visual Studio y de ahí acceder a las de Vault. 

  • Desde Visual Studio, selecciona "Options..." del menú "Tools".
  • Selecciona "Plug-In Settings" que está debajo de "Source Control" al lado izquierdo.
  • Da clic en "Advanced…" (esto te llevará a las opciones de Vault)
  • Selecciona "Diff/Merge" del lado izquierdo.

Lo único que tienes que hacer despues de eso, es especificar el programa y los argumentos que le vas a pasar.

Si quieres usar WinMerge, tienes que especificar lo siguiente (tomados de esta página):

Diff Program: C:\Program Files\WinMerge\WinMerge.exe\
Diff Arguments: /dl "%LEFT_LABEL%" /dr "%RIGHT_LABEL%"  "%LEFT_PATH%" "%RIGHT_PATH%"
Merge Program: C:\Program Files\WinMerge\WinMerge.exe\
Mege Arguments: /dl "%WORKING_LABEL%" /dr "%OTHER_LABEL%" "%WORKING_PATH%" "%OTHER_PATH%" "%DEST_PATH%"

Si quieres utilizar DiffMerge 3.0, entonces solo tienes que modificar la ruta al ejecutable que viene con la configuración de Vault.  Quedaría entonces, así:

Diff Program:

C:\Program Files\SourceGear\DiffMerge\DiffMerge.exe

Diff Arguments:

/ro1 /ro2 /title1:"%LEFT_LABEL%" /title2:"%RIGHT_LABEL%" "%LEFT_PATH%" "%RIGHT_PATH%"

Merge Program:

C:\Program Files\SourceGear\DiffMerge\DiffMerge.exe

Mege Arguments:

/ro1 /ro3 /merge /title1:"%WORKING_LABEL%" /title2:"%DEST_LABEL%" /title3:"%OTHER_LABEL%" /result:"%DEST_PATH%" "%WORKING_PATH%" "%BASELINE_PATH%" "%OTHER_PATH%"

Y finalmente, si quieres utilizar BeyondCompare, entonces los argumentos serían:

Diff Program: C:\Program Files\Beyond Compare 2\BC2.exe
Diff Arguments: /title1="%LEFT_LABEL%" /title2="%RIGHT_LABEL%" "%LEFT_PATH%" "%RIGHT_PATH%"

O puedes mezclar un poco las cosas.  Por ejemplo yo uso BeyondCompare para la funcionalidad de comparación y DiffMerge 3.0 para la funcionalidad de reconciliación.

Conclusión

Una buena herramienta de diferencias es escencial para tu kit de desarrollador.  Hay varias en el mercado que son gratis o bastante baratas y que pueden integrarse con tus herramientas de desarrollo.  Tómate un tiempecito para echarles un ojo y escoger la que mejor se acomode a tus necesidades.

Cómo validar tu XML contra un Schema usando .NET

lunes 16 de abril de 2007 | categorías: , , , , , | 1 comentarios -- da clic aquí para dejar el tuyo

En el taller de este mes estábamos utilizando una de mis herramientas preferidas para manejar XML: XMLPad de WMHelp.com, o como yo le llamo, el "Visual Studio para XML".

Sin embargo, parecía que de repente se ponía chiple al intentar validar un documento XML contra un XML Schema. Afortunadamente yo traía por ahí (bueno, por ahí no, porque luego me alburean) una pequeña herramienta que desarrollé hace tiempo, XML Validator.

Este es un programita super sencillo que básicamente toma un documento XML (que pudiera estar en un archivo), e intenta validarlo contra un XML Schema. El programa permite que edites el documento en la primera caja de texto para que puedas sacar las pulgas de tu documento.

Ejemplo de uso de XmlValidator

XML Validator y su código fuente están disponibles para descargarse en: http://comunidadnetjuarez.org/files/folders/ejemplos/entry523.aspx

La mayoría del código, aunque no lo creas, es para manejar los eventos de los botones, etcétera. En realidad el pedazo interesante, el que en realidad hace la validación es el siguiente:

try 
{
    Cursor.Current = Cursors.WaitCursor;
 
    XmlSchemaSet schemaSet = new XmlSchemaSet();
    schemaSet.Add(String.Empty,
        XmlReader.Create(new StreamReader(xmlSchemaFileTextBox.Text)));
 
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Schemas = schemaSet;
    settings.ValidationType = ValidationType.Schema;
 
    XmlReader reader = XmlReader.Create(
        new StringReader(inputXmlTextBox.Text), settings);
 
    while (reader.Read()) { }
 
    resultTextBox.Text = "Document is valid :o)" +
    DateTime.Now.ToLongDateString();
 
} 
catch (XmlSchemaException schemaEx) 
{
   resultTextBox.Text = "Document is NOT VALID:" +
       Environment.NewLine + schemaEx.Message;
}
catch (Exception ex) 
{
   resultTextBox.Text = ex.ToString();
}
finally
{
   Cursor.Current = Cursors.Default;
}

Como puedes ver, lo único que tienes que hacer es crear un XmlValidatingTextReader e iterar por todo el documento. En la versión 2.0 del .NET Framework, esto se puede lograr utilizando el método Create() de la clase abstracta XmlReader y especificando un objeto XmlReaderSettings con la configuración para el reader. El objeto de settings debe tener especificada la propiedad ValidationType y un XmlSchemaSet, que es la colección de XML Schemas contra las que se validará el documento.

PD. Si no sabes ni de qué $#^%&! estoy hablando con esto de XML Schema, validaciones y todo eso, entonces quizá quieras echarle un ojo al material de la reunión del mes de abril 2007 de la Comunidad .NET de Cd. Juárez.

Editor de code snippets para C# y VS2005

martes 28 de noviembre de 2006 | categorías: , , , | 0 comentarios -- da clic aquí para dejar el tuyo

Hace rato había platicado de la chidez de los code snippets en Visual Studio 2005.

Hoy se me ofreció hacer uno rápidamente. Y aunque es relativamente sencillo hacerlo a pata, en realidad no tenía tiempo de echarme la documentación para hacerlo. Necesitaba un "editor" para sinppets, pero el único que hasta hoy conocía es para Visual Basic 8.

Afortunadamente, este vato se creó un programita llamado Snippy. Puedes descargarlo de aquí.

El programita te genera el archivo .snippet; lo grabas en un directorio debajo de My Documents/Visual Studio 2005/Code Snippets/Visual C# y listo. Ni siquiera tienes que reiniciar Visual Studio.

Toolbars y extensiones para desarrollo Web

lunes 25 de septiembre de 2006 | categorías: | 0 comentarios -- da clic aquí para dejar el tuyo

Quizá habrás notado en el video del post anterior el uso de una extensión de Firefox llamada Firefox Web Developer Extension. Esta herramienta, aparte de transformar requests POST a GET y viceversa como lo mostró el video, trae infinidad de cosas útiles (mis favoritas son el validador de HTML, el reporte de velocidad de tu página, el resize de tu navegador y prácticamente todo el menú de Information y CSS).

Para IE 6 hay algo llamado Web Developer Toolbar que provee funcionalidad similar. De esta herramienta mi feature favorito es View DOM que te ayuda a ver todo el árbol y valores de un documento HTML ahí mismo.
Y finalmente, otra herramienta que te puede servir--sobretodo para tener cuidado con las cuestiones de seguridad--es Live HTTP Headers, otra extensión para Firefox que te da la información en vivo de los requests y responses que vas haciendo con el browser. Así que puedes revisar fácilmente que no estés pasando información desprotegida en tus requests. Espero te sirvan. Enjoy.

Juguetes nuevos para bloguear

martes 15 de agosto de 2006 | categorías: , | 0 comentarios -- da clic aquí para dejar el tuyo

Hoy descubrí dos herramientas nuevas que hacen el iniciar y escribir en un blog infinitamente más sencillo. Así que si antes tenías el pretexto de que escribir en el tuyo está de guácala por Web, o creías que tener uno bonito era muy complicado, sigue leyendo...

Yo soy bastante huev... práctico cuando se trata de tener un blog. Me gusta que se vean bonitos, pero definitivamente no me gusta pelearme ni con estilos ni con templetes, es más ni con HTML para ser sincero--suficiente de eso tengo en mi trabajo diario como para hacerlo cuando nomás quiero escribir y postear. Es por eso que me cayeron bien.

La primer herramienta que me topé hoy es Windows Live Writer de Microsoft. Aunque aún está en Beta--osea que puede estar medio buguienta--hasta ahora me ha funcionado de perlas.

Hay muchos programas similares que he intentado usar en el pasado, desde el add-in para Word de Blogger, w.bloggar--que al parecer no ha pagado su recibo de web hosting--, hasta Performancing que es una extensión de Firefox. Writer me gustó más que todos ellos por dos sencillas razones:

(1) Funciona con el proxy corporativo. Cosa que no logré ni a mentadas de progenitora con ninguno de los otros programas. No que me la pase posteando en horas de trabajo, ¿verdad? ahem...

(2) Cuando estás escribiendo una entrada, se trae los estilos de tu blog para que veas más o menos cómo se verá mientras lo escribes, así como un Web Preview, lo cual es fan-tástico. Check it out:

Windows Live Writer funciona con varios proveedores de blogs, incluyendo Blogger--el que uso yo, duh--y hasta con Windows Live Spaces si tienen una inclinación mazoquista por esas cosas.

La otra novedad, es precisamente la versión nueva, también en Beta--de Blogger. Esta nueva versión tiene cambios interesantes, de los cuales el menor de ellos es que ahora puedes utilizar tu cuenta de Google para firmarte en tu blog (sí, la misma que usan para su Gmail o Google Pages).

Lo que más me gustó de la versión nueva definitivamente es el nuevo editor de layout. Anteriormente tenías que darte un tirotote con el template de tu blog... con su sintaxis que usa una serie de tags no-estándar y con muchas clases de CSS para que se viera bien. Hasta para algo tan simple como agregar un link a tu lista de links interesantes tenías que editar la cosa esa y re-publicar todo tu blog... y ni hablemos de si querías poner algo "avanzado" como un feed de otro blog en el tuyo. Digo no era imposible ni particularmente difícil--si sabes algo de HTML y CSS.

Ahora es tan sencillo como agregar un elemento nuevo al layout, seleccionar el tipo y configurarlo. ¿No te gustó el orden? Tan sencillo como drag-and-dropear, igualito que el Google Page Creator.

Entre los elementos interesantes que puedes agregar están un feed de otro blog, un bloque de HTML o JavaScript arbitrario--para todos esos snippets como una licencia Creative Commons o una caja de búsqueda de Google, o qué se yo--, y una lista de Labels.

Los Labels--o tags, que es lo mismo--son otro de los features chidotas de esta versión nueva de Blogger, y se usan para lo mismo que en cualquier otra aplicación "Web 2.0", oséase, para categorizar cosas, en esta caso los artículos que publiquen. Estas etiquetas las especificas en el momento que vayas a postear el artículo.

Si quieren ver el resultado, pueden ver un blog de prueba aquí.

Ahora, se supone que el nuevo blogger incluye también varios templetes nuevos, aunque yo vi los mismitos, pero organizados de una forma más amigable. Lo que sí se puede hacer ahora, finalmente, es cambiar los fonts y los colores que vienen con el template sin tener que pelearse con CSS en absoluto.

A mi en lo personal--como se habrán dado cuenta--me gusta el font Georgia, y nomás por eso comencé a echarme el tirote con el template en la versión anterior, cosa que me tomó casi un día para que quedara como a mi se me antojaba, y acabé semi-hackando unos templates de TypePad, pa' que se den una idea del degenere... en fin ustedes ya no tendrán que pasar por eso. Gracias a Diosito.

Desgraciadamente, en estos momentos el beta de blogger está limitado. Si ya tienen una cuenta en blogger, solo a pocas personas se les está invitando a migrar su blog existente "estándar" a uno con la nueva funcionalidad. Pero, si de plano no sea aguantan la curiosidad--como yo--pueden ir directamente a beta.blogger.com y crear un blog nuevo, utilizando su cuenta actual de Google. Parece que después tendrán la opción de integrar ambos.

Happy blogging!

Code Snippets para Visual C# 2005

sábado 4 de marzo de 2006 | categorías: , , , , | 1 comentarios -- da clic aquí para dejar el tuyo

Después de mucho buscar y esperar, finalmente encontré los Code Snippets para Visual C# 2005. Les recomiendo mejor bajarlos todos de un guamazo, en lugar de uno por uno, y luego hagan lo que dice en esta página. Para los que no saben de code snippets, este es un feature de Visual Studio 2005 que te permite insertar un machote (sin albur) de código pre-definido para tareas sencillas y comúnes. Esto facilita enormemente las cosas para la raza que apenas comienza a aprender, ya que con la enorme librería de clases del .NET Framework a veces parece difícil hacer cosas sencillas, como cómo leer un archivo o registrar un evento en el EventLog de la máquina. Los proyectos de VB 2005 ya traen de cajón un montón de snippets, pero si querías hacer lo mismo con C#, te tenías que conformar con unos patéticos para cosasa como for's o if's. Supongo que asumieron que si sabías C# deberías saber lo que estabas haciendo... En fin, lo único que tienes que hacer para usarlos es dar clic derecho en el editor de código... Insert Snippet... y te da un menú para que escojas una tarea de diferentes categorías, como el siguiente ejemplo (dale clic a la imágen para verla bien): Otra alternativa es utilizar el shortcut (atajo pues) del snippet--en el ejemplo de arriba sería appEvent. Del editor de código, comienzas a teclear el shortcut del snippet... el IntelliSense lo reconoce, TAB + TAB--mi nueva combinación favorita--y listo, en menos de 2 segundos tienes tu código. De ahí solo tienes que llenar las cajas resaltadas, y estás listo pa'l baile.