Fork me on GitHub

Miquel Camps Orteza

Soy programador web. Estoy especializado en desarrollo web (php, js). Estoy aprendiendo a desarrollar apps para iphone/ipad.
Organizo betabeers en Madrid.
Sobre mí     Metas     Hacks     Contactar     LinkedIn     Twitter    
Empezando una mudanza y dando de baja algunos dominios

Hoy he empezado a trasladar algunos de mis proyectos a kemsive.es (ovh) por varios motivos:

  • Ahorrar en gastos, actualmente pago 50 euros al mes (600 euros/año) que con el cambio pagaría 204 euros/año.
  • Actualizar de servidor, la máquina que tengo tiene más de 3 años, el so tan atrasado que ya no me deja ni actualizar la versión del php.
  • Comodidad, quiero gestionar el hosting y dominios en un solo panel de control.

Luego por otra parte con la transferencia he decidido discontinuar varios proyectos de los que ya no prestaba atención y no creo que lo haga en un futuro, he aprendido mucho haciendolos pero ahora me estorban si quiero avanzar profesionalmente.

Los proyectos que voy a dejar de mantener son: playweek.me, tentacul.us e incluso algunos proyectos que ni había lanzado preguntaseo.com y regame.in.

julio 26, 2011
URL personalizada de un bucket en amazon s3

En este tutorial os enseñaré como cambiar las urls de los backets de s3 por uno con nuestro dominio, por ejemplo:
http://d36orqcp1am75j.cloudfront.net/ por http://images.brucut.com/

Yo para administrar los buckets de s3 uso la aplicación Bucket explorer, así que os enseñaré como hacerlo con este aun que al final todos los programas son parecidos, incluso hay una extensión para firefox llamada s3fox.

Reflexión

Todavía no sé que utilidad puede tener más el cambio de la URL a parte del estetico, puede que mejore el seo pero no estoy muy seguro, pueden debatirlo dejando un comentario.

Pasos para configurar la URL con bucket explorer

  1. Pulsa el botón “Distribution” que econtrarás encima del listado de buckets.
  2. Se abrirá una ventana con los buckets, selecciona el que deseas y pulsa el botón “Update”.
  3. Donde pone CNAME, introduce el subdominio donde quieres apuntar al bucket, por ejemplo: images.brucut.com o le puedes llamar cdn.dominio.com
  4. Este paso va a ser el más complicado al menos para mi, entra en el panel de control de tu dominio y busca el modo de editar las entradas DNS y añade la siguiente regla:
    images                   IN CNAME   d36orqcp1am75j.cloudfront.net.
    donde pone images es el subdominio que deseas, luego d36orqcp1am75j.cloudfront.net es la URL del bucket, importante fijate que hay un punto al final.
  5. Espera unas horas para que los cambios tengan efecto.
agosto 22, 2010
13 técnicas para acelerar la carga de tu web
  1. Comprime tu javascript con packer
  2. Agrupa los javascripts y css para limitar el numero de llamadas al servidor
  3. Si tu site tiene publicidad carga los banners al final
  4. Carga el javascript de las estadísticas web google analytics asincronamente
  5. Carga todos los javascripts que puedas antes de cerrar la etiqueta HTML
  6. Agrupa las imagenes en sprites con CSS
  7. Reduce el número de lineas de tu hoja de estilos CSS agrupando propiedades
  8. Comprime el código CSS
  9. Indica las dimensiones de las imagenes
  10. Comprime los ficheros estáticos javascript y CSS en GZIP
  11. Aloja los ficheros CSS, javascript e imagenes en amazon s3 y cloudfront
  12. Cambia el servidor web a nginx
  13. Instala un acelerador de PHP
  14. Comprime las imagenes

También recomiendo utilizar la extensión Pagespeed para firebug de firefox

junio 1, 2010
Crear branch en svn y hacer un merge de los cambios al trunk

A modo de recordatorio escribo este tutorial por si más adelante tengo que hacer otro branch.

Crear branch

  1. Hacemos una copia del trunk:
    svn copy http://svn.dominio.com/proyecto/trunk/ http://svn.dominio.com/proyecto/branches/nuevo_branch/
  2. Copiamos los ficheros del branch a nuestro entorno de desarrollo:
    svn co http://svn.dominio.com/proyecto/branches/nuevo_branch/ nuevo_branch

