INVITACIÓN AL IX SIMPOSIUM DE SOFTWARE LIBRE DE LA MIXTECA

simposium_de_la_Mixteca

Hola,  les quiero compartir, que he sido invitado al “IX Simposium de Software Libre de la Mixteca“, dicho evento se realizará en la Universidad Tecnológica de la Mixteca (UTM), en la ciudad de Huajuapan de León Oaxaca, los días 26, 27 y 28 del presente mes.

Mi participación será el día 28,  en una mesa redonda, formada por egresados de esta universidad los cuales tenemos tenemos relación con el Software Libre.

Espero nos vaya muy bien en este evento, posteriormente, por este medio subiré la información del cómo nos fue, así como el servo fotográfico que generé.

 

Para mayor información consultar el sitio oficial: http://www.utm.mx/~simposio/IX/

Anuncios

Tema para phpmyadmin.

Hace un tiempo hice una plantilla para el phpmyadmin ya que no me gusta el que viene por defecto, hoy la comparto:

phpmyadmin theme dark orange

phpmyadmin theme dark orange

¿Como instalar?

Descargue el proyecto descomprima la carpeta y adentro ejecute como superusuario:

 ./install.sh 

Para mayores informes visitar el micrositio oficial del proyecto:

http://fitorec.github.com/phpmyadmin_theme_dark_orange/

Remplazando cazamientos de cadenas de texto con sed

Hace un par de días, me encontré con un gran problema tenia que modificar todas las etiquetas de una función de traducción de todo un proyecto, ahora lo primero que percibir es que todos los archivos que tenia que modificar estaban con la extensión .php, y que la función que tenia que quitar, corrrespondian a una serie de acciones que sobre los registros de una BD, estaba de la forma siguientes: __(‘Accion Palabra’,true),  Entonces fue que limite el problema a sustituir todos las ocurrencias de __(‘Accion Palabra’,true) por ‘Palabra’ donde Acción y Palabra podían cambiar(solo sabia que Empezaba con Mayúsculas seguida de  minúsculas), después de pensarle un poco revisar la documentación del sed, la solucion fue:

sed -rie "s/__\('[A-Z][a-z]*\s*([A-Za-z]*)',\s*true\)/'\1'/g" $(find . -iregex ".*\.php$")

Les explico:

-r Opción expresión regular en este caso ejecute el sed como: “s/regex/sustitucion/g” donde.

s: indica que se desea sustituir.

regex: Es la expresión regular: __\(‘[A-Z][a-z]*\s*([A-Za-z]*)’,\s*true\)  con la que cazamos __(‘Accion Palabra’,true), con  [A-Z][a-z]* cazamos una cadena que inicie con Mayusculas([A-Z]) seguida de multipliples(*) minusculas([a-z]), \s* significa multiples(*) espacios(\s) en blanco.  El elemento  sustitución ‘\1’ es el primer elemento(\1) que casamos (un elemento lo cazamos con paréntesis) de la expresión regular (en este caso ([A-Za-z]*) y hacemos referencia a esta cadena con \1 posteriormente en la sustitución) al cual le agregamos las comillas simples, finalmente /g es una bandera indica que la sustitución la va a hacer de forma general(todas la veces que encuentre la cadena buscada).

-i : Le dice al grep que modifique el archivo de entrada.

-e,Permite ejecutar un comando externo, en este caso lo ocupe para llamar al find y con el buscar los archivos php :

find . -iregex ".*\.php$"

Busca los archivos que su nombre termine con  la extensión .php el (i) indica no distinguir entre mayúsculas y minúsculas, los archivos encontrados el sed los ocupa para hacer las sustituciones indicadas(se pueden agregar múltiples sustituciones al concatenarlas con el símbolo ‘;’). Finalmente solo me queda decir que:

El sed con la opción -rie no es cosa de risa!, es algo muy serio, puedes remplazar “cierto contenido” de todos los archivos en especifico de un .

Instalación de libreoffice en Debian y Ubuntu 10.10, con integración de escritorio y paquetes al español

Hace un tiempo publique 2 posts sobre como instalar openOffice en linux [1][2], hoy en cambio quisiera mostrar como instalar LibreOffice,pues creo que hay un poco de desinformación en Internet lo comento por que hace par de días busque información para realizar tal tarea, desgraciadamente los post con los que me encontré no me ayudaron de mucho ya que recomendaban descargar el paquete para fedora y convertirlo en un paquete para debian atravez del alien.

La forma como se va a mostrar es la siguiente, descargar el repositorio para debian más reciente, instalar el libreOffice, instalar integración en el escritorio y  descargar/instalar los paquetes del idioma en español. Finalmente  el resultado es el siguiente.

libreOffice_español

libreOffice en español

Lo primero que tenemos que hacer es descargar la versión mas reciente de libreOffice para esto nos dirigimos a la siguiente dirección.

