Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

miércoles, 26 de diciembre de 2012

Sublime Text 2 en Ubuntu 12.10

Sublime Text es un editor de texto y editor de código fuente creado en Python desarrollado originalmente como una extensión de Vim, con el tiempo fue creando una identidad propia, por esto aun conserva un modo de edición tipo villamado Vintage mode.1

Se distribuye de forma gratuita, sin embargo no es software libre o de código abierto,2 se puede obtener una licencia para su uso ilimitado, pero el no disponer de esta no genera ninguna limitación mas allá de una alerta cada cierto tiempo.

(Fuente Wikipedia)


¿Por qué Sublime Text 2?

Los que lo han probado coinciden en que es un antes y un después en los IDE para Linux. Eclipse casi siempre acababa siendo la opción más lógica para programar en casi todos los lenguajes, pero con Sublime Text, parece que esta hegemonía puede terminar. Tiene una versión de gratuita, en la que sale un recordatorio para que pagues si te gusta el programa, o una versión de pago con un coste actual a dia de la edición de este artículo de 60$

Instalación



sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update && sudo apt-get install sublime-text

Una vez instalada la aplicación, la podremos encontrar en el Dash:


¿Como usarlo?

Podéis encontrar una guía completa en http://falasco.org/guia-definitiva-sublime-text-2


Más info



lunes, 24 de diciembre de 2012

martes, 11 de diciembre de 2012

Solucionar el problema "/bin/rm: Argument list too long"

rm es un comando de la familia de sistemas operativos Unix usada para eliminar archivos y directorios del sistema de archivos1 . Esta orden debe utilizarse con cautela, ya que puede ser muy destructiva, debido a que, al momento de ser llamada, por omisión borra los archivos sin pedir confirmación.
Proviene de la palabra remove que significa "borrar" en inglés.

(Fuente Wikipedia)

En algunas ocasiones me ha ocurrido que mirando de borrar los archivos de una carpeta de manera masiva (rm *), he obtenido el error

bash: /bin/rm: Argument list too long

Bien, el problema es bastante claro, ya que nos dice que la cantidad de archivos a borrar es muy grande y no puede gestionarla. La verdad es que uno piensa que un comando como rm tiene que estar preparado para eso y más, pero al final, como todo tiene sus pros y sus contras, la cuestión es encontrar la solución a esa limitación.

¿Que causa el problema?

El problema es una limitación en el buffer de la función exec(), el cual es de 128K. Esta función es usada por muchas otras funciones y por tanto afecta a muchas operaciones. Por regla general, este problema no afecta al dia a dia ni al usuario doméstico, si bien en administración de servidores nos podemos ir encontrando de vez en cuando. Existe una explicación bastante precisa en la wiki de Debian: ArgumentListTooLong
Una traducción aproximada seria esta:

El limite afecta la funcion execve() del kernel, la cual es usada por todas las demás funciones exec() (execl, execlp, execle,etc). La funcion trabaja creando un buffer de 128k al final del espacio de memoria y copiando el comando y el entorno para el nuevo proceso en este espacio. En ese momento el kernel carga el nuevo programa en memoria, configura sus punteros argv y endv, y salta al punto de entrada del programa. El mensaje de error "argument list too long" es causado por el codigo de error !E2BIG, siendo devuelto por la funcion execve(), cuando es incapaz de introducir el argumento y entorno suministrados dentro del buffer de 128k.
(Traducción |_ocutus)


¿Como podemos arreglarlo?

Más que arreglar el problema, deberíamos hablar de como evitarlo. Para evitar que nos salga este error, lo que podemos hacer es borrar de otra manera que no sea mediante rm * .

  • Borrando de uno en uno. Bah... eso no es viable ya que hablamos de que hay quizás más de un millón de archivos a borrar!!
  • Creando un bucle for-do-done:

for i in ls /tmp/*; do rm -v $i -f; done

  • Usando find + xargs:

find . -name '*' | xargs rm

Es facil de entender este comando, pero no aporta gran mejora respecto a usar el bucle for-do-done. Para que aporte mejora podemos hacerlo algo mejor enviando, por ejemplo, de 10 en 10 archivos a xargs:


find ./ -name '*' -print0 | xargs -0 -n 10 rm

Con esto podremos borrar masivamente cualquier cantidad de archivos de una manera óptima. 

 


lunes, 10 de diciembre de 2012

Asociar enlaces de aMule a Firefox en Ubuntu 12.10


aMule es un programa de intercambio P2P libre y multiplataforma, similar al conocido eMule que funciona tanto con la red eDonkey como con Kademlia.
Deriva del código fuente de xMule, el cual deriva del proyecto lMule, el primer intento de portar el cliente eMule a GNU/Linux. Al igual que eMule, aMule se distribuye y publica bajo los términos de la licencia GNU GPL.
El objetivo de aMule es ser un "eMule multiplataforma", funcionando actualmente en los sistemas operativos GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Mac OS X, Irix y Windows, y en las arquitecturas x86, AMD64, UltraSPARC, PowerPC, Macintosh (G4, G5,...), Xbox y NSLU2.
Existen dos versiones de aMule, la versión estable, y la versión de desarrollo (SVN), que se publica diariamente con los últimos avances, aunque no se asegura su estabilidad. aMule admite también enlaces magnéticos.

(Fuente Wikipedia)

Instalar aMule


Para instalar aMule y funcione con Firefox debemos instalar dos paquetes:

amule: https://apps.ubuntu.com/cat/applications/amule/
amule-utils: https://apps.ubuntu.com/cat/applications/amule-utils/

o desde la linea de comandos

apt-get install amule amule-utils

Enlazarlo con Firefox


A mi es una de las cosas que siempre que instalo un Ubuntu de 0 me pasa, que tengo que enlazar el Firefox con los enlaces de amule. Y no es intuitivo activarlo.. has de saber donde tocar y que poner. La manera rápida y efectiva que yo tengo de hacerlo es así:

Tecleamos en la barra de dirección de Firefox about:config. Veremos una pantalla así:



Le damos al botón que nos hace prometer que tendremos cuidado y luego podemos configurarlo:

Mediante el botón derecho tenemos que incluir 4 valores, 3 lógicos y uno de cadena:



Tipo: Logico
network.protocol-handler.external.ed2k
valor: TRUE


Tipo: Logico
network.protocol-handler.warn-external.ed2k
valor: FALSE


Tipo: Logico
network.protocol-handler.expose.ed2k
valor: FALSE




Tipo Cadena
network.protocol-handler.app.ed2k
valor: /urs/bin/amule



Una vez hecho esto reiniciamos el Firefox y ya nos funcionaran los enlaces.

That u don't know what you've got 'til it's gone