Programadores con sentido del humor

28. July 2009 23:19 by Oscar.SS in Personal  //  Tags:   //   Comments (0)

El otro día, buscando ofertas de viajes en avión (muy típico en esta época), me encontraba en la web de una conocída agencia de vuelos y justo en el momento que me disponía a pagar, justo en el momento del click en el botón de confirmación, se produjo un error en la web y me mostrarón el siguiente mensaje de error.

¡Leerlo porque no tienes desperdicio!.

 

 

¡Me gustaría conocer al programador cachondo que se "kurró" estos comentarios!.

¿Cuál será la intención de un mensaje como este?. A los que nos dedicamos a esto seguro que le encontramos la gracia. En lugar de los sosos mensajes que solemos redactar. ¿Pero y al usuario?.

Lo cierto es que, hablando a nivel extrictamente de usuario fastidiado por el error, el mensaje causo efecto y en lugar de cabrearme me reí un rato y se lo enseñé a algunos compañeros de trabajo que no daban crédito. Eso sí, luego me tocó llamar por teléfono para averiguar si se había realizado el pago. Tuve suerte y con la llamada conseguí un billete más barato que el que pretendía pagar en un principio Money mouth

Paginación con XSLT y XML

25. July 2009 23:00 by Oscar.SS in XML  //  Tags:   //   Comments (0)

El motivo de este post es crear una forma de paginar el contenido de un archivo XML formateando los datos por medio de la tecnología XSLT.

En principio la idea es bien sencilla. Supongamos un archivo XML como el siguiente:

 

<?xml version="1.0" encoding="utf-8" ?>
<empleados>  
	<empleado id="1" nombre="Pedro" salario="45234€" />  
	<empleado id="2" nombre="Carlos" salario="45234€" />  
	<empleado id="3" nombre="Juan" salario="65362€" />  
	<empleado id="4" nombre="Antonio" salario="13134€" />  
	<empleado id="5" nombre="Manolo" salario="623462€" />  
	<empleado id="6" nombre="Aitor" salario="45234€" />
</empleados>
 

Lo que pretendemos es mostrar los elementos empleado del XML paginados de 2 en 2. En este caso tendremos un total de 3 páginas.

Podemos modificar el XML para que contenga un nodo raiz en el que guardaremos como atributos los datos necesarios para la páginación. Nuestro XML quedaría así:

 

<?xml version="1.0" encoding="utf-8" ?>
<pag posicionInicial="1" elementosPagina="2">
<empleados>  
	<empleado id="1" nombre="Pedro" salario="45234€" />  
	<empleado id="2" nombre="Carlos" salario="45234€" />  
	<empleado id="3" nombre="Juan" salario="65362€" />  
	<empleado id="4" nombre="Antonio" salario="13134€" />  
	<empleado id="5" nombre="Manolo" salario="623462€" />  
	<empleado id="6" nombre="Aitor" salario="45234€" />
</empleados>
</pag>
 

Lo mejor de esta técnica es que podemos añadir y modificar los atributos del nodo <pag> por medio de JavaScript mejorando la experiencia del usuario. Podemos cargar el XML entero en memoria y modificar los atributos ahorrando de este modo viajes innecesarios al servidor.

Ahora solo tendremos que recoger los valores de los atributos posicionInicial y elementosPagina en el código XSLT a modo de variables, tal y como se indica a continuación.

<xsl:variable name="start" select="pag/@posicionInicial" />
<
xsl:variable name="limint" select="pag/@elementosPagina" />
<
xsl:variable name="end" select="$start + $limint - 1" />
<
xsl:foreach select="pag/empleados/empleado[position() >= $start and position() <= $end]">          <xsl:sort select="@id" order="descending"/>

Aquí pondríamos todo el código HTML que fuera necesario.
</xsl:for-each>

 

Después de esto, por medio del evento onClick de una imagen o botón, tanto para avanzar como retroceder, llamaremos a una función JavaScript que se encarge en cada caso de aumentar (++) o disminuir (--) en 1 el valor del atributo XML posicionInicial.

En poco más de una semana...19 horas y 6 minutos en el aire

4. July 2009 13:32 by Oscar.SS in Personal  //  Tags:   //   Comments (2)

Resulta ser que nunca en mi vida he despegado un solo pie de la tierra. Es decir, que nunca había volado en un avión. Y esta semana se ve que lo he cogido con ganas.

Con la disculpa de unas merecidas vacaciones este año, he ido a Rivera Maya-Mexico a disfrutar de la playa, piscina, excursiones, deportes de agua, etc. Aquí es donde pasé encerrado 19 horas (ida+vuelta) en un avión a 9800 m de altura. Es un destino turístico muy típico pero la verdad que lo he pasado muy bien.

 

Montando en moto de agua

 

No solo es hotel, piscina y cocktels. Ahí muchas opciones para ponerse en contacto por medio de excursiones con la cultura Maya y la increible naturaleza del Caribe Mexicano. Además de motos de agua, quak, etc.

Pero los 6 minutos más excitantes han sido mucho más cerca, cerquita de Madrid, en Lillo-Toledo. En este emplazamiento perfecto para el paracaidismo podemos encontrar a los chichos y chichas de SkydiveLillo. Con ellos he disfrutado de un salto desde 4000 metros de altura en caida libre durante 77 segundos a 220 km/h. ¡¡La esperiencia más excitante de mi vida!!.

 

Video de caida libre.

 

Quiero mandar un saludo muy especial a Hispano (mi instructor de tandem) y a Mel (mi cámara). ¡¡Gente muy, pero que muy enrrolla!!.

Mucha suerte para Hispano cuando decida volver al sector de la tecnología Wink.

DataGridView: posicionar scroll

2. July 2009 08:51 by Oscar.SS in Desarrollo .NET, Desarrollo Windows  //  Tags: ,   //   Comments (0)

Esta es una cuestión muy simple y sencilla pero me ha parecido correcto incluirla en un post porque es de ese tipo de cosas que siempre se preguntan y nadie escribe sobre ello porque parece demasiado trivial.

Supongamos el caso de un DataGridView que contiene multitud de líneas y el usuario se desplaza por el mismo con un scroll vertical. En un momento dado el usuario cambia el contenido de una celda y actualiza para que los cambios sean volcados en la base de datos que alimenta el DataGridView.

¿Qué ocurre?. Que al actualizar el scroll sube a la parte de arriba, perdiendo de vista en la pantalla el cambio efectuado.

La solución es la siguiente:

            int indiceFilaSelec dataGridView1.CurrentRow.Index;
            
dataGridView1.FirstDisplayedScrollingRowIndex indiceFilaSelec;

También se puede obtener el índice de la fila seleccionada con dataGridView1.SelectedRows[0].Index;

Recent Comments

Comment RSS

Month List