Archivos para Linux

Interfase pythonera a Commandlinefu

Buenas gente!

Hace rato que no escribía :( . Bueno, ahora tengo algo bueno por lo menos para postear, ja ja. Estuve trabajando en una interfase para el espectacular sitio Commandlinefu que a tantos linuxeros/unixeros ha ayudado.

Basado en la API publicada por el sitio, hice este script, que por el momento está en su versión 0.01, pero por lo menos anda. Posiblemente luego le agregue más funciones. Por lo pronto, me falta documentar todo, y darle una función real a los manejadores de json y rss.

Espero que les sirva! Las sugerencias serán bien recibidas.

Saludos a todos.

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http ://www.gnu.org/licenses/>.

import re
import sys
import urllib
import getopt
import pprint

available_libraries = { 'json':False,
                        'feedparser':False,
                    }

try:
    import json
except ImportError:
    try:
        import simplejson as json
    except ImportError:
        pass
    else:
        available_libraries['json'] = True
else:
    available_libraries['json'] = True

try:
    import feedparser
except ImportError:
    pass
else:
    available_libraries['feedparser'] = True

import string
import binascii

interface_url = string.Template('http://www.commandlinefu.com/commands/${command}/${format}/')

formats = ['json', 'rss', 'plaintext']

browse_all_commands = 'browse/sort-by-votes'

def tagged_commands(a_command, sort_criteria=163):
    return 'tagged/%d/%s' %(sort_criteria, a_command)

def matching_commands(query):
    b64_query = binascii.b2a_base64(query).strip()
    return 'matching/%s/%s' %(query, b64_query)

short_opts = 'fjhst'
long_opts = 'feed json help search tag'.split()

def process_plaintext (data):
    """ Function doc """
    print data.read()

def process_json (data):
    """ Function doc """
    if not available_libraries['json']:
        return
    data_json = json.loads(data.read())
    pprint.pprint(data_json)

def process_rss (data):
    """ Function doc """
    if not available_libraries['feedparser']:
        return
    data_rss = feedparser.parse(data.read())
    pprint.pprint(data_rss)

def main (argv=sys.argv[1:]):

    prefered_format = 'plaintext'
    command_to_query = browse_all_commands

    try:
        opts, args = getopt.getopt(argv, short_opts, long_opts)
    except getopt.GetoptError, err:
        print "Uso:"
        return
    for op, arg in opts:
        if op in ('-f', '--feed'):
            if available_libraries['feedparser']:
                prefered_format = 'rss'
        elif op in ('-j', '--json'):
            if available_libraries['json']:
                prefered_format = 'json'
        elif op in ('-h', '--help'):
            print "help!"
        elif op in ('-s', '--search'):
            try:
                command_to_query = matching_commands(args[0])
            except Exception, e:
                pass
        elif op in ('-t', '--tag'):
            try:
                command_to_query = tagged_commands(args[0])
            except Exception, e:
                pass
        else:
            print "Not implemented, will not handle %s" %op

    process = { 'plaintext': process_plaintext,
                'json': process_json,
                'rss': process_rss,
            }

    url = interface_url.substitute(command=command_to_query, format=prefered_format)
    process[prefered_format](urllib.urlopen(url))

if __name__ == '__main__':
    main()

    sys.exit(0)   

Dejar un comentario

Xmonad, o la belleza austera de lo simple

Ayer me decidí por probar Xmonad, un window manager programado en Haskell.

No voy a cubrir temas de instalación y configuración, porque éso ya está en otros lados. Sölo voy a decir que fué simple, pero que hubo que instalar muchos paquetitos. Conste que a pesar de que uso Ubuntu 8.04, prefiero compilar las cosas desde las fuentes, para estar siempre al día. Si, así de retorcido. Y no, no quiero Gentoo. ;)

La instalación, basada en el sistema de paquetes Cabal de Haskell, fué muy al estilo “configure/make/make-install“, pero según Haskell. Todo funcionó de maravilla, no tuve problemas.

