Archivo

Archive for the ‘optimizacion’ Category

Optimizar javascript con HeadJS

24/11/2012 2 comentarios

HeadJS es una libreria muy buena, que optimiza al máximo la carga de todos los javascripts de tu web, cargándolos de manera asisncrona de forma que se carguen mas rapido que de la forma habitual, o sea al final del html antes de la etiqueta </body>.

Un ejemplo práctico:

1. Lo que el usuario novato suele hacer…(al principio)

<!doctype html>
<html>
<head>
<meta charset=”utf-8″/>
<title>SCRIPT SRC in head</title>
<link rel=”stylesheet” href=”estilo.css”>
<script src=”http://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js”></script&gt;
</head>
<body>
<div id=”wrap”>
….contenido
fin contenido….
</div>
</body>
</html>

2. Lo que recomiendan en casi todos lados para optimizar la velocidad….(al final)

<!doctype html>
<html>
<head>
<meta charset=”utf-8″/>
<title>SCRIPT SRC at bottom</title>
<link rel=”stylesheet” href=”estilo.css”>
</head>
<body>
<div id=”wrap”>
….contenido
fin contenido….
</div>
<script src=”http://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js”></script&gt;
<script src=”http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js”></script&gt;
</body>
</html>

3. Lo que yo hago y recomiendo…de verdad se nota el cambio (usar HeadjS)

