Codetcha: CAPTCHA resolviendo Javascript

La verdad es que este CAPTCHA es muy friqui, pero es una idea interesante que quizás se pueda utilizar. Se trata de un CAPTCHA que en vez de tener que escribir una palabra, hay que modificar un código Javascript para que no tenga errores y así validar el formulario.
codetcha.png
Para pasar el CAPTCHA hay que eliminar todos los errores, se puede ir viendo si el código es correcto y si no es así, qué errores sigue habiendo. El código de Codetcha se puede usar para clases o ejemplos de Javascript, porque me da la sensación de que no es muy accesible este CAPTCHA.
Aún así la idea se podría sustituir usando matemáticas en vez de Javascript.
Codetcha

Javascript para realizar drag y resize

Buen script que nos permite mover nuestras capas mediante drag&drop y cambiarlas de tamaño.
dragresize.png
Funciona con posicionamiento relativo y absoluto de los elementos en la página. Además permite personalizar los estilos mediante CSS. No es obtrusivo. Es posible indicar tamaños máximos y mínimos para las cajas y es compatible con la mayoría de los navegadores.
DragResize
Vía / Ajaxline

Capturar la tecla CONTROL mediante Javascript

A la hora de darle una funcionalidad más enfocada a aplicaciones de escritorio (por ejemplo con un editor WYSIWYG), suele ser necesario usar combinaciones de teclas CONTROL+tecla para ejecutar ciertas acciones.

Capturar la combinacion CTRL+tecla en javascript es muy sencillo:

var isCtrl = false;
document.onkeyup=function(e){
if(e.which == 17) isCtrl=false;
}
document.onkeydown=function(e){
if(e.which == 17) isCtrl=true;
if(e.which == 83 && isCtrl == true) {
// acción para CTRL+S y evitar que ejecute la acción propia del navegador
return false;
}
}/

La explicación es sencilla, cuando se pulsa CTRL+tecla se producen dos eventos de teclado, por lo que no es posible saber si se ha ejecutado en una sola llamada. Por ello primero comprobamos si se pulsa la tecla CTRL y se pone un flag a verdadero y luego dependiendo de la tecla que queramos, si se detecta que se pulsa y está el flag activo, se realiza la acción. Hay que devolver false para que el navegador no ejecute la acción que tiene por defecto. Cuando se deja de pulsar la tecla CTRL se pone el flag a false.

How to create Ctrl+Key shortcuts in Javascript

Puntos a tener en cuenta a la hora de elegir framework de Javascript

Actualmente existen muchos framworks de Javascript, normalmente la gente tiene su favorito y es el que suele usar siempre, pero para aquellos que no sepan cual elegir estos consejos le pueden venir bien:

  • Rapidez: los usuarios esperan agilidad a la hora de mostrar la página, da igual lo bien diseñada que esté o los efectos que muestren. Por ello es muy importante que el framework tenga buen rendimiento y que sea rápido. Puedes comprobar las velocidades de 3 frameworks aquí.
  • Tamaño del js: el tamaño es imporante en dos aspectos: lo que tarda en cargarse en la página y el ancho de banda que consume. Yo añadiría que en los frameworks que te permiten seleccionar que componentes queremos añadir, solo seleccionemos los necesarios. A parte, siempre viene bien comprimir el js.
  • Documentación: es como aprender un lenguaje nuevo, da igual que sepas Javascript, no se parecerá demasiado a lo que hayas usado anteriormente. Cuanto mejor esté documentado mejor.
  • Comunidad: lo más importante de un proyecto open source es la comunidad que hay detrás de ella. Los miembros de la comunidad aportan ayuda, código, ejemplos y mucho más que nos facilitará el trabajo.
  • Módulos: como ya he dicho anteriormente, los módulos nos permiten incluir solo las funcionalidades que deseamos, ahorrando en rendimiento.
  • Quién lo usa: el hecho de que sitios importantes usen un framework es un reconocimiento a su calidad.

8 Considerations For Choosing Your Javascript Framework

Librería Javascript para hacer zoom en imágenes

