Saturday, April 29, 2006

"no va a afectar nada"

sobre reglas basicas de desarrollo: no suponer que algo va a pasar (o dejar de pasar)

cuando te vas a dormir pones la alarma del reloj y asumes que funcionara y que te despertara en la mañana, en algunos casos talvez pongas 2 alarmas suponiendo que si una no funciona (si se va la luz por ejemplo) que la otra si funcionara (al menos yo si hago eso cuando voy a viajar a la mañana siguiente), cuando estas manejando y pasas un semaforo en verde, asumes que nadie vendra de los lados porque ellos tienen el semaforo en rojo, vivimos suponiendo muchas cosas!

cuando estamos desarrollando no cambia mucho la cosa, asumimos muchas cosas y lo malo es que muchas veces esas suposiciones se traducen a software que funciona muy pobremente o usuarios que terminan usando el software en una manera que no se esperaba, y esto a su vez se traduce en una mala experiencia porque escribiste el software para ser usado de una manera (asumiendo que seria usado de cierta manera)

asi que todo se revuelve con suposiciones, suponemos que existira una conexion, que un archivo estara ahi, que un query correra...

piensa por un momento en las suposiciones que haces y trata de evitarlas, esto es MUCHO mas facil decir que hacer, pero con el solo hecho de estar alerta a esta situacion, ya estaras un paso adelante. yo he vivido (no solo desarrollando) por este concepto por varios años, y aun hago muchas suposiciones que me *cuestan* errores en el software que escribo, pero son definitamente muchos menos errores

una suposicion muy grande que los desarrolladores hacen comunmente es:
"no va a afectar nada"

esa es MUY grande, todos la han hecho muchas veces, asi que piensa cuantas veces haz dicho "no va a afectar nada" y terminaste quebrando el sistema completo, echando a perder la base de datos, etc

por supuesto que para eso se hacen pruebas, pero, primero: si metiste mas errores al sistema, vas a perder mas tiempo del que era necesario y segundo: no todos tienen un equipo de pruebas, y si tu pruebas tu mismo sofware, no vas a probar suficientemente bien porque estas seguro de que "no va a afectar nada"

aqui esta una lista de cosas muy comunes que NO DEBES asumir
- que tu aplicacion puede usar toda la MEMORIA que necesita
- que tu aplication puede usar todo el DISCO que necesita
- que un archivo existira
- que la aplicacion tendra permisos para hacer X o Y (especialmente en aplicaciones web, accesando archivos, etc)
- que tu aplicacion correra con permisos de administrador (esta es muy comun)
- que una coneccion estara presente (TCP, HTTP, SQL, etc)
- que una coneccion no se rompera en medio de una operacion
- que "no va a afectar nada"

esa es una pequeña, pero muy buena lista yo creo... empieza evitando suposiciones, te garantizo que seras un mejor desarrollador, que crea mejor software mas rapido

Monday, April 24, 2006

mantener conecciones a servidores SQL en un lugar central

en el lugar donde trabajo uso mas o menos unos 10 diferentes servidores SQL, es dificil para acordarse de los nombres de los servidores, usuarios, passwords, nombres de las bases de datos...

apoco no estaria bien si tuvieramos algo donde pudieramos accesarlos todos sin tener que acordarnos de todos los nombres de servidores/bases de datos/usuarios/passwords (solo teclear esas 4 cosas me cansa), pero sobre todo, sin tener que teclear todo esto cada vez para accesar cada servidor

aun si usas SSPI (seguridad integrada de Windows), todavia tendrias que teclear el nombre del servidor y la base de datos que necesitas

es por esto que escribi este pequeño programita, de entrada le pongo los servidores, usuarios, passwords, bases de datos que se requiere para accesar cada base de datos que necesito, y luego el programita espera ahi en el "Tray" (ahi por el reloj) donde estas conexiones se pueden accesar rapidamente con un simple click

el programita se puede configurar para abrir las conecciones en una ventana existente de Query Analizer o que se abra una ventana nueva para cada coneccion

al configurar las conecciones se puede especificar que archivo queremos cargar con esa coneccion, si normalmente corres ciertos queries contra una base de datos, esta opcion te ayudara bastante

