oriolrius.cat

Des del 2000 compartiendo sobre…

Tag: linux

mini-cookbook: ssh passwordless

Reading time: < 1 minute

Sense ajudes, descripcions ni notes… només per refrescar el tema amb 1s:

  • client ssh:
    • ssh-keygen -t dsa
    • id_dsa.pub el copiem al servidor
  • servidor ssh:
    • afegim contingut id_dsa.pub al ~/.ssh/authorized_keys
    • borrem id_dsa.pub

Curs: Oficina OpenSource

Reading time: 2 – 4 minutes

opensource-110x95.png

La setamana passada vaig estar a l’ESI de Murcia donant un curs sobre com substituir el software propietari per software amb codi lliure. El curs va ser d’una durada total de 25h repartides en 5h diaries. Podeu consultar el material separat en 5 capítols segons cada un dels dies. El target del curs eren empreses del sector de les TIC però que no tenien un grans coneixement del SL. Així doncs tot esta enfocat a fer un gran overview dels continguts del curs.

Si voleu descarregar el material en format OpenOffice Impress, PDF i alguns documents complementaris en PDF podeu descarregar-ho tot plegat al wiki. El material només el vaig usar com a guia per explicar tots els temes així doncs tampoc espereu trobar un llibre ni res semblants, sinó una guia per poder explicar en 25h el que hauria de durar-ne 2.500h 🙂

Petit resum de continguts del curs: (castellano)

Introducción al curso

Se introducen las principales diferencias entre el software privativo y el OpenSource, con el fin de definir un marco tecnológico.

Linux en el ordenador sobremesa

Se repasarán las distintas tecnologías de sobremesa que hay en el mundo Linux, así como comparaciones con las tecnologías del mercado de software actual.

Servicios internet e intranet

Tecnologías libres para ofrecer nuestros servicios en internet y en la intranet: correo, web, FTP, servidores de ficheros, backups, etc.

Empresas que dan soporte al OpenSource en España

Las empresas necesitan confiar en otras empresas que les ofrezcan los servicios que requieren. Así pues conocer cual es el marco real de empresas en España que se dedican a dar soporte al software con esta filosofía es muy importante.

ERP, CRM y Groupware basados en OpenSource

Hay herramientas vitales para una empresa como los: ERP, CRM y Groupwares. Conocer cuales son las alternativas en este tipo de software fuera de las típicas ofertas privativas es vital si queremos migrar a un entorno OpenSource.

Telefonía IP y VoIP

En nuestros días las tecnologías de VoIP (Voice over IP) estan constantemente en las portadas de los periódicos. El OpenSource ofrece un abanico de tecnologías que abren un mundo de posibilidades infinitas en esta área.

Desarrollando software OpenSource

Por muy avanzado que este un campo de la informática no siempre las herramientas se comportan como deseamos y no siempre existen aplicaciones que se adapten exactamente a las necesidades requeridas. Por este motivo hay que conocer las plataformas de desarrollo más importantes.

Gentoo trick: eina quickpkg

Reading time: < 1 minute

Dins del paquet gentoolkit podem trobar una eina que fins fa una estoneta no coneixia i que per culpa d’això m’havia fet perdre molt de temps, l’eina és realment interessant s’anomena quickpkg i ens permet crear un paquet binari a partir d’un paquet ja existent en el sistema. Realment útil quan volem tenir la còpia de seguretat de la versió d’un paquet que ja funciona en la nostre màquina i volem provar una nova versió sense haver de perdre altre vegada tot el temps fins que es torna a fer la compilació del paquet. Així doncs amb aquest eina podem estalviar realment moltes hores perdudes, almenys en el meu cas les havia perdut fins ara tontament.

Els paquets que es crein amb quickpkg obviament quedaran a:

${PKGDIR}/All
${PKGDIR}/

Grabar video-tutorials

Reading time: 3 – 5 minutes

Malgrat hi ha un molt bon programa amb una GUI basada en GTK per linux per capturar sessions i grabar veu a les sessions. El wink. O sigui, amb el que podem construir video-tutorials on expliquem com fer qualsevol cosa. Amb Gentoo no sé perquè no em funcionava a més la versió 1.5 que és la última disponible per linux no suporta grabació de veu. Així que m’he decantat per probar el vnc2swf que junt amb el pyvnc2swf (no inclòs al portage de linux) permet grabar sessions d’VNC i grabar fitxers d’audio al mateix temps. Esta prou bé l’script amb Python automatitza molt les coses. Obviament es tracta d’una aplicació basada en CLI i per tant, no té interficie gràfica i jo diria que no permet editar els arxius un cop grabats. No sé si el flash (.swf) es pot editar un cop grabat l’audio i el video. Però em sembla que és l’única manera d’editar un video-tutorial un cop grabat.

