Ver por etiquetas

Viendo la web como en 2006
Muchas veces uno tuvo un sitio que dejó en el olvido y quisiera verlo nuevamente o quizás recordar cómo se veía Geeks.ms en el 2006. Bueno, para los segundos les muestro cómo se veía esto en 206. Que lindos tiempos! las fechas de los artículos en inglés, nada de publicidad, un artículo de Carlos Fouz sobre la batalla que Microsoft la daría a Google y las 18 visitas que tuvo, algo que hoy tenemos en 15 minutos.    Bueno, la verdad es que esta entrada es solo para mostrar algo que probablemente...
Publicado 5/2/2012 por Lucas Ontivero | con no comments
10 consejos para que no te crackeen tan fácil
Crackear una aplicación tiene algo de arte y de ingenio pero crackear una aplicación .Net es demasiado sencillo para mi gusto, y representa un problema para la empresa o desarrollador que la comercializa y vive de mantener y mejorar el producto. Ya no vale eso de “total quien se va a dar cuenta”, eso no es válido para ninguna aplicación pero esto es aún peor cuando se trata de herramientas de desarrollo de software las cuales serán utilizadas por profesionales que conocen como pueden saltearse los...
Creando un sistema de indexación para nuestros datos no estructurados en Sql
Introducción Existen ocasiones en las que almacenar y organizar nuestros datos en una estructura tabular puede no ser lo ideal, en las que por conveniencia queramos guardar un conjunto de datos fuertemente relacionados en un sencillo xml pero a la vez necesitemos muchas de las características propias de SQL. Si bien SQL Server nos permite guardar XML (con o sin esquema asociado) e indexarlo, estos índices son muchas veces demasiado grandes y algo lentos y, aunque funcionan obviamente muy bien, podríamos...
.Net Reflector y ILSpy, ¿podrían inferir mejor el código a partir del IL?
Muchas veces uno cree que el código que .Net Reflector muestra es fiel reflejo de lo que el desarrollador escribió, pero obviamente eso no puede ser cierto ya que esta herramienta toma el IL de un ensamblado y trata de mostrar su equivalente en los lenguajes que se le pida (C#, VB.NET, F# entre otros). Claro que muchas veces hacen tan buen trabajo que uno se olvida de eso. Como a ILSpy le falta una vueltita de rosca en este aspecto, esto se hace más evidente ya que uno termina...
¿Cada cuanto se rompe el build?
En mi proyecto, luego de concientizar al equipo sobre la importancia de mantener el build siempre saludable, hemos pasado de tener un 71% de commits correctos a un 95% en solo 17 días. Sé que el número es bueno, y probablemente se deba a que la base de código no es grande, no obstante me gustaría saber si alguien tiene sus números para compartir. Otros puntos que estarían bueno saber son si usan TFS o alguna otra herramienta que no esté integrada, el tamaño del equipo de desarrollo, promedio de commits...
Compiler as a Service – Parte 1
Pensaba acerca de las cosas que podríamos hacer si el compilador de C# fuese un assembly reutilizable (Compilar as a service). Lo primero, y menos original, que se me ocurrió es que podríamos tener algo como JSON pero para C# en lugar de Java Script. 1: class Program 2: { 3: static void Main( string [] args) 4: { 5: const string data = @"results[" "professional" "] = 6: new 7: { 8: FirstName = " "Juan Pablo" ", 9: LastName = " "Ibañez" "...
Resultados con TDD en Microsoft, IBM, HP y Ericsson
Las recientes experiencias en la industria confirman que para obtener mejoras sustanciales mediante pruebas unitarias es necesario incorporar TDD (Test-Driven Development) como práctica integral del desarrollo. Aunque TDD no es una práctica nueva, solo experiencias recientes en Microsoft, IBM, HP y Ericsson comprueban la efectividad y factibilidad de ésta en proyectos reales y de reputación mundial. Los números de los resultados en realmente asombrosos. Les recomiendo leer las siguientes publicaciones...
Qué debemos considerar antes de crear nuestro DSL
Hoy todos reconocemos el potencial que tiene (LOP) Language Oriented Programming, pero no solo eso sino que muchos ya están invirtiendo para hacerse con las ventajas prometidas por este paradigma(?). Muchos incluso diseñan la sintaxis de aquellos lenguajes que entienden, pueden hacerles alcanzar la productividad, calidad y mantenibilidad que buscan. Ahora bien, una vez decididos a crear el lenguaje (textual) propio para un dominio particular, hay que implementarlo. Aquí es donde deben estudiarse...
Como fracasar con las pruebas unitarias
Hace poco gravé un pequeños video en el que explicaba una realidad que he visto en muchos proyectos respecto de las pruebas unitarias. En síntesis lo que comentaba era que en esos proyectos, los beneficios de las pruebas unitarias no eran visibles mientras que los costos sí lo eran. En problema aparente era la calidad de las pruebas, pero en realidad, el problema de fondo es la estrategia de hacer las pruebas luego de terminado el código. Por lo general, los programadores escriben piezas de código...
¿Cuantas líneas de código son 9 líneas con TDD?
En mi último post presentaba una métrica (verdaderamente muy mala) sobre mi productividad en un proyecto realizado completamente utilizando TDD de manera estricta. Esta mostraba aproximadamente 9 LOC/Hs. Al mismo tiempo, y como las pruebas y el código los escribí interactivamente, escribía 11 LOC/Hs de pruebas. Esto hace un total de 19 LOC/Hs. Ahora bien, cada 2 o 3 pruebas el código era refactorizado para eliminar duplicaciones, del mismo modo que luego de observar un patrón común en un conjunto...
TDD y Yo
Hace poco comencé un nuevo desarrollo y decidí grabar algunos videos de los cuales solo publiqué los primeros tres. Sucede que el hecho de saber que alguien me estaba mirando me hacía prestar mayor atención a mis palabras que al código que debía escribir. No obstante a ello, continué grabándome para tomar el tiempo y estudiarme. La primera parte de ese desarrollo está completado y estos son los números: 66 pruebas unitarias. 15 clases. (solo 4 centrales, el resto son datacontracts, excepciones y...
[DSL] Domain Specific Languages - Un ejemplo
Intro Como ya sabemos, un DSL es un lenguaje de programación que se construye para atacar una familia de problemas que se presentan habitualmente en un dominio particular. Aunque su denominación actual (DSL) es relativamente nueva, estos han sido utilizados desde siempre, en particular los que Martin Fowler llama “external DSL” los cuales muchas veces los utilizamos dentro de otro lenguaje huésped. Por ejemplo, es muy común encontrar SQL, XPath, RegEx, Xml...
[Herramientas] Key Padawan (beta2)
Key Padawan es un herramienta para presentaciones, una especie de keylogger visual....
[Herramientas] Key Padawan beta
Key Padawan es una especie de keylogger visual especialmente util para cuando necesitamos mostrar o visualizar las teclas que vamos presionando, como en el caso de presentaciones, o bien cuando queremos guardar las teclas para crear macros de automatización u otros casos....
Análisis estático de código y malos diseños
Aprender a desarrollar y a diseñar software es una tarea en la que hay que invertir muchos años. Hay que ser obsesivo, fanático, hay que equivocarse miles de veces y aprender de esos errores. No contentarse con los aparentes aciertos porque al poco de andar se descubre que no se hizo lo mejor sino que alguien más en un blogs perdido en la web lo resolvió mucho mejor que nosotros y ese alguien también encontrará mejores maneras 10 minutos después de su posteo. Pero sobre todo, hay que leer muchísimo...
[Software Factories] Software factory (la historia sin fin)
Hace una año comencé la serie Introducción a los Software Factory con 4 entradas: [Software Factories] Introducción (Parte 1) , [Software Factories] Introducción (Parte 2) , [Software Factories] Introducción (Parte 3) y [Software Factories] Introducción (Parte 4) . Hoy quiero exponer los desafios que plantea la implantación de una software factory en el mundo real. Veamos.... Al hablar hoy de software factories uno puede revivir el sentimiento de frustración que sentia 15 años atras cuando hablaba...
[PM] Estimaciones Agiles, no Extremas
Primero lo primero Hace poco comentaba en un post de Rodrigo Corral sobre algunas de las desventajas de un método de estimación que el mencionaba como método ágil y rápido: el Plannig Poker . Luego, Rodrigo me responde con un post en el que intenta rebatir cada una de mis afirmaciones. Una excelente noticia es que al menos el capítulo 6 del libro Agile Estimating and Planning (by Mike Cohn) que trata, entre otras cosas, sobre Plannig Poker está disponible para leerlos en pdf desde acá . Lo primero...
[PM] Métodos de Estimación - Resumen
Quiero compartir con vos un mapa conceptual sobre los distintos métodos de estimación de los que disponemos a la hora de afrontar una estimación de un proyecto de software. Este mapa muestra, entre otras cosas, los pros y contras de las distintas alternativas como así también las entradas requeridas por cada uno de los métodos. Esta entrada es parte de la entrada anterior sobre Estimaciones y Scheduling Avanzado y que seguramente se conertirá en una serie. (Hay que hacer click sobre la imagen para...
[PM] Estimaciones y Scheduling Avanzado
En este artículo vamos a ver una rápida introducción a la estimación de tamaño, esfuerzo, tiempos total, costos y optimización (compresión) de schedule utilizando simulaciones mediante el método de Monte Carlo. ...