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

|

Floatutorial

Un impresionante tutorial que nos va enseñando paso a paso como posicionar elementos HTML con float y clear. Nos enseña con ejemplos:

  • Información general, definición de conceptos, explicación de float y clear.
  • Posicionamiento de una imagen a la derecha, añadiéndole márgenes y bordes.
  • Posicionamiento de la imagen y su pie de foto, aplicando bordes.
  • Crear thumbnails.
  • Usar listas de elementos para crear botones “Anterior” – “Siguiente”.
  • Usar listas de elementos para crear pestañas.
  • Crear efecto de letra inicial de párrafo de tamaño superior al resto.
  • Estilo de dos columnas.
  • Estilo de tres columnas.

Floatutorial

Vía / Dzone

links for 2006-06-15

|

Realizar caché mediante PHP

Interesante artículo sobre como cachear nuestras páginas cuando usan la base de datos para almacenar la información. Usar la BD para guardar los datos es bastante útil cuando se quiere modificar la página con facilidad o cuando se quieren usar plantillas.
El caso es que estas páginas no suelen modificarse con frecuencia, por lo que al acceder a ella, se accede a la BD para obtener los mismos datos, generar la página web y mostrarla, cosa que se ha hecho anteriormente. Por eso, este script propone guardar la página en un directorio y acceder a ella cuando el tiempo de creación y el actual no supera un cierto valor.
Para realizar este script, el auto usa las funciones de control de salida que ofrece PHP. Un script fácil de entender y que nos puede ser muy útil.
PhP Caching
Vía / Dzone