Arxiu de Linux

Generar un fitxer PDF que continga 3 pàgines per pàgina

// agost 9th, 2014 // No hi ha comentaris » // Linux

Una de les coses que acostumava a fer quan aquest blog era posar entrades curtes, tècniques que després em serveixen per a no haver de tornar a perdre temps buscant-ho de nou a Google: “això ho vaig posar al blog!”  I avui m’ha costat fer una cosa d’eixes que em costarà repetir si no m’ho apunte a algun lloc.

Havia generat un fitxer amb el LibreOffice Writer de 210x99mm (just una tercera part d’un A4) i necessitava generar un fitxer PDF amb 3 còpies del primer. La següent imatge mostra exactament el que intentava fer

PDF 3x1

Tot i que sembla fàcil, fer-ho amb 3 pàgines no ho és tant (amb 2 o quatre pàgines si que ho és més); això no ho pots fer en cap programa del tipus Word d’Office o LibreOffice Writer sense posar-te a modificar el document original, que és una cosa que jo no volia fer: si canvie una cosa del text original, ho hauria de canviar a les 3 columnes?

Així que com a bon linuxer, segur que hi ha una manera senzilla de fer-ho utilitzant la línia d’ordres. I m’he trobat amb pdfjam, una capa per sobre del paquet pdfpages de LATEX, una eina extraordinària per fer documents.

I a continuació l’ordre simple per a generar, a partir d’un fitxer com el de l’esquerra (fitxer.pdf), un altre fitxer com el dreta de la imatge (fitxer-3.pdf), en només una línia

pdfnup --nup 3x1 --suffix "-3" --frame true fitxer.pdf fitxer.pdf fitxer.pdf

Fàcil, no?

Donar permisos a un usuari en MySQL

// juliol 22nd, 2011 // No hi ha comentaris » // Linux

MySQLÚltimament, per motius de feina, estic treballant prou amb bases de dades MySQL. I gràcies a la magnifica instal·lació elèctrica que tenim a la universitat, últimament se m’ha corromput diverses vegades la base de dades amb què estava treballant. A més, també he hagut de fer unes quantes instal·lacions de la BD amb usuaris nous en altres equips. I al crear el nou usuari, m’he trobat amb el següent problema:

Suposem que partim d’aquest codi

create database prova;
grant all on prova.* to 'usuari'@'%' identified by 'contrasenya';

La primera línia ens crea una base de dades, anomenada prova. Amb la segona, estem donant-li tots els permisos a l’usuari usuari es connecte des d’on es connecte (amb el comodí de MySQL, %), i que la seva contrasenya serà contrasenya. Fins ara sembla tot prou senzill i clar, no?

Doncs no funciona, i aquest és l’error que ens torna el MySQL quan intentem connectar-nos al MySQL des del terminal

mysql -u usuari -pcontrasenya
ERROR 1045 (28000): Access denied for user 'usuari'@'localhost' (using password: YES)

Per què ens dona aquest error? Perquè encara que li hem donat permisos a l’usuari usuari per a connectar-se a MySQL “des de qualsevol lloc”, açò inclou tots els llocs possibles excepte localhost. És a dir, des de qualsevol altra màquina del món ens podrem connectar a eixa base de dades, però no des de la mateixa on està instal·lat el servidor!

Per a solucionar-ho, només cal que afegim una tercera ordre al codi original, donant permís explícit per a connectar-se a la nostra base de dades des de localhost.

create database prova;
grant all on prova.* to 'usuari'@'%' identified by 'contrasenya';
grant all on prova.* to 'usuari'@'localhost' identified by 'contrasenya';

Potser a algú li vinga bé aquesta entrada, i segurament d’aci alguns mesos, quan haja de crear un nou usuari de MySQL i m’isca aquest error, no m’hauré de tirar hores pensant/buscant per internet la solució.

Transició entre dues imatges amb ImageMagick

// abril 2nd, 2011 // No hi ha comentaris » // Linux

Després de prou articles de política, llengua o altres coses de l’estil que acostume a escriure al blog, ara toca una entrada un poc més tècnica, d’eixes que pose ací simplement per a en un futur, quan intente tornar a fer una cosa semblant, no estar hores cercant-ho al Google.

Es tracta d’una simple ordre a l’eina convert, del paquet ImageMagick, i a partir de les dues imatges genera una transició, deixant un temps a l’inici i al final.

$ convert \( im1.png  -set delay 100 \) \( im1.png im2.png -morph 9 -set delay 30 \) \( im2.png -set delay 100 \)  tr.gif

I a continuació, un exemple per a mostrar-ho (en homenatge al documental “Del roig al blau: la transició valenciana“): la imatge roja, la transició entre les dues, i la imatge blava.

Tinc un mòbil amb Android

// gener 17th, 2011 // 3 comentaris » // Linux, Personal

l'Android de XaviCom que un dels propòsits d’enguany és no abandonar el blog, i intentar tornar-ho a fer amb la intensitat en què ho feia en anys anteriors, he de contar moltes coses que durant els últims mesos he anat deixant passar.

Començarem pel mòbil. Fa vora sis mesos, i després de diversos estira-i-arronses amb Movistar, vaig aconseguir un Samsung Galaxy S. Es tracta del mòbil insígnia de la companyia coreana, i pràcticament idèntic (això s’ha vist ara) al segon dels mòbils de Google, el Nexus S, que ha eixit al mercat mig any darrere del Galaxy S.

Les característiques del maquinari són espectaculars, sent més potent que pràcticament tots els ordinadors que he tingut fins ara! Però el principal motiu pel que volia un GalaxyS és pel programari que mou el bitxo: el sistema operatiu Android. Podríem definir Android ràpidament com un sistema operatiu per a mòbils basat en Linux i desenvolupat per Google, i que li planta cara a l’iOS de l’iPhone (Apple).

El mòbil era l’únic reducte en què continuava gastant el Windows. Després d’haver migrat a Linux fa més de 5 anys, el 2006 em vaig comprar una PDA amb Windows Mobile, un Qtex S200 (HTC Prophet), i vaig tornar a caure en l’Imperi del Maligne duent el SO de Redmond a tots els llocs dins la meva butxaca.

Tot i que sense talibanismes, intente utilitzar només programari lliure i, a poder ser, en la meua llengua. Tot i que l’Android (la versió distribuida per Google) encara no està en valencià (altres com la Cyanogen si que ho està, però no funciona bé encara per al Galaxy S), vull veure si comence a participar al nou projecte d’Android a Softcatalà, per a veure si entre tots fem força i Google inclou la llengua dins de les versions oficials del sistema operatiu.

Durant les vacances de nadal vaig actualitzar d’Eclair (Android 2.1) a Froyo (Android 2.2), i la veritat és que el canvi ha sigut a millor. El mòbil va molt més ràpid, la bateria dura més, es veu el Flash de les webs… en definitiva, quasi un mòbil nou 😀

A partir d’ara, espereu de tant en tant alguna entrada sobre alguna aplicació interessant que m’haja instal·lat al mòbil, o frikades per l’estil.

“Parameter substitution” en BASH…
... no haver-ho conegut abans!

// octubre 29th, 2009 // 3 comentaris » // Linux, Programació

Aquesta és una entrada molt específica de programació

No fa molt vaig descobrir la substitució de paràmetres en bash, i la veritat és que és una eina increïble que evita usos de sed, awk, o cut quan realment no fa falta.

A continuació reproduïsc una llista que he trobat a “BASH Cures Cancer“, un blog que pretén explicar les bondats del BASH per als Linuxers.

  1. Les variables es poden especificar de dues formes: $var o ${var}.
    $ var='a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352'
    $ echo ${var}
    a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352
  2. ${#var} és la llargària de la variable.
    $ echo ${#var}
    42
  3. ${var:pos} genera una subcadena començant en la posició pos.
    $ echo ${var:10}
    2342%asd234#@.,&%,sdfgsdfgas4352
  4. ${var:pos:len} genera una subcadena començant a en la posició pos d’una llargària len.
    $ echo ${var:10:5}
    2342%
  5. ${var#pattern} esborra el patró pattern començant pel principi de la variable. Aquesta versió para només troba l’expressió regular. ${var##pattern} és la versió extesa.
    $ echo ${var#*,}
    fssd2342%asd234#@.,&%,sdfgsdfgas4352
    $ echo ${var##*,}
    sdfgsdfgas4352
  6. ${var%pattern} elimina el patró pattern començant pel final de la variable. Aquesta versió para només troba l’expressió regular. ${var%%pattern} és la versió extesa.
    $ echo ${var%,*}
    a.ads,fssd2342%asd234#@.,&%
    $ echo ${var%%,*}
    a.ads
  7. ${var/pattern/replacement} substitueix l’expressió regular pattern amb replacement una vegada.
    $ echo ${var/a/A}
    A.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4352
  8. ${var//pattern/replacement} substitueix l’expressió regular pattern amb replacement de manera global.
    $ echo ${var//a/A}
    A.Ads,fssd2342%Asd234#@.,&%,sdfgsdfgAs4352
  9. ${var/#pattern/replacement} si l’inici de la variable és com el patró pattern, es substitueix per replacement.
    $ echo ${var/#a./llll}
    llllads,fssd2342%asd234#@.,&%,sdfgsdfgas4352
  10. ${var/%pattern/replacement} si el final de la variable és com el patró pattern, es substitueix per replacement.
    $ echo ${var/%352/llll}
    a.ads,fssd2342%asd234#@.,&%,sdfgsdfgas4llll

Segur que aquells que utilitzeu el shell habitualment i no coneixieu açò, li podeu traure molt de profit.

Libtrash, paperera en linux

// octubre 1st, 2008 // 1 comentari // Linux

I tornem amb el Producte Recomanat. Vaig a intentar fer aquesta secció de forma quinzenal, a veure si puc seguir el ritme. No vull dir que cada 15 dies exactes pose un post; sinó que intentaré fer-ne dos al mes, durant les primers dies de cada quinzena.

Parlem ara de libtrash. Es tracta d’una llibreria per a entorns Linux que permet enviar una cosa que esborrem mitjançant la consola a la paperera de reciclatge. Això ja s’encarreguen de fer-ho els entorns gràfics a més alt nivell, però si ho fem des de la consola (amb un rm) el fitxer desapareix per sempre més.

Per instalar-lo a Ubuntu (i a altres Debian o derivats) només cal executar

sudo apt-get install libtrash

ja que la llibreria es troba als repositoris de la distribució.

Després per fer-la funcionar, cal exportar la variable LD_PRELOAD de la següent forma:

export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4.

Això si, si volem evitar-nos haver-ho de fer a cada entrada en la consola, podem afegir aquesta línia als fitxers .bashrc i/o .bash_profile al nostre directori d’usuari.

Hi ha diversos articles en altres blogs que seguisc (com Lo hice y lo entendí, o Mundogeek) que n’han parlat més a fons, i ja fa més temps, explicant algunes passes per personalitzar més encara el funcionament. Des d’aquell moment que tenia en esborrany aquesta entrada, i com que estic de neteja al bloc, m’he decidit a acabar-la i publicar-la.

Espere que vos siga útil!

Manuals de bash…
... bàsics per a Linux

// juny 6th, 2008 // 3 comentaris » // Linux

Doncs continuant amb el llistat de manuals, tutorials i referències d’utilitat, és el moment de tutorials de bash, una de les consoles disponibles en els sistemes Linux.

A més del canal de xat #bash del servidor irc://irc.freenode.org, m’han agradat els següents manuals:

He actualitzat la pàgina de manuals amb aquestes novetats.

Espere que a algú li servisquen!

Ubuntu 8.04, Firefox i Flash

// maig 13th, 2008 // 1 comentari // Linux

Aquesta Ubuntu 8.04 no va tan fina com deuria, com diu Marc en algunes de les seves últimes entrades. I la beta del Firefox té la culpa de moltes de les errades que té la distribució.

Una errada que he trobat és que no reprodueix correctament alguns vídeos en Flash (a mi m’ha passat amb un de VilawebTV). La solució és ben senzilla.

En primer lloc hem d’instal·lar el paquet libflashsupport

sudo apt-get install libflashsupport

Després només cal eliminar i tornar a instal·lar el paquet que conté el plugin de flash, per a que funcione correctament.

sudo apt-get remove -purge flashplugin-nonfree
sudo apt-get install flashplugin-nonfree

Reiniciem el Firefox i ja podrem veure correctament els vídeos.

seguirem informant…

Servidor web en Ubuntu Gutsy…
... webs al teu ordinador

// novembre 7th, 2007 // No hi ha comentaris » // Internet, Linux, Programació

Al final m’he decidit, i vaig a començar a publicar entrades amb un mínim d’utilitat, a veure si d’una vegada trobe el tema conductor d’aquest bloc (sembla més un calaix de sastre que un bloc).

I per a començar aquesta sèrie de posts seriosos, un on explique (o millor dit, intente explicar) de manera senzilla la instal·lació d’un servidor web complet en Ubuntu Gutsy.

La informació no l’he arreplegada de cap lloc, i al mateix temps l’he arreplegada de molts: gràcies al tot-ho-sap, principalment.

I PART: INSTALACIÓ DELS PAQUETS NECESSARIS

En primer lloc, hem d’instal·lar tots els paquets. Venen als repositoris d’Ubuntu Gutsy Gibbon, o siga que només haureu d’obrir un terminal i fer:

sudo apt-get install php5 php5-mysql php5-gd php5-curl php5-imagick php5-mcrypt mysql-server mysql-client mysql-common apache2 phpmyadmin

Ens demanarà algunes dades de configuració (usuari i password de MySQL, per exemple). Una vegada acabat, haurem instal·lat el programari necessari per a muntar el nostre servidor Apache2, amb suport per a PHP5, MySQL, i algunes extensions de PHP5 interessants, com curl, ImageMagick, GD, i també l’eina phpMyAdmin per a la gestió de les bases de dades MySQL via web.

II PART: ALGUNS AJUSTOS NECESSARIS

Una vegada instal·lat tot, és l’hora de configurar algunes cosetes. Primer que res, provem si s’ha instal·lat bé l’Apache2. Només hem d’entrar a http://localhost/ i comprovar que ens apareix la pàgina inicial d’Apache.

Després provem el phpMyAdmin, entrant a http://localhost/phpmyadmin/. És possible que no trobe la pàgina, però açò se soluciona de forma fàcil:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

Ara ja hauriem de veure la pàgina, però és possible que ens indique errors per a connectar a la base de dades. Ací també hi ha una manera senzilla de solucionar-ho:

Entrem a MySQL des de la consola, posant el nom d’usuari (root) i la contrasenya que hagem triat abans (suposem que és password)

$ mysql -uroot -ppassword

i escrivim açò

SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('password');

Açò es deu a que des de la versió 4.11 de MySQL, s’utilitza un nou algorisme de xifrat de contrasenyes, i ja no es pot connectar a la base de dades de la manera que es connectava abans. Però amb açò ja està solucionat.

III PART: LA NOSTRA WEB

Una vegada ho tenim tot enllestit, ja podem posar la nostra web. El lloc on posar-la és dins de /var/www/, però aquesta carpeta no té permisos d’escriptura. Els podem donar de forma senzilla fent:

$ sudo chmod 777 /var/www/

I si, posem per cas, la nostra web està dins la carpeta elmeubloc, i l’hem posat dins de /var/www/ podrem accedir a ella a través d’aquest enllaç: http://localhost/elmeubloc/

Amb aquestes senzilles indicacions, ja podem muntar-nos un servidor en la nostra màquina per fer proves amb les pàgines web que dissenyem.

Ubuntu 7.10 Gutsy Gibbon…
... serè el primer en provar-la?

// octubre 18th, 2007 // No hi ha comentaris » // Linux

Tot i que encara no apareix a la web d’Ubuntu, ja es pot instalar la nova versió 7.10 Gutsy Gibbon final.

Per fer-ho, només cal, des d’un terminal, executar la seguen ordre:
sudo update-manager -d

A provar-ho tots!!!