links for 2006-06-20

| |

Laboratorio: realizar drag and drop de elementos HTML

Dentro de la Web 2.0 se intentan hacer cosas menos web y más tipo aplicación de escritorio. Una de estas cosas es realizar un drag and drop. Esto nos puede ser útil para interactuar con elementos, por ejemplo, tenemos una lista de productos, pinchamos en uno y arrastramos en otro, obteniendo una comparativa de los productos. Bueno, las aplicaciones que le podemos dar depende de nuestras necesidades y de nuestra imaginación. Eso sí, la forma de realizarlo es la misma.
drag.png
En el ejemplo que hemos creado, hacemos que el elemento seleccionado se posicione encima del elemento sobre el que realizamos el drop. También hay que tener en cuenta, que en este caso, el drag&drop que hacemos es pinchando-moviendo-pinchando, no pinchando-moviendo-soltando. Realmente también se podría hacer así, pero como lo hemos hecho válido para texto, si lo hacemos de la manera normal, se podría ir seleccionando el texto según se mueve el ratón.

Read More “Laboratorio: realizar drag and drop de elementos HTML”

|

Cosas que no hay que hacer cuando usas AJAX

Siempre es bueno aprender de todo, y una de las mejores formas de aprender es de los fallos, si son los tuyos, mejor, pero si son de otros, tambien bien. En este caso, se trata de un estudio sobre Live.com y algunas cosas que han encontrado que no son buenas a la hora de seguir.

  • Cuidado con las comunicaciones: el que AJAX se conecte al servidor para refrescar la página y no nos demos cuenta, tampoco quita que tengamos que estar conectando todo el tiempo. El número de conexiones repercute en el ancho de banda, lo cual puede ser negativo para el cliente y para el servidor.
  • Tratar con XML es lento: cierto que el XML es muy bueno para transmitir datos, es legible para el programador y para el servidor, pero pasearlo nos puede llevar demasiado tiempo. Posible recomendación: JSON.
  • Ir cargando la página poco a poco: las nuevas aplicaciones web suelen requerir de mucha programación, lo cual puede tardar en cargarse, y cuando si no se va mostrando algo, el usuario pensará que la página es lenta, por eso es preferible ir cargando lo necesario y luego ir cargando el resto, así el usuario no se desesperará.

Vía / ZDNet.com

links for 2006-06-19

links for 2006-06-18

links for 2006-06-17

|

Simular dominio en localhost con Apache

Una cosa que siempre me ocurre cuando estoy trabajando en mis propios proyectos, es que me creo una carpeta para cada uno de los proyectos dentro del raíz (root) y no puedo usar paths absolutos ya que en el servidor real no usaré ese directorio.

Por ejemplo, estoy creando un nuevo proyecto llamado proyecto1 y para trabajar en local tengo la ruta siguiente: http://localhost:8080/proyecto1, pero cuando lo suba al servidor, será http://proyecto1.com. Voy a tener problemas si quiero usar los paths sean absolutos (“/imagenes/fondo.png”), porque en local debería tener antes el directorio del proyecto (“/proyecto1/imagenes/fondo.png”). Lógicamente, no puedo estar trabajando con paths relativos y luego pasarlos a absolutos cuando lo suba al servidor, puedo liar una buena.

¿Qué solución me queda?, pues una de ellas es la que uso desde hace tiempo, quizás no la más limpia, pero si es bastante sencilla.

Primero tengo que acceder al fichero hosts, que suele encontrarse en la ruta C:\windows\system32\drivers\etc, y añadir la siguiente línea:

127.0.0.1 proyecto1

Con esto lo que conseguimos es que se reconozca el dominio proyecto1 como nuestra propia máquina (127.0.0.1).

Y lo siguiente que tenemos que hacer es modificar el fichero de configuración de Apache (httpd.conf) e incluir el nuevo host.

NameVirtualHost proyecto1:8080
<VirtualHost proyecto1:8080>
DocumentRoot "C:/proyectos/proyecto1"
ServerName proyecto1
</VirtualHost>
<Directory "C:/proyectos/proyecto1">
Allow from all
</Directory>

El por qué Vista se está retrasando tanto

Windows VistaUn blogger de Microsoft, manager de desarrollo de Vista, explica el por qué de los retrasos que está sufriendo el futuro sistema operativo de Microsoft.
Entre las cosas que resalta es que el código de Vista es complicado, siendo lo que realmente lo complica, no los componentes en sí, sino las dependencias entre estos, habiendo hasta 50 capas de dependencia. También resalta que los procedimientos repercuten a muchas personas, por ejemplo, pedir que una persona rellene una hoja de cálculo puede implicar que muchas personas tengan que dedicar su tiempo a ello.
Tambien hace referencia a las 50 millones de líneas de código, frente a las 40 millones de XP, y a los 2000 desarrolladores que deben realizarlas. La verdad es que me hubiera gustado saber el número de analistas, jefes de equipo, jefes de proyecto, etc… algo que en España suele ser un tanto desmesurado (¿alguien se acuerda del chiste de los remeros?). Aunque estas cifras no tienen por qué implicar un retraso, el hecho viene cuando como media un desarrollador en EE.UU. produce unas 6500 líneas al año, y uno de Vista tan solo 1000.
Algo que me ha gustado mucho leer es el problema que tiene con los gerentes, los que solo te piden fechas y llegar a tiempo, cuando es imposible por mil motivos, pero ellos solo saben de sus números. El comentario sobre el traje de Armani en el cuerpo gorde de un vice-presidente de Microsoft, me ha recordado sobremanera a la película Trabajo Basura.
Da gusto ver que los problemas a los que te enfrentas cada día son los mismos que existen en grandes empresas como Microsoft, de la cual tienes que oir maravillas en la televisión de boca de una de las directivas, pero que en el fondo es más de lo mismo.
The World As Best As I Remember It: Broken Windows Theory
Vía / Digg

links for 2006-06-16

|

Crear nuestros propios checkboxes y radio buttons mediante CSS

A veces dependemos del navegador en aspectos de diseño, un caso bastante común es con los checkboxes y radio buttons, no son como nosotros queremos y difieren según el navegador que usemos.

fuglychecks.pngEsto se puede solucionar mediante CSS, para ello deberemos crearnos una imagen que contenga todos los estados del botón (seleccionado, no seleccionado, con foco y sin foco). Como se puede apreciar, la imagen contiene todos los posibles estados uno debajo del otro, ya que mediante estilos, usaremos una porción de la imagen para mostrar el estado correspondiente.

Para poder realizar este efecto es necesario usar la etiqueta label, la cual hará referenia al checkbox o al radio button, los cuales son necesarios ocultar para poder sustituirlos por la imagen (que estará ligada al elemento label).

Tenemos estos elementos HTML:

<input type="checkbox" id="opc1"/><label for="opc1">Opcion 1</label>

Los estilos iniciales para el input y para el label son los siguientes:

input[type="checkbox"] {
visibility: hidden;
width: 0px;
height: 0px;
padding: 0px;
margin: 0px;
}
label {
padding-left: 20px;
height: 16px;
}

Y por último, los estilos para los distintos estados del input son los siguientes:

input[type="checkbox"] + label{
background: url("imagen.png") 0 0 no-repeat;
}
input[type="checkbox"]:focus + label{
background-position: 0 -16px;
}
input[type="checkbox"]:checked + label{
background-position: 0 -32px;
}
input[type="checkbox"]:checked:focus + label{
background-position: 0 -48px;
}

Styling Checkbox and Radio Graphics With Only CSS

Vía / Digg