Confusion .com.mx: un punto de vista personal

Blog


Redimensionar ventanas con Alt+Botón derecho en GNOME 2

Si, gnome 2 es un manejador de ventanas muy popular todavia, de hecho Linux Mint 13 tiene una versión con él (llamado ahora Mate). Aquí un pequeño truco que no me sabia: usar la combinación de ALT+Botón derecho (del ratón) para redimensionar la ventana seleccionada.

En caso de que no funcione (en Mint si está activado por omisión), hay que ejecutar el siguiente mando en terminal:

Via: http://totaki.com/

Tags : escritorio linux


"Open Source Bach" en línea

 

El proyecto "open source Bach" está completo, la partitura y la grabación ahora en línea

 

Así hicieron eco en slashdot a la culminación de un proyecto propuesto en kickstarter para "crear una nueva partitura y una grabación de estudio y ponerla en el dominio público" para el bien de todos :)

Puedes bajar la música directamente de su sitio o por torrent, bastante recomendable, por cierto.

Tags : código-abierto diversión multimedia música open-source


Python y wxWidgets: wxPython

Hace unos dias entre al mundo Python, del que tenía un poco de curiosidad, y debo decir que ha sido una grata experiencia. La sintaxis es muy sencilla y cómoda, la simbiosis de WxWidgets en wxPython es fenomenal, permite hacer aplicaciones de ventanas de manera muy rápida. Al más puro estilo de Java o .Net, Python es un lenguaje interpretado, por lo que no lo considero como opción al desarrollar aplicaciones para maquinaria (sigo prefiriendo C), pero si se ubica como una muy buena opción para hacer interfaces o aplicaciones utilitarias.

Herramientas

Tutoriales

Tags : herramientas programación python wxwidgets wxpython software


Libro libre: Debian Administrator's Handbook

Hace unos dias salió a la red el libro del administrador de Debian, el cual comprende una cantidad muy amplia de tópicos sobre la distribución como son:

  • Info general del proyecto Debian
  • Guía de instalación
  • Fundamentos del sistema de paquetes
  • Configuraciones básicas
  • Mantenimientos
  • Servicios
  • Seguridad

A primer vista resulta muy completo y se antoja ideal para tenerlo como referencia para los usuarios (no tan) avanzados de esta distribución. Hay que aclarar que este libro comprende información sobre la versión Squeeze (6.0) que es la estable actual. Veremos seguramente una actualización cuando llegue a salir la entrega 7.

Recursos

Tags : debian libros linux libro-libre


Lista de libros de programación

Impresionante lista con recursos para aprender y consultar sobre lenguajes de programación. Son de esas cosas que siempre hay que guardar :P Nota: El material está en inglés.

Meta-Lista

Programación gráfica

Independiende de lenguaje

Android

Autotools

ASP.NET MVC

Bash

C / C++

C#

  • Ver .NET

Clojure

CoffeeScript

ColdFusion

DB2

Delphi / Pascal

Django

Emacs

Ensamblador

Erlang

Flex

F#

Forth

Git

Go

Grails

Haskell

HTML / CSS

Java

JavaScript

JavaScript (Específico de node.js)

LaTeX

Linux

Lisp

Lua

Mathematica

Maven

Mercurial

Nemerle

  • Ver .NET

