Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas

19.11.12

Ver infomacion de un paquete en Ubuntu/Debian (apt)

Para mostrar informacion sobre un paquete del sistema "apt" que utilizan distribuciones como Ubuntu o Debian podemos ejecutar el comando 'apt-cache show [paquete]' de la siguiente manera:
$ sudo apt-cache show python-django
En el ejemplo anterior el paquete del cual queriamos informacion era python-django y nos devolvio algo asi:
Package: python-django
Priority: optional
Section: python
Installed-Size: 35800
Maintainer: Ubuntu Developers 
Original-Maintainer: Chris Lamb 
Architecture: all
Version: 1.3.1-4ubuntu1.3
Depends: python2.7, python (>= 2.7.1-0ubuntu2), python (<< 2.8)
Recommends: libjs-jquery
Suggests: python-psycopg2, python-psycopg, python-mysqldb, python-flup, python-sqlite, python-yaml, geoip-database-contrib
Filename: pool/main/p/python-django/python-django_1.3.1-4ubuntu1.3_all.deb
Size: 4270360
MD5sum: b33afef564434b353b10ce6ebf9feb46
SHA1: 9a04253cffe0d1c86fe9b99aedd3957d71daad42
SHA256: 971463c4edc8785794ca3eb937a0c9029d83e039beea0127b493178f0d21c329
Description-en: High-level Python web development framework
 Django is a high-level web application framework that loosely follows the
 model-view-controller design pattern.
 .
 Python's equivalent to Ruby on Rails, Django lets you build complex
 data-driven websites quickly and easily - Django focuses on automating as much
 as possible and adhering to the "Don't Repeat Yourself" (DRY) principle.
 .
 Django additionally emphasizes reusability and "pluggability" of components;
 many generic third-party "applications" are available to enhance projects or
 to simply to reduce development time even further.
 .
 Notable features include:
  * An object-relational mapper (ORM)
  * Automatic admin interface
  * Elegant URL dispatcher
  * Form serialization and validation system
  * Templating system
  * Lightweight, standalone web server for development and testing
  * Internationalization support
  * Testing framework and client
Homepage: http://www.djangoproject.com/
Description-md5: efe2f6ec2ae89851c710c280956fa785
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y

14.1.10

Como borrar un video con unos subtitulos en linux

Lo hice mas de una vez, el proceso es simple y doloroso. Para hacerlo vamos a necesitar:

  • Una pelicula que querramos ver desesperadamente
  • Los subtitulos para esa pelicula (nos tiene que haber costado mucho conseguirlos)

De seguro los subtitulos, ni bien los hayamos bajado, no van a tener el mismo nombre que la pelicula. Lo que vamos a hacer a continuacion es intentar renombrarlos haciendo uso intensivo de la tecla tab, mv sub[TAB], [SPACE], peli[TAB] aca viene la parte dificil que consiste en olvidarse de reemplazar la extension de la pelicula por la de los subtitulos y terminamos con algo parecido a esto:

mv subs_peli.srt pelicula.avi

Demas esta decir que no deben probar esto en sus casas.

22.7.09

Colores en el diff de Subversion

Hay varias maneras de tener colores cuando hacemos 'svn diff', una de las mas simples y que no requiere instalar software adicional (como colordiff) es utilizando 'vim' de la siguiente forma:

svn diff | vim -R -

El resultado de este comando deberia resultar en algo parecido a esto:

14.7.09

TTYtter, un cliente de consola para Twitter

Siendo las funciones basicas de Twitter enviar y recibir texto, no me parecio que amerite instalar algun cliente que funcione en X y decidi buscar uno de terminal que consuma pocos recursos de sistema. Empeze a usar TTYtter hace unas semanas y no esta en mis planes cambiarlo.


TTYtter es un script hecho en Perl, puede usarse de manera interactiva o pasarle directamente comandos para integrarlo con otros scripts o llamarlo desde cron. El script pesa solo 80K y requiere, ademas de Perl, tener curl o lynx. Ademas, el soporte para SSL, nos permite encriptar los datos que intercambiamos contra el servidor de Twitter dandonos seguridad y privacidad.

30.4.09

Backup/dump y restore de MySQL comprimido

Una tarea frecuente para todo desarrollador o administrador es hacer copias de resguardo de MySQL para posteriormente restaurarlas. Generalmente se hace un dump y luego se comprime el archivo (siendo este texto plano y con muchos caracteres repetidos, suele comprimirse *mucho*). Vamos a hacerlo de un tiron con el siguiente comando:

$ mysqldump -h localhost -u usuario -p basededatos | gzip > basededatos-2009-04-30.sql.gz

En caso de querer restaurar el backup tenemos que hacer:

$ gunzip < basededatos-2009-04-30.sql.gz | mysql -h localhost -u usuario -p basededatos

En los ejemplos anteriores localhost simboliza al hostname de la base de datos, usuario al nombre de usuario que utilizaremos para conectarnos a MySQL, basededatos al nombre de la base de datos y basededatos-2009-04-30.sql.gz al archivo en donde vamos a guardar la copia de resguardo de la base de datos.

Si tienen instalados otros compresores, como bzip2 o lzma, pueden utilizarse de la misma manera (bzip2/bunzip2 y lzma/unlzma respectivamente).

16.4.09

Eliminando directorios .svn con bash

Si tenemos una working copy de Subversion y queremos eliminar los directorios '.svn' que quedan cuando hacemos un checkout podemos ejecutar la siguiente linea parados en el directorio que queremos limpiar:

find . -name ".svn" -exec rm -rf {} \;

En caso de querer hacer un checkout sin los directorios '.svn' utilizen el comando export de svn.

7.1.09

Como encontrar los archivos mas grandes de un directorio en linux

Haciendo uso de tres comandos podemos saber cuales son los archivos que mas ocupan en el directorio y subdirectorios (recurse!) desde donde estamos parados. Tipeen en una terminal lo siguiente (si queren resultados rapidos asegurense de estar parados en un directorio que no tenga muchas cosas):

du | sort -rn | head

El primer comando ('du') lista (recursivamente) cuanto pesa cada archivo que esta en el directorio, en bytes. El segundo comando ('sort -rn') ordena este listado haciendo una comparacion numerica (-n) y ordena de mayor a menor (-r, reverse). El ultimo comando ('head', que viene a ser el gemelo malvado de 'tail') devuelve solo las primeras 10 lineas de la lista.

Podemos cantidad la cantidad de archivos que queremos ver utilizando el parametro '-n' de 'head' de la siguiente manera:

$ du | sort -rn | head -n 5
81416 .
34188 ./nuoveXT.2.2
21336 ./gnome
9104 ./gnome/scalable
6460 ./hicolor

Estoy reviviendo unos Drafts que tenia archivados por ahi y no se como llegaron a parar en donde sea que estaban. Proximamente: como formatear un salero.

29.7.08

Como reducir el tiempo de compilacion en Flex usando fcsh bajo linux

Hace muy poco comenze a ver Flex como una manera de agregar algunos chiches a Webs usando linux. Empece a hacer unos experimentos en mi maquina, luego lo pase a un servidor chico (Pentium 4 de 1.6GHz) que usamos para desarrollar y los tiempos de compilacion se fueron de 8 a 20 segundos.

Hoy estuve probando fcsh para achicar los tiempos de compilacion y funciona. Evitando cargar la JVM cada vez que compilamos y guardando informacion que le es util en memoria fsch nos ahorra preciado tiempo a hora de compilar desde la terminal. Despues de decir un par de "que bueno!" con bastante emocion, paso directamente a hacer una prueba y poner los resultados a continuacion.

Creamos un archivo mxml con un reducidisimo "Hola Mundo!" en nuestro directorio "bin" de Flex. Vamos a ponerle testfcsh.mxml:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="300">
<mx:Panel title="Mi prueba">
<mx:Label text="Hooooooooooooooooooooooola!"/>
</mx:Panel>
</mx:Application>

Ahora lo compilamos usando "mxmlc" con la opcion '-benchmark', mi copia de Flex esta en mi home dentro de los directorios ~/dev/flex/ y, tanto el compilador como fcsh, se encuentran en el directorio 'bin' dentro del de Flex:
caco@square05 ~/dev/flex/bin $ ./mxmlc -benchmark=true testfcsh.mxml 
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 327ms
Loaded 8 SWCs: 838ms
Files: 327 Time: 3893ms
Linking... 107ms
Optimizing... 409ms
SWF Encoding... 81ms
/home/caco/dev/flex/bin/testfcsh.swf (158538 bytes)
Total time: 5679ms
Peak memory usage: 52 MB (Heap: 28, Non-Heap: 24)

