Nuevo portal de Canaima

Hoy el proyecto Canaima institucional amaneció con nuevo portal Web, acá algunos detalles que observé de pasada

¿Qué me gustó?

* Es ligero (en mi paupérrima conexión cargó rápido)
* Interfaz moderna, no lo probé en otros dispositivos aunque por el
código debería ser responsive
* Combinación agradable de colores
*Declara los contenidos con Creative Commons Reconocimiento – No
Comercial – Compartir Igual 3.0 Venezuela

¿Qué no me gustó?
* Le quitan el crédito a la comunidad de joomla ya que estando basado en ese CMS no se ve por ningún lado que diga que lo usan, sólo revisando el código podemos verificarlo.
* TIene errores ortográficos, incluso en el código (<meta name=”keywords” content=”CNTI,cnti,Cnti,Canaima,CANAIMA,canaima,
Canaima 5.0, canaima 5.0, CANAIMA 5.0, Canaima Linux, canaima linux,
CANAIMA LINUX, Canaima GNU/Linux, canaima gnu/linux, CANAIMA
GNU/LINUX, Canaima Educativo, canaima educativo, CANIAMA EDUCATIVO…)
* Hay errores conceptuales: por ejemplo, confunden la definición de sabor de canaima educativo con el proyecto de hardware homónimo [1], o confundir el concepto de cayapa [2] con el funcionamiento de la comunidad canaima [3] lo cual si alguien que no conoce canaima lee
dirá que la comunidad canaima es una cayapa (:-)
* Mejor aprovechamiento de enlaces : Por ejemplo en
http://canaima.softwarelibre.gob.ve/canaima/soporte envían a
http://trac.canaima.softwarelibre.gob.ve/ cuando debería ser
http://trac.canaima.softwarelibre.gob.ve/canaima
* Alcances del proyecto no correctos: en [4] confunden nacional al
decir que “dado que nuestros dos principales productos están dirigidos
a usuarios en todo el país, el sector educativo y el sector APN”
dejando por fuera otros importantes sectores que también conforman lo
nacional.
* En beneficios se dejan de lado componentes estratégicos tales como
que canaima es una “excusa” par construir una soberania, un país
potencia, independencia tecnológica, apalancamiento de sectores
socio-productivos, etc.

Quizás existan otras observaciones que se me escapan en este momento,
pero creo que lo importante es el punto de que, quizás, la estrategia
de sacarlo al público para su validación es interesante siempre y
cuando se tenga claro el transfondo conceptual ya que esa es la primer
imagen que nos llevamos, lo demás es adorno…

Y así deben haber muchos detalles más.

MI humilde recomendación es que revisen bien este tipo de iniciativas
antes de salir a producción, pero que sean revisadas por un equipo
multidisciplinario para que la construcción pueda ser integral y no desde una única  perspectiva.
[1] http://canaima.softwarelibre.gob.ve/canaima/sabores-canaima
[2] http://cayapa.canaima.net.ve/wiki/doku.php
[3] http://canaima.softwarelibre.gob.ve/comunidad/como-funciona-la-comunidad-canaima
[4] http://canaima.softwarelibre.gob.ve/canaima/alcance

Lighttpd y mod_rewrite

WordPress implementa una interesante función que se llama enlaces permanentes. Sin embargo, esta funcionalidad se apoya directamente en el mod_rewrite de apache2.

Ahora bien, algunos de nosotros tratamos en lo posible no usar apache por razones de uso de recursos (en especial en hosting donde la memoria va casi justa) y en su lugar nos decantamos por lighttpd, por ejemplo, lo cual hace que tengamos que trabajar un poco más a la hora de implementar o desplegar funcionalidades como la anteriormente descrita.

Así, al momento de migrar los blogs que estaban funcionando sobre apache y wordpress hacia lighttpd y wordpress, aparecía el detalle de que el panel de administración de wordpress no mostraba en las opciones de enlaces permanentes que  las direcciones fuesen del tipo URL+titulo_entrada sino que eran URL+index.php/+titulo_entrada

Para solventar este detalle se realizaron los siguientes pasos:

a) Se habilito el módulo de mod_rewrite

b) Se creó un nuevo bloque de configuración con una sintaxis como esta:

$HTTP["host"] =~ "(www.)?misitio.com" {
         url.rewrite = (
                         "^/(.*)\.(.+)$" => "$0",
                         "^/(.+)/?$" => "/index.php/$1"
                        )
}

Luego de reiniciar el servicio, entonces, se nos muestra una nueva opción en el panel de enlaces permanentes que se llama “enlaces personalizados”

Espero les sea útil la entrada.

 

Paquete vhistory en español para latex