Salvo que, es un sistema muy espartano. Por lo menos en ésta versión.
Comenzamos con una pantalla en negro. Si, nada. Si no se acuerdan los atajos de teclado están fritos, porque a diferencia de otros window managers como Openbox, acá el mouse no tira un menucito ni nada.

This is Sparta

This is Sparta

Así que salvo que vayan preparados, van a tener que rebotar varias veces a su window-manager anterior hasta que lo configuren.

La configuración no es para nada amigable. No hay un lenguage de script simple, es un archivo fuente Haskell, así que para manejarlo hay que saber rudimentos de ése lenguaje para saber que lo que se escribe/edita no va a explotar.

Sin embargo, todo el sistema está documentado de manera sufuciente en la web, y si uno se fija, tiene un montón de archivos de configuración de ejemplo, con los que si se da maña, puede mejorar el aspecto, personalizar atajos de teclado, alterar el comportamiento de Xmonad, etc.

El sistema está diseñado para programadores. La idea es simplicidad máxima, para eficiencia máxima. El eye-candy no existe (digamos que es la antítesis de KDE 4 y similares) salvo el que se ingenie uno, a fuerza de hackear la configuración.

Screenshot de Xmonad

Screenshot de Xmonad

El sistema es muy robusto, a pesar que está todavía en desarrollo (no ha llegado a la versión 1). Para aquellos como yo que aman el minimalismo y la eficiencia a toda costa les va a encantar. El sistema casi no consume recursos, parece mentira! Y por supuesto es super rápido.

El mouse casi no se usa. Se puede manejar todo por teclado. Así que si sin programadores expertos, o power users, sabrán apreciar ésto. Una vez aprendidos los atajos, es todo muy rápido y simple.

Supongo que si mantienen su filosofía, lo que les queda por mejorar es el sistema de instalación y configuración, para que sea menos pedregoso. Es el detalle que faltaría para que esté a la altura de otros manejadores como Openbox.

En resumen, es el sistema que andabas buscando si querés eficiencia y productividad a toda costa.

Dejar un comentario

Peleando con la PC (001)

Esto es el resultado de mi pelea con Kubuntu en la última semana.

La historia es así. Yo vivía en mi casa muy contento, programaba, programaba sin cesar :) . Pero un día me pongo a configurar el sistema, de aburrido que estoy, desde el Centro de Control de KDE. Tengo Kubuntu 7.10 por si se lo preguntaban.

El tema es que no tengo mejor idea que comenzar a cambiar los servicios que se ejecutan al arranque, y para colmo, fijar mi atención en udev. Se me ocurre activarlo al arranque. Mala idea.

A partir de allí tuve problemas al arranque. Para comenzar, era imposible iniciar cualquier clase de sesión en cualquier clase de sistema de ventanas. Lo que era problemático, considerando que necesitaba editar un archivo odt con OpenOffice. Así que intento iniciar una sesión desde una terminal. Y obtengo algo como ésto

[...]
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
bash: /dev/null: Permission denied
[...]

Por lo que llegué a la conclusión de que la cosa se estaba pasando de castaño oscuro.

Así que como primera medida (al estilo “lo atamo’ con alambre”) hice como root un

chmod 666 /dev/null

lo que permite salir del paso, hasta que la máquina vuelva a ser reiniciada, y el problema se reanude.

Luego, investigando por Internet, me entero de que existe un error, declarado varias veces en launchpad.net bajo los números #63031, #69516 y #53040.

En resumen, la mano viene así.

  • algo hace que udev funcione mal . Podría decirse que es el editor de servicios de KDE, como afirman aquí. Pero luego responden que no es así.
  • soluciones para éso hay varias, aquí paso a listar algunas.

Soluciones al problema:

  1. Borrar las entradas espúreas, causadas aparentemente por el editor de servicios de KDE. Estas entradas tienen la forma

    /etc/rc2.d/S*udev

    así que con un simple rm /etc/rc2.d/S*udev el problema tendría que estar arreglado. Los post que afirman ésto son éste y éste.
  2. Según éste post se debe ejecutar la siguiente línea: sudo chmod a+rw /lib/udev/devices/null
  3. Agregar la línea chmod 666 /dev/null al archivo rc.local