Vemos que en total tardo 5.6 segundos, ahora probemos con fcsh. Primero ejecutamos fcsh:
caco@square05 ~/dev/flex/bin $ ./fcsh                
Adobe Flex Compiler SHell (fcsh)
Version 3.0.0 build 477
Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.

(fcsh)

En el prompt (fcsh) vamos a escribir el mismo comando que usamos para compilar con el mxmlc:

(fcsh) mxmlc -benchmark=true testfcsh.mxml
fcsh: Assigned 1 as the compile target id
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 324ms
Loaded 8 SWCs: 788ms
Files: 327 Time: 3649ms
Linking... 57ms
Optimizing... 399ms
SWF Encoding... 97ms
/home/caco/dev/flex/bin/testfcsh.swf (158537 bytes)
Total time: 5324ms
Peak memory usage: 54 MB (Heap: 30, Non-Heap: 24)

El tiempo de compilacion es casi igual pero ahora, cada vez que recompilemos, vamos a estar haciendo uso recursos que ya estan en memoria y veremos como acortan los tiempos de compilacion. Para compilar nuevamente la misma aplicacion podemos enviarle a fsch el comando "compile" utilizando el id "1" que se le asigno a nuestro testfcsh.mxml cuando enviamos el primer comando. Voy a cambiar el string "Hooooooola mundo!" que uso en el ejemplo (fcsh detecta si no cambio ningun archivo, y nosotros queremos recompilarlo) y compilamos:

(fcsh) compile 1
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 12ms
Loaded 8 SWCs: 17ms
Recompile: /home/caco/dev/flex/bin/testfcsh.mxml
Reason: The source file or one of the included files has been updated.
Files changed: 1 Files affected: 0
Files: 327 Time: 423ms
Total time: 453ms
Peak memory usage: 58 MB (Heap: 34, Non-Heap: 24)
Linking... 12ms
Optimizing... 171ms
SWF Encoding... 64ms
/home/caco/dev/flex/bin/testfcsh.swf (158546 bytes)
Total time: 250ms
Peak memory usage: 52 MB (Heap: 28, Non-Heap: 24)

Lo hizo en menos de un segundo, unas siete veces mas rapido que con el primer metodo! Estas pruebas las hice en un Pentium 4 HT de 2.80GHz, hago a pedido las mismas pruebas en una maquina mas lenta pero no ahora.

Tener abierta la terminal fcsh me esta consumiendo aproximadamente 65MB de memoria. Cabe aclarar, tambien, que quienes usan Flex Builder ya hacen uso de fcsh. En caso de no tener el fcsh, pueden bajarlo de la pagina de Adobe y para mas informacion visiten la documentacion de fcsh.

28.11.07

Ajustar fecha y hora en Linux

Vamos con un ejemplo que casi casi se explica solo. Con el usuario root llamar al comando "date" pasandole la fecha y hora utilizando el parametro "--set" de la siguiente manera:

# date --set "2007-12-30 11:27"
Dec 30 11:27:00 CET 2007

Si tienen constantes problemas y el equipo se sale de fecha/hora les recomiendo instalar algo como OpenNTPD para mantener el sistema siempre ajustado.

14.11.07

Grabar Radios de Internet con StreamRipper

La aplicación de consola StreamRipper nos permite salvar al disco radios on-line, separando cada uno de los temas en archivos Mp3, Ogg y demas. Ideal para correr sobre nuestra station favorita y tener cosillas para escuchar, o por si somos tan adictos a que no podemos soportar dejar de escucharla cuando se cae Fibertel.

Hay versiones tanto para Linux/Unix como para windows esta la version de consola y para usuarios del Winamp esta el plug-in.

Su uso es muy simple, supongamos que quiero empezar a grabar unos temas de algun station de SomaFM. Voy a la pagina, consigo el link de la radio a capturar y corro el streamripper pasandole como parametro la URL de la radio:
~/ $ streamripper http://somafm.com/dronezone.pls
Connecting...
stream: Drone Zone: Atmospheric ambient space music. Serve Best Chilled. Safe with most medications. [SomaFM]
server name: SHOUTcast/Linux v2.5.5
bitrate: 128
meta interval: 24576

[ripping... ] Irresistible Force - 12 O'Clock [ 4.22M]
[ripping... ] Leftfield - El Cid [ 3.49M]
shutting down
bye..


