Notas de Software
Café por medio, hablando de lo que nos gusta...

La Base De Datos

jueves, 15 mayo 2008 23:58 por Gabriel

Recientemente tuve que corregir ciertos datos que por error se grabaron mal (o directamente no se grabaron) en una base de datos. Esta base de datos esta, en mi opinión, tan mal diseñada que cualquier tipo de actualización o búsqueda de información obliga a escribir enormes porciones de código SQL con las complicaciones de mantenimiento y la facilidad para cometer errores que ello implica.

Esto me llevó a pensar y analizar cuánto código se podría haber ahorrado y simplificado si la base hubiera estado bien diseñada desde el comienzo. ¡Y que fácil hubiera sido corregir esos errores!.

Ahora, ante la proximidad de la programación de la versión 2.0 de la aplicación en la que estoy trabajando no me quedan dudas de por donde hay que empezar.

El diseño de una base de datos que se adapte a las características de la aplicación, que sea extensible y que permita tanto su uso en escenarios OLTP y OLAP.

Si bien por razones de confidencialidad no puedo escribir sobre la base que pienso diseñar, nada me impide escribir sobre los conceptos que voy a ir aplicando en este futuro diseño.

Próxima entrega: ¿Cómo se empieza a diseñar una Base de Datos?

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Opera Dragonfly

viernes, 9 mayo 2008 11:42 por Gabriel

Finalmente Opera Dragonfly sale a la luz como una versión alpha. Opera cada vez mejor...

 

http://dev.opera.com/articles/view/introduction-to-opera-dragonfly/

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

La evolución de .NET

jueves, 1 mayo 2008 20:02 por Gabriel

 

 

Versión del Framework 1.0 1.1 2.0 3.0 3.5
Herramientas de Desarrollo VS 2002 VS 2003
Web Matrix
VS 2005
Expression Blend
VS 2005 VS 2008
Lenguajes C# 1.0
VB.NET 7.0
C# 1.1
VB.NET 7.1
C# 2.0
VB.NET 8.0
C# 2.0
VB.NET 8.0
C# 3.0
VB.NET 9.0
LINQ
Librerías ADO.NET 1.0
ASP.NET 1.0
ADO.NET 1.1
ASP.NET 1.1
WSE 2.0
ADO.NET 2.0
ASP.NET 2.0
WSE 3.0
Framework 2.0
WCF
WPF
WCS
Framework 3.0
AJAX.NET
Motor (CLR) 1.0 1.1 2.0 2.0 2.0

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Según Dijkstra estoy mentalmente mutilado.

sábado, 26 abril 2008 00:39 por Gabriel

Es prácticamente imposible enseñarle a programar bien a cualquiera que haya sido expuesto anteriormente al BASIC: como potenciales programadores están mentalmente mutilados y no tienen ninguna esperanza de regeneración.

Edsger W. Dijkstra, 18 de Junio de 1975

Más allá de que Dijkstra es considerado uno de los más grandes científicos dedicados a las ciencias de la computación, ganador del premio A. M. Turing en 1972 y blah, blah, blah, no puedo dejar de considerar lo que dijo una de las más grandes estupideces de la historia de la programación.

Yo programé, en estricto orden cronológico, en:

  • Sinclair BASIC
  • CBM BASIC
  • 6510 Assembler
  • Pascal (en la C64)
  • Quick Basic 4.5 (en la primer PC que tuve)
  • Turbo Pascal
  • Clipper
  • Dbase II
  • COBOL 400
  • RPG/400 (RPG III)
  • RPG IV
  • CL/400
  • Delphi 3.0
  • Visual Basic 3.0
  • Visual Basic 6.0
  • Visual Basic Script
  • VBA
  • Visual Basic .NET 2005
  • C# 2.0

La experiencia que me ha dejado el haber programado en todos estos lenguajes es muy sencilla. Uno no aprende o sabe programar en un lenguaje determinado, sino que uno debe aprender a programar, entendiendo el término programar como el encontrar un algoritmo que solucione un determinado problema. Este algoritmo puede expresarse primero utilizando diversas metodologías (top-down, estructurada, orientada a objetos) y luego programada en cualquiera de los lenguajes existentes.

La solución es independiente del lenguaje de programación a utilizar. Se puede ser un experto en Perl y conocer de memoria la sintaxis de todas las instrucciones pero si no se sabe pensar en la solución de un problema en términos de algoritmos y estructuras de datos, ese conocimiento del lenguaje resulta inútil.

Un mal programador lo es en cualquier lenguaje, lo mismo que un buen programador es bueno en cualquier lenguaje. Por supuesto que, una vez que tenemos la solución a nuestro problema, el sentido común dicta programarla en el lenguaje que mejor conocemos y si conocemos varios, en el que mejor se adapta a la solución encontrada.