FancyZoom es un script que nos permite realizar zoom de nuestras imágenes mediante Javascript. Hace aparecer la imagen mediante un zoom progresivo y transparencia. Además muestra el title del enlace en un recuadro.
fanzyzoom.png
Las imágenes ser precargan automáticamente cuando el ratón pasa por encima de la imagen, por lo que se reduce la demora en la persentación. El único fallo que encuentro es que hay que añadir un onload en el body, pero bueno, podemos cambiar la librería para que se haga automáticamente.
FancyZoom

Muestra las fechas de forma amigable con jQuery

Interesante script realizado con jQuery que nos permite mostrar las fechas con un formato más cercano al usuario, en vez de mostrar la fecha en sí, mostraría hace cuanto ocurrió esa fecha.

prettyDate("2008-01-28T20:24:17Z") // => "2 hours ago"
prettyDate("2008-01-27T22:24:17Z") // => "Yesterday"
prettyDate("2008-01-26T22:24:17Z") // => "2 days ago"
prettyDate("2008-01-14T22:24:17Z") // => "2 weeks ago"
prettyDate("2007-12-15T22:24:17Z") // => undefined

En el ejemplo vemos que el último caso devuelve undefined, por lo que en esa circunstancia no modificará la fecha.

El autor también nos ofrece un ejemplo para modificar la fecha de nuestros enlaces en los posts. Si tenemos el siguiente enlace:

<a href="/2008/01/blah/57/" title="2008-01-28T20:24:17Z">January 28th, 2008</a>

podríamos acceder a los enlaces y mediante el title podemos modificar la fecha:

$("a").prettyDate();
setInterval(function(){ $("a").prettyDate(); }, 5000);

JavaScript Pretty Date

DateSlider: seleccionar fechas mediante un slider

DateSlider es un javascript realizado con Prototype/Scriptaculous que te permite seleccionar fechas con un simple slider.

dateslider.png

Su uso es sencillo, a parte de añadir los scripts y estilos, tan solo es necesario incluir este texto:

<div id = "slider-container">
<div id = "sliderbar"></div>
</div><br />
<form>
<label for = "datestart">Start:</label> <input type = "text" id = "datestart">
<label for = "dateend">End:</label> <input typde = "text" id = "dateend">
</form>

Y este script:

p_oDateSlider = new DateSlider('sliderbar', '2007-10-01', '2008-10-01', 2001, 2009);
p_oDateSlider.attachFields($('datestart'), $('dateend'));

Introducing: The sliding date-picker

Gracias Carlos por el aviso

CodeMirror: consola Javascript para tus páginas web

CodeMirror es una librería realizada con MochiKit que nos permite incluir una consola de Javascript en nuestras aplicaciones web. Un ejemplo perfecto para el funcionamiento es el libro de Javascript online Eloquent Javascript, el cual muestra ejemplos javascript y usa la consola para poder ejecutarlos.

codemirror.png

Nos muestra el código parseado y resaltado, además nos permite modificarlo y ejecutarlo, viendo los resultados en una ventana diferente.

Además es sencillo de utilizar:

var editor = new CodeMirror(CodeMirror.replace("inputfield"), {
parserfile: ["tokenizejavascript.js", "parsejavascript.js"],
path: "lib/codemirror/",
stylesheet: "lib/codemirror/jscolors.css"
});

CodeMirror

Sugerir búsquedas con Javascript no obtrusivo

Ya hace tiempo explicamos como hacer un autocompletado en cajas de texto, pero claro, no todo el mundo tiene ganas o tiempo de hacerlo uno mismo. Por ello, no hay nada mejor que usar scripts de otras personas que nos facilitan el trabajo.
searchfield.png
SearchField es un javascript no obtrusivo que nos permite añadir sugerencias de búsqueda en nuestras cajas de texto de forma rápida y sencilla. Tan solo hay que añadir un javascript y enlaces a las librerías y a los estilos, para que funcione.
La única pega que le veo es que las palabras de sugerencia están dentro de una variable Javascript y no se realizan mediante llamada Ajax para poder así obtener datos dinámicos, pero bueno, no parece complicado modificarlo para que permita esta opción.
Style Your Website’s Search Field with JS/CSS
Vía / WebAppers