Espero que ésto les sirva como me sirvió a mí. :)

PD:  para la gente de *ubuntu o KDE o Udev, ponganse las pilas y arreglen ésto che!

Dejar un comentario

Más libertad de la que puedas manejar

Leyendo éste comic de “Everybody Loves Eric Raymond“, me quedé pensando sobre las distros, y la ortodoxia u obsesión de algunos sobre la libertad (o supuesta libertad) que garantiza el software libre. Es cierto que el soft Libre te garantiza que no vas a estar sujeto a los mandatos y caprichos de ninguna empresa a la hora de tener que usar tu computadora de la forma en que más te guste.

Pero qué pasa cuando llevamos ésta idea al límite, convirtiéndonos en fundamentalistas de lo libre. Creamos una distro tan pero tan libre que debe correr en hardware libre y no funcionar con nada que no venga en licencia GPL o equivalente. ¿Cuántas personas (aparte de Richard Stallman :) ) disfrutarían de ésa distro?¿Cuántas la encontrarían útil? Se imaginan querer ver una película o escuchar música y no poder porque no existe el códec adecuado ya que es un formato propietario? ¿Y la incompatibilidad con el resto de las personas, que posiblemente nos envíen material y no podamos obtener su contenido porque también es propietario?

En el comic jocosamente se refieren a “una distro tan inútil que nos va a servir para justificar cada parte propietaria de Ubuntu”. Pero hablando en serio. El exceso de “libertad” no nos puede generar otra forma de esclavitud? Es otro de esos casos en el que no hay que perder de vista esa “delgada línea” que marca el balance correcto.

Dejar un comentario

Es realmente simple ver una peli en Linux….