Subir cambios de nuestra copia de desarrollo al branch

  • Revisamos los ficheros nuevos, marcados con un interrogante (?):
    svn diff
  • Añadimos los ficheros nuevos, por ejemplo:
    svn add prueba/index.php
  • Commiteamos los cambios:
    svn ci nuevo_branch -m “cambios del branch”

Subir cambios del branch al trunk

  1. Hacemos una nueva copia del trunk a nuestro entorno de desarrollo:
    svn co http://svn.dominio.com/proyecto/trunk copia_trunk
  2. Consulta la última revisión del branch:
    cd nuevo_branch
    svn log –stop-on-copy
  3. Nos situamos dentro del directorio de la copia del trunk:
    cd copia_trunk
  4. Unimos los cambios de nuestra copia de desarrollo del branch y el trunk:
    svn merge -r 2343:HEAD http://svn.dominio.com/proyecto/branches/nuevo_branch/
    Nota: donde pone “2343″ tienes que poner el número del último commit del branch.
  5. Revisamos si hay conflictos antes de subir el merge al trunk:
    svn st
  6. Si todo es correcto, hacemos commit de todo:
    cd ..
    svn ci copia_trunk -m “cambios del branch”

Enlaces de interés

Fuente original

marzo 18, 2010
SVN para novatos

Todavía me considero novato con el SVN, recientemente hice mi primer branch.. pero puedo guiar a los que no estén familiarizados con el sistema.

A mi me han enseñado a usar SVN con comandos desde terminal y así es como os lo voy a enseñar.

Definiciones

  • svn: (version control system), es un sistema de control de revisiones que permite gestionar los cambios de los ficheros que componen un proyecto, facilitando el trabajo en equipo al controlar el acceso y actualización del código fuente.
  • trunk: rama principal de desarrollo, podríamos llamarlo producción.
  • branch: rama independiente, una copia del trunk.

Comandos

Los siguientes comandos vienen acompañados al principio por un svn, ej. svn ci index.php.
Hay más comandos pero estos son los que más utilizo:

  • commit: para enviar los cambios al svn.
  • checkout: para descargar los ficheros del svn de un branch o trunk a tu entorno de desarrollo.
  • add: para añadir ficheros al svn y posteriormente enviarlos al trunk con un commit.
  • diff: para ver las modificaciones de un fichero con respecto al trunk.
  • st: para ver los ficheros modificados (M), nuevos (?), con conflictos (C).
  • merge: para unificar los cambios de una copia de desarrollo con un branch o trunk.

Enlaces de interés

marzo 18, 2010
Configurar wildcard subdomains para tener subdominios dinámicos

Tener subdominios dinamicos es mucho más barato que tener varios dominios ya que solo necesitas uno y puede ser muy útil en tu web por ejemplo si vas a:

  • internacionalizar el sitio: http://es.dominio.com, http://en.dominio.com
  • para que cada usuario tenga su propio subdominio: http://gafeman.dominio.com
  • para anuncios clasificados en una ciudad: http://madrid.dominio.com

Que sepa sólo se puede hacer en servidores dedicados, como por ejemplo hetzner.

Requisitos:

  • Poder administrar el fichero de entradas DNS de tu dominio
  • Tener apache y mod_rewrite en tu servidor
  • tener permisos para conectarte al servidor via SSH

Pasos:

1. Editar entradas DNS del dominio, es un fichero con un contenido parecido a este:

www                      IN A       ip
ftp                      IN CNAME   www
imap                     IN CNAME   www
loopback                 IN CNAME   localhost
pop                    IN CNAME   www
relay                    IN CNAME   www
smtp                     IN CNAME   www

@                        IN MX 10   mail

añade la siguiente linea debajo de la linea que empieza por www:
* IN A www

2. Edita la configuración del dominio apachetienes que añadir la siguiente linea en negrita para que acepte los subdominios:

ServerName dominio.com
ServerAlias *.dominio.com
ServerAdmin webmaster@localhost

3. Crea un fichero .htaccess en la raiz de tu servidor

Options -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

4. Reinicia el apache, en la terminal y conectado por SSH a tu servidor ejecuta el siguiente comando:

/etc/init.d/apache2 reload

5. Obtiene el subdominio con PHP

$subdominio = current( explode( ‘.’, $_SERVER['HTTP_HOST'] ) );

Por ejemplo con el dominio http://madrid.dominio.com, $subdominio tendría el valor madrid.

Ejemplos:

Enlaces de interés:

diciembre 16, 2009
sobrevivir al error 500 – Internal Server Error

Hace un rato me he dado cuenta que el blog se ha cascado, mostraba un error 500 – internal server error
La verdad es que aún no sé por que ha aparecido este error, no he tocado ningun fichero de configuración del servidor, pero en fin ya esta todo oquei!

Para solucionarlo lo primero que he intentado ha sido reiniciar el apache escribiendo en la terminal:
/etc/init.d/apache2 restart -force

Al ejecutar dicho comando han aparecido estas lineas feas:

Forcing reload of web server (apache2)…[Thu Jan 29 13:00:32 2009] [warn] module php5_module is already loaded, skipping
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost 213.239.199.50:0 has no VirtualHosts
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost *:0 has no VirtualHosts
httpd (no pid file) not running
[Thu Jan 29 13:00:32 2009] [warn] module php5_module is already loaded, skipping
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost 213.239.199.50:0 has no VirtualHosts
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost *:0 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!

Parece que no se ha podido reiniciar el servidor porque hay algun proceso que esta ocupando el puerto 80.

Buscando en google he encontrado la solución para el error make_sock could not bind to address

La solución definitiva con 2 comandos

  1. Matar los procesos que ocupan el puerto 80 con el comando:
    fuser -k 80/tcp
  2. Reiniciar de nuevo el apache:
    /etc/init.d/apache2 restart -force
enero 29, 2009
¿Dónde está alojado viciao2k3?

El amigo Pablo me ha dejado una serie de preguntas sobre el servidor de viciao2k3, ahí van:

¿Dónde está?

Europa > Alemania > Nuremberg > Hetzner

La máquina que contraté es el modelo DS 3000

Hardware:

  • AMD Athlon 64 3700+
  • 1 GB DDR400 RAM
  • 2 x 160 GB SATA HDD

Software:

  • Linux Debian Etch 64 bits LAMP (Linux + Apache + MySQL + PHP)
  • Servidor web lighttpd (por defecto, viene instalado apache2)
  • PHP
  • MySQL
  • eAccelerator
  • Panel de control Webmin

Otras características:

  • 100% administrado vía SSH
  • Ancho de banda: 1000 GB / mes
  • Network Availability min. 99%

¿Cuanto pagas?

El primer pago fue de 148 euros y cada mes 49 euros

Método de pago admitido tarjeta de crédito, si resides en Alemania puedes pagar con transferencia bancaria

¿Es bueno o malo?

Excelente, pero me gustaría concretar lo que me gusta y lo que no:

Lo bueno:

  • El hardware a ese precio esta muy bien
  • Hoygan, es el servidor dedicado más barato que he encontrado
  • Lo tienes listo el mismo día que lo contratas
  • El servicio técnico responde rápidamente normalmente si no es festivo en menos de 1 hora

Lo malo:

  • Los idiomas del servicio técnico inglés y alemán
  • El panel de control del cliente esta en alemán (yo aún no lo he usado)
  • El panel de control del servidor a mi no me gusta
  • Nadie controla el servidor, tienes que estar al día con las actualizaciones y los problemas que haya
  • Poca información, cuando te registras sólo te dan una IP, un usuario y contraseña para que te conectes a través de SSH

Conclusión:

Si estás sobrepasando los limites de tu servidor y sabes un poco de linux
Hetzner es una buena opción

octubre 12, 2007
uptime de viciao2k3

19:46:00 up 22 days, 23:41, 1 user, load average: 0.10, 0.07, 0.01

¿Vosotros lo veis normal?

Como he dicho en anteriores ocasiones no tengo ni idea de linux y menos de administración de sistemas

Es la primera vez que estoy en un servidor dedicado y llevo unos días que estoy preocupado por el contador de días del uptime

¿Alguien sabe si cada x días tengo que hacer algo en especial?

Por decir una tontería, reiniciar el sistema

septiembre 22, 2007