<!doctype html>
<html>
<head>
<meta charset=”utf-8″/>
<title>SCRIPT SRC con headjs</title>
<link rel=”stylesheet” href=”estilo.css”>
<script src=”../js/head.min.js”></script>
head.js(“http://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js&#8221;)
.js(“http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js&#8221;)
.js(“http://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js&#8221;)
.js(“http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js&#8221;)
.js(“http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js&#8221;);
</head>
<body>
<div id=”wrap”>
….contenido
fin contenido….
</div>
</body>
</html>

Solo debeis añadir el javascript de HeadjS y juego cargar con head.js(“una libreria”) seguido de .js(“otra libreria”) y finalizar con ;

Eso es todo probadlo y vereis los cambios…

Si no sabeis que descargar os dejo la versión 0.99 de la libreria y minimizada para descargar. Es esta http://db.tt/Tn08GgBl

Un saludo. nos veremos pronto.

Anuncios

Optimizar web con 1and1


En el siguiente post y demás que seguiré publicando veremos los posibles problemas que he encontrado al tener una pagina web alojada en 1&1.

En el primer caso hablaré del servicio contratado por mi para mi cliente: es 1&1 Dual Básico, que es lo suficientemente potente para comenzar a programar sin problemas de espacio y en html, css, javascript y php.

Antes de seguir con el tutorial debereis saber un par de cosas de vuestro servidor, en este caso la ruta por defecto de vuestra pagina web alojada en el.

1. Debeis ir a Dominios y espacio web

2. Pinchais en el y vais a la primera opción que es Dominios

3. Seleccionais el dominio que deseais ver , en mi caso es alonsomotorracing.com(MX)

4. Y os mostrara la información requerida. En mi caso y el vuestro supongo, es del estilo /homepages/43/numero/htdocs/.

(Recordar que numero es un numero asociado a cada uno, no pongo el mio por razones evidentes)

5. Ya habiendo apuntado este dato vamos al siguiente paso

6. Deseais que vuestra web por razones de compresión utilice GZip, que por defecto viene desactivada en 1&1 por razones de seguridad.

7. Creais un arhivo php.ini que sobreescribará las opciones por defecto que tiene vuestro servidor y muy importante para que funcione debeis ponerlo en cada carpeta de vuestra web que querais optimizar, me explico, si quereis optimizar los css y los teneis en una carpeta destinada para ello (p.e. /css) pues meteis el php.ini dentro, si teneis otra con los javascripts (p.e. /js) pues haceis lo mismo. y el raiz tambien deberá ir para que lea tambien los archivos html o php. ¿Ententdido? Seguimos.

8. El archivo a crear con nombre php.ini es el siguiente:

allow_url_fopen = on
zlib.output_compression = on
zlib.output_compression_level = 9
auto_prepend_file = [ruta fisica]/contentHeader.php
session.use_cookies = off

9. Donde pone [ruta fisica] poneis la ruta que averiguaisteis antes…la de /homepages/43/numero/htdocs/. (quitais el puntito del final) o sea que quedaria asi:

allow_url_fopen = on
zlib.output_compression = on
zlib.output_compression_level = 9
auto_prepend_file = /homepages/43/numero/htdocs/contentHeader.php
session.use_cookies = off

10. Ahora queda crear otros dos archivos uno es el que aparece en este php.ini que es contentHeader.php, aunque podeis ponerle el nombre que deseeis.

11. El archivo en cuestion es el siguiente:

<?php
$pathinfo = pathinfo($_SERVER[‘PHP_SELF’]);
$extension = $pathinfo[‘extension’];
if($extension == “css”) {
header(“Content-type: text/css”);
header(“Cache-Control: max-age=604800, public”);
header(“Last-modified: 2011-09-24 20:10”);
}
if($extension == “js”) {
header(“Content-type: text/javascript”);
header(“Cache-Control: max-age=604800, public”);
header(“Last-modified: 2011-09-24 20:10”);
}
if($extension == “html”) {
header(“Content-type: text/html”);
}
?>

12. Este archivo solo va en el raiz de vuestra web y será llamado por el php.ini que habeis colocado en vuestros directorios a comprimir. Solo funciona con css, js, html y php. No lo hagais en los de las imagenes, sino se corromperán las cabeceras.

13. El último archivo es el .htaccess que funciona sobre Apache y en este caso con el 1&1 Dual Básico de mi servidor, no lo he probado en otros sitios, aunque en los gratuitos algunos lo permiten…esos si los he comprobado.

14. El archivo es el siguiente: (debeis crearlo como querais y con el programa que querais, pero al guardarlo con el nombre htaccess debeis añadirle el punto al principio para que quede oculto en el servidor.

# Apache configuration file
# httpd.apache.org/docs/2.2/mod/quickreference.html

# ———————————————————————-
# Webfont access
# ———————————————————————-

<FilesMatch “\.(ttf|otf|eot|woff|font.css)$”>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin “*”
</IfModule>
</FilesMatch>

# ———————————————————————-
# Proper MIME type for all files
# ———————————————————————-

# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a

# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v
AddType video/webm webm

# Proper svg serving. Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz

# Webfonts
AddType application/vnd.ms-fontobject eot
AddType font/truetype ttf
AddType font/opentype otf
AddType application/x-font-woff woff

# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/x-chrome-extension crx
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType text/x-vcard vcf

# ———————————————————————-
# Gzip compression
# ———————————————————————-

<IfModule mod_deflate.c>
#The following line is enough for .js and .css
AddOutputFilter DEFLATE js css

#The following line also enables compression by file content type, for the following list of Content-Type:s
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml

#The following lines are to avoid bugs with some browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Webfonts and SVG:
<FilesMatch “\.(ttf|otf|eot|svg)$” >
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

#—————————————————————–
# Estas dos lineas siguientes son especificas para el servidor 1&1
#—————————————————————–
AddType x-mapp-php5 .php .html .htm .js .css
AddHandler x-mapp-php5 .php .html .htm .js .css

# ———————————————————————-
# Expires headers (for better cache control)
# ———————————————————————-

<IfModule mod_expires.c>
ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault “access plus 1 month”

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest “access plus 0 seconds”

# Your document html
ExpiresByType text/html “access plus 0 seconds”

# Data
ExpiresByType text/xml “access plus 0 seconds”
ExpiresByType application/xml “access plus 0 seconds”
ExpiresByType application/json “access plus 0 seconds”

# RSS feed
ExpiresByType application/rss+xml “access plus 1 hour”

# Favicon (cannot be renamed)
ExpiresByType image/x-icon “access plus 1 week”

# Media: images, video, audio
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType video/ogg “access plus 1 month”
ExpiresByType audio/ogg “access plus 1 month”
ExpiresByType video/mp4 “access plus 1 month”
ExpiresByType video/webm “access plus 1 month”

# HTC files (css3pie)
ExpiresByType text/x-component “access plus 1 month”

# Webfonts
ExpiresByType font/truetype “access plus 1 month”
ExpiresByType font/opentype “access plus 1 month”
ExpiresByType application/x-font-woff “access plus 1 month”
ExpiresByType image/svg+xml “access plus 1 month”
ExpiresByType application/vnd.ms-fontobject “access plus 1 month”

# CSS and JavaScript
ExpiresByType text/css “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”

<IfModule mod_headers.c>
Header append Cache-Control “public”
</IfModule>

</IfModule>

# ———————————————————————-
# ETag removal
# ———————————————————————-

# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>

FileETag None

# ———————————————————————-
# Start rewrite engine
# ———————————————————————-

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
</IfModule>

# ———————————————————————-
# Suppress or force the “www.” at the beginning of URLs
# Aqui teneis dos opciones la elegida por mi es la segunda, si vosotros
# quereis la primera, quitad los comentarios (#) de delante de las lineas
# pertinentes y ponerlas en la segunda opcion, las dos no pueden estar
# activadas a la vez.
# ———————————————————————-

# Option 1:
# Rewrite “www.domain.com -> domain.com”

#<IfModule mod_rewrite.c>
# RewriteCond %{HTTPS} !=on
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#</IfModule>

# ———————————————————————-

# Option 2:
# To rewrite “domain.com -> http://www.domain.com&#8221; uncomment the following lines.

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteCond %{HTTP_HOST} (.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>

# ———————————————————————-
# Prevent 404 errors for non-existing redirected folders
# ———————————————————————-

Options -MultiViews

# ———————————————————————-
# Custom 404 page
# ———————————————————————-

ErrorDocument 404 /404.html

# ———————————————————————-
# UTF-8 encoding
# ———————————————————————-

# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8

# Force UTF-8 for a number of file formats
AddCharset utf-8 .html .css .js .xml .json .rss

# ———————————————————————-
# A little more security
# ———————————————————————-

Options -Indexes

# Block access to “hidden” directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or Git.
<IfModule mod_rewrite.c>
RewriteRule “(^|/)\.” – [F]
</IfModule>

# ————————————————————————-
# DISABLE HOTLINKING
# donde pone unas lineas mas abajo nombredominio sustituir por el vuestro
# solo el nombre (p.e. alonsomotorracing) sin www ni .com ¿ok?
# ————————————————————————-
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nombredominio/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|js|css)$ – [F]

Para los que no os guste el copia y pega os dejo un archivo comprimido con los tres archivos listos. El enlace es http://db.tt/5alJITCI

Eso es todo por ahora…seguire en otros tutoriales otro tipo de optimizaciones para imagenes y demás partes relacionadas con la web. Un saludo a todos.

Saca el máximo partido a Emule Servidores Emule 2012: Utiliza de forma segura Emule

26/01/2012 1 comentario

Actualizamos el listado de servidores emule para que las descargas en Emule sean fiables y seguras, evitando fakes, virus  y servidores emule falsos creados para entorpecer el libre y sano intercambio libre de archivos P2P. En los tiempos que corren, el veterano programa de intercambio Emule puede tener una segunda juventud, máxime ahora que se ha desatado una caza de brujas a nivel mundial, liderada por Estados Unidos, contra las webs de enlaces,  servidores de alojamiento, películas y series en streaming, que han llevado al cierre de Megaupload y  puesto en el punto de mira a portales como Taringa, seriesyonkis, peliculas yonkis a servers como rapidshare, fileserver, mediafire, etc;  lo cual puede llevar a los usuarios a abandonar la descarga directa.  A día de hoy los servidores emule más seguros son los siete que os detallaremos a continuación. Leer más…

Defraggler 2.09.391 lanzado con muchas mejoras…


Defraggler 2.09.391 final es la última versión estable lanzada y ya disponible para descargar del programa gratuito para desfragmentar disco de la empresa Piriform, que también es la desarrolladora de los programas CCleaner, Recuva y Speccy, en el cual se han incluido diversas mejoras relevantes. Defraggler es capaz de desfragmentar ficheros y carpetas individualmente en el discoa diferencia de otros programas de pago de la competencia, lo que le convierte aún más en una poderosa herramienta para el sistema.

Este desfragmentador de disco gratuito está disponible en español para Windows 2000, 2003, XP, Vista y Windows 7, tanto en las versiones de 32 bits como en las de 64 bits.

Defraggler 2.09.391 incluye las siguientes mejoras y novedades con respecto a versiones anteriores, tal y como se especifica en su listado oficial de cambios: Leer más…

CCleaner 3.15.1643: CCleaner nos ofrece una versión con mejoras…

26/01/2012 1 comentario

CCleaner es el mejor programa gratuito limpiador de ficheros temporales y registro de Windows, eso es de sobra conocido por todos los usuarios que lo utilizamos a diario, así que dejando sutilezas aparte, me dedicaré a exponeros las nuevas cualidades del CCleaner 3.15.1643.

CCleaner 3.15.1643 incorpora las siguientes mejoras (26 de Enero de 2012) y correcciones respecto a la versión anterior:

  • Se añade la limpieza de archivos directos de Chrome Canary Omnibox
  • Se añade la opción de limpiar la papelera de reciclaje con archivos de más de 24 horas
  • Mejoras en la limpieza del historial de Firefox
  • Mejoras en los resultados de análisis de cookies de Firefox y Chrome, así como de la caché
  • Mejoras en el limpiador de retroalimentación del controlador para el éxito de las operaciones
  • Mejorado el algoritmo de la sincronización de hilos para que no ocurran posibles errores
  • Mejoras en la limpieza del registro de Windows y la búsqueda de MS
  • Se añaden algunos cambios menores y se solucionan algunos errores leves
  • Además se añaden varios cambios en la limpieza de los navegadores y programas

Google crea una herramienta para acelerar el SSL

24/05/2011 2 comentarios

Cuando utilizamos seguridad en la web (HTTPS), normalmente las páginas web cargan más lentamente ya que el cifrado de datos reduce la velocidad de carga.

Google ha estado probando un nueva herramienta para acelerar el proceso.

La herramienta se llama SSL False Start y ha sido implementado en Chrome 9, las pruebas que han realizado reducen el handshake de SSL en un 30%.

Google se ha preocupado de hacer que este sistema sea también compatible con versiones anteriores para satisfacer la experiencia de usuario.

Hay sitios web que no son compatibles (todavía) con False Start, Google incluirá en Chrome la lista de sitios que no son compatibles.

Sin duda, una buena noticia para aumentar nuestra seguridad en la red, sin sacrificar la velocidad de carga.

Tenéis más información en el Blog De Chrome

Visto en: RedesZone

Instalacion de Ruby on Rails en Linux

05/05/2011 1 comentario

Ruby es un lenguaje de programación interpretado. Ruby funciona con cualquier sistema operativo moderno, pero se siente más “en casa” en sistemas tipo Unix (como por ejemplo y es nuestro caso de instalación un Linux).

La manera en que instalemos ruby depende mucho de nuestro tipo de máquina y sus necesidades. Es recomendable que lea todo lo relevante a la plataforma que desee instalar antes de que haga una decisión acerca de cómo instalarlo.

http://www.ruby-lang.org/es/

http://www.pablasso.com/2009/01/12/%C2%BFcomo-instalar-ruby-on-rails-en-ubuntu

http://www.noticias-tecnologia.com.ar/tutoriales/instalar-ruby-on-rails-en-windows/

Pasos rápidos y sencillos (Para Linux Ubuntu 10.04, 10.10 y 11.04):

NOTA: DEBE SER UNA INSTALACIÓN LIMPIA, ME REFIERO DESDE CERO…DESINSTALANDO TODO AQUELLO QUE TUVIÉSEMOS EN EL DISCO RELACIONADO CON RUBY, RAILS, GEM O REDCAR….

mike@m7:~$ sudo apt-get install rails

Una vez todo instalado, incluidas las dependencias, tendréis un entorno listo para funcionar…pero si queremos tener las ultimas versiones de todo no tendremos otro remedio que seguir los siguientes pasos para poder tenerlos.

mike@m7:~$ sudo apt-get install build-essential git-core curl

mike@m7:~$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

mike@m7:~$ echo ‘[[ -s “$HOME/.rvm/scripts/rvm” ]] && source “$HOME/.rvm/scripts/rvm”‘ >> ~/.bashrc

En otra consola diferente, cerráis la que esta abierta y volvéis a abrir otra diferente (sino no funcionara)

mike@m7:~$ rvm notes

mike@m7:~$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev

mike@m7:~$ sudo gem install sqlite3-ruby

mike@m7:~$ rvm install ruby-1.9.2

mike@m7:~$ rvm use ruby-1.9.2 –default

mike@m7:~$ gem update –system

mike@m7:~$ gem install rails

mike@m7:~$ gem install sqlite3

mike@m7:~$ ruby -v

Y debería apareceros lo siguiente:

mike@m7:~$ gem -v

mike@m7:~$ rails -v


mike@m7:~$ gem list

Y por ultimo os recomiendo que descargeis el siguiente entorno para programación que encontré para ello, sobre todo para Ruby, escrito en Python….

Enlace de descarga: http://www.sublimetext.com/2

Lo descargáis en cualquier carpeta, lo descomprimís y os metéis en la carpeta…veréis lo siguiente…

Bien, el ejecutable es “sublime_text”…desde Nautilus (pulsando dos veces sobre el nombre del archivo) o desde la terminal con

mike@m86:~/rails/Sublime Text 2$ ./sublime_text

Y listo … aquí lo tenéis en funcionamiento….

A %d blogueros les gusta esto: