Monthly Archives: Septiembre 2008

Bucle do-while en VisualBasic

Llevo tiempo currando con Visual Basic .Net, pero como persona formada desde hace años en lenguajes tipo C (C, C++, Java, C#, PHP, etc) el paso a programar en Visual Basic, cuesta mucho y cosas tan cotidianas como hacer un bucle, un switch o similares pueden convertirse en una peligrosa trampa que nos consumira muchos minutos muy valiosos.

La ultima que me he topado ha sido el bucle do while. En cualquier lenguaje tipo C, practicamente independiente del lenguaje estos bucles son iguales:

  do {
    sentencias
  } while(condicion);

Pero como no, estamos con Visual Basic y aqui todo funciona de manera diferente, es como nuestro tipico amigo que siempre lleva la contraria a todo. Por ejemplo para hacer un bucle do-while (me sorprende que en 9 meses sea la primera vez que me vea obligado a hacerlo, el bucle es do-loop-while, siendo su sintaxis

  Do
    sentencias
  Loop While condicionn

Puede que la gente que conozca o programe en Visual Basic lo vea una tonteria, pero para gente como yo que por razones laborales se ven obligadas a programar en dicho lenguaje y que por muchos meses se que lleve sigan prefiriendo C# a VB.Net, cosas tan cotidianas pueden convertirse en un minimundo.

Ya de paso y para aprovechar el post, explico que los bucles do while, son bucles que se recorreran igual que los while, en funcion de una condicion que de ser cierta dara una vuelta mas al bucle y que la principal diferencia entre los bucles while y do while, radica en que el while, primero comprueba la condicion antes de hacer una iteracion al bucle, mientras que los do while primero dara una iteracion al bucle y al final comprobara si debe de seguir haciendo iteraciones. Dicho de otro modo, el el while, primero comprobamos que debemos entrar al bucle y de ser cierto, entramos, en los do while, primero entramos al bucle y al final de este comprobamos si debemos dar una vuelta mas.

Nueva etapa Linux

Hace ya un año, arregle un viejo ordenador que tenia en casa de mi madre y que abandone al independizarme. Cuando me puse a mirar cosas para arreglarlo empece a cambiar y cambiar y al final le cambie casi todo menos la caja de la torre, los 2 cd's y un cacharrito que es un cenicero con mechero como el de los coches que va en un slot de cd que me regalo la parienta hace unos 5 años o asi.

Cuando me encontre con un ordenador la poya de pontente y como ya tenía el portatil con Windows XP y yo era feliz, decidí meterle primero PCLinuxOS y luego Ubuntu. El problema vino de mano de Microsoft (que sinverguenzas, siempre igual xD) ya que me pasaron un Windows Vista y la verdad queria verlo y juguetear con el (como me arrepiento) así que lo instale machacando lo que habia por pequeños problemas que tuve con Ubuntu. Al relativemente poco tiempo me cambie de trabajo y empece a programar con tecnologias de Microsoft por lo que entre el curro, el poco tiempo, las pocas ganas o pereza y que me venia bien tener el Windows con el Visual Studio y como no para hecharme un vicio de vez en cuando, abandone la idea de instalar Linux de nuevo.

Durante este año, mi portatil con unos 4 años va acumulando toda la mierda que puede acumular un Windows con actualizaciones, programas, bases de datos, mugres, mugres y mas mugres. Al final he decidido aplicarle la eutanasia a mi portatil para no verlo sufrir asi y lo he formateado. El formateo fue un cachondeo y ya prepare el post de como lo hice porque es digno de ver la que tuve que liar.

Al final consegui instalar un Ubuntu 7.10 y actualizar a Ubuntu 8.04 por internet. Todavia tengo que configurar muchas cosas, pero tiene todas las papeletas de que lo desinstale e instale un PCLinuxOS ya que me va mas rapdio y mejor.

La parte positiva es que vuelvo al mundo Linux de nuevo y no vuelvo solo ya que mi querida novia si quiere ver el correo y navegar por internet tendra que usar Linux y usar Firefox o WillyFox como lo llama ella. Soy perverso.

Escapar texto en una transformada XSLT

Hace poco escribí como escribir el símbolo del euro en una transformada XSLT. Para completar lo que ya comenté en su momento, explicaré como se escapan caracteres en una transformada para no tener que recurrir a buscar códigos especiales de HTML tal como el €.

Para escapar texto dentro de una transformada existe un parámetro llamado disable-output-escaping que toma los valores yes|no, en función de si queremos o no deshabilitar que se escapen caracteres. Este atributo se aplica a 2 etiquetas de XSL, la etiqueta xsl:text y la etiqueta xsl:value-of, aunque seguramente se aplique ha alguno más.

Ejemplo de como funciona:

  
     
  

Cuando aplicamos disable-output-escaping sobre xsl:value-of, este deshabilitara el escapado si así se lo indicamos sobre el contenido de la variable. Por el contrario, al aplicarlo sobre el xsl:text, necesitamos poner el texto a escapar encerrado entre CDATA, ya que sino, puede dar errores.