.NET (C# / VB / Nemerle / Visual Studio)

NoSQL

Oberon

Objective-C

OCaml

Oracle Server

Oracle PL/SQL

Parrot / Perl 6

Perl

PHP

PowerShell

Prolog

PostgreSQL

Python

R

Ruby

Ruby on Rails

Scala

Scheme

Sed

Smalltalk

Subversion

SQL (implementation agnostic)

Teradata

Vim

Websphere

Windows Phone

Vía stackoverflow.com

Tags : herramientas programación recomendados libros


Lista de códigos SMD

Siempre que se trabaja con componentes de montaje superficial (SMD) es de cuidado. Si eres como muchos, me inclúyo, que nos gusta desarmar aparatos y reciclar componentes, el identificar que es cada uno de ellos es una batalla. Afortunadamente hay esfuerzos para tener listas de los códigos grabados en dichos componentes. He aquí un par de ellas que serán de mucha utilidad:

Via pcbheaven y dangerousprototypes

Tags : electrónica herramientas smd


Linux en un microcontrolador de 8-bits?

Este es uno de esos proyectos que te dejan impactados, un linux moderno (ubuntu) corriendo desde un micro Atmel ATmega1284p emulando una plataforma ARM.

Si bien el proceso de arranque le toma varias horas y la usabilidad del sistema es practicamente nula, es un gran logro hacer el emulador y que corra en el una cosa tan compleja como el kernel linux.

Les invito a leer más en la web de su autor

Tags : arm avr hacking linux ubuntu 8-bits


Mantener limpio un sistema instalado en Debian

Este escrito lo tomo de http://www.esdebian.org/wiki/mantener-limpio-sistema-instalado-debian, me pareció interesante, asi que lo comparto. Saludos al equipo de esdebian.org

A todos nos pasa y nos ha pasado (sobre todo al inicio) de instalar y desinstalar aplicaciones, probar programas y configuraciones...y por supuesto el sistema sufre un poco a causa de estas "experiencias".

En esta pequeña y básica guía veremos algunas soluciones bastante cómodas (seguramente mucho mejor que formatear y empezar desde cero) para tratar de volver a la "normalidad" nuestra amada Debian. Con esta guía no pretendo descubrir la pólvora, ya que son cosas archiconocidas por muchos de los lectores, pero tal vez sirva a aquellos que recién empiezan. Y como prevenir es mejor que curar.....allá vamos!

Todos estaremos de acuerdo en que trabajar en un sistema limpio y que nos permita limpiarlo es mas cómodo que uno "sucio" y "desordenado", y sobretodo si se trata de interventos a nivel de sistema!.

Checkinstall

Checkinsall es una utilidad que permite crear paquetes Debian a partir de los fuentes.

CUIDADO, porque no son paquetes completos, sino que simplemente ayudan a seguir el rastro de archivos instalados por el programa, facilitando la actualización y el borrado del mismo.

Comenzamos con la instalación:

  • # aptitude install checkinstall

Su uso es bastante fácil e intuitivo,la configuración de las fuentes ( ./configure --alguna-opción) y la compilación (make) se deben de llevar a cabo, mientras que el comando:

  • # make install

debe ser sustituido por:

  • # checkinstall

Durante la ejecución vendrán formuladas algunas preguntas,como por ejemplo el tipo de paquete a crear (siendo los posibles: deb,rpm,tgz).

Tenemos a disposición otras opciones:

  • -y,--default --Acepta los valores por defecto
  • --pkgname=name --Impone el nombre de un paquete
  • --pkgversion=versión --Impone la versión
  • -A, --arch, --pkgarch=arch --Impone la arquitectura
  • --pkgrelease=release --Impone la release versión
  • --pkggroup=group --Impone el grupo al cual el paquete debe pertenecer(doc,net...)
  • --pakdir=directory --Donde salvar el paquete
  • --maintainer=email_addr --El mantenedor del paquete
  • --dpkgflags=flags --Eventuales flags para dpkg
  • --bk --Realiza un Backup de los archivos que serán pisados

Una vez terminado el proceso,el paquete vendrá automáticamente instalado.

Nota: debemos tener en cuenta que serán señalados eventuales dependencias,sustituciones e/o conflictos,esto debido a que el objetivo de checkinstall es aquel de poder rastrear los files generados y no el de crear un .deb oficial.

Debfoster

#aptitude install debfoster

El objetivo de este programa es de mostrar los paquetes que NO han sido instalados como dependencias, y una vez individuado/s, sera mostrada una lista indicando los paquetes "retenidos" por este/os.

Su uso es bastante simple, cuando lo hacemos correr por primera vez nos hará una serie de preguntas acerca de los paquetes instalados.

Podemos seleccionar mantener el paquete (sera recordado por debfoster) o podemos elegir su eliminación.

Si al momento de responder una de las preguntas tenemos alguna duda acerca del paquete, podemos tipear "?" para poder visualizar información acerca del mismo.

Salida de ejemplo:

#libxml-libxml-perl is keeping the following 3 packages installed:
libxml-libxml-common-perl libxml-namespacesupport-perl libxml-sax-perl
Keep libxml-libxml-perl? [Ynpsiuqx?], [H]elp:

ahora podemos elegir cosa hacer:

  • Y --Mantiene el paquete instalado
  • n --Borra el paquete señalado
  • p --Borra el paquete señalado y todos los paquetes retenidos
  • s --Salta la pregunta
  • i --Visualiza información sobre el paquete
  • ? --Igual a i
  • u --Vuelve a formular la pregunta anterior
  • q --Cancela la operación sin realizar modificaciones
  • x --Realiza la cancelación de los paquetes
  • h --Ayuda

poderoso verdad?!

Cuando realizamos la limpieza con este programa,seria importante tener algunas consideraciones:

  • La información mostrada no toma en cuenta eventuales programas compilados desde las fuentes.
  • Leer con atención las librerías mostradas como "retenidas",puede suceder que se muestre una librería de desarrollo NO necesaria para la ejecución de otras aplicaciones,pero indispensable para la compilación (libncurses5-dev por ejemplo).

Deborphan

#aptitude install deborphan

Este paquete genera una lista de los paquetes huérfanos en el sistema. Por paquete huérfano entendemos aquellas librerías que ya no son necesarias, osea, que ningún paquete instalado la indica como dependencia.Pero...atención con los programas compilados desde las fuentes (con make install o checkinstall) ya que no serán controladas sus dependencias, por lo que podríamos causar algún problema de funcionamiento.

Una opción interesante es --libdev, que nos genera una lista con las librerías de desarrollo (que terminan con -dev) no necesarias.

Para ver los paquetes huérfanos basta lanzar el comando

#deborphan

ó

#deborphan --libdevel

Es posible hacer que apt-get lea la lista de paquetes generada por deborphan:

# apt-get --purge remove `deborphan`
# apt-get --purge remove `deborphan --libdev`

La opción --purge como ya sabemos elimina los archivos de configuración del paquete.
Para los poco amantes de la consola podemos instalar gtkorphan, el cual es una muy fácil e intuitiva interfaz gráfica para deborphan.

#aptitude install gtkorphan

y el pollo está pronto!

Archivos de configuración.

Eliminando los archivos de configuración liberamos espacio en nuestro disco (tarde o temprano muy valioso) y mantenemos limpio el directorio /etc.

Con el siguiente comando podremos borrar los archivos de configuración que han sido dejados por paquetes desinstalados sin la opción --purge.

# dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`

pero...que cáspita es este chorizo de letras ?! tranquilos...allá vamos!

#dpkg --purge paquetes

Borra los archivos de configuración de todos los paquetes indicados.Estos paquetes los obtenemos tramite el comando

#`COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`

que a su vez genera la lista de los paquetes que no han sido borrados completamente (osea aquellos que cuando "se fueron", olvidaron de llevarse la configuración).

  • COLUMNS=300 --> modifica la longitud de la cadena,evitando cortar los nombres de los paquetes (COLUMNS es una variable de ambiente).
  • dpkg -l --> lista los paquetes disponibles.
  • egrep "^rc" --> lista las cadenas de nombres que comienzan con "rc", que es el estado que indica que el paquete ha sido borrado.
  • cut -d' ' -f3 --> devuelve el nombre del paquete,usa como limitador (-d) de campo un espacio (' ') y toma el tercer campo ( -f3.field en ingles).

Existen otros dos comandos que funcionan exactamente igual que el anterior:

#dpkg -P $(dpkg -l |awk '/^rc/ { print $2 }')

ó

#for i in $(dpkg -l |grep ^r| awk '{print $2}'); do aptitude purge -y $i; done

También podemos realizar la limpieza por medio de deborphan, así:

#dpkg --purge $(deborphan --find-config)

O bien podemos utilizar aptitude:

#aptitude purge '~'c

Donde c la bandera de estado del paquete.

Localepurge

Este es un paquete que debería ser instalado en el sistema desde el inicio, o al menos eso pienso.
El objetivo de este paquete es eliminar los idiomas que instala un paquete y no nos sirven.
Normalmente nos sirven dos idiomas:

*en (idioma "de fabrica")
*es_ES (nuestro idioma)

Entre otras debemos elegir las variaciones que son utilizadas en nuestro sistema (es_ES@euro y en_US o la que sea).

No es aconsejable borrar el ingles, ya que es el idioma por defecto del sistema, y para evitar problemas ....no molesta.

así que, si aun no lo hemos hecho:

#aptitude install localepurge

Durante la configuración sera mostrada una lista con los idiomas, de estas, deberemos seleccionar las que nos interesa.

Normalmente no es necesario, pero por si las moscas...ejecutamos:

#localepurge

De ahora en adelante cada vez que instalemos un paquete,los idiomas inútiles serán borrados, ganando así, espacio en disco.

Buscando archivos duplicados

Conviene cada tanto hacer una intervención sobre el sistema en busca de archivos duplicados.
Cuando digo archivos duplicados me refiero a archivos con diferente nombre pero de idéntico contenido.
Para esto nos podemos valer del siguiente script:

find path/ -type f | xargs md5sum | awk '{
sub("[^/]*/","",$2);
if (cache[$1])
print "Found: "cache[$1],$2;
else
cache[$1]=$2
}'