Perquè ens fem una idea del que fa l’script de Python és llençar el vnc2swf i al mateix temps podem invocar el arecord (graba .wav via ALSA). Així doncs quan a través de la mini-interfice gràfica que té el pyvnc2swf premem el botó d’stop es graba un fitxer .wav i un .swf amb el nostre video i l’audio per separat. Llavors el que fem amb el lame és convertir el .wav a .mp3 i després unim l’.mp3 amb el .swf de forma que quedin un sol arxiu .swf, el propi script ens ha creat també una pàgina .html des d’on es crida l’objecte de flash.

Com que hi ha força arxius i paràmetres a usar a continuació adjunto un petit cookbook que explica com fer-ho:

# Llencem el servidor d'Xvnc
vncserver -geometry 800x600 :10
# Modifiquem el fitxer ~/.vnc/xstartup perquè es llenci el KDE amb l'escriptori del servidor Xvnc
cat xstartup
#!/bin/sh
startkde &
# Llencem el pyvnc2swf amb la seva mini-GUI per llençar i parar les grabacions
vnc2swf.py -o out.swf -r 5 -S "arecord -r 22050 voice.wav" localhost:10
# Finalment llencem el client d'vnc per controlar la sessió que volem grabar
vncviewer -depth 8 -compresslevel 9 -quality 9 :10

Els paràmetres que li passem al vnc2swf.py són per indicar el fitxer de sortida (-o), després li diem que grabi 5 fotogrames cada segon (-r 5) després llencem en swap el arecord prenent mostres a 22KHz i grabant la seva sortida a voice.wav. Finalment li diem que la sessió a la que s’ha de connectar en mode de només lectura és a localhost:10, o sigui, el port 5910.

Un cop parem la sessió es generarà un fitxer out.html des d’on es cridarà l’objecte de flash out.swf aquest arxiu no té incrustat el so grabat a voice.wav per adjuntar-lo hem de fer:

# Convertim a .mp3 el fitxer amb l'audio voice.wav
lame voice.wav
# Adjunt l'audio del fitxer voice.wav.mp3 al fitxer out.swf i la sortida ens quedarà a out2.swf
edit.py -o out2.swf -a voice.wav.mp3 out.swf

A l’executar l’edit.py també es crearà el fitxer out2.html que crida l’objecte de flash out2.swf amb l’audio inclòs. Perquè us feu una idea de la sortida us adjunto aquest screenshot:

pyvnc2swf.png

mini-script per llistar tots els fitxers menys els ‘n’ més nous

Reading time: < 1 minute

La idea: volem tenir un directori amb els n fitxers més nous, la resta s’han d’anar borrant… l’script d’allò més senzill: (suposem n=10)

rm -f `ls -t | sed -e '1,10d'`

Si la llista de fitxers a borrar és massa llarga també podriem fer:

for F in `ls -t | sed -e '1,10d'`; do rm -f $F; done

Exemple d’aplicació: per guardar al repositori de correu com a backup els útlims n emails rebuts i anar borrant la resta.

Un petit, ràpid i bon manual de sed el podeu trobar a Selectorweb.com. (local )

Gentoo trick: eix buscant pel portage molt ràpid

Reading time: 1 – 2 minutes

A la Gentoo Linux Newsletter d’aquesta setmana es parla d’una eina que ens permet buscar pel portage de forma molt ràpida. De fet, ja vaig parlar d’una eina que serveix per coses semblants, fa temps, l’article es deia “Gentoo Trick: esearch & esync molt útils“.

De fet, no tinc clar quina diferència hi ha entre l’eix i l’esearch però sembla que tingui pinta de ser una mica més ràpida al fer el sync del portage. A més és curiós que usant també el trac com a gestor del projecte, l’altre dia en parlava en l’article sobre symfony.

Google Browser Sync

Reading time: 2 – 2 minutes

Es tracta d’una eina programada per google que s’integra perfectament al firefox i que ens permet guardar les sessions, bookmarks, cookies, històric, passwords, etc. de les nostres màquines a internet, així quan canviem de màquina podem seguir la sessió de navegació en el punt ho varem deixar. A mi em va com l’anella al dit, ja que sovint navego per internet amb l’ordinador de casa sense connectar el portàtil i quan arribo a la feina sempre trobo a faltar passwords, historics i fins hi tot pàgines que tenia obertes i que encara no havia guardat. Potser el que menys m’interessa és el tema dels bookmarks, perquè uso el sitebar i ja ho tinc tot ben automatitzat amb els enllaços de la barra d’enllaços personals. Però si altero el contingut d’aquesta barra que en el fons és una carpeta dels bookmarks del firefox també es sincrontiza, m’encata. Ja era hora que sortis una eina com aquesta!

googlebrowsersync.png

