Autocomplete=»off» valido para XHTML

Cuando escribimos un texto en un input de tipo text (input type=»text») nos encontramos que por regla general el navegador nos va a autocompletar lo que estemos escribiendo en ese momento con texto que ya hayamos escrito con anterioridad, recordando para un input que se llama «nombre» el o los nombres que hayamos introducido.

La practica del autocompletado es muy util siempre que tengamos formularios repetitivos, tales como los formularios de registro que suelen llamarse siempre de forma similar y siempre suelen pedir los mismos datos, evitandonos volver a escribir todos nuestros datos una y otra vez.

Existen casos en los que quizas no queramos que el navegador nos autocomplete ese texto, puede darse el caso que tengamos una tienda online que realiza el pago con tarjeta de crédito y no queramos que esa tarjeta de crédito se nos autocomplete. Para evitar esto, existe un atributo que es utilizado por la gran mayoria de los navegadores que es el atributo autocomplete=»on|off», que si se desactiva con el valor off, indica al navegador que no ha de autocompletar ese campo.

Aunque en muchos casos es muy buena practica usar el atributo autocomplete, el W3C no tiene reconocido este atributo como atributo de la etiqueta input, con lo cual al intentar validar y encontrarse con el atributo autocomplete, nos dara un error de validación. Para solucionar el error de validación lo que haremos sera utilizar javascript para añadir este atributo, así la funcionalidad seguira estando ahí, pero no tendremos problemas de validación.

Lo unico que deberemos hacer es añadir el siguiente código al final de la página, o al menos, justo despues de declarar el input

  

De esta forma conseguiremos que al introducir un texto en un input no se autocomplete por el navegador y si queremos autocompletar lo podamos hacer por javascript.

Un buen y bonito ejemplo de autocompletado de campos es el que use para muchoviaje en los campos de origen y destino

Evitar bloquear una tabla en SQL Server

En muchos casos es necesario hacer consultas hacia la base de datos que requieren de algo de tiempo para completarse, por ejemplo consultas estadisticas. En estos casos, suele ocurrir que SQL Server puede bloquear la tabla evitando que ningún otro hilo realice consultas sobre la misma hasta que la primera consulta haya finalizado, pudiendo provocar esto una considerable lentitud en una página web o una aplicación que utilicen bastantes personas.

Existe para SQL Server un ABS, un sistema para que a la hora de realizar una consulta, evitar que esta bloquee la tabla y asi nuestra aplicación siga funcionando correctamente mientras por detras se esta realizando la consulta tediosa que en otras circunstancias nos bloquearia la tabla.

Para evitar bloquear la tabla se ha de poner with(nolock) justo despues del nombre de la tabla, por ejemplo:

SELECT * FROM tabla with(nolock)

Esto es algo muy util ya que bien porque se nos olivde o simplemente porque no se conozca es muy util tenerlo a mano para utilizarlo en casi todas las consultas que son algo tediosas.

Segundo parón mensual

De nuevo y como ya sucedio el mes pasado, mi jefe tuvo la genial idea de que podiamos hacer un proyecto de 3 a 6 meses de desarrollo en tan solo 1 mes. Pero al fin se ha terminado y ya puedo respirar tranquilo, espero que durante al menos unas semanas que aprovechare para ir escribiendo articulolillos para el blog que tengo alguno que otro preparadete.

Símbolo del euro en xml o xslt sin utf-8

Durante el desarrollo de mi último proyecto, me encontré con un xml de transformación o xslt, donde debía de usar el símbolo del euro (€), pero esta transformada, que no deja de ser un xml, estaba codificada en iso-8859-1, y no podía cambiar la codificación. A la hora de añadir el símbolo del euro, si usaba directamente el carácter €, fallaba porque estaba mezclando codificaciones, y si usaba € como viene siendo en html, fallaba porque no es un carácter válido de xslt. La solución, usar los caracteres especiales, en este caso para el euro (€) es el €

Llamar a una función de un padre desde iframe

Aunque hoy en día y gracias a Ajax, no soy partidario de usar iframes, aunque en un proyecto en el cual por temas de tiempo, no podía hacerlo con ajax, tuve que conformarme con usar iframes. Durante el desarrollo, me encontre con un problema, que aunque pueda resultar una tontería, siempre viene bien tenerlo apuntado.

Cuando desde un iframe, queremos llamar a una función, que hemos declarado en la página padre, o página que tiene el código <iframe>, solamente deberemos de añadir window.parent, antes del nombre de la función, quedado la sintaxis así:

  window.parent.function(parametros)

Parón mensual

Bueno, por fin quedo algo libre para poder dedicar tiempo al blog. Durante el último mes he estado envuelto en un proyecto que me ha impedido dedicar ni un solo minuto al blog, ya que mi jefe tuvo la genial idea de adelantar 2 semanas los plazos previstos sin pensar en que quien debemos realizar el trabajo tendríamos que quedarnos horas extras y días festivos a trabajar, acumulando una media de 14 horas diarias programando.

Alineamiento de una imagen con CSS

En un proyecto importante en el que estoy trabajando tenemos que añadir una serie de nuevas funcionalidades a una aplicación muy grande y eso supone también modificar la web que visitan cientos de miles de personas al día. Al ver que mis compañeros de HTML están más bien peladitos me ofrecí voluntario para hacerla ya que daban libertad dentro de unos limites.

Al apañar la web para las nuevas características me encuentro con que esta hecha con el diseñador de webforms de Visual Studio, y me encuentro con cosas como align=»absBottom» en una imagen para centrarla verticalmente.

