Archivo de configuracion de nginx para trabajar con unicorn

Para trabajar con Unicorn es necesario usar un servidor web como proxy reverso que conecte con el servidor ruby. La mejor forma de enlazar es usar la ruta unix, caracterisitica disponible en todos los sistemas basados en Unix.

upstream unicorn {
server unix:/var/www/tunombre/tmp/unicorn.sock fail_timeout=0;
}

server {
listen 80;
server_name tu nombre;
root /var/tunombre;

location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}

try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}

error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}

Revision a Acer C720 con Chrome Os

LLego este equipo a mis manos, se siente muy bien al tacto aunque el teclado es un poco incomodo para escribir con rapidez.

C720 Acer

Me tentó el precio en oferta por lo que decidí a comprarlo,  el material con el cual estaba construido me fascino y también la fantástica duración de batería de 8.5 hrs para un equipo liviano era excelente además de un booteo muy rápido. El equipo ideal para consultas rápidas dije. Pero lo mas llamativo era que el equipo venia con Chrome Os un bicho raro para mí en esos momentos.

Después de unas semanas de uso puedo decir Chrome Os le falta mucho terreno aún, resulta muy incomodo para un usuario avanzado, pero es el perfecto sistema para madres o Facebook Lover

El porque de esa afirmación es que es un sistema muy difícil de echar a perder es auto actualizable se reseta de manera muy rápida, casi libre de mantenimiento.

 

Partidos del Mundial Brasil 2014 Transmitidos en Chile por TV abierta.

Ficha preliminar de partidos para el Mundial 2014
Estado: en completación

Por hacer:

  • -agregar horas
  •  -links para los otros partidos
Encuentros que se transmiten en señal abierta TVN y Canal 13

Brasil vs. Croacia 12/06
España vs. Holanda 13/06
Chile vs. Australia 13/06
Colombia vs. Grecia 14/06
Uruguay vs. Costa Rica 14/06
Inglaterra vs. Italia 14/06
Francia vs. Honduras 15/06
Argentina vs. Bosnia 15/06
Alemania vs. Portugal 16/06
Brasil vs. México 17/06
Australia vs. Holanda 18/06
Chile vs. España 18/06
Uruguay vs. Inglaterra 19/06
Italia vs. Costa Rica 20/06
Argentina vs. Irán 21/06
Alemania vs. Ghana 21/06
EE.UU. vs. Portugal 22/06
Chile vs. Holanda 23/06
Brasil vs. Camerún 23/06
Italia vs. Uruguay 24/06
Japón vs. Colombia 24/06
Nigeria vs. Argentina 25/06
Ecuador vs. Francia 25/06
Portugal vs. Ghana 26/06

No transmitidos por TV Abierta  ( Estos los transmite directv)

México vs. Camerún 12/06
Costa de Marfil vs. Japón 14/06
Suiza vs. Ecuador 15/06
Irán vs. Nigeria 16/06
Ghana vs. EE.UU 16/06
Bélgica vs. Argelia 17/06
Rusia vs. Corea del Sur 17/06
Camerún vs. Croacia 18/06
Colombia vs. Costa de Marfil 19/06
Japón vs. Grecia 19/06
Suiza vs. Francia 20/06
Honduras vs. Ecuador 20/06
Nigeria vs. Bosnia 21/06
Bélgica vs. Rusia 22/06
Corea del Sur vs. Argelia 22/06
Australia vs. España 23/06
Croacia vs. México 23/06
Costa Rica vs. Inglaterra 24/06
Grecia vs. Costa de Marfil 24/06
Bosnia vs. Irán 25/06
Ecuador vs. Francia 25/06
EE.UU. vs. Alemania 26/06
Argelia vs. Rusia 26/06
Corea del Sur vs. Bélgica 26/06.

si tienen links o información de canales que transmitirán estos partidos favor postearlos

Activar ssl en nginx con certificado autofirmado

Para las pruebas se utilizo una maquina Ubuntu 12.04 LTS.

si no se tiene instalado nginx se puede hacer facilmente desde consola con el comando:

sudo apt-get install nginx

El algoritmo de generacion es:

  • Generar una llave
  • Crear CSR (Certificate Signing Request)
  • Firmar certificado usando la llave privada y el  CSR

Crear un directorio para ssl

 cd /etc/nginx/
mkdir ssl
cd ssl

Creacion de la llave

openssl genrsa -out server.key 2048

Creacion de CSR

$ openssl req -new -key server.key -out server.csr

Finalmente firmarlo

$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Aqui se firmo el certificado con una duracion de 1 año

Ahora queda configurar el nginx copia el fichero de default para crear uno nuevo

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/ejemplo

luego se edita este archivo con los parametros que hemos puesto principalmente como se llama el dominio y las rutas de ssl

nano /etc/nginx/sites-available/ejemplo

Se puede dejar para que quede habilidado el puerto 80 y el 443

  # HTTPS server
#
server {
        listen 443;
        server_name example.com;
        root /usr/share/nginx/www;
        index index.html index.htm;
        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
        ssl_prefer_server_ciphers on;
        location / {
listen 443;
server_name example.com;
root /usr/share/nginx/www;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ /index.html;
}
}

Configuracion HTTPS de ejemplo, luego se reinicia nginx

service restart nginx

Hola Mundo en programacion paralela


/* C Example */
#include
#include

int main (argc, argv)
int argc;
char *argv[];
{
int rank, size;

MPI_Init (&argc, &argv); /* starts MPI */
MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */
printf( “Hello world from process %d of %d\n”, rank, size );
MPI_Finalize();
return 0;
}


Codigo en C para correr el hola mundo guardarlo como holamundo.c

icc -lmp8 holamundo.cl
Compila el codigo

mpirun -np 10 .a/.out

El 10 va a ser el numero de procesos que se van a correr lo ideal es colocar el numero de cores del equipo.