Entrada de Bash.org nº 783472 (http://bash.org/?783472)

It’s really simple to watch a move, just open the console, and type “
ffmpeg -i “$(find ~/.mozilla -regex ‘.*Cache.*’ -a -not -regex \
‘.*_CACHE_.*’ -printf ‘%T+ %p\n’ | \
sort -n | awk ‘{ print $2 }’ | xargs file | \
grep -i “Video” | tail -1 | awk -F : ‘{ print $1 }’)” \
-vcodec msmpeg4v2 -b 200 -ab 64 -ar 22050 -s 320×240 \
/tmp/video.avi
ANYONE CAN DO IT

Dejar un comentario

¿Cuál es el problema con Microsoft Windows Vista?

Traducción libre del artículo de John Sullivan ubicado en http://badvista.fsf.org/what-s-wrong-with-microsoft-windows-vista.
El nuevo sistema operativo de Microsoft es un paso gigante en contra de tus libertades.
Usualmente el nuevo software te permite hacer más cosas con tu computadora. Sin embargo, Vista está diseñado para restringirte las cosas que puedes hacer.
Vista impone nuevas formas de “Digital Rights Management” (Administración de Derechos Digitales) o DRM. DRM está mejor llamado como “Digital Restrigction Management” (Administración de Restricciones Digitales), porque es una tecnología que las grandes compañías de computadoras y de medios de comunicaciónes nos imponen, para tener control sobre la forma en que utilizamos nuestras computadoras.
El experto en seguridad Bruce Schneier lo explica de manera más concisa:

“Windows Vista incluye un conjunto de “características” que tú no deseas. Estas características harán tu computadora menos confiable y menos segura. Harán tucomputadora menos estabre y que funcione más lenta. Causarán problemas técnicos. Puede requerir incluso que tengas que actualizar algo de tu hardware o tu software actual. Y éstas características no traerán nada útil. De hecho, estarán trabajando en tu contra. Ellas son las características DRM, construídas dentro de Vista a beneficio de la industria del entretenimiento -y tu no puedes rechazarlas-.”

DRM le da poder a Microsoft y a las Grandes Corporaciones

  • Ellos deciden que programas puedes y no puedes usar en tu computadora.
  • Ellos deciden que características de tu computadora pueden ser usadas en un momento dado.
  • Ellos restringen tu acceso a ciertos programas y aún a tus propios datos.

DRM está sostenido por barreras tecnológicas. Tu intentas hacer algo, y tu computadora te dice que no puedes hacerlo. Para hacer ésto efectivo, tu computadora tiene que estar constantemente monitoreando lo que estás haciendo. Este constante monitoreo usa poder de cómputo y memoria, y es una razón importante de por qué Microsoft te dice que debes comprar nuevas y más potentes partes para tu computadora, a fin de utilizar Vista. Ellos quieren que compres nuevo hardware, no porque lo necesites sino porque ellos pueden ser más efectivos en restringirte lo que puedes hacer.

Microsoft y otras compañías a veces se refieren a éstas restricciones como “Computación Confiable”. Dado que ellos lo han diseñado para hacer que tu computadora deje de confiar en tí, y comience a confiar en Microsoft, éstas restricciones se pueden denominar mejor como “Computación Traidora”.

Aún cuando compres legalmente a Vista, no lo posees.
Windows Vista, como todas las versiones previas de Windows, es software propietario: te es extendido bajo una licencia que restringe severamente la manera en que puedes utilizarlo, y sin el código fuente, así nadie salvo Microsoft puede cambiarlo o incluso verificar lo que realmente hace.
Microsoft lo dice mejor:

El software es licenciado, no vendido. Este acuerdo sólamente otorga algunos derechos para usar el software. Microsoft se reserva otros derechos. Salvo que la ley te otorgue más derechos a pesar de ésta limitación, tu puedes usar el software sólamente de la manera que expresamente está permitida en el acuerdo. Para hacerlo, debes aceptar cualquier limitación técnica en el software que sólamente te mermita usarlo de determinadas maneras.

Para hacer las cosas aún más confusas, diferentes versiones de Vista tienen diferentes restricciones. Puedes leer todas las licencias en:
http://www.microsoft.com/about/legal/useterms/default.aspx

Es difícil ller las licencias, y ésto es porqué muchas personas no se quejan sobre ellas. Pero si nosotros no comenzamos a objetar sobre ellas, perdemos libertades valiosas. Aquí están algunas de las ridículas restricciones que encontrarás en tu lectura:

  • Si tu copia de Vista vino con la compra de una nueva computadora, ésa copia de vista sólo puede ser legalmente utilizada en ésa computadora, por siempre,
  • Si compraste Windows Vista en un negocio, y lo instalaste en una computadora que ya posees, tienes que borrarlo de ésa computadora ántes de instalarlo en ótra.
  • Le das a Microsoft el derecho, a través de programas como Windows Defender, de borrar programas de tu sistema que ellos califiquen como spyware.
  • Consientes a ser espiado por Microsoft, a través del sistema “Windows Genuine Advantage”. Este sistema trata de identificar las instancias de copias que Microsoft piensa que son ilegítimas. Desafortunadamente, un estudio reciente indicó que éste sistema falló en más de 500.000 casos.

El software libre como GNU/Linux no requiere que tu consientas éstos absurdos términis de licencias. Se denomina “Software Libre” porque eres libre de hacer tantas copias como quieras, y compartirlas con tantos amigos como quieras. Nadie estará monitoreando tus acciones o llamándote “ladrón” de manera injustificada.

Qué puedes hacer para ayudar a proteger tu libertad
Existe una batalla oculta entre aquellos que aprecian la libertad y las grandes corporaciones como Microsoft qu desean aprovecharse quitando la libertad. DRM y las licencas absurdas están en el centro de ésta batalla. Por favor, únete de nuestro lado diciendo NO, no sólamente a Windows Vista y otros productos con DRM, sino a todo el software propietario en general. Además, usa sistemas operativos libres, sin DRM como GNU/Linux. Con ellos puedes hacer tu trabajo mientras estás seguro de que nus derechos no serán restringidos ahora ni en el futuro.

Mientras más y más partes de nuestra vida se vuelvan digitales, es vital que protejamos nuestros derechos digitales, de la misma manera en que siempre trabajamos para proteger nuestra libertad de expresión.

Comentarios (1)

10 razones para usar Linux ( ;) )