Latex es una de las herramientas más poderosas que existen para la generación de documentación, así mismo, la cantidad de paquetes adicionales que pueden ser agregados con simples comandos aumentan su flexibilidad para poder realizar casi que cualquier opción que al usuario se le ocurra.

Hace poco se me presentó una duda mientras elaboraba un manual en latex ¿existe alguna forma de colocar el histórico del documento de forma semiautomatizada? En tanto mi documento no está bajo un sistema de versionado como git o svn, no podía acceder a un git log e incluirlo en el cuerpo del documento usando, por ejemplo, latex-git log [1] o latex-diff [2]. Así mismo, semiuatomatizado para mí es que en tanto soy el único autor conozco qué cambios he introducido en cada versión.

Buscando encontré el paquete vhistory el cual cumplía con todos mis requerimientos excepto uno: los mensajes que colocaba estaban en inglés, francés y alemán lo cual me animó a realizar la traducción del mismo al español, cosa que no me tomó más de 10 minutos entre ubicar el archivo .sty, entender el funcionamiento del mismo y colocar los nuevos bloques de mensaje; como resultado obtuve mi control de histórico en el documento con mensajes en español.

El archivo lo pueden conseguir en https://github.com/e1th0r/translations junto con las instrucciones corespondientes a su uso.

Espero les sea útil como lo fue para mí.

[1] https://www.ctan.org/pkg/latex-git-log?lang=en

[2] http://www.ctan.org/tex-archive/support/latexdiff/

Ip real detrás de proxy web

Una de las acciones más utilizadas en el mundo de la virtualización es la de tener un proxy web que reciba todas las peticiones web que llegan al dom0 y pasarlas a las correspondietes VM que estén bajo su control y que puedan respondar a las respectivas peticiones web.

Sin embargo, la configuración estandar impide que podaos ver, por ejemplo, las direcciones IP reales que llegan a la VM, obteniéndose, en su lugar, la IP del dom0:

  IP CLIENTE          IP DOM0          IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 192.168.0.1 |
==============      ==============     ===============

Lo anterior podemos verlo en el siguiente trozo de log de un servidor lighttpd que responde peticiones provenientes de un servidor proxy web que funciona en nginx

prueba.mydomain.net.ve 192.168.0.1 – – [05/Apr/2015:08:36:12 -0430] “GET / HTTP/1.0” 404 345 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0”

Lo que deseamos es que el campo de la ip nos muestre la ip real del cliente que hace la conexión y no la ip del dom0.

La solución correcta en lighttpd es a siguiente:

a) Configurar y activar el módulo accesslog de lighttpd; en debian este módulo tiene su archivo de configuración aparte, ubicado en /etc/lighttpd/conf-available:

a-1) Configurándolo: para ello agregar al archivo /etc/lighttpd/conf-available/10-accesslog.conf la siguiente cadena al final del mismo:

accesslog.format = “%{X-Forwarded-For}i %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i””

a-2) Activar el módulo:

lighty-enable-mod accesslog

b) Configurar el módulo extforward, para ello, en su archivo de configuración de lighttpd coloque:

extforward.forwarder = (
     "192.168.0.1" => "trust"
  )
extforward.headers = ("X-Cluster-Client-Ip")

Nótese que la ip colocada acá es la del dom0 que se conecta con las VM, en nuestro caso es 192.168.0.1

c) Reiniciar lighttpd

Es muy importante el paso a-1 ya que muchos tutoriales no indican que debe colocarse la cadena %{X-Forwarded-For}i lo cual impide conocer la ip real.

Al finalizar esta configuración, el log del lighhtpd configurado en la VM debe mostrar algo como:

190.77.XX.XX – – [05/Apr/2015:08:52:45 -0430] “GET / HTTP/1.0” 200 2682 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0”

Quedando nuestro esquema, entonces, de la iguiente forma:

  IP CLIENTE          IP DOM0           IP LOG EN VM
==============      ==============     ===============
|190.9.XX.XX | -->  | 192.168.0.1| --> | 190.9.XX.XX |
==============      ==============     ===============

Espero disfruten la ayuda 😀

Optimizando recursos en tu computador

En aras de optimizar el uso de un minicomputador que estoy utilizando, he venido realizando una serie de instalaciones controladas obviando muchos de  los paquetes predefinidos que ofrece el instalador de Debian, en este caso.

Al momento de la instalación de Debian, utilicé la versión testing:

hector@helga:/tmp$ cat /etc/debian_version 
jessie/sid
hector@helga:/tmp$

Y como manejador de ventanas e17 junto con lightdm como gestor de inicio de sesión gráfica.

