ISPConfig: administracion de ISPs y hosting

ISPConfig es un software que permite fácilmente administrar servidores, espacio-web, revendedores y simples hosts virtuales. Consta de 3 niveles: para administradores de servidores, permite la administración de servidores, espacio-web, revendedores y clientes, para revendedores, permite la administración de espacio-web, clientes y virtual hosts (sitios), y para webmasters, permite la administración de sitios, subdominios y buzones de correo.

Administra los siguientes servicios:

  • Httpd (virtual hosts, dominios y basados en IP)
  • FTP
  • Bind (A, CNAME, MX y SPF Records)
  • POP3 Auto-Responder
  • MySQL
  • Webalizer (estadísticas)
  • Cuota de disco duro
  • Cuota de correo
  • Límites de tráfico
  • Direcciones IP
  • SSL
  • SSI
  • Acceso shell
  • Mailscanner (antivirus)
  • Firewall

ISPConfig

Nuevas funcionalidades para MySQL Enterprise

Parece que MySQL va a añadir nuevas funcionalidades en la versión 6.0 que solo van a estar disponibles para la versión Enterprise (de pago). Entre estas novedades habrá funcionalidades relacionadas con el backup online.
Esto supone un separación en dos ramas del desarrollo de MySQL, a parte de pensar en que la versión Enterprise tendrá funcionalidades que no estarán tan testeadas como si estuvieran en la versión Community, la cual está respaldada por una gran cantidad de usuarios.
Just announced: MySQL to launch new features only in MySQL Enterprise

Consejos para optimizar MySQL

Buenos consejos para optimizar MySQL, ordenados por distintas categorías.

Queries

  • Usa EXPLAIN para comprender la ejecución de la query
  • Usa Slow Query Log
  • No uses DISNTINCT cuando usas o puedes usar GROUP BY
  • Crea INSERT o REPLACE en procesos batch y usa LOAD DATA antes que INSERT
  • LIMIT m,n no es tan rápido como parece
  • No uses ORDER BY RAND() si tienes más de dos mil registros
  • Usa SQL_NO_CACHE cuando selecciones datos que se actualizan con frecuencia o son abundantes
  • Evita usar caracteres especiales en los LIKE
  • Evita usar subconsultas correlacionadas en el SELECT y el WHERE
  • No hagas comparaciones calculadas
  • ORDER BY y LIMIT funcionan mejor con
  • No pongas text/blobs en los resultados si no vas a necesitarlos
  • Subqueries en el FROM pueden ser útiles para recuperar BLOBs sin necesidad de ordenarlos. Si haces un join de una tabla consigo misma, puede ser bueno si en la primera obtienes el indice y en segunda obtienes el resto de los datos.
  • ALTER TABLE … ORDER BY puede tomar los datos ordenados cronologicamente y reordenarlos mediante un campo diferente, esto podría hacer que las consultas vayan más rapidas por ese campo, aunque quizás fuera necesario que estuviera en el índice.
  • Es bueno saber cuando dividir una query compleja en la unión de otras más pequeñas
  • Elimina pequeñas cuentas si puedes
  • Haz queries similares para que el cache las use
  • Usa estándares
  • No uses características deprecated
  • Cambia a OR en índices de múltiples campos para que la UNION mejore la velocidad (> mysql 5.0)
  • No uses COUNT (*) en tablas Innodb para cada búsqueda. Para ello deberías usar SQL_CALC_FOUND_ROWS y SELECT FOUND_ROWS()
  • Usa INSERT … ON DUPLICATE KEY update (INSERT IGNORE) para evitar el SELECT

Escalado

  • Usa benchmarking
  • Aisla las cargas de trabajo, no dejes que las tareas administrativas interfieran en el rendimiento (por ejemplo, backups)
  • Testea en vez de hacer debug
  • A la vez que los datos crecen los índices cambian. Haz tu esquema tan modular como tu código.

Rendimiento de red

  • Minimiza el tráfico recuperando solo lo que necesitas.
  • Accede directamente a la paginación con LIMIT no recuperando los anteriores.
  • No uses SELECT *
  • No uses muchas queries rápidas y una algo más compleja puede ser más eficiente.

Mejoras en el sistema operativo

  • Usa particiones en los datos
  • Manten el servidor tan limpio como sea posible
  • Crea un entorno de test

Servidor MySQL

  • innodb_flush_commit=0 puede ayidar en el retraso del slave
  • Optimiza los tipos de datos, se consistente. Usa PROCEDURE ANALYSE() para ayudarte a determinar el tamaño de los datos que necesitas.
  • Si puedes comprime text y blobs
  • Comprime datos estáticos
  • No hagas backup de datos estáticos con frecuencia
  • Activa e incrementa el cache de las queries y el budder si es apropiado
  • Comprueba SHOW STATUS y SHOW VARIABLES
  • Defragmenta tablas, reconstruye índices, haz mantenimiento
  • Aumenta myisam_sort_buffer_size para optimizar inserta largos

Estos son los que me han parecido más interesantes, el resto los podéis encontrar en:

Top 1000 SQL Performance Tips

Gracias David por el aviso

Opentaps: plataforma completa para tu empresa

Opentaps es un software completo para integrar en tu empresa que te proporcionará utilidades ERP y CRM, que nos permite automatizar procesos, mejorar la eficiencia y ayudar al trabajo de toda la empresa de forma mejor, todo ello open source.
opentaps.png
Nos ofrece una suite completa que nos proporciona una visión total de nuestro negocio, desde clientes a órdenes, pasando por el inventario y las cuentas. Además ofrece soporte a la mayoría de las bases de datos del mercado: MySQL, PostgreSQL, Oracle, Sybase y Microsoft SQL Server, funcionando en Linux, Unix y Windows. También es importante mencionar la posibilidad de sincronizar los contactos y calendarios de los usuarios de sus teléfonos móviles o del Outlook. Posibilidad de informes mediante JasperReports y Pentaho. Integración con aplicaciones en PHP y RoR, como puede ser Joomla. Workflow para los procesos de negocios.
Entre los motivos por los que deberíamos usar Opentaps (según sus creadores), nos encontramos con: su efectividad, una arquitectura flexible, un modelo de datos robusto, comunidad de desarrolladores activa y escalabilidad.
Opentaps

37 plugins para jQuery

Una interesante lista de plugins para usar en jQuery, organizado por temas:

37 More Shocking jQuery Plugins

Vía / aNieto2k

Letras capitales mediante CSS

Es curioso como el uso del pseudo-elemento :first-letter no es muy usado en la web, mientras que en papel si se suele usar con frecuencia. En este caso se trata de crear letras capitales mediante este pseudo-elemento. Para ello habrá que usar un fondo común para todas y luego modificar la letra inicial para que encaje en el marco.

firstletter.png

p:first-letter {
display:block;
float:left;
border:1px solid black;
padding:5px;
margin:4px 5px;
background:url(firstletter1.png);
font-size:73px;
}

Nice Drop caps with CSS

Vía / Posh CSS

Mejoras de rendimiento en PHP 5.3

Parece que la nueva versión de PHP (5.3) va a mejorar el rendimiento considerablemente en muchas de nuestras aplicaciones. En algunos casos hasta en un 30%:

  • Drupal un 20% más rápido
  • Qdig un 2% más rápido
  • typo3 un 30% más rápido
  • wordpress un 15% más rápido
  • xoops un 10% más rápido

PHP 5.3: Up to 30% performance win