http://nosoloparidas.blogsome.com/2007/08/13/porque-se-debe-utilizar-linux-en-la-empresa/

Respuesta al post anterior:

Leía hace un par de días (antes de irme de vacaciones, de ahí la inactividad reciente) una lista de 10 razones sarcástica por las que utilizar Windows XP en las empresas en el blog de Luther. Como vuelvo con las pilas cargadas y afán peleón, voy a intentar contestar a esas 10 con otras tantas sobre porqué se debe utilizar Linux en lugar de XP en las empresas. Aquí van las mías:

  1. En las reuniones matinales, si no usas Linux, te quedarás fuera de todas esas interesantes conversaciones sobre el nombre de la distribución que ha salido esa mañana. Las peleas por ver quien tiene la distro “más mejor” te causaran una clara envidia y se sentirás totalmente apartado de la manada (perdón, de la comunidad).
  2. La facilidad que tiene XP a la hora de manejar tu hardware y tus últimos periféricos te evitará tener que navegar por internet en busca del último hack del kernel, el último fichero de configuración o la última virguería que te permita enchufar e imprimir de forma normal con la impresora. La sensación de vacío que te puede provocar esta situación, unida a la frenética actividad de tus compañeros buscando la forma de hacer que todo les funcione correctamente, hará que te sientas “un cero a la izquierda”.
  3. El no tener que recordar una ingente cantidad de comandos para la consola, de enormes ficheros de configuración “totalmente personalizados” así como un número ilimitado de diferentes nombres para un mismo programa (véase Writer, Espronceda, etc.) pueden provocar una degeneración en tu función cerebral relacionada con la memorización.
  4. La ausencia de uso de la consola con sus preciosas letras verdes de fondo (sólo para auténticos “expertos”) puede provocar una pérdida de precisión en el vitriolo ocular, sólo subsanable con una sesión diaria de la triología Matrix en formato ASCII.
  5. En caso de que los virus de Resident Evil y 28 Días se propaguen por la tierra, morirás irremediablemente puesto que sólo los que se han expuesto a las propiedades de sistemas GNU/Linux, con su conocidísima inmunidad ante este tipo de patógenos, podrán sobrevivir.
  6. Al ser usuario de Windows XP, no podrá poner como excusa que “tengo que recompilar el kernel y bajar las últimas versiones de todos los paquetes” para evadirte de sus quehaceres diarios. Tampoco la conocida “no es compatible con mi OpenOffice” argucia con la que sus compañeros eluden la lectura o elaboración de documentos le servirá.
  7. Mientras sus compañeros de trabajo disfrutan de interesantes quedadas donde comparten sus conocimientos sobre la mejor forma de afinar sus kernels para jugar al Tux Racer en 3D (eso sí, con la implementación libre del driver para las tarjetas Nvidia, nada de software “privativo”), usted terminará por empezara pensar que puede utilizar su tiempo de una forma mejor que permanentemente dedicado al sustento de “La Comunidad”.
  8. Al no ser usuario de GNU/Linux, no se sentirá en la necesidad de ayudar a sus amigos ex-windowsero que han abrazado la fe para que completen una migración satisfactoria a la plataforma de la luz y la verdad. Debido a esto, no necesitará invertir su tiempo en buscar la mejor alternativa a los programas más populares ni en afinar, posteriormente, la configuración de estas aplicaciones para que sus amigos utilicen Linux y no vuelvan al reverso tenebroso, lo que sería una clara mancha en su historial. Esto no ayudará en nada a su vida social, limitando su círculo de amistades a aquellos que no quieran aprovecharse de sus conocimientos informáticos “avanzados” (no como los que necesita un maldito windowsero).
  9. Se verá obligado a leer todos los correos que le envíe su jefe así como buscar toda la información que solicite a través de Internet, no pudiendo recurrir al popular chascarrillo de “mi Linux no tiene soporte para ese tipo de redes wireless” como excusa rápida y sencilla para evitar este tipo de pesadas tareas.
  10. Por último, y no menos importante, se evitará tener que repetir permanentemente leiv motivs habituales entre sus compañeros como “usar Windows es no ser un buen informático” o “todo el mundo sabe que Vista no trae nada nuevo”. Esto de nuevo puede afectar a su capacidad de memorización así como a su prestigio como profesional, puesto que le resultará complicado sostener la mirada ante sus colegas expertos en la instalación y puesta en marcha de una Ubuntu. Ahórrese semejante vergüenza.

