1.- Don´t live with broken windows.
(No vive con ventanas rotas)
2.- Iterate the schedule with the code.
(Itera la planificación con el código)
3.- Some things are better done than designed.
(Algunas cosas estan mejor hechas que diseñadas)
4.- Test early. Test automatically. Test often.
(Realiza test)
5.- Finds bug once.
(Encuentra los errores una vez)
6.- Prototype to learn.
(Prototipos para aprender)
7.- Fix the problem, not the blame.
(Solucionar el problema, no la culpa)
8.- Make a quality requirement.
(Hacer requerimientos de calidad)
9.- Eliminate effects between unrelated things
(Elimina los efectos entre cosas sin relación)
10.- Don´t repeat yourself (DRY).
(No te repitas)
11.- Refartor early, refactor often.
(Refactoriza)
12.- There are not final decisions.
(No hay una única decisión).
13.- Remember the big pictures.
(Recuerda los grandes dibujos. En referencia al boceto inicial)
14.- Abstractions live longer than details.
(Las abstracciones viven más que los detalles)
15.- Be a catalyst for change.
(Se un catalizador [agente acelerador de una reacción] para el cambio)
16.- Don´t be a slave to formal methods.
(No seas un esclavo de los metodos formales)
Mes: diciembre 2009
Propósitos para 2010
1.- Leer 4 libros básicos fundamentales: Clean Code, Refactoring, Design Patterns, Code Complete 2.
2.- Coding Dojo como comenté.
3.- Certificado java 1.6.
4.- Escribir como mínimo 2 artículos en mi blog al mes.
«How to be a good programmer» Cómo ser un buen programador
Hay muchas distinciones dentro del mundo de la informática. Yo soy ingeniero técnico de gestión, debería estar preparado para abarcar muchos ámbitos y por tanto muchos trabajos. Pero, no se programar. (Despectivamente) «Eso es de programadores», vale, yo quiero ser uno de ellos. Pero que difícil que es. Necesito muchas más formación para este puesto. ¿Cómo la consigo? Do it yourself (Hazlo tu mismo) o ten pasta y vete a cursos y practica como un loco.
Timeline
– Lo primero que me di cuenta, es que hay mucha gente como yo. «Mal de muchos, consuelo de tontos». Alivia y consuela, pero quiero ser un programador. No es la solución.
– Hasta que fui al ‘Agile Open Spain 2009‘. Los que fuimos y coincidimos casi en todas las sesiones referentes a programación, teníamos el mismo anhelo: aprender. Hablamos de excelencia, de como llegar a ella. Ibamos desde programadores elementales, jefes de proyecto, arquitectos, y empresarios. A pesar de que había más charlas sobre metodologias ágiles, yo fui donde creía que iba a aprender algo de programación. A partir de aquí, he visto la luz.
– Aprende a programar en 10 años. , ¡joer!, ¿no era en 21 días?. Pues eso, haz un plan a largo plazo. En 21 días puedes aprender algo, pero no serás un programador excelente.
– The Pragmatic Programmer. No me lo he leido aún, pero proponen el Coding Dojo. Esto es, un gimnasio para aprender a programar. Hacer todos los días unos ejercicios y perfeccionarlos. Dos maneras: Randori (por turnos, uno hace un test y el otro pasa el test) y prepared (Code Kata: en un pomodoro hacer un ejercicio de programación y llevarlo a la excelencia.). Por tanto hay que hacer gimnasia de programación. Yo eligo las dos maneras.
_Code Kata Randori: he de quedar con alguien por internet para pasarle un test, él me devuelve el test pasado y otro test. Habrá que evaluar pero creo que 3 test por semana, no están mal.
_Code Kata Prepared: voy a prepararme una kata. Aún no la he elegido, estoy buscando y he encontrado algunos sitios con ejercicios.
[Pido perdón porque los enlaces no corresponden con la palabra elegida, pero van sobre el tema del que he escrito en este apartado].
– Leer libros de gente excelente: Clean Code, Refactoring, Design Patterns, Code Complete 2.
– Ir a por un certificado java. Aunque ahora con Oracle, no se sabe como quedará la cosa, por aprender que no sea.
¿Cómo englobo yo esto dentro del agilismo? Pues muy fácil, atendiendo a los principios agiles, hay uno que dice: «Continuous attention to technical excellence and good design enhances agility» así que de momento tengo para rato, 10 años, bueno 9.
Los 10 atajos de teclado que todo programador debería saber, para Eclipse
Ctrl + Shift + r: Abrir recursos
Ctrl + Shift + t: Abrir tipos
Ctrl + o: ir a un miembro (método, variable) de una clase, especialmente cuando una gran cantidad de métodos se denominan de forma similar.
Ctrl + l: ir a la línea…
Ctrl + q: ir a la anterior localización de edición
Ctrl + t: ir a subtipo / supertipo
Ctrl + e: ir a los editores abiertos
Alt + (flecha izqda, flecha dcha): ir a lo editado anteriormente.
Ctrl + ‘+’: ir al siguiente problema
F3 = Ctrl + click
Ctrl + Shift + l: muestra todos los atajos del teclado.
Más atajos en: Eclipse / Help / Help Contents / Java Development User Guide / Reference / Menus and Actions
Birt vs Jasper
ARTICULO 1: Jasper or BIRT?
Birt -> Eclipse
Jasper -> NetBeans
Birt -> Actuate
Jasper -> Japersoft
Subinformes
Significa: informe dentro de un informe. Jasper no permite crear dos consultas SQL en el mismo informe, por eso es necesario crear un subinforme. También se usan para organizar una página. Birt no tiene esta característica, te permite realizar más de una consulta SQL en el mismo informe, esto implica complejidad para el informe al poder poner muchas sentencias SQL.
Los subinformes permiten la creación de informes más complejos y simplifican el trabajo de diseño. Son muy útiles cuando la estructura de un informe único no es suficiente para describir la complejidad del documento de salida deseado. Uno puede solapar subinformes o crear informes que contienen subinformes a sí mismos, a cualquier nivel de anidamiento. Cualquier plantilla de informe puede ser utilizada como un subinforme cuando se incorpora a otro informe, sin cambiar nada.
Scriplets
El informe puede llamar al método Java desde su aplicación. Scriptlets son secuencias de código Java que se ejecutan cada vez que se produce un evento en el informe. A través de scriptlets, los usuarios ahora tienen la posibilidad de afectar a los valores almacenados en las variables de informe. Los scriplets trabajan con las variables del informe, por tanto es muy importante controlar el momento exacto de cuando se ejecutan. JasperReports permite la ejecución de código Java personalizado antes o después de inicializar las variables del informe, de acuerdo a su tipo de reset: Informe, página, columna o grupo.
Paso de parámetros desde un jsp
Los parámetros son referencias a objetos que se pasan al informe.
Código de barras
Código de barras es la tendencia actual de procesos de negocio para acelerar el procesamiento de datos o de entrada de datos. Es muy útil disponer del código de barras en los informes.
Ventajas de BIRT
1. Funciones / fórmula – más amplio en comparación con Jasper.
2. Basado en Eclipse IDE
ARTICULO 2: BIRT Vs Jasper Report A Comparitive Study
Jasper es un simple jar de 1.2 MB, que puede ser insertado en cualquier aplicación java.
Birt viene con una gran cantidad de características en forma de plug-in, pero se utilizan muy pocas.
Data source (Fuente de datos)
Birt crea una nueva conexión a través de una fuente de datos mediante scripts. Sin embargo, Jasper utiliza la session factory existente en la aplicación.
Birt no usa JNDI, utiliza ODA. El data source es definido dentro del informe.
ARTICULO 3: Java Open Source reporting frameworks. Evaluation results
Artículo que compara tres aplicaciones para generar informes. Apoya significativamente a Birt. Lectura imprescindible.
CONCLUSIONES
Leyendo este último artículo, considero que se pega de tortas con los otros que antes he mencionado, pero supongo que será un problema de las versiones. Pues dice que Birt si hace uso de JNDI, que tiene paso de parámetros, que jasper no tiene scripts…
Una vez leido estos artículos, mi opinión es que se quedan obsoletos con las versiones actuales. A principios del 2010, las versiones existentes son: Birt 2.3.2, Jasper 3.7.0. Habrá que realizar un estudio más profundo con las nuevas versiones.
LA TÉCNICA POMODORO (Francesco Cirillo)
Es una técnica de planificación y ejecución de tareas (de estudio o de trabajo). Muy similar a un método de estudio.
PRINCIPIOS de esta técnica
- Mejorar la concentración y disminuir las interrupciones.
Mejorar la toma de decisiones.
Aliviar la ansiedad.
Aumentar la motivación y mantenerla constante.
Aumentar la determinación de cumplir los objetivos.
Redefinir el proceso de estimación, en términos de calidad y cantidad.
Mejorar el estudio o trabajo.
Reforzar tu determinación en situaciones complejas.
FASES
QUE | CUANDO | PORQUÉ |
Planificación | Al principio del día | Decidir las actividades del día |
Seguimiento | A lo largo del día | Recopilación de datos primarios |
Recopilación | Al final del día | Recopilar y archivar las observaciones del día |
Transformación | Al final del día | Transformar los datos en información. |
Visualización | Al final del día | Presentar la información de manera que facilite la compresión y clarifique la ruta a mejorar |
COSAS NECESARIAS
- Reloj de cocina.
Plantilla “Hacer hoy”.
Plantilla “Inventario de actividades”.
Plantilla “Actividades realizadas”.
FUNCIONAMIENTO.