Como aparte de las modificaciones que debía de hacer y como me sobraba tiempo y me aburría, convertí la web de formato indefinido a XHTML correcto con CSS, tenia que arreglar ese tipo de cosas, así que el alineamiento de la imagen se puede hacer con CSS con el estilo vertical-align que tomaría los siguientes valores

  • top
  • left
  • right
  • middle
  • bottom

El código seria este:

  <img src="..." align="absBottom">

El nuevo código sería:

  <img src="..." class="middle" title="...."
 alt="...." />

Y la clase CSS seria:

  .middle {
    vertical-align: middle;
    /* Valores: top, left, right, middle, bottom */
  }

Como incrustar código Javascript en XHTML

En muchas ocasiones he escrito código Javascript en una web de XHTML y al intentar validar unas veces funcionaba y otras no. Probando un poco más me di cuenta que cuando escribía código Javascript con ampersans (&) y signos de menor o mayor (< >) el código no validaba. Es cuando caigo en la solución, si XHTML no deja de ser un XML, probemos a poner un CDATA.



....
....

Con esto ya podemos escribir código Javascript embebido sin que por ello no nos valide nuestra web.

SharpOs, un sistema operativo diferente.

SharpOs es un sistema operativo que en lugar de estar desarrollandose como la mayoría de los sistemas operativos en C o C++, este sistema operativo se esta desarrollandose completamente en C#. El proyecto es GNU y esta disponible su código fuente desde SourceForge o desde la web de SharpOs.

De momento se encuentra en una fase alpha pero he descargado el código fuente y compilado con SharpDevelop y lo he ejecutado con MVWare. La verdad es que me sorprende que funcione correctamente y bueno, es cuestión de esperar un poco a que este más desarrollado, pero ya de por si tiene muy buena pinta.

Captura de SharpOs

La anterior captura es una realizada con la compilación desde mi equipo con VMWare donde se aprecia la ayuda de los comandos, como aparece un nuevo comando «test» y cuando lo ejecutamos aparece el texto «Testeando la aplicacion…..».

Espero que vaya subiendo rápido, que tengo ganas de poder desarrollar alguna que otra aplicación para este sistema operativo.

Nuevo servidor

Estoy estrenando un nuevo servidor en www.guebs.com. Y de momento estoy contento porque ha aumentado la velocidad considerablemente, ademas de que el soporte es excelente. La velocidad es mas alta gracias a que es un servidor mas decente que el anterior y que esta hospedado en España, por lo que los tiempos de espera son ridículos y para los sudamericanos, los tiempos de espera pueden ser de 2 a 5 segundos, aunque tampoco es demasiado tiempo.

Espero que este cambio sea a mejor y poco a poco el blog vaya creciendo.

El baile del javascripy

Ahora que esta de moda el baile del chiki chiki, los compañeros de trabajon me enseñan el baile del javascripy.

¡¡¡Teclea, teclea!!!
El javascripy mola mogollón,
funciona en explorer y también en firefox.
Ponle javascripy a esa paginita,
que el javascripy la deja muy bonita.

Abre ventanas,
muestra mensajes,
valida formularios,
mi amol ya tu sabes!

Programan los seniors,
Programan los juniors,
Programa mi jefe con acentos en el function!

Y el javascripy se programa asi:
1 – el tag <script>
2 – el function vars
3 – el alert-confirm
4 – el return trú

Programa el javascripy,
Programa el javascripy,
programan los heavys también los frikis

Programan en la offis, programan en la uni,
Programan los fruittis y también los lunnis.

Programa Maradona esnifando una raya,
y Juan Carlos le dice: ¿Porque no usas ajax?

En el formulario de un triste portal,
pusieron javascripy y ya pudo validar
¡¡¡Validar!! ¡¡Validar, validarr, validarrr!!!

Y el javascripy se programa asi:
1 – el tag <script>
2 – el function vars
3 – el alert-confirm
4 – el return trú

Visto en anieto2k.

Declarar un método no heredable o final

Para aquellos programadores que llegan a .Net de la mano de PHP o Java, verán algo diferente el hecho de heredar métodos de clases. Cuando heredamos una clase en Java o PHP los métodos se sobrescriben redeclarándolos en la clase hija y cuando queremos evitar que una clase hija implemente un método, lo establecemos con la palabra reservada final.

Por ejemplo PHP se utilizaría para evitar la herencia:

public final function miMetodoNoHeredable() {
   //Codigo del metodo
}

En el caso de java es muy similar:

public final void miMetodoNoHeredable() {
   //Codigo del metodo
}

Pero en .Net aunque la base sigue siendo la misma es algo diferente. Para heredar un método, debemos de declarar el método como virtual y para declarar un método como final, usaremos la sentencia sealed (NotOverridable en VB). Para hacer un símil podríamos decir que la palabra reservada final de Java o PHP equivale en cierta medida a la sealed (NotOverridable en VB) de .Net.

Hay que apuntar que por defecto los métodos declarados en .Net son sealed, así que para heredarlos deberemos de declararlos como virtual e indicar a sus hijos que los métodos son override para que sobrescriban los valores del padre.

El caso de .net

// Ejemplo de C#
public sealed void miMetodoNoHeredable() {
   //Codigo del metodo
}
'Ejemplo de Visual Basic .Net o VB.Net
Public NotOverridable Sub miMetodoNoHeredable()
   'Codigo del metodo
End Sub
Scroll al inicio