Aprende programación






13 sept. 2010

13 de septiembre - Dia del programador


No lo sabía pero gracias "Fires" acabo de descubrir que hoy era el día del programador.
http://proyectosbeta.blogspot.com/2010/09/feliz-dia-del-programador.html

Para celebrarlo ha solicitado que escribamos alguna anécdota en el siguiente post.
http://proyectosbeta.blogspot.com/2010/09/celebremos-el-dia-del-programador-con.html

y como tenía tiempo libre, así lo he hecho. ¡Que curioso que sea el día 256 = 2^8.

Es una historia que le puede pasar a cualquiera pero en esta ocasión con final inesperado. Y en general se saca una moraleja de todo ello de la cual me ha dejado marca (por vivirla a través de compañeros).

Borrar algo de manera irreversible siempre es un trauma. Es mayor aún cuando lo que has borrado lleva mucho trabajo o no es tuyo. Pues bién aquí una anecdota que le paso a un compañero.

1. Se realiza una nueva instalación en un cliente.
2. Durante una semana, el cliente se dedica a introducir los datos maestros.
3. A la semana le piden a un técnico que mire ciertas cosas y modifique otras el caso es que derrepente se oye.
- "Noooo!!". Exclama el técnico.
- "¿Que pasa?". Preguntamos el resto
El técnico palido no contesta.
- "¿Ocurre algo?". Le insistimos.
- "He borrado la tabla de productos". Dijo con voz cabizbaja.
- "¡¿Que me dices?! Pero, ¿estas en serio?". Preguntamos.
- "Si, si. He ido a hacer una cosa y he lanzado un borrado sin querer".
- "Y ¿Había muchos registros?". Preguntamos.
- "¡Hombre!, Pues no sé. Pero si el cliente ha estado trabajando durante toda la semana para meter los productos ... Datos tenía que haber". Dijo el hombre más pálido todavia.

El caso es que el tema se tuvo que comunicar al gerente para ver que se hacia.
Finalmente, se decidió comunicarse al cliente. De esto se iba a encargar el propio gerente/responsable.

- "Ya verás como se arma gorda". Dijo el técnico.

(A los 5 minutos)

- Gerente: "Oye! Que ya está comunicado".
- "¿Y que ha dicho?". Preguntó el técnico.
- Con una cara de no me lo puedo creer el responsable dijo. "A dicho que: 'mejor porque así los vuelve a meter y aprende a utilizar la aplicación' ".

- "Suspiro de todos con cara de estupefacción".

---------
Hasta aquí la historia que acabo con final feliz. Sin embargo, lo normal es que una cosa así acabe mal. Por ello sigo las siguientes reglas:
- Siempre que se pueda usar un control de versiones y hacer commits.
- Si puedo, nunca borro nada, siempre renombro la vieja versión o la versión a borrar.
- Si no puedo renombrar me hago una copia de lo que tiene antes de trabajar.
- Si no puedo copiar porque son muchos datos o no se puedan copiar por diferente indole, miro lo que voy a ejecutar si esto puede ser catastrófico durante 30-60 segundos antes de lanzarlo.
- Incluso aún siguiendo esas reglas me he llevado algún susto de pulsar la tecla que no debía sin intención, aunque nunca he pasado una situción como la de mi compañero (por suerte). ¡Siempre he tenido una copia de lo borrado accidentalmente!.

Es muy costoso insertar registros, código o información y muy fácil de borrarla.

Feliz día del programador :)





6 sept. 2010

Obama bajará los impuestos a las empresas que inviertan en tecnología y ciencia - Opinión


Recientemente ha aparecido en meneame la siguiente noticia:
http://www.abc.es/20100905/economia/obama-empresas-201009051941.html

Aquí hay que analizar dos puntos muy importantes. La primera es la importancia de la ciencia y la segunda en las ayudas económicas a esta.

¿Como de importante es la ciencia?.
Hace poco ví un video de porque es importante la ciencia.
http://amazings.es/2010/08/29/por-que-es-importante-la-ciencia/

Como bién dice, si mirais a vuestro alrededor, todo lo que nos rodea es ciencia. Me parece sorprendente que tengamos acceso a un montón de información, cachivaches electrónicos moviles que muestran mejores gráficos que las videoconsolas de hace 10 años, la capacidad de plasmar en papel un documento que tienes en pantalla con total perfección, etc.

Realmente me maravillo más cuando miro una memoria MicroSD y pienso la cantidad de cosas que caben allí en esa fina capa que parece que vaya a romperse o salir volando si soplase el viento. Inovar en ciencia es hacer más barato y mejor lo que ya haciamos.

¿Como de importante es apoyar ciencia?.
Pues aquí está el punto malo y tiene que ver con la condición humana. Apoyar a la ciencia es sumamente importante pero hay que definir ¿que es la ciencia?. Pues la ciencia es hacer pruebas, trastear, sacar conclusiones, equivocarse, mejorar y finalmente obtener un conocimiento que te permite hacer algo más rápido.

Entonces, ¿que ocurre cuando se suvenciona la ciencia y el estado paga una suvención si trabajas en un proyecto?. Pues que no se consigue nada o poco, principalmente porque las empresas no desean los objetivos si no la suvención. Y es muy habitual encontrarse con chanchullos de todo tipo inventandose proyectos y trabajos inexistentes para obtener cualquier tipo de ingreso económico con el mínimo esfuerzo. Crear ciencia puede ser precisamente pinchar un XXXXX en un palo y decir que has inovado porque has intentando hacer algo diferente.

Por ello, es interesante la propuesta de Obama. No se trata de pagar suvenciones para que hagan invocación. Se trata de facilitar los costes administrativos o financieros a quienes quieran intentarlo. Pero si el producto es malo, tendrá perdidas de todas formas.

2 sept. 2010

¿Que hará este código? - Parte 1


Este es un ejemplo que ví hace tiempo que me parece muy curioso.

Antes de nada, no vale probar la aplicación, debeis adivinarlo y razonar la respuesta. A ver si acertais que haría este algoritmo escrito en java y por qué.
class A{
}
class B extends A{
}
class Principal{
  public void ejecutar(A obj){
     System.out.println("Clase A");
  }
  public void ejecutar(B obj){
     System.out.println("Clase B");
  }
  public static void main(String arg[]){
     (new Principal()).ejecutar(null);
  }
}

Las opciones que teneis es:
a) Visualiza: Clase A
b) Visualiza: Clase B
c) No compila.
d) Error en tiempo de ejecución (Exception).