Sergio Álvarez (xergio)

Escritos

Optimización de páginas web

  • 20 comentarios
  • 11.03.06 / 20:15
Hoy he recibido toda una lección sobre cómo optimizar el consumo de ancho de banda de una web. Podía esperarme una lección así de cualquiera menos de quien me ha venido, jcea. Siempre tan serio, poco hablador y concreto, parece que hoy le ha dado la neura y ha conseguido reducirme el consumo de esta página en un 75% (más o menos, a ver en los días sucesivos).

Me ha recordado una barbaridad de conceptos que tenía olvidados, y voy a apuntarlos para que esto no vuelva a pasar. Muchas de las cosas que me ha contado las tiene ya apuntadas en su web como ¿Por qué y cómo crear un espacio web "cache friendly"?.

Lo primero que hicimos fue habilitar compresión Gzip en Apache. Yo uso apache2, así que usé el mod_deflate con la siguiente configuración:

<IfModule mod_deflate.c>
    # Insert filter
    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html

    # Don't compress images and files that are already compressed
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    SetEnvIfNoCase Request_URI .(gif|jpeg|jpg|png)$ no-gzip dont-vary

    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
        Header unset Expires
        Header unset Cache-Control
        Header unset Pragma
    </IfModule>
</IfModule>

Esto entre otras cosas lo que hace es comprimir documentos que no sean imágenes o similares, los cuales ya van en parte comprimidos por su formato correspondiente. También me he cargado cabeceras HTTP referentes a la caché de los navegadores para que estos actúen con libertad en ese aspecto. Hay que decir que esto no va del todo bien, pero bueno, al menos los documentos HTML por ejemplo ya ocupan 3/4 partes menos. Mismamente la portada de este blog pesaba unos 16KB y ahora solo son unos 4KB.

Una vez que los navegadores tienen libertad para cachear imágenes y demás, hemos modificado el script que muestra las fotos de este blog para que le diga al navegador la antigüedad del archivo y este pueda cachearla sin problema, evitando así que cada vez se carguen de nuevo las fotos y el consiguiente aumento de ancho de banda. Para ello no tendremos más que enviar la última fecha de modificación de la imágen. Si el navegador la ha cacheado en una visita anterior, al pedir de nuevo la foto enviará la fecha de la foto que él tiene retenida, y si es igual a la que yo tengo no hace falta que la vuelva a cargar, le digo que no la he cambiado y que use la suya:

// obtengo la fecha de modificación
$mtime = filemtime($this->path($tamano));
// si el navegador tiene una cacheada...
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
    $ims = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
    $ims_unix = strtotime($ims);
    //
    // comparo la fecha de la suya con la de la mia
    if ($ims_unix == $mtime) {
        // y si coinciden le digo que nada, que use la suya
        header("HTTP/1.0 304 Not Modified");
        exit;
    }
}
// si no tiene la imágen cacheada le digo la fecha de la mia
header("Last-modified: " . gmdate("D, d M Y H:i:s", $mtime) . " GMT");

Esto me va a ahorrar la carga de muchas imágenes que antes lo hacían de forma innecesaria. Además será más cómodo para los visitantes, porque la primera carga será como siempre, lenta, pero luego irá como un tiro.

Por último he hecho algo similar en los documentos HTML. El resultado de lo que se supone que será la página lo guardo en memoria, genero un identificador único a partir de todo el código, y ese identificador lo mando en una cabecera llamada ETag. Con ese identificador, el navegador me lo devuelve en otra cabecera distinta al volver a pedir la página en otra ocasión, y si ese identificador es igual a la página que le voy a mostrar, le digo que no, que muestre la que tiene él y así no me hace consumir ancho de banda. En cambio si son diferentes ya le mando el código HTML nuevo y que el navegador haga con él lo que quiera, cachearlo, desecharlo, etc.:

// al principio del código pongo...
ob_start();
//
// por aquí html, cófigo php, lo que sea
//
// y al final ya obtengo lo que hay en memoria
$dochtml = ob_get_contents();
ob_end_clean();
//
// genero el identificador
$sha1dochtml = sha1($dochtml);
// y si el que me envia el cliente/navegador es igual al mio
if ($_SERVER['HTTP_IF_NONE_MATCH'] == '"' . $sha1dochtml . '"') {
    // le digo que muestre su documento directamente
    header("HTTP/1.0 304 Not Modified");
    exit;
//
// y sino pues nada, le mando el documento nuevo y el ETag nuevo
} else {
    header('ETag: "' . $sha1dochtml . '"', true);
    echo $dochtml;
}

Bueno, creo que se puede mejorar bastante el texto. jcea me dió permiso para colgar el log de la conversación pero eso ya con más tiempo, porque aunque no los creáis son las 8 de la tarde y yo aun no me he acostado :o (la noche anterior claro). Hoy fijo que no me acuesto tarde ni me despierto a las 3 como siempre :D

Una vez más, gracias jcea, hoy nos has sorprendido a más de uno :)

Aprende a ligar ya, bailando

  • 21 comentarios
  • 23.03.06 / 01:09
