Favicon invisible

Diseño web, Maquetación HTML y CSS Sin comentarios »

La búsqueda del archivo favicon.ico es uno de los principales generadores de errores 404 en los logs. Para evitar esto, podemos incluir un favicon invisible en nuestros html y evitar que el navegador busque uno.

<link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" />

Via: Blog de David Walsh

Cheat Sheet de HTML5

Diseño web, Maquetación HTML y CSS Sin comentarios »

Hace tiempo hablabamos de la utilidad de las Cheat Sheets, o guias rápidas de referencia.

Navegando por el blog Woork me he encontrado con una muy interesante sobre HTML5.

html5cheatsheet

Podéis descargarla en alta resolución aquí.

Créditos a Antonio Lupetti por la imagen ilustrativa y la guía.

HTML5 en Internet Explorer

Diseño web, Javascript, Maquetación HTML y CSS Sin comentarios »

Este script permite que versiones anteriores a IE9 acepten elementos de HTML5 como <article>, <section> o <nav>. Se inserta dentro de una condicional de IE para evitar que otros navegadores lo incluyan.

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Más información en remysharp.com:

http://remysharp.com/2009/01/07/html5-enabling-script/

Hawiduu CSS

Diseño web, Maquetación HTML y CSS Sin comentarios »

Hawiduu es otro Framework CSS, similar a Tripoli (el cual mencionamos hace tiempo), pero con la diferencia de estar orientado para HTML5.

Ejemplo y descarga aquí: http://brad.hawidu.com/test.html

10 errores comunes al diseñar bases de datos

Bases de datos Sin comentarios »

Aquí dejo una lectura muy recomendada:
Ten Common Database Design Mistakes via simple-talk

10 errores comunes al diseñar bases de datos:
1. Mal diseño / planificación
2. Ignorar la normalización
3. No estandarizar los nombres
4. Documentación escasa o inexistente
5. Una tabla genérica para todos los valores del dominio
6. Usar IDs secuenciales como tu única key (llave) de la tabla
7. No aprovechar las posibilidades de SQL para proteger la integridad de los datos
8. No usar procedures para acceder a los datos
9. Intentar construir objetos demasiado genéricos
10. Pruebas insuficientes

Plesk - Obtener la contraseña del FTP de un cliente sin cambiarla (Update: también de un email)

Plesk, Shell, Unix Sin comentarios »

Con estos comandos podemos obtener fácilmente las contraseñas del FTP:

1. De un cliente en concreto
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "use psa; select accounts.password from accounts INNER JOIN sys_users ON accounts.id=sys_users.account_id WHERE sys_users.login='xxxx';"
xxxx es el login del cliente.

2. De todos los clientes
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "use psa; select sys_users.login,accounts.password from accounts INNER JOIN sys_users ON accounts.id=sys_users.account_id"

Via Command line fu

———————————————————————————————-

Update: Para obtener la contraseña de un correo se puede usar estos otros comandos:

1. Para una cuenta en concreto:
mysql -u admin -p`cat /etc/psa/.psa.shadow` psa -e "SELECT accounts.id, mail.mail_name as cuenta, domains.name as dominio, accounts.password FROM domains LEFT JOIN mail ON domains.id = mail.dom_id LEFT JOIN accounts ON mail.account_id = accounts.id where mail_name='xxxxx'"
xxxxx es el email del cliente (sin el dominio)

2. Para ver todas las cuentas y passwords de un dominio:
mysql -u admin -p`cat /etc/psa/.psa.shadow` psa -e "SELECT accounts.id, mail.mail_name as cuenta, domains.name as dominio, accounts.password FROM domains LEFT JOIN mail ON domains.id = mail.dom_id LEFT JOIN accounts ON mail.account_id = accounts.id where domains.name='xxxxx'"
xxxxx es el dominio

Consultas comunes en MySQL y funciones útiles

Bases de datos Sin comentarios »

Casi por casualidad, buscando alguna forma de implementar el algoritmo de comparación de cadenas de levenshtein me he encontrado ésta web que no sólo me ha solucionado el problema sino que me ha parecido de lo más interesante.

Artfulsoftware: Common MySQL Queries / Extending Chapter 9 of Get it Done with MySQL 5&6 (En inglés)

Recordad que para definir funciones a través de la consola de MySQL debemos primero cambiar el delimitador por defecto, definir la función, procedure, trigger o lo que corresponda, y volver a restablecer el delimitador por defecto:

DELIMITER $$
(AQUÍ VA LA DEFINICIÓN DE LA FUNCIÓN, PROCEDURE O TRIGGER)
$$
DELIMITER ;

Bloques de IPs por continentes y paises

Seguridad Sin comentarios »

Listado de rangos de ips por país. Muy útiles para hacer baneos de paises completos:

http://www.countryipblocks.net/continents/

También hay .htaccess listos para descargar.

¿Puerto 25 bloqueado?: Usa otro y redirecciónalo fácilmente con IPTABLES

Seguridad, Servidores, Shell, Unix 2 comentarios »

Mi ISP tuvo hace meses la feliz idea de bloquearnos el puerto 25 por “motivos de seguridad” y para evitar el spam, debido a ésto, ya no puedo enviar correos por SMTP (recordemos que por defecto el smtp se configura el puerto 25).

La solución es muy sencilla si tenemos IPTABLES, mediante 2 comandos vamos a configurar nuestro servidor para que permita acceder al SMTP a través del puerto 2525 y 25 de forma simultánea, como siempre, hemos usado Centos 5 para el ejemplo:

1. Redireccionamos todo el tráfico entrante del puerto 2525 al puerto 25.
iptables -t nat -A PREROUTING -p tcp --dport 2525 -i eth0 -j REDIRECT --to-ports 25

2(a). Almacenamos las reglas de iptables para hacerlas persistentes.
iptables-save > /etc/sysconfig/iptables

2(b). ¿Usas debian?: Revisa la siguiente url para saber cómo guardar las reglas de iptables
Getting IPTables to survive a reboot

Una vez hecho ésto, nuestro servidor ya está listo para recibir conexiones SMTP en el puerto 2525, tan sólo debemos modificar la configuración de nuestro cliente de correo para que use éste puerto en lugar del puerto por defecto (25).

Altura automática de un iframe en función de su contenido.

Javascript, Jquery, Programación, Seguridad 9 comentarios »

Ya van varias veces que necesito que un iframe se escale automáticamente a la altura de la página que contiene, sobre todo en interfaces de administración. Cuando surgen estas dudas lo mejor es “googlear” en busca de respuestas, pero en éste caso, las primeras 10 páginas que he revisado contienen información errónea, que da errores en uno o varios navegadores.

Despues de varios intentos he dado con un código que funciona tanto en IE, como en Firefox como en Opera y/o Safari. (Requiere Jquery)
Continuar leyendo »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Iniciar sesión