– Planificación: aquí debes apuntar en la lista de tareas diaria. Las tareas a realizar. Una vez estimadas las tareas, le dedicas a cada una los pomodoros necesarios para terminarla.
– Ejecución: El pomodoro es una unidad de tiempo equivalente a 25 minutos. Cuando estás realizando un pomodoro, éste no puede ser interrumpido ya que un pomodoro es indivisible. Cuando finalizas el pomodoro debes descansar 3-5 minutos y volver a realizar el siguiente pomodoro. Al finalizar el cuarto pomodoro debes descansar 15-30 minutos.

En los descansos, no debes realizar ninguna tarea relacionada con el trabajo o estudio. Debes descansar. Una tarea te puede llevar más de un pomodoro. La cantidad de pomodoros utilizados se apunta en la lista de tareas. Se marca con una “X”.
En la planificación, se debe estimar el número de pomodoros necesarios para realizar la tarea, de esta manera aprenderás a estimar el tiempo. Estas estimaciones se marcan con cuadrados, dentro de los cuales irán las X, que marcarán los pomodoros realizados.
Si la estimación se ha quedado corta, puedes volver a estimar cuantos pomodoros serán necesarios, con un circulo “O”. Dentro del circulo irá la X, que marcará los pomodoros realizados.
Cuando termines la tarea, la tachas.
Si terminas una tarea en los primeros 5 minutos, no la debes contar como un pomodoro.
Al final del día las tareas son guardadas en la hoja: “Inventario de Actividades”. La cual representa el tiempo invertido en cada tarea.
-Interrupciones: pueden ser de dos tipos:
- Internas: ideas que se te ocurren mientras ejecutas la tarea. Se apuntan en la plantilla de tareas, en la parte inferior, titulada: “No planificado y urgente”. Se puede anotar la fecha limite de ejecución de la tarea, así como los pomodoros estimados para realizarla. Si es urgente se marca con una “U”. También se puede realizar como si estuviera en la lista superior.Estas interrupciones se marcan con una apóstrofe “ ‘ ”, en el mismo sitio donde se marcan las X.
- Externas: se marcan con un guión “-”. Son ajenas a nosotros y a nuestra inquieta mente.
Antiguos manuales sobre Windows 2003 Server
Referencia a mis primeros manuales, alla por el 2004.
Servidor de Correo Multidominio con Microsoft Exchange 2003 sobre Windows 2003 Server DNS sobre Windows 2003 Server SERVIDOR FTP SOBRE IIS6.0