http://download.documentfoundation.org/libreoffice/testing/

De ahi navegamos entre la versión mas reciente(en momento de escribir el post era la version 3.3.0-rc2 liberada el 20/dic/2010) de ahí seleccionamos la carpeta con el nombre deb.

Sin mas para la arquitectura de 32bits, dejo  las  instrucciones(caso análogo para 64bits):

Puedes descargar el siguiente codigo fuente en: https://gist.github.com/738789

#!/bin/bash

if [ `id -g` -ne 0 ]
then
  echo "Se requiere de permisos de usuario administraviso para ejecutar  ./$0"
  exit 1
fi

#nos pasamos en la carpeta temporal del sistema.
cd /tmp/

#descargamos el paquete de instalación de libreOffice
wget  http://download.documentfoundation.org/libreoffice/testing/3.3.0-rc2/deb/x86/LibO_3.3.0rc2_Linux_x86_install-deb_en-US.tar.gz

#descomprimimos el paquete
tar zxf LibO_3.3.0rc2_Linux_x86_install-deb_en-US.tar.gz 

#instalamos los paquetes DEBS
dpkg -i LibO_3.3.0rc2_Linux_x86_install-deb_en-US/DEBS/*deb
dpkg -i LibO_3.3.0rc2_Linux_x86_install-deb_en-US/DEBS/desktop-integration/*deb

#eliminamos el directorio.
rm -r LibO_3.3.0rc2_Linux_x86_install-deb_en-US/

#Paquetes de idioma español
#-------------------------------------------------

#descargamos el paquete de la lengua en español
wget http://download.documentfoundation.org/libreoffice/testing/3.3.0-rc2/deb/x86/LibO_3.3.0rc2_Linux_x86_langpack-deb_es.tar.gz

#descomprimimos el paquete
tar zxf LibO_3.3.0rc2_Linux_x86_langpack-deb_es.tar.gz

#instalamos los paquetes DEBS
dpkg -i LibO_3.3.0rc2_Linux_x86_langpack-deb_es/DEBS/*deb

#eliminamos el directorio.
rm -r LibO_3.3.0rc2_Linux_x86_langpack-deb_es

Finalmente por ultimo si deseas eliminar por completo el openOffice(yo ya lo hice) lo único que tienes que hacer es:

sudo apt-get remove --purge openoffice*.*

Por el momento no dispongo de mucho tiempo pero espero elaborar un script que te permita instalar libreOffice tanto en debian/ubuntu como en redhat/fedora para múltiples arquitecturas.

Detección de intrusos en nuestra WI-FI – con nmap

Hace un tiempo bajo el titulo de “Detección de intrusos en nuestra WI-FI”  publique un una técnica que se me ocurrió para realizar esta acción, en donde básicamente detectaba a los intrusos a partir del hecho que los routers típicos de telmex como los 2wire tienen una interfaz web(como se puede ver en la siguiente imagen) a la cual me conectaba y mediante un script en python para extraer los nombres de los equipos conectados.

red domestica

aqui se puede observar solo mi maquina fitorec conectada

Sin embargo esta técnica  tiene un par de inconvenientes, la primera es que no funciona para todos los routers, de hecho solo funciona para los que muestren la red de esta forma(a nivel código HTML) y la segunda(quizás la mas importante) es que descubrí que un intruso se puede conectar y borrar la cache de nuestro router ( Hackeando modems routers 2wire de telmex – técnica borrado de caché ), por tal motivo no podemos confiarnos del todo de la información que nos proporciona estos dispositivos, después de re-pensarle un poco encontré una solución mas eficiente basada en la inserción de sondas en la red con la herramienta nmap y de esta forma detectar a los intrusos.

Instalando nmap.

Esta técnica se basa del hecho que se tenga instalado previamente el nmap, recomiendo descargar e instalar la versión mas reciente (más info: http://nmap.org/book/install.html ),  ya que es una herramienta que evoluciona rápidamente (gracias a desarrolladores como Fyodor), sin embargo quizás es mas fácil la instalación por medio de una sola instrucción  la cual dejo a continuación.

#Lo primero que tenemos que hacer el loguearnos como super usuario(root user)
#instalación en sistemas basados en debian:(ubuntu, flujos-vivos, etc..)
apt-get install nmap
#instalación en sistemas basados en redhat:(fedora, centOS, etc..)
yum install nmap

Script para detección de intrusos hosts en una red.

Una vez que tenemos el nmap podemos correr el siguiente script el cual ahora solo muestra las IPs de los equipos conectados pues me parece mejor opción que los nombres de los hosts(revisar archivo de configuración del dhclient  /etc/dhcp3/dhclient.conf ).

Nota: en este script lo único que tienes que configurar es la interfaz por donde quieres detectar a los intrusos hosts(cambiar el valor de INTERFAZ=’valor’, p.e. si quiero explorar mi red Ethernet 0 seria INTERFAZ=’eth0′).

Fyodor
#!/bin/bash
#Autor: fitorec 
#Descripción: Detecta a los hosts conectados en nuestra red
#Requiere: nmap
#
#Atención: Lo único q requiere configurar es la interfaz en donde se desea escuchar
INTERFAZ='wlan0'

#Extraemos la configuración de la IP y mascara de red para usar con el nmap
CONFIG=`ip addr sh $INTERFAZ | grep -E -o "([0-9]+.){3}[0-9]+/[0-9]+" `

#Ejecutamos el nmap para detectar a los hosts conectados en nuestra red(posibles intrusos)
#Cachando sólo las IPs de los hosts conectados(para mostrarlos en el conky)
nmap -sP $CONFIG  | grep -o -E '([0-9]{1,3}\.){3}[0-9]+'

Explicación del código fuente.

Lo primero que cabe mencionar es que la variable INTERFAZ tiene el valor de wlan0 así al ejecutar el comando ip addr sh $INTERFAZ esto tomaría la forma de.

ip addr sh wlan0

Esto nos devuelve una serie de datos de lo cual para el nmap(que posteriormente utilizaremos) necesitamos la red y la mascara de red p.e. si nuestra red es 192.168.1.0 con mascara de red 255.255.255.0 (es 8+8+8+0=24bits) y somos el hosts 80, lo único que necesitamos es:  192.168.1.80/24, por tal motivo conducimos la salida de este comando por medio de una tubería (|)  para que sea filtrado con el grep por medio de la opción de expresión regular extendida -E y le pedimos que nos muestre lo único que nos interesa -o (revisar doc. grep). la expresión regular que hace esta tarea es la de ([0-9]+.){3}[0-9]+/[0-9]+ por lo tanto el comando:

ip addr sh wlan0  | grep -E -o "([0-9]+.){3}[0-9]+/[0-9]+"

Extra la información de la interfaz(wlan0) que necesitamos para el nmap, el cual es ejecutado (“)  y en la variable CONFIG almacenamos el resultado en este caso  192.168.1.80/24, al ejecutar el comando:

nmap -sP 192.168.1.80/24

Le pedimos al nmap que nos muestre solo (-sP)  las IPs de los hosts conectados en la red, cabe mencionar que el .80 no importa ya que al mandarle la mascara de red /24 explorara 255-2=253 hosts posibles,  de tal manera podemos limitar nuestra exploración e incluso explorar la misma Internet (Fyodoy lo hizo, hay un bonito vídeo por Internet), sin mas repetimos el mismo filtrado con el grep pero ahora con la expresión regular ( ([0-9]{1,3}\.){3}[0-9]+ ) para mostrar solo las IPs de los hosts conectados.

Finalmente quisiera agradecer a @mishudark ya que con el sostuve una entretenida conversación e intercambio de ideas respecto a las expresiones regulares utilizadas(se siguen aceptando ideas) , creo que coincidimos en el hecho de pensar que las regExs SON LA ONDA! :¬)

cakePHP videos tutoriales descargalos aqui.

Solo por entrar en contexto el cakePHP: Es un framework de desarrollo de aplicaciones web escrito en PHP, creado sobre los conceptos de Ruby on Rails. (wikipedia).

El día de hoy me encontré con la grata sorpresa que cakePHP puso a disposición a través su portal una serie de vídeos tutoriales.

Desde hace un par de meses me he esforzado por aprender todo sobre este FrameWork así que no pude dejar pasar la oportunidad de descargar estos vídeos. Elabore un pequeño —pero útil– script en bash, el cual también lo dejo disponible en mi gitHub desde la dirección (http://gist.github.com/549457).

#!/bin/bash

#descarga los vídeos tutoriales del cakePHP
#los cuales los puedes ver desde:
#        http://cakephp.org/screencasts/
#código disponible en:
#        http://gist.github.com/549457

for i in {1..7}
do
   wget -O - http://cakephp.org/screencasts/view/$i | grep -E -o 'http.*.mov' | xargs wget
done

Si no usas Linux( mal ), dejo las URLs para que las agregues a tu gestor de descargas favoritos (p.e. jdownloader, tucan, etc..).

http://www.archive.org/download/SettingUpTheCakephpConsoleOnnix/nix_console_setup.mov
http://www.archive.org/download/CakePHP_BuildingtheBakery_Part1/BakeryStep1.mov
http://www.archive.org/download/SyncDevAppAndProductionApp/phpnut_does_svn.mov
http://ia300240.us.archive.org/2/items/CakePHP_BlogTutorialJohn/BlogTutorial.mov
http://ia301239.us.archive.org/1/items/UsingDebugMessages/using_messages.mov
http://www.archive.org/download/AdminRouting/admin_routing.mov
http://www.archive.org/download/SettingUpTheCakephpConsoleOnWindows/windows_console_setup.mov

Espero te sea útil.