Cualquiera que diga que una solución a un problema expresada utilizando un diseño orientado a objetos no puede programarse en el BASIC de Sinclair que usaba la ZX-Spectrum no tiene idea de lo que significa orientación a objetos y mucho menos de lo que significa programar. ¿Es esa versión de BASIC la mejor para implementar una solución orientada a objetos?. No, de ninguna manera. Es una tarea engorrosa y complicada, pero no imposible. Por supuesto que es mejor utilizar un lenguaje como VB.NET, C# o Smalltalk. Estos lenguajes fueron diseñados específicamente pensando en facilitar la implementación de soluciones orientadas a objetos.

Por eso lo que dice Dijkstra, con todo respeto lo digo, es una gilada monumental. No importa el lenguaje, sino los conceptos de programación que uno maneja. Un buen escritor en castellano, si aprende suficientemente bien otro idioma, seguirá siendo un buen escritor. El que maneja de forma excelente un Porsche, maneja de la misma forma un Fiat 600. Y así puedo seguir eternamente.

Mi primer libro de programación (que aún ojeo de vez en cuando) lo compré inmediatamente después que tuve mi primer computadora, una Timex Sinclair 2068 (un clon yanqui de la ZX-Spectrum inglesa). El libro se llama "Programación Avanzada en BASIC" de Peter Bishop. Tranquilamente se podría haber llamado simplemente "Programación Avanzada". El autor usa el BASIC simplemente como un lenguaje de referencia para demostrar prácticamente los conceptos de programación avanzada que explica en el libro. Y usa BASIC porque en aquel momento era el lenguaje que venia en la ROM de todas las computadoras hogareñas (home computers). Es más, usaba un BASIC lo más estandard posible para que los ejemplos fueran compatibles con todas las versiones de BASIC de la época. Y la mayor parte de los conceptos explicados en ese libro siguen teniendo vigencia.

Por eso cuando estoy frente a un problema (y tengo el tiempo suficiente) trato de no pensar, por lo menos al principio, en qué lenguaje específicamente voy a implementar la solución. Cuando logro hacerlo bien, la solución al problema termina siendo un algoritmo que fácilmente se puede implementar casi en cualquier lenguaje y permite además explotar las características especiales del lenguaje elegido.

Por eso Mr. D. lo suyo fue y será una tremenda patinada.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Opera 9.5 Beta 2

jueves, 24 abril 2008 10:15 por Gabriel

Ya está disponible la Beta 2 de Opera 9.50.

Entre las características destacables se encuentran:

  • Seguridad mejorada.
  • ACID3
  • Mejoras en cuanto a la compatibilidad con sitios Web 2.0
  • Mejoras en Opera Link (como sincronización de Notas por ejemplo)

Pueden descargar Opera y ver un video en:

http://my.opera.com/chooseopera/blog/2008/04/24/opera-desktop-9-5-beta-2-kestrel-out-now

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Microsoft Héroes IT

martes, 22 abril 2008 00:02 por Gabriel

Según Microsoft, éste es mi poder:

 

sshot-7

 

Microsoft Héroes IT

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Procastination

lunes, 21 abril 2008 23:00 por Gabriel

Al igual que Geekotic, yo también busqué en el arcón de los recuerdos y encontré esto que siempre me pareció que fue hecho específicamente para mí.

 

posterprocrast

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Dell Offers Migration Services For Deploying Windows Vista

viernes, 11 abril 2008 22:29 por Gabriel

Dell ofrece un servicio de migración para aquellos clientes que quieran migrar 2500 computadoras o más a Windows Vista. Según Dell, sus clientes están migrando a Vista y le han solicitado algún tipo de servicio para simplificar y organizar el pasaje al nuevo sistema operativo. Esto, evidentemente, se contradice con el resto de las tantas noticias que aseguran que nadie en el planeta tierra está pensando en migrar a Windows Vista.

Dell Offers Migration Services For Deploying Windows Vista -- Dell -- InformationWeek

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Internet Information Services (IIS) 7.0 Manager

viernes, 11 abril 2008 22:27 por Gabriel

Microsoft ha liberado hace un tiempo esta herramienta que permite administrar servidores web IIS7 de forma remota. Los sistemas operativos soportados son Windows Vista SP1, Windows XP SP2 y Windows Server 2003 SP2. Es necesario tener el Framework .NET 2.0 instalado previamente.

Download details: Internet Information Services (IIS) 7.0 Manager

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Web Deployment Projects

viernes, 11 abril 2008 22:18 por Gabriel

En general una aplicación web se distribuye o se implementa en el entorno de producción usando las opciones de Copiar Sitio Web o Publicar Sitio Web. Si bien estas opciones son prácticas, tienen varias carencias.

Web Deployment Projects es un agregado para Visual Studio 2005 que permite agregar un proyecto a la solución para crear un paquete de instalación de nuestra aplicación web.

Una de las características más interesantes es la posibilidad que nos brinda el proyecto de tener más control sobre la generación de los ensamblados de nuestra aplicación. Un instructivo bastante completo de la herramienta puede encontrarse aquí.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5