A més funciona tan en firefox per windows, linux i mac. De fet, jo no tinc mac. Però fins hi tot dintre del propi portàtil quan estic en win i estic navegant i me’n vull anar a linux és un fàstig haver de passar les pàgines que tenia obertes de formes poc elegants. Per exemple, sovint el que feia era crear un fitxer .txt on copiava les URLs i quan entrava a linux obria altre cop els tabs amb aquestes urls usant una extensió que es diu linky.

Si voleu provar l’aplicació de google labs la teniu a Google Browser Sync. Realment de les millors aplicacions que m’he instal·lat ultimament 🙂

EveryGUI – creant GUI per linies de comandes

Reading time: 1 – 2 minutes

Gràcies a delicious fa un temps vaig veure que en pancake havia trobat una aplicació per GTK+ que no coneixia només que per QT (QSA). La idea és afegir una interficie gràfica d’usuari (GUI) a les aplicacions de línies de comandes que ens interessin. A través d’un designer podem modelar-los la GUI al nostre gust i després connectar els events dels components afegits a la GUI per llençar i capturar les sortides de les ordres del CLI.

everygui.png

A la pàgina de EveryGUI teniu més informació i captures de pantalla on es pot veure prou bé la qualitat de l’aplicació.

gcc-config: escollim versió de GCC instal·lada a usar

Reading time: 1 – 2 minutes

Estic una mica a la parra, fa temps que amb les actualitzacoins de gentoo me n’havia adonat que s’instal·lava el paquet sys-devel/gcc-config.Malgrat sabia que servia amb quina versió de GCC es compilaràn les coses mai havia provat de configurar-ho. Així doncs fa una estona sense venir a compte de res hi he pensat.

Un petit resum de com usar la comanda:

Quina versió de GCC estem usant:

root@mini2 ~ # gcc-config -c
i686-pc-linux-gnu-3.3.6

Llista de versions llestes per usar:

root@mini2 ~ # gcc-config -l
 [1] i686-pc-linux-gnu-3.3.6 *
 [2] i686-pc-linux-gnu-3.3.6-hardened
 [3] i686-pc-linux-gnu-3.3.6-hardenednopie
 [4] i686-pc-linux-gnu-3.3.6-hardenednopiessp
 [5] i686-pc-linux-gnu-3.3.6-hardenednossp
 [6] i686-pc-linux-gnu-3.4.5
 [7] i686-pc-linux-gnu-3.4.5-hardened
 [8] i686-pc-linux-gnu-3.4.5-hardenednopie
 [9] i686-pc-linux-gnu-3.4.5-hardenednopiessp
 [10] i686-pc-linux-gnu-3.4.5-hardenednossp

Canviem a la versió 3.4.5 del GCC:

root@mini2 ~ # gcc-config i686-pc-linux-gnu-3.4.5
 * Switching native-compiler to i686-pc-linux-gnu-3.4.5 ...
>>> Regenerating /etc/ld.so.cache...                                                                     [ ok ]
 * If you intend to use the gcc from the new profile in an already
 * running shell, please remember to do:
 *   # source /etc/profile

Podem observar que ja em canviat la versió:

root@mini2 ~ # gcc-config -l
 [1] i686-pc-linux-gnu-3.3.6
 [2] i686-pc-linux-gnu-3.3.6-hardened
 [3] i686-pc-linux-gnu-3.3.6-hardenednopie
 [4] i686-pc-linux-gnu-3.3.6-hardenednopiessp
 [5] i686-pc-linux-gnu-3.3.6-hardenednossp
 [6] i686-pc-linux-gnu-3.4.5 *
 [7] i686-pc-linux-gnu-3.4.5-hardened
 [8] i686-pc-linux-gnu-3.4.5-hardenednopie
 [9] i686-pc-linux-gnu-3.4.5-hardenednopiessp
 [10] i686-pc-linux-gnu-3.4.5-hardenednossp

Buscar fitxers amb el contingut duplicat en linux…

Reading time: 1 – 2 minutes

Sovint costa trobar eines o petits scripts que fassin coses aparenment tan estupides com la comentada. De fet per windows he trobat alguns programes que tenen bona pinta tot i que no els he provat encara. Però per linux m’ha costat una mica més fins que he trobat el fdupes (local). Esta programat en C i realment és molt senzill d’usar i força potent.

També he trobat un petit script en bash que fa una busqueda força rudimentaria però útil en alguns casos:

OUTF=rem-duplicates.sh;
echo "#! /bin/sh" > $OUTF;
find "$@" -type f -print0 |
  xargs -0 -n1 md5sum |
    sort --key=1,32 | uniq -w 32 -d --all-repeated=separate |
    sed -r 's/^[0-9a-f]*( )*//;s/([^a-zA-Z0-9./_-])/\\\1/g;s/(.+)/#rm \1/' >> $OUTF;
chmod a+x $OUTF; ls -l $OUTF

La pàgina on he trobat aquest script és Unix shell script for removing duplicate files.