links for 2007-06-19

|

My-BIC: otro framework Ajax

My-BIC es otro más de los numerosos frameworks que han aparecido para desarrollar aplicaciones Ajax. Ofrece 3 ficheros y un diseño que permite centrarte en realizar las cosas, más que en iniciar la tarea, siendo válido para PHP4 y PHP5.
Ofrece soporte para XML, JSON y texto en las transacciones Ajax, a parte de funcionar para Safari, Firefox, IE y Opera.
Dentro de las novedades que ofrece la recién versión 1.0, nos encontramos con: facilidad para trabajar con formularios, debug, integración con Firebug.
My-BIC
Vía / PHPDeveloper.org

solidDB para MySQL

solidDB.gifsolidDB es una versión más rápida para MySQL que incluye el sistema de almacenamiento solidDB, el cual maneja mejor volúmenes de transacciones pesadas y un gran número de usuarios concurrentes.
Es compatible 100%, ya que incluye el mismo código que MySQL. Los desarrolladores pueden acceder a solidDB para MySQL con los mismos drivers de MySQL y usar las mismas herramientas que antes.
Está diseñada para tomar ventaja de las configuraciones multiprocesador y multicore. Debido a que está diseñado para multiples threads, los rendimientos para un número elevado de usuarios son mejores, habiendo datos que lo demuestran.
solidDB para MySQL

links for 2007-06-16

Controlar el número de teclas de un textarea

Algo que hay que tener en cuenta muchas veces cuando trabajamos con formularios es la longitud del texto que introducimos en los textarea, ya que en muchos casos esa información se almacena en la BD y puede que el campo en dónde se guarda tenga un límite de tamaño.

textarea.png

No tengo muy claro según lo que dicta la accesibilidad y la usabilidad, si el ejemplo que muestro es del todo correcto. Lo normal es que si se supera la longitud de texto máximo, no deje introducir ningún carácter más. Pero en este caso simplemente vamos a avisar mediante una barra de progreso cuánto texto hemos introducido y cuánto nos queda. ¿Por qué? pues porque personalmente me ha pasado que muchas veces, al escribir mirando el teclado, ni me fijo en lo que pasa en la pantalla, por lo que me he podido pasar pulsando teclas un buen rato y no fijarme en que no se escribía nada. O también, cuando se hace un copy/paste, el texto puede ser mayor que lo permitido. En ambos casos es mejor tener el texto completo e ir reduciéndolo.

Como creo que quizás pueda serle útil a alguien este ejemplo, el desarrollo va a ser muy sencillo, ya que algunas veces los comentarios que recibimos de scripts antiguos son de gente con poco conocimiento. Luego, quien quiera usar JSON o Ajax (no sé para qué) o lo que quiera, que lo haga.

El procedimiento es sencillo, disponemos de un textarea, con un ancho definido mediante estilos. También existe una capa del mismo ancho que el textarea, y que se situará debajo del textarea. En el textarea se capturará el evento onkeyup, para que cuando se pulse una tecla, podamos ver la longitud del texto y modificar la barra de progreso.

<textarea onkeyup="progreso_tecla(this)" value=""></textarea>
<div id="progreso">(0 / 250)</div>
textarea {
width: 300px;
height: 200px;
}
#progreso {
background: url(textarea.png) no-repeat;
background-position: -300px 0px;
width: 300px;
height: 14px;
text-align: center;
color: #000000;
font-size: 8pt;
font-family: Arial;
text-transform: uppercase;
}

La barra de progreso funciona de la siguiente manera, el fondo es una imagen con el progreso, inicialmente estará desplazada a la izquierda el tamaño de la barra. Por ejemplo, si la barra tiene un ancho de 300px, la posición izquierda del fondo será -300px. Cuando se pulse una tecla, se recalculará la posición izquierda, según la longitud del texto. Si la longitud supera el máximo, el fondo no será la imagen, sino de color rojo para avisar del error.

var max=250;
var ancho=300;
function progreso_tecla(obj) {
var progreso = document.getElementById("progreso");
if (obj.value.length < max) {
progreso.style.backgroundColor = "#FFFFFF";
progreso.style.backgroundImage = "url(textarea.png)";
progreso.style.color = "#000000";
var pos = ancho-parseInt((ancho*parseInt(obj.value.length))/250);
progreso.style.backgroundPosition = "-"+pos+"px 0px";
} else {
progreso.style.backgroundColor = "#CC0000";
progreso.style.backgroundImage = "url()";
progreso.style.color = "#FFFFFF";
}
progreso.innerHTML = "("+obj.value.length+" / "+max+")";
}

Ejemplo

WYMeditor: editor XHTML/CSS

WYMeditor es un editor WYSIWYM basado en web. La característica principal de este navegador es centrar la atención del usuario en la estructura de la página (layout).
wymeditor.png
WYMeditor ha sido creado para generar código XHTML estricto perfectamente estructurado, según las especificaciones XHTML de la W3C. El código no puede ser contamidano por información visual como estilos de fuentes, tamaños, bordes o colores. El usuario define el significado del contenido, por el cual será determinado su aspecto mediante la hoja de estilos. El resultado es fácil y rápido de mantener.
WYMeditor
Vía / SitePoint Blogs

Criticas a la guía de accesibilidad de la W3C

Si estos días hemos estado hablando de accesibilidad según la W3C, hoy nos toca de hablar de las críticas que se han realizado desde un grupo llamado WCAG Samurai, un grupo de desarrolladores liderados por Joe Clark.

Las críticas siempre nos pueden ayudar a mejorar y esperemos que al menos tomen en cuenta estos puntos para la revisión final de la WCAG 2.0.

Las críticas están agrupadas según los diferentes puntos de la WCAG 2.0:

  • Proporciona alternativas equivalentes para los sonidos y los vídeos.
  • No dependas del color únicamente.
  • Usa las etiquetas y los estilos correctamente.
  • Usa el lenguaje natural de forma clara.
  • No uses tablas para layouts.
  • Cuidado con el uso de las nuevas tecnologías.
  • Cuidado con los contenidos que cambian con el tiempo (parpadeos, …).
  • Diseña con independencia del dispositivo.
  • Usa soluciones intermedias.
  • Usa las guías y las tecnologías de la W3C.
  • Ofrece información orientativa y del contexto.

WCAG Samurai Errata for Web Content Accessibility Guidelines (WCAG) 1.0

links for 2007-06-14