Se crea automaticamente un directorio con el nombre de la radio y en su interior tenemos que tener los temas:
~/Drone_Zone $ l
drwxr-xr-x 2 caco caco 4.0K Nov 14 20:54 incomplete
-rw-r--r-- 1 caco caco 4.4M Nov 14 20:54 Irresistible Force - 12 O'Clock.mp3

Los MP3s van a quedar en ese directorio, y los que no esten completos (por que los agarramos por la mitad o cortamos antes) quedan dentro del diretorio 'incomplete'. Si los llegaran a volver a pasar StreamRipper los completa y los saca de 'incomplete'.

1.11.07

Marcando espacios de mas en vim

Agregando las siguientes lineas a nuestro vimrc (en mi distro esta en /etc/vim/vimrc o podemos usar ~/.vimrc en la home de nuestro usuario) el vim marca los espacios y tabs que estan "de mas" cuando editamos un archivo de texto:

highlight RedundantWhitespace ctermbg=red guibg=red
match RedundantWhitespace /\s\+$\| \+\ze\t/

Es excelente para mantener nuestro codigo fuente limpio y compacto, eliminando los espacios que quedan entre nuestro texto y el final de la linea, los indentados con espacios en vez de tabulaciones y demas cositas que me ponen muy neurotico.


Como ven, esos cuadrados de colores piden ser eliminados de una vez. Son tan molestos que no van a poder evitar, ni bien abren un archivo, limpiarlos todos.

11.5.07

Abcde, un CD ripper para linux de consola

Muchas veces queremos escuchar un CD de audio en la PC/MP3Player pero nos da mucha pereza convertirlo a MP3. El software mas simple y rapido que use hasta ahora es el abcde. Una vez insertado el CD en la lectora, como root (para tener permisos sobre el dispositivo) y parados en el directorio en donde querramos que queden nuestros archivos, ejecutamos el comando 'abcde'. Voy a ejecutarlo con el parametro "-o mp3" ya que por defecto el 'abcde' genera archivos ogg y mi reproductor de MP3s tiene soporte solamente para MP3/wMA (que triste).

spiritus ~/tmp # abcde -o mp3
Grabbing entire CD - tracks: 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Selected: #1
---- Sol Invictus / The Devil's Steed ----
1: We are the Dead Men
2: Old London Weeps
3: The North Ship
4: A Steed for the Devil
5: There Did Three Knights Come from the West
6: Twa Corbies
7: Semaphore Seasons
8: O Death Come Close my Eyes
9: The Devil's Steed
10: The Edge Beckons
11: Where Stone Lions Prowl
12: Come Winter Rain
13: A Window to the Sun
14: The Silver Swan
Edit selected CDDB data? [y/n] (n):


Se intentara conectar a la CDDB para conseguir los datos del CD y de cada una de las pistas. Nos pregunta si queremos editar estos datos. Por default no edita estos datos asi que simplemente le doy enter. A continuacion pregunta si el CD es de varios artistas, tambien le decimos que no y ahi comienza el proceso de rippeado del CD. Se genera un archivo WAV a partir del CD que luego comprimido a formato MP3:

Is the CD multi-artist? [y/n] (n):
Grabbing track 01: We are the Dead Men...
cdparanoia III release 9.8 (March 23, 2001)
(C) 2001 Monty and Xiphophorus

Report bugs to paranoia@xiph.org
http://www.xiph.org/paranoia/

Ripping from sector 0 (track 1 [0:00.00])
to sector 9653 (track 1 [5:08.00])

outputting to /tmp/abcde.a20e0e0e/track01.wav

(== PROGRESS == [ >| 009653 00 ] == :^D * ==)

Encoding track 01 of 14: We are the Dead Men...
Opening with wav module: WAV file reader
Encoding "/tmp/abcde.a20e0e0e/track03.wav" to
"/tmp/abcde.a20e0e0e/track03.mp3"
at quality 3.00
[ 99.9%] [ 0m00s remaining] \

Done encoding file "/tmp/abcde.a20e0e0e/track01.mp3"

File length: 5m 08.0s
Elapsed time: 0m 36.9s
Rate: 8.3512
Average bitrate: 114.2 kb/s

Tagging track 01 of 14: The North Ship...

Y asi pista por pista hasta terminar. Nos genera un directorio 'El_Artista-El_Disco' con todos los archivos adentro.

3.5.07

Calendario en Linux

Entonces el señorito en vez de estar haciendo lo que debe/tiene (por que el así lo quiere) esta OTRA VEZ dispersándose, sonriendo ante pequeños y graciosos pedazos de caracteres que forman algo. Para muchos usuarios de linux quizás sea una figurita repetida. Algunos usuarios de windows preferirían hacer doble click sobre el reloj o, quizás, en el todavía desconocido para mi windows vista, usar 512MB de memoria RAM y 64MB de memoria de video para levantar un calendario con transparencias y demas chirimbolos.

Ahora, admiren la simpleza y elegancia de 'cal', un comando que nos muestra un calendario en nuestra terminal:

square04 ~ # cal

May 2007
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31



En caso de querer un calendario completo de todo el año podemos llamarlo con el parametro '-y' de la siguiente manera:

square04 ~ # cal -y

January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31

April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30

July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31


Ahroa que miro un poco las man-pages de 'cal', nombran algo con muchas mas funcionalidades (aka chirimbolos hermosos) como Gcal (GNU). Mmm, debería probarlo y comentarlo... pero son las 2.44AM y el deber me llama aunque me haga el distraído.

24.4.07

Linea de tiempo de algunas distribuciones de Linux

En un blog que comence a leer recientemente (http://www.codinghorror.com/), publicaron un articulo sobre el software Open Source y los negocios. No le di mucho interes al tema, pero me encanto la siguiente linea de tiempo en donde muestra como se fueron diversificando las distribuciones de linux:

22.4.07

Montando archivos ISO en Linux

Para montar archivos ISO en linux necesitamos tener en el kernel (dentro o como modulo):

- loop-back filesystem support
- ISO 9660 CDROM file system support
- Microsoft Joliet CDROM extensions

Lo mas probable es que el kernel que les viene con su distro ya tenga esto. Usando el usuario 'root' creamos un directorio en donde montar el archivo:

# mkdir /mnt/iso

Suponiendo que el archivo que queremos montar se llama 'imagen.iso', hacemos:

# mount -t iso9660 -o loop imagen.iso /mnt/iso

28.11.06

Usando BitchX

Hace tiempo necesite un cliente de IRC para linea de comando y me decidi (sin probar otros, fue lo primero que salio) por BitchX (puse link de Wikipedia por que la pagina oficial no tiene nada, salvo el download).

Ni bien pude hacerlo correr, me acuerdo que me conecte a un servidor, entre a un canal, cruze un par de palabras con algunas personas y, cuando entre a otro canal, no sabia como cambiar de un canal al otro. De vago, nunca mire la documentacion, asi que entre a un canal donde me ayudaron.

/server irc.freenode.net (me conecto a un servidor)
/join #canal (entro a un canal)
CTRL+X (cambio de canal)
/part #canal (salgo de un canal)

Despues surgio la necesidad de hablar en privado:

/q persona (empiezo a hablar en privado con la persona/ente_mistico)
/q (termino el privado)

Habre estado dos anios con eso y me alcanzo. Hoy, casi anoto un item en mi tasklist para leer la documentacion... frene y me dije: "No puedo ser tan paja, por que no leo algo ahora que no tengo nada que hacer?"

Ahora puedo crear una nueva ventana (divir la pantalla en dos, o mas) y estar en dos servidores al mismo tiempo (impruductividad aumentada en un 35%):

/window new (nueva ventana)
/window server irc.freenode.net (conectarme a un servidor en la ventana)
CTRL+W P (Ctrl mas 'w' y despues 'p', para alternar entre las distintas ventanas)
/window kill (para cerrar la ventana)

Tambien saque el cartel "I'm too lame to real BitchX.doc!" que tenia puesto como nombre (mas alla del nick), para eso cree un archivo .bitchxrc en la home de mi usuario (esto es, ~/.bitchxrc) y le puse esto:

IRCNICK "Caco_Patane"
IRCNAME "anonymous"

Y ahora voy a seguir leyendo un FAQ y poniendo cosas que me resulten utiles:

/window grow 5 (aumenta 5 pixeles la ventana actual)
/window balance (si la bardeas con el tamanio de las ventanas, esto te balancea todo)

Buscando mas info encontre esto -> http://es.tldp.org/COMO-INSFLUG/COMOs/BitchX-Como/BitchX-Como-3.html <- y me dieron ganas de borrar todo y solo revolear ese link. Pero levanto los hombros de manera burlona y les saco la lengua todos: NIAAAA!!!