Vaya envidia... primero por cómo bailan, porque independientemente de que te guste o no ese estilo (a mi si, pero por las piruetas más que nada), bailan bien. Y luego por la chica... si, es primavera.

Video!

Sofia BoutellaSofia Boutella: La de Nikewoman

Ah, y la canción anima a la juerga, como suelo decir... es música OH! León :P

Y ya puestos con estos bailoteos pongamos otros videos de Sofia Boutella, la de este video y la de Nikewoman en el anuncio de 2005 y 2006, esa que decía...

No necesito llenar un estadio,
ni que todos salten de alegria.
No necesito oir a 60mil personas corear mi nombre.
Nunca tendré un club de fans,
ni firmaré un supercontrato,
ni tan siquiera un autógrafo,
pero... ¿de verdad crees que no soy una atleta...?

Además ha salido en videoclips de Madonna, como "Push up" y "Sorry" (esta última canción me encanta).

Canción recomendada: Axwell - Feel The Vibe 'Till The Morning Comes

Shadow of the Colossus

  • 6 comentarios
  • 02.04.06 / 23:58
Si tienes la PS2 te recomiendo que pruebes este juego. Me lo enseñó el otro día Fan en su casa, y a simple vista me pareció semejante al Zelda (unjuego de nintendo, el mejor de la historia para mi gusto). Se diferencian en que Zelda es un juego mucho más extenso.

Shadow of the Colossus consiste en mata colosos, así todo el rato. Son unos bicharracos enormes, y tienes que encontrar la forma de matarlos. Con su espadita, tu arco o tu caballito no podrás, así que la gracia está en adivinar cómo se matan y conseguirlo (porque si no has tenido bastante en adivinarlo, luego intenta hacerlo... ya verás). Según me ha dicho Fan hay muchos, a cada cual más complicado.

Shadow of the ColossusShadow of the Colossus: Para la PS2

Lo mejor del juego, sin duda, son los gráficos. Es algo en lo que también me recordó al Zelnda, pero con mucho más detalle. De hecho muchas intros de juegos tienen peores gráficos que los del juego este. Además la jugabilidad, movimientos y usabilidad del muñeco son una preciosidad. Solo por todo esto ya presta jugar. Para haceros una idea miraros el Trailer del juego. Os aseguro que los gráficos del juego son incluso mejores que los del Trailer ;)

Tenéis videos por todos lados, pero el que mejor se ve es la de la web oficial que puse antes. Además podéis echar un ojo a capturas también por todos lados

Y algo que siempre me gusta ver, el Making of "Shadows of the Colossus"

Rollo

  • 4 comentarios
  • 10.04.06 / 18:56
gato

No tenía mejor cosa que hacer que buscar imágenes, el aburrimiento que tengo es supremo.

Alemán loco

  • 8 comentarios
  • 11.04.06 / 00:06
Si, me aburro mucho, por eso he buscado videos del alemán loco ese:

        
  1. Buscando porno
  2.     
  3. Unreal Tournament
  4.     
  5. KoRn
  6.     
  7. Crisis del R. Madrid
  8.     
  9. Nintendo

Me han pasado más, pero no los encuentro ahora.

Palabras

  • 9 comentarios
  • 16.05.06 / 19:11
¿Qué son las palabras?

De lo mejorcito que he visto en mucho tiempo. Gracias por el link, Jordi ;) estás en todo.

P.D.: Perdón por haber estado tanto tiempo sin escribir, pero no era el mejor momento para ello... ya contaré con tiempo.

Un cambio, por ejemplo... ¿trabajar?

  • 10 comentarios
  • 29.05.06 / 23:00
Si, es lo que necesito y merezco.

Llevo ya muchos meses haciendo el panoli y rascándome las p*****s sin hacer nada, así que ya va siendo hora de que me busque la vida.

Sin prácticamente intenciones ni posibilidades de acabar este año la carrera y con una nueva lesión que me ha hecho casi casi decir adios a otra temporada (y van tres, tres años, por así decirlo), son razones más que suficientes como para plantearse las cosas de otra forma.

Ya dejé casi de lado la carrera a principio de año, lo que me permitió al menos entrenar bien y en serio, ya que este es mi último año como sub'23 y una buena oportunidad para hacer algo decente en la categoría, pero hace cosa de tres semanas me volvió a pasar, lesionarme. Fue en otro músculo, pero de la misma zona, y ya es algo que me tiene mosqueado y me desespera y desmoraliza.

Así que lo único queme queda es buscar trabajo. Qué tarea más complicada!! Mi primera opción fue buscar algo que se me diera, los ordenadores. Programación, diseño de webs, administrar sistemas... no sé, lo que he hecho siempre. Pero hay inconvenientes, sobre todo si lo buscas por internet: te piden o bien un título (el cual aun no he sacado) o bien experiencia laboral. De nada sirve que enseñe webs que he hecho, o proyectos que hice o estoy en ellos, nada. Ni siquiera obreciéndome a cambiar de ciudad, o lo que sea... ante todo te piden eso. Así no se puede...