Dejar un comentario

10 razones para usar Windows ( ;) )

A continuación, como resultado de un objetivo estudio de ambos sitemas, le enumeraré algunos de los principales argumentos a favor de la idea de que Windows XP es un sistema operativo muy superior a Linux en entornos empresariales:

1. En las reuniones matinales entorno a la máquina de café se habla de los últimos virus sufridos por todo el mundo, menos usted, y se siente por ello marginado.

2. La ausencia de estrés y de cabreos enfurecedores delante de su ordenador le está convirtiendo en una blanda, plácida y sebosa bola de grasa, mientras que sus compañeros se mantienen tensos y alerta todo el día, estallando en un torbellino irascible a la menor ocasión. Usted envidia su combatividad.

3. Al no tener que recordar números de serie, claves, keywords , códigos de registro y períodos de evaluación, su memoria se está deteriorando preocupantemente. Sus compañeros, en cambio, recuerdan cientos de útiles y vitales códigos de registro, los cuales intercambian placenteramente, sin que usted pueda participar de su gozo.

4. La falta de impactantes pantallazos azules está atrofiando el pigmento azul de su retina, por lo que su oculista le ha recomendado que mire fijamente durante varias horas al día al logotipo de IBM. Sus compañeros, en cambio, han hiperdesarrollado su pigmento azul y pueden, de hecho, ver en la oscuridad.

5. En caso de una invasión de seres extraterrestres ultraviolentos (como sucede a menudo) , no podrá, tal como ocurre en “Independence Day”, instalar Outlook en la nave principal de los invasores y de este modo destruir su civilización.

6. Al ser usted usuario de Linux no tiene ninguna excusa para reiniciar su ordenador docenas de veces al día, y observa con envidia como sus compañeros conversan amigablemente en los pasillos durante sus placenteros reinicios, mientras usted se ve obligado -injustamente- a ser productivo todo el tiempo.

7. El dinero que los demás emplean tan provechosamente en licencias, soportes, períodos de renovación y derechos de utilización, usted lo malgasta en ir al cine, en cenas, y en alcohol, lo cual está deteriorando su salud enormemente.

8. Al no ser usted usuario de Windows, ningún amigo le llama para que emplee toda una tarde del fin de semana en reinstalar su ordenador, de modo que se aburre mortalmente mientras sus compañeros disfrutan agradablemente de sus relaciones sociales.

9. Se ve obligado a leer todos los correos que le envía su jefe, sin tener acceso al derecho universal de uso de la utilísima frase “El Outlook no me deja abrirlo”, que sus compañeros tanto disfrutan.

10. El botón de reset de su ordenador está acumulando alarmantes cantidades de suciedad.

Comentarios (1)

Computadoras + linux + amigos = InstallFest!

Oharu (mi Dell Inspiron 1520) le dijo “Hasta la Vista!” a Vista y Pomelo (la PC de Yamil) también se sumó. Así que ahora dos PC’s más disfrutan del poder de Kubuntu Feisty Fawn.

Poder Linux!

Mi notebook es más PC con Linux.

Comentarios (1)