Esta combinación me ha permitido ahorrar recursos en el equipo VIT M1100, computador de procesador  Intel Atom CPU N270 a 1.60GHz con 2 Gb de RAM; por ejemplo, no es infrecuente que en ese equipo tenga funcionando, como ahora, LibreOffice, un navegador web con 10 ventanas abiertas, una consola (utilizo lxterminal) con 3 pestañas abiertas y el rendimiento del mismo sea bastante aceptable

 hector@helga:/tmp$ free
 total used free shared buffers cached
Mem: 2062084 1331972 730112 112288 48432 671848
-/+ buffers/cache: 611692 1450392
Swap: 3906556 0 3906556
hector@helga:/tmp$

Sin embargo, una de las cosas que extrañé fue una herramienta que me permitiese utilizar la webcam, para ello, utilicé la herramienta fswebcam, disponible en los repositorios de Debian y que se utiliza de la siguiente forma:

hector@helga:/tmp$ fswebcam -r 1024x768 --jpeg 200 -D 1 captura.jpg

Donde:

r es la resolución

–jpeg es la resolución de salida del formato a utilizar

-D es el retardo que se utilizará para que luego de activada la cámara se tome la fotografía, en algunos casos, este valor debe ser mayor para permitir que el sensor de la cámara calibre la luz exterior

Acá un ejemplo de la captura realizada.
captura

Espero les sea útil esta entrada.

Latex Beamer Referencias de figura sin números

Generando unas diapositivas en Latex Beamer para el postgrado, me encontré con un detalle bastante extraño: al insertar una figura no se generaba la referencia respectiva:

Referencia sin número

Investigando un poco [1] conseguí que este error se debe a que me faltaba incluir la opción setbeamertemplate{caption}[numbered] en el encabezado del documento y con eso ya podemos tener nuestras figuras perfectamente referenciadas en Latex Beamer:
Referencia con número
Disfruten la ayuda!

[1] http://tex.stackexchange.com/questions/127145/beamer-presentation-figure-has-no-number

 

Script para instalación de SeedDMS

SeedDMS [1] es un potente gestor documental que posee una gran cantidad de funcionalidades para ayudar en el manejo de repositorios documentales, tales indexación, visualización en línea, creación de flujos de trabajo, manejo de versiones, permisología bastante granular y otras.

Sin embargo, quienes lo hayan instalado, quizás recuerden lo tedioso que resulta ese proceso. Por ello, luego de varias pruebas, cree un pequeño script de instalación en bash que permite automati?ar casi toda la instalación de dicho software.

Pueden descargarlo en https://github.com/e1th0r/seeddms-install

Comentarios bienvenidos.

[1] http://www.seeddms.org

Lorem Ipsum

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet consectetur adipisci velit

 Cicerón De finibus bonorum et malorum,  sección 1.10.32–3

El lorem ipsum es un texto bastante conocido cuando se intenta “rellenar” con un texto cualquiera  una publicación: nos interesa ver más como queda que qué contiene en este momento.

Sin embargo, quizás no muchos han averiguado más allá qué significa realmente dicha frase.

Ya Cicerón, unos 100 años antes de la era de Cristo, escribía parte de este texto, con el que empezamos este escrito, en su obra “De finibus bonorum et malorum”, texto que sería rescatado por Richard McClintock en los años 60 del siglo pasado y que la gente de Aldus, los creadores de Page Maker, incorporaron en las plantillas para mostrar su visualización previa.

Hace poco, a propósito de una discusión en twitter [1] necesité verificar ¿cuánto texto plano, aproximadamente, puede contener un archivo de 40 kb?

Lo primero que pensé fue ¿cómo obtengo un archivo de 40 kb de texto? La  respuesta que inmediatamente pensé fue “Lorem ipsum” Sin embargo, ¿cómo genero lorem ipsum para rellenar un archivo de texto de 40 kb? aptitude debe tener una respuesta, así que:

hector@olafo:/tmp$ aptitude search lorem
p   libtext-lorem-perl                                   - random faux Latin text generator
hector@olafo:/tmp$

Me muestra que hay un módulo de perl para generar el texto latino lorem

hector@olafo:/tmp$ aptitude show libtext-lorem-perl
Paquete: libtext-lorem-perl
Nuevo: sí
Estado: no
Instalado automáticamente: no
Versión: 0.3-1
Prioridad: opcional
Sección: perl
Desarrollador: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Arquitectura: all
Tamaño sin comprimir: 81,9 k
Depende de: perl
Descripción: random faux Latin text generator
Often when developing a website or other application it's important to have placeholders for content. Text::Lorem
generates prescribed amounts of fake Latin text.
Página principal: http://search.cpan.org/dist/Text-Lorem/

hector@olafo:/tmp$

Lo instalé y fui a la página de cpan [2] donde se indica como usarlo, así que un simple código de menos de 8 líneas con el siguiente contenido cumplió mi cometido:

hector@olafo:/tmp$ cat generador.pl
#!/usr/bin/env perl
use Text::Lorem;
my $text = Text::Lorem->new();
$paragraphs = $text->paragraphs(190);
print $paragraphs;
hector@olafo:/tmp$

Le paso como argumento 190 que indica el número de párrafos que deseo generándome un archivo cualquiera, en mi caso, lo llamé lorem_ipsum.txt

hector@olafo:/tmp$ ls -l lorem_ipsum.txt
-rw-r--r-- 1 hector hector 39616 mar  2 08:32 lorem_ipsum.txt
hector@olafo:/tmp$

Archivo que contiene menos de 40 kb

Ahora bien, ese archivo tiene las siguientes características:

hector@olafo:/tmp$ cat lorem_ipsum.txt |wc -l
378
hector@olafo:/tmp$

378 líneas

hector@olafo:/tmp$ cat lorem_ipsum.txt |wc -c
39616

hector@olafo:/tmp$

39.616 palabras

Y para saber el número de páginas, lo abro en libreoffice (que reconoce caracteres con tamaño 10) y me indica que son 19 páginas de texto.

Ahora bien, si quieremos ser un poco más “técnicos” podemos usar enscript:

hector@olafo:/tmp$ enscript lorem_ipsum.txt -o lorem_ipsum.ps
[ 12 pages * 1 copy ] copiadas en lorem_ipsum.ps
189 lines were separadas
hector@olafo:/tmp$ ps2pdf lorem_ipsum.ps lorem_ipsum.pdf
hector@olafo:/tmp$ ls -l lorem_ipsum.pdf
-rw-r--r-- 1 hector hector 25942 mar  2 10:21 lorem_ipsum.pdf
hector@olafo:/tmp$

Optimizado y tal el pdf llega a los 25 kb con 12 páginas que poseen un promedio de 66 líneas por cada página

Espero que este ejercicio de “procastinación” les sirva de algo en un momento.

[1] https://twitter.com/e1th0r/status/440101294016307200

[2] http://cpansearch.perl.org/src/ADEOLA/Text-Lorem-0.3/README

Instalando mysql-workbench en debian y ubuntu

El fin de semana un cliente me pidió que le instalase en un equipo mysql-workbench; el único problema es que dicho equipo está funcionando con ubuntu versión 12 (digo problema para mí ya que no trabajo con Ubuntu).

Al momento de hacer el trabajo recordé que la semana pasada @Genesis_3G me decía que instalando mysql-workbench en debian squeezy requería una gran cantidad de dependencias.

Luego de una hora, aproximadamente entre descargas y compilación,  pude tener funcionando dicha aplicación en Ubuntu.

A continuación detallo el procedimiento que realicé.

a) Primero actualicen sus fuentes con aptitude update

b) Instalen las dependencias requeridas:

aptitude install libzip-dev glibc-2.13-1 libglib2.0-dev 
libsigc++-2.0-dev libgtkmm-2.4-dev sqlite3 libsqlite3-dev 
libboost-dev libmysqlclient-dev uuid-dev liblua50-dev 
lua5.1 liblua5.1-0-dev python-dev libcairo2-dev 
libcairo2-dev libcairo2-dev libgl1-mesa-dev 
libctemplate-devel libctemplate-dev libiodbc2-dev 
libpcre3-dev autoconf gcc make

c) Cambiarse al directorio donde descargaron los fuentes y ejecutar:

./configure
autoreconf -fi
make
make install

Para el último paso, dependiendo de la velocidad del equipo, deben esperar  un tiempo extenso (en mi caso tardó casi una hora)

Finalmente, este procedimiento no es necesario en debian wheezy ya que en dicha versión de debian, esa aplicación viene incluida 😀

Espero que disfruten la ayuda.

n720 ROM

Hace un tiempo, un usuario de twitter, @Soyrhoger, solicitaba el rom original de un tlf  modelo N720 de la empresa Vtelca.

Luego de algunas conversaciones el compañero @Chivo_Libre en twitter, logró crear dicha imagen, la cual subo a una cuenta de dropbox para que, en caso de necesitarla puedan usarla.

En este enlace podrán descargar la ROM en cuestión. Y desde este otro enlace podrán descargar el md5sum para que verificar que el archivo no está corrupto

NOTA: ESTA IMAGEN ES OFRECIDA SIN NINGÚN TIPO DE GARANTÍA POR LO CUAL NO ME HAGO RESPONSABLE BAJO NINGÚN CONCEPTO DEL MAL FUNCIONAMIENTO EN LOS DISPOSITIVOS DONDE ELLA SEA INSTALADA. SI USTED CONSIDERA QUE ESTA IMAGEN ROMPE ALGUNA LICENCIA, POR FAVOR, HÁGAMELO SABER PARA EXAMINAR SU ELIMINACIÓN.