También busqué en periódicos, pero casi todo son cursos o trabajos de pena... así que ya no sé dónde buscar. Una última opciónla tengo en un curso de La Junta al que me he apuntado para el verano, en el que se dan prácticas en empresas. No sé cómo serán... supongo que también penosas, pero almenos ya es una puerta abierta a algo, que te permite al menos entrar y demostrar lo que sabes. Lo que me temo que será en una empresa qe solo pille a esa gente...

En fin, tendré que buscar algo antes de que se me acabe el dinero que tengo ahorrado!

Paseo

  • No hay comentarios
  • 16.06.06 / 23:14
Hace tiempo escuché esta canción de Estopa, si no recuerdo mal la mencionaron la segunda vez que fueran a Buenafuente. Bueno, hoy la busqué y la encontré:

Un paseo, hacia ningún lugar,
damos un rodeo, y entramos en un bar,
parecía tranquilo, se podía incluso hablar,
ponte aquí unos litros, que esto del beber,
es como el rascar, todo es empezar.

Siempre bebemos más cerveza de la que podemos tragar,
vaya puta borrachera, hemos cogido,
ya no veo de cerca, ni de lejos,
no veo na, de na, de na,
pero aún pienso, luego aún existo.

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Juntamos dos mesas,
porque tan' apunto de llegar,
otros tres colegas,
que tienen otra historia que contar,
pero ese es otro tema,
que con el tiempo ya saldrá.

Ahora tengo un problema,
esto del beber,
conlleva a evacuar,
vuelvo en un plis-plas.

Siempre bebemos más cerveza de la que podemos pagar,
vaya puta borrachera, hemos cogido,
ya no veo de cerca, ni de lejos,
no veo na, de na, de na,
pero aún pienso, luego aún existo.

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Siempre bebemos más cerveza de la que podemos tragar,
vaya puta borrachera, hemos cogido,
ya no veo de cerca, ni de lejos,
no veo na, de na, de na,
pero aún pienso, luego aún existo.

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Nos reímos solos,
nos reímos con ganas,
no nos da la gana,
de ponernos serios, de ponernos, de ponernos serios...

Enga' Dj ponte ritmo!

se fue de lao con una cerveza...

Realmente solo fui a por la letra, luego quise escucharla también y traté de buscar un videoclip o algo (no uso el emule, que sería más sencillo, así que me enredo de esta forma jeje), y lo primero que pille fue un video de YouTube de unos chavales... el video me da igual, yo quería la música :P

No es tan fácil

  • 7 comentarios
  • 23.06.06 / 00:58
Vaya vaya, nunca pensé que esto de buscar trabajo "serio" fuera tan complicado.

Llevo días buscando principalmente en cuatro páginas, Tecnoempleo, Laboris, Monster e Infojobs. Para empezar en León está visto que no hay nada de trabajo (-1 punto), así que hay que buscar fuera. Pero claro, las empresas de fuera al ver que no vives donde ellas, ya casi te descartan (-2 puntos). Ni siquiera poniendo en el CV que puedes pirarte a otro lado... se ve que eso no lo leen.

Luego lo de la experiencia. Se ve que los trabajos personales ocomo freelance no cuentan (-1 punto). Vamos, que en mi caso, todo lo que he hecho hasta ahora: webs, servicios, aplicaciones innovadoras (o al menos que han hecho 4 en todo el planeta), cosas creativas, participación en proyectos (en grupo!), montarme mi propio servidor, etc, etc... todo eso no es experiencia, no vale, si no has estado en una empresa no vale.

Y ya no digamos lo del título... yo aun nohe acabado la carrera (y dudo que lo haga), me ha quedado la mitad del ultimo curso más o menos... pero como no lo he acabado no sé nada (supuestamente) (-3 puntos). Es decir, que o lo tienes entero o todo lo pasado hasta la fecha no lo he dado ni aprendido. Pero si va uno donde ponga "ingeniero"... ay! amigo! entra directo! aunque a los 2 días lo larguen porque no sepa desenvolverse y pillen otro (ingeniero, claro).

Y yo me pregunto... ¿no se supone que una empresa busca antes a alguien productivo y rentable a alguien con "nombre"? En fin.

En el fondo todo esto me lo temía, y creo que lo único que me queda es seguir echando ofertas hasta pillar a una empresa pequeña en la que la gente con "nombre" no se interese, y de "los malos" yo sea el más interesante, vamos, digo yo...

Aunque me queda una posibilidad. Hasta ahora apenas he mirado Madrid (no me gusta), pero la próxima tanda de ofertas que eche serán para ahí, y si tampoco hay suerte ya miraré algo que no se relacione con la informática sea donde sea.

Ya contaré cómo va la cosa :D

Una pequeña luz...

  • 3 comentarios
  • 26.06.06 / 17:17
...al final del túnel.

¿Será ahora cuando por fin empiecen a salir las cosas?

Ojalá...

Todo el contenido bajo el dominio XERGIO.NET está sujeto a la licencia Creative Commons con las condiciones BY-SA. Web estandarizada en XHTML 1.0, CSS 2, RSS 2 y Atom 1.0.