donde path es la ruta del directorio que queremos controlar.

Este script como se ve NO borra nada, simplemente busca y lista.

Otra alternativa que nos ofrece Debian al momento de buscar y limpiar archivos duplicados es fdupes, una aplicación para linea de comandos muy fácil y útil de usar.

#aptitude install fdupes

Donde las diferentes opciones que nos ofrece son :
(man fdupes para profundizar la informacion).

  • -r -- Modo recursivo.
  • -s -- Comprueba enlaces simbolicos.
  • -h -- Comprueba los enlaces fuertes.
  • -S -- Muestra el tamaño de los archivos duplicados.
  • -q -- Modo “quiet”, oculta el indicador de progreso.
  • -v -- Muestra la version de fdupes.
  • -d -- Borra los ficheros duplicados (cuidado, con esta opcion.)
  • -h -- Muestra la ayuda.
  • -n -- Descarta los ficheros vacios

Ejemplo:

$ fdupes -r -n -S /ruta/al/directorio > duplicados.txt

Se buscan los archivos dentro de /ruta/al/directorio y sus subdirectorios (recursivamente) omitiendo los archivos vacios, mostrando el tamaño de los mismos y guardando la salida en un archivo de texto para estudiar mas tarde y decidir que hacemos.

Conclusión:

Estas son las técnicas de base para tener en orden y limpia nuestra Debian,los cambios se hacen visibles sobretodo en lo que respecta a espacio en disco.
No olvidemos el utilizo de:

apt-get ó aptitude clean
apt-get ó aptitude autoclean

que no haré comentarios ya que existe abundante información en el foro. Además:

Deberemos limpiar toda cache que se nos cruce en el camino.

Una aplicación que personalmente recomiendo,siempre y cuando sea usada con cuidado:

http://kde-apps.org/content/show.php/KleanSweep?content=71959&PHPSESSID=....

Con esta aplicación mantendremos limpia nuestra /home de una enorme cantidad de cosas inútiles que se van acumulando.

Si no lo deseamos instalar,siempre podemos recurrir a:

$ ls -a

lo cual nos permitirá ver los archivos y directorios de configuración,que son aquellos ocultos,los que tienen un . (punto) al inicio.
Una vez individuado el directorio a borrar:

$ rm -r nombredeldirectorio

donde la opción -r indica la recursividad de la operación,permitiendo el borrado del directorio.

Bueno...como de costumbre, espero que esta guía sea útil a los que se inician en este mundo, y a los veteranos....para refrescar la memoria.

Quien tenga aportes (y el que no también!;) ) para mejorar esta guía,que de un paso al frente! nos beneficiaremos todos!

Fuente del documento : Esto es una recopilación que hice alguna vez para uso propio y que había quedado en algún rincón de mi disco.

Tags : debian escritorio linux


