jueves, 23 de julio de 2009

Geocities is Closing

Revisando mi antiguo mail de yahoo, me llega la noticia de que Yahoo esta dando por terminado su servicio de Geocities. Pienso que esto es resultado de la web2.0, los modelos de informacion y comunicacion que se usan hoy en dia.

Ya no hay nuevas cuentas y la fecha de cierre total es el 26 de Octubre del 2009, se recomienda entrar y respaldar su informacion. Aun asi no hay por que estar tristes, continua el hosting service Yahoo.

lunes, 20 de julio de 2009

Vim's scripting language

Hace unos dias leyendo las noticias de cofradia me encontre con información sobre vim scripting, como algunos de uds tal vez imaginen, puedo decir que Vim es mi edito de textos favoritos por que es muy rapido, y sobre todo por el espacio en disco.

La idea de hacer a mi vim un poco mas robusto o simplemente conocerlo mas, me entusiasmo y me puse a leer el articulo. El lenguaje de scripts de vim, segun el articulo es un lenguaje con muchas caracteristicas como variables, espresiones, control de flujo, estructuras de datos, funciones, IO file, excepciones, debugger, entre muchas cosas.

Como comenzar, pues bien rapidamente ocupamos los paquetes vim y vim-scripts, desde luego que la documentacion que en caso de tenerla podemos consultarla de la siguiente manera.
:help vim-script-intro

Como mandar a ejecucion nuestras pruebas
:source /full/path/to/the/scriptfile.vim

El resto es comenzar a adentrarnos en este lenguaje.

jueves, 2 de julio de 2009

Libros digitales libres y gratuitos para informáticos


El dia de hoy recibimos en el buzon de correo a travez de la lista de distribucion de Gulmore, una invitacion a una nueva iniciativa de distribuir libros digitales con licencias libres: Speed Books Argentina.

La idea es excelente por que como lo dicen ellos mismos en el correo: " Creemos que el conocimiento debe ser libre. Coincidimos con los postulados del software y la cultura libre. Creemos que podemos hacer algo para realmente intentar reducir la tan mentada brecha digital, por ello tomamos esta iniciativa. Esperamos que nuestro trabajo sea util al publico en general, a estudiantes y profesionales informaticos, a autodidactas e idoneos informaticos, y a docentes de asignaturas relacionadas con la informatica."

¿Como apoyar?, los chicos de este proyecto nos comentan que es muy simple:
  • Informar a sus contactos sobre la existencia de nuestro sitio.
  • Si tienes un blog o sitio web personal puedes escribir un articulo.
  • Informando a tus lectores de la existencia de nuestro sitio, tambien
    pueden incluir un enlace hacia nuestro sitio.
  • Pueden avisarnos de la existencia de libros con licencias libres
    sobre informatica.
  • Pueden informarnos si encuentran un enlace roto o incorrecto.
  • Contactar con nosotros a traves de este medio para realizar cualquier tipo de sugerencia. [ speedbooksargentina@gmail.com ]
Quienes nos dejan sus firmas son Vanesa Aguinaldo, Javier Constanzo, Sebastian Dominguez y Fabian Flores Vadell.

domingo, 21 de junio de 2009

Java: comparacion de String Class en una sentencia Case

Hace unos dias platicando con mi amigo Ernesto, le comente que trabajando con el String Class y sus comparaciones con if-then-else me estaba creando un codigo no muy estetico en cuanto a las identaciones y anidamientos que debia tener dentro de mi codigo.

Buscando soluciones esteticas y sobre todo eficientes, Ernesto me comento que habia la posibilidad de resolver este problema con una tabla hash, asi que me di a la tarea de ver las APIs de las clases que me podrian servir. La implementacion es como sigue:


//Instancia del hashtable, se agregan los valores que esperamos recibir
Hashtable action = new Hashtable();

//Se registran las cadenas y los valores que van a tener en hashtable
action.put("list", new Integer(1));
action.put("new", new Integer(2));
action.put("edit", new Integer(3));
action.put("rm", new Integer(4));

//Se intenta capturar la excepcion en el caso de que llegue
//otro valor distinto a los esperados en hashtable
try{
switch( (Integer) action.get( myString ) ){
case 1:
//codigo para cuando llega una cadena "list"
case 2:
//codigo para cuando llega una cadena "new"
case 3:
//codigo para cuando llega una cadena "edit"
case 4:
//codigo para cuando llega una cadena "rm"
}
}
//En caso de llegar cadena no registrada se captura la excepcion
catch(NullPointerException e){
//codigo de exepcion, algo asi como un "default" dentro del case
}