ahora que si te preocupa la seguridad, pues he agregado un password a este programita, con el que se mantiene toda esta informacion encriptada, usando los estandares publicos de seguridad

esta aplicacion es gratis, a mi me funciona muy bien, se aceptan sugerencias pero no les garantizo nada

salu2

Wednesday, April 19, 2006

minimo de comentarios que debes tener en tus proyectos

el poner comentarios en el codigo fuente, es una de las cosas en que los desarrolladores son realmente malisisimos

pero por favor gente (programadores), haganse un favor ustedes mismos!

por lo menos, pongan comentarios al inicio del archivo de codigo principal, por ejemplo cada vez que inicio un proyecto siempre pongo algo como esto en el primer archivo:

Programa: Nombre del Programa
Escrito por: Eber Irigoyen
en: 19/04/2006
Usa (componentes):
- Indy 9.0.14
- XceedZip 4.5.77.0
- MDAC 2.7
Compilado con: Delphi 7

Descripcion:
- blablabla
- mas bla
- etc...

incluir historia de actualizaciones aqui...

son solo unas cuantas lineas y me dice muchas cosas sobre el proyecto, cuantas veces te has pasado horas rompiendote la cabeza solo porque no sabes que version del componente X uso un @#$& compañero de trabajo?

agregar estas lineas al encabezado solo te va a tomar un minuto, y te va a quitar muchas horas de trabajo despues (o a alguien mas)

lo siguiente seria que cada que haces cambios al proyecto, al menos incluyas una descripcion de los cambios, junto con la version y la fecha

cosas tan simples como esta son parte de ser un mejor desarrollador de software

salu2

como mantener su lista de favoritos en un lugar central

la mayoria (creo) de la gente que usa computadoras, de alguna manera usa mas de una, ya sea porque usa una en casa y otra en el trabajo, o la escuela, libreria, etc

y siempre se da la cuestion de que sabes que tienes una pagina en tus favoritos en tu casa (por ejemplo) y necesitas esa pagina pero no te acuerdas del link y no lo puedes hallar

ahi es donde este sitio viene al rescate, te permite tener tu lista de favoritos en internet y luego ya los puedes accesar desde donde necesites

tambien al agregar tus favoritos puedes asignarles unos "tags", que son palabras que te ayuden a recordar despues sobre ese link, por ejemplo si agrego este blog a del.icio.us podria poner como tags: blogs informatica programacion

despues, al accesar tu sitio de del.icio.us esos tags los encuentras del lado derecho, y todos tus favoritos del lado izquierdo, al dar click en alguno de los tags, se filtra la lista, para mostrarte solo los que le asignaste ese tag, asi que si quieres ver todos tus blogs, le das click en blog y listo

la unica desventaja es que creo que no esta en otro idioma mas que ingles, asi que van a tener que desempolvar un poco sus conocimientos del lenguaje de shakespeare

una vez que se registren solo tienen que activar su barra de links (menu View, ToolBars, Bookmarks) y arrastrar unos botones a esta barra y ya estara disponible en ese browser para que con un click puedan agregar cualquier sitio que anden navegando

al registrarse tambien les da la opcion de instalar un programita que lo unico que hace es que les agrega esos botones a su navegador, en caso de que no puedan activar la dicha barra

otra de las ventajas de este sitio, es que te permite ver otra gente que ha agregado los mismos favoritos que tu, entonces puedes ver todos los favoritos de otras gentes, y muchas veces descubrir otros sitios que a ti te interesan y agregarlos a tu lista

mi lista de favoritos la pueden encontrar aqui

salu2

Thursday, April 13, 2006

aqui vamos con la version en español

pues he decidido aventarme a postear los mismos articulos o cualquier cosa que ponga en mi blog en ingles, a este en español, siempre me he dado cuenta que mucha gente de habla hispana batalla para encontrar fuentes de informacion y siempre de alguna manera he tratado de ayudar, ojala y este blog pueda servir un poco a llevar algo de las nuevas tecnologias y metodologias a la gente que no mastica muy bien el ingles

para empezar talvez traduzca algunos de las cosas que ya he escrito en ingles, para tener algo con que empezar, luego despues incluire nuevos articulos en ingles y español

salu2