Agregando archivos de tipografía en Xubuntu

Estaba leyendo sobre una tipografíá especial para ahorrar tinta al momento de imprimir, no está de más ahorrar un poco en lo que se pueda, así que la baje pero... ¿cómo agregarla al listado de fuentes de linux? Sencillo, vamos a ver...

Primero descargas la fuente "ecologica", ver: http://www.ecofont.eu/

Ahora necesitamos agregarla en uno de los directorios para fuentes. Puedes ver la lista de directorios en el archivo /etc/fonts/fonts.conf

    /usr/share/fonts /usr/share/X11/fonts /usr/local/share/fonts ~/.fonts

Nota: En ~/.fonts estarán las fuentes disponibles sólo para el usuario identificado.

Ahora solo resta actualizar el cache de fuentes:

$sudo fc-cache -f -v

Y listo, disfruten de sus nuevas fuentes disponibles :P

Lectura recomendada

Ecofont, la tipografía más económica y ecológica

HP Ink Costs More Than Human Blood, Booze

Tags : escritorio linux


Compilando el kernel de Linux

Lo prometido es deuda, les pongo los pasos más sencillos para compilar el kernel:

  1. Bajar el kernel deseado, opté por buscar en http://www.kernel.org/
    • $wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.4.tar.bz2
  2. Descomprimir el kernel
    • $tar -xjf linux-2.6.30.4.tar.bz2
  3. Mover el kernel a su ubicación final
    • $sudo mv linux-2.6.30.4 /usr/src/
  4. Crear unos enlaces simbólicos para tener ordenado todo :P
    • $sudo ln -sn linux-2.6.30.4 linux
  5. Instalar los paquetes para poder compilar el kernel
    • $sudo apt-get install build-essential kernel-package ncurses-dev libglade2-dev
  6. Configurar el kernel como base
  7. OPCIONAL: Lo más sencillo es tomar las configuraciones actuales
    • $sudo cd /usr/src/linux
    • $sudo cp /boot/config-`uname -r` .config
  8. Ahora hay que decirle que actualice las configuraciones
    • $sudo make oldconfig
  9. Configurar "a mano" lo que se desee del kernel
    • $sudo make gconfig
  10. Y editar... guardar y salir
  11. Compilar el kernel... la bendición de Debian :)
    • $sudo make-kpkg clean
    • $sudo make-kpkg --initrd --stem linux kernel_image kernel_headers kernel_doc
  12. A esperar un buen rato para que se compile...
  13. Te debe arrojar tres empaquetados en el mismo directorio donde estas o en el directorio padre, ahora solo se instalan:
    • $sudo dpkg -i *.deb
  14. Listo, reiniciar y seleccionar el nuevo kernel o editar el archivo /boot/grub/menu.lst e indicarle que inicie con el nuevo kernel por defecto

¿Pero para qué todo esto? Generalmente para sistemas empotrados, hacer más eficiente la computadora, para agregar funcionalidades que el kernel actual no tiene o tan solo para perder el tiempo. Pueden jugar un rato con esto, les prepararé algo de información sobre RTAI, como parchar el kernel y que se puede esperar.

Literatura

Tags : kernel linux sistemas-empotrados