"You're a stupid template! and your mother dressed you funny! who could use such a stupid stupid template?" – B. PostowRef: http://stackoverflow.com/questions/3426067/how-to-mock-templated-methods-using-google-mock
17 de octubre de 2013
How to mock a template method with gmock?
With stern voice you have to say:
12 de agosto de 2013
Pasos para migrar MoinMoin a Nginx en Debian/Ubuntu
Ayuda memoria para cuando lo tenga que volver a hacer
- Primero los paquetes obvios nginx-full y python-moinmoin.
- Ahora estos paquetes uwsgi y uwsgi-plugin-python.
- Configurar Uwsgi. Por ejemplo (/srv/wiki/ es donde esta el wiki):
<uwsgi> <uid>www-data</uid> <gid>www-data</gid> <plugin>python</plugin> <wsgi-file>/srv/wiki/moin.wsgi</wsgi-file> <memory-report /> <vhost /> <no-site /> </uwsgi>
- Configurar MoinMoin. Editar /etc/moin/mywiki.py y agregar por lo menos estas líneas
sitename = u'Mi super Wiki' interwikiname = u'SuperWiki' data_dir = '/srv/wiki/data/' data_underlay_dir = '/srv/wiki/underlay'
- Configurar Nginx. Crear un archivo "wiki" en /etc/nginx/sites-available con el siguiente contenido
server { server_name wiki; root /usr/share/moin/htdocs; location /moin_static194 { access_log off; alias /usr/share/moin/htdocs; } location = /favicon.ico { rewrite "/favicon.ico" /moin_static194/favicon.ico; } location / { gzip off; include uwsgi_params; uwsgi_param SCRIPT_NAME /; uwsgi_modifier1 30; uwsgi_pass unix:/run/uwsgi/app/moin/socket; } }
20 de mayo de 2013
Usando cálculo numérico para mejorar un programa
Este es el problema que teníamos era el siguiente al intentar leer un archivo desde una posición p0 fallaba, pero desde otras posiciones todo funcionaba correctamente.
El archivo en cuestión era un .mpg que contenía un video con audio. Estos archivos no están pensados para que se pueda acceder de manera aleatoria, sino para ser usado en modo de streaming.
Podemos pensar el problema del siguiente modo, queremos encontrar la función h(t) = p tal que dada un tiempo t, nos devuelva la posición donde empieza el cuadro de video t.
Pero lo que podemos averiguar es g(p) = t, es decir dada una posición p a que tiempo t de cuadro de video corresponde. Podemos suponer que al principio tenemos g(0) = 0, y que si P es la posición máxima de video, y T es el tiempo máximo entonces tenemos g(P) =T.
Luego dado un tiempo t intermedio entre 0 y T, podemos aplicar cualquier método de búsqueda de raíces a f(x) = g(x) - t.
En nuestro caso lo que sucedía es que la función g no se comportaba muy bien el la cercanía de la posición problemática. La función g es monótona y creciente, pero la convergencia era lenta, y el programa para evitar demorar demasiado y parecer colgado generaba un error.
El archivo en cuestión era un .mpg que contenía un video con audio. Estos archivos no están pensados para que se pueda acceder de manera aleatoria, sino para ser usado en modo de streaming.
Podemos pensar el problema del siguiente modo, queremos encontrar la función h(t) = p tal que dada un tiempo t, nos devuelva la posición donde empieza el cuadro de video t.
Pero lo que podemos averiguar es g(p) = t, es decir dada una posición p a que tiempo t de cuadro de video corresponde. Podemos suponer que al principio tenemos g(0) = 0, y que si P es la posición máxima de video, y T es el tiempo máximo entonces tenemos g(P) =T.
Luego dado un tiempo t intermedio entre 0 y T, podemos aplicar cualquier método de búsqueda de raíces a f(x) = g(x) - t.
En nuestro caso lo que sucedía es que la función g no se comportaba muy bien el la cercanía de la posición problemática. La función g es monótona y creciente, pero la convergencia era lenta, y el programa para evitar demorar demasiado y parecer colgado generaba un error.
Etiquetas:
calculo-numerico,
matematicas,
programacion
19 de mayo de 2013
Pasos para usar ssh sin ingresar un password
- Generamos un par de clave privada/pública:
$ ssh-keygen [-t tipo] [-b longitud]
Opcionalmente podemos especificar la longitud de la clave y el tipo. El tipo puede ser rsa, dsa, ecdsa. Con longitud especificamos la cantidad de bits de la clave. Podemos presionar Enter cuando nos pide un palabra de paso para cifrar la clave privada, si queremos más seguridad podemos ponerle una palabra de paso y usar ssh-agent para cargar la clave privada. - Copiamos la clave pública a la computadora donde queremos ingresar.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub
El par de claves se crean dentro de ~/.ssh, la clave pública en id_rsa.pub y la clave privada en id_rsa. El comando ssh-copy-id agrega la clave pública a, en el archivo ~/.ssh/authorized_keys donde se guardan las de claves autorizadas una por renglón.
18 de febrero de 2013
Arrancando un pendrive desde Grub2
Si desde el menú del BIOS no podemos arrancar un pendrive, pero tenemos instalado grub2 podemos tipear lo siguiente desde la consola de grub, para arrancar
grub> set root='(hd1,msdos1)'Para acceder a la consola aprentamos la tecla c, en la pantalla de inicio. Para saber que particiones estan disponibles tipeamos ls en la consola.
grub> chainloader +1
grub> boot
7 de enero de 2013
Configurar una conexión ad-hoc para compartir internet
La idea es que tenemos dos computadoras, una con acceso a internet, y queremos que la otra también puede conectarse a internet, pero no contamos con un router.
Lo primero que vamos a hacer es conectar las dos computadoras, luego vamos a configurar esta conexión para que la segunda computadora pueda acceder a internet.
Ahora en la máquina que tiene la conexión a internet, que vamos a llamar Servidor, ponemos la conexión inalámbrica en modo ad-hoc, con el nombre MYSID, usando WEP con la clave 12345 (algunas versiones de windows sólo funcionan con claves de longitud 5 ó 10), usando como IP 192.68.22.1.
Para compartir la conexión de internet de la computadora Servidor con la Cliente, tenemos que configurar Servidor para que pueda enrutar correctamente los paquetes de Cliente, y luego pueda reenviar la respuesta. Este tipo de conexión se llama NAT.
Lo primero que vamos a hacer es conectar las dos computadoras, luego vamos a configurar esta conexión para que la segunda computadora pueda acceder a internet.
Ahora en la máquina que tiene la conexión a internet, que vamos a llamar Servidor, ponemos la conexión inalámbrica en modo ad-hoc, con el nombre MYSID, usando WEP con la clave 12345 (algunas versiones de windows sólo funcionan con claves de longitud 5 ó 10), usando como IP 192.68.22.1.
# iwconfig wlan0 mode ad-hocEn la otra computadora, que vamos a llamar Cliente, repetimos estos pasos (cambiando el IP pero dentro del mismo rango por ejemplo 192.168.22.2). Sólo falta configurar Cliente para que use la conexión de Servidor como salida.
# iwconfig wlan0 essid MYSID
# iwconfig wlan0 key s:12345
# ifconfig wlan0 192.168.22.1 up
# route add default gw 192.168.22.1Después de estos pasos deberiamos tener conectividad entre las dos computadoras.
Para compartir la conexión de internet de la computadora Servidor con la Cliente, tenemos que configurar Servidor para que pueda enrutar correctamente los paquetes de Cliente, y luego pueda reenviar la respuesta. Este tipo de conexión se llama NAT.
# sysctl -w net.ipv4.ip_forward=1El primer comando habilita en el núcleo el reenvio de paquetes. El segundo y tercero habilitan que Cliente se pueda conectar a internet usando la IP de Servidor y poder recibir las respuestas.
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -A FORWARD -i wlan0 -j ACCEPT
Suscribirse a:
Entradas (Atom)