Posts Tagged ‘Articles de Codi Ç’

Solució a Touch Pad penjat en Linux

dimecres, febrer 13th, 2013

Touch pad de portàtilEls dono molta canya als portàtils, molta.

Això vol dir que fan molt de swapping i de vegades arriben a saturar-se tant, que passen coses com que el controlador del Touch Pad deixa de funcionar.

La solució que us proporciono és per a sortir del pas i soluciona el problema quan us passa.

Simplement premeu Ctrl + Alt + F1 de manera que aneu al terminal en mode text.

Llavors premeu Ctrl + Alt + F7 per a tornar a la interfície gràfica i el Touch Pad s’haurà recuperat.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Un bri d’esperança

dijous, febrer 7th, 2013

Fa dies que li dono voltes a aquest article i no sé com plantejar-lo, però sé que ho haig de fer.

És el correcte, i vull fer-ho, així que aquí va.

Jo m’he espavilat sempre, molt, per a ser “empleable” i no he tingut problemes mai per a trobar feina.

Sí que m’he trobat que em deien que estava sobrequalificat per a algunes feines, i he hagut de treballar per sota de la meva capacitat, diversos rangs per sota. Si era cap d’arquitectes, com a manobra, per a entendre’ns.

Sempre he treballat molt, he estudiat molt, he estat seriós amb la meva feina, i he tingut una fe inquebrantable en la meva capacitat de superació.

M’he esforçat en aprendre coses difícils, he apartat la mandra, la por, m’he arremangat i he après coses que altres no aprenien per mandra.

Així que sempre he anat endavant i sé que sempre sortiré endavant, perquè m’esforçaré el que calgui per a avançar.

A la vida he vist molta gent que es queixava. Es queixaven molt, durant 10 anys es queixaven de que a la feina els explotaven perquè els pagaven poc, però no feien res. No feien res per a canviar la seva situació.

Si tu ets d’aquests para de llegir.

Fa un temps vaig decidir ajudar a persones que em semblaven bones persones, intel·ligents, voluntarioses, però que la vida havia portat a situacions en que eren presoners o presoneres.

Per exemple, la noia que no podia suportar que els pares es barallesin i va marxar de casa amb 18 anys, amb una feina de cambrera. I en té 30 i segueix fent de cambrera i amb l’ai al cor sempre per si la faran fora, i difícilment arribant a fi de mes.

A aquestes persones he tractat d’orientar-les i ajudar-les a que trobessin una ocupació que els permetessin guanyar-se la vida dignament, i on progressar depengués de les seves possibilitats.

He ajudat a algunes persones i tinc l’orgull de veure com han sortit endavant.

He vist com altres deien sempre que volien sortir del pou, però alhora de la veritat no venien a classe, o no trucaven per començar.

Algunes persones no es volen enfrontar a les seves pors, o tenen por de no ser intel·ligents, o el fa mandra. I una cosa és queixar-se de que el món és molt dolent i dir que no pots fer res, que és fàcil, i una altra tenir una oportunitat de sortir endavant, però que només depengui del teu esforç, que implica òbviament el propi esforç.

Amb la meva empresa vaig muntar classes, on sempre hi havia algunes persones a les que “becava”. Les becava com si fos un inversor que inverteix en una Start up, però invertint en persones: Els deia: El curs val xxxx, pots fer el curs sense pagar-me res, i t’ajudaré a buscar feina en acabat.

Si trobes feina abans d’un any m’ho aniràs tornant poc a poc, mes a mes. I si en un any no has trobat feina, cosa que dubto perquè jo et preparé bé i t’ajudaré, no m’hauràs de pagar res.

Òbviament corria el risc de que m’enganyessin. Vull dir, que els puc formar, i que passi un any i em diguin que no han trobat res.

Això és molt difícil perquè les persones que jo formava en primer lloc són bones persones, o m’ho semblaven. I tinc bon criteri amb la gent.

En segon, perquè si una persona de veritat vol sortir del pou, i tu li brindes una mà, desinteressadament, ho normal és que sigui agraïda, i sigui la primera que si pot t’ho torni.

Si una persona fotuda fotuda a qui ajudes no t’ho agraeix, se’n pot anar a prendre vents. I al final, ella sortirà perdent, perquè es quedarà sola, i es veurà privada del suport que li aportes en xarxa.

Els cursos que jo donava són de programació en Web en PHP.

També he donat classes particulars en casos excepcionals.

Són molts anys de professió a les TI, conec el sector, m’apassiona la tecnologia i sé explicar molt bé.

Però això no és la meva forma de guanyar-me el pa.

Jo sóc emprenedor i empresari i em guanyo el pa treballant per a altres empreses, en coses molt molt difícils, tant que tenen dificultats per a trobar gent que els ho pugui fer. Si em contacten a mi, que són més car, és perquè no troben cap barat que els ho pugui fer o volen coses d’una gran qualitat i no xapuses. I si jo puc els ho faig, i si no en sé abans d’acceptar els dic que ho sento però no en sé, o que no en sé però en puc aprendre i els puc dir si ho podré fer o no en tres dies, quan m’hagi estudiat el tema.

Llavors, tot aquest llarg post que he escrit és per a dir, que si tu ets una d’aquestes persones que et trobes en una situació difícil, amb una feina de la que no saps com escapar mentre veus que envellegeixes, o et trobes a l’atur o per més que busques no trobes feina… si ets una d’aquestes persones que creus en la teva voluntat i en la teva capacitat d’insistir i esforçar-te per a sortir endavant, i estàs disposada a esforçar-te i a estudiar, encara que els conceptes et facin venir mal de cap. Si realment vols millorar la teva vida obrint-te camí en una professió on el sostre és molt molt amunt, i només depen de la teva capacitat.

Com li deia l’altre dia a una amiga, una feina de reposador a un supermercat no té més sostre, estaràs sempre omplint les estanteries, i com a molt podràs arribar a encarregat… quan es jubili l’encarregat. Tan hi fa ho bé que reposis el gènere, la posició té un límit de creixement.

Passa el mateix amb cambrer, perruquera, peixetera i tantes feines (en algunes hi ha graus com oficial de 1a, 2a, etc… però no es diferencia molt).

Llavors, si tu vols prosperar, i creus en el teu esforç, i estàs realment disposat/da a esforçar-te estudiant, i intentant fer els exercicis, potser et puc ajudar, ensenyant-te a programar.

Tots els negocis que s’obren a Internet necessiten programadors.

Com deien a Karate kid: Jo ensenyo, tu aprens.

Jo em comprometo a ensenyar-te, i tu et compromets a aprendre.

Entre les persones que m’escriguin, avaluaré la situació, les capacitats, i la voluntat, i n’escolliré a una a qui ajudaré de franc. Només dependrà del seu esforç.

Només cal ser bona persona, tenir una intel·ligència normal, molta voluntat, i estar molt motivat.

Ningú aprèn conceptes difícils escalfant seient. I jo realment trec temps personal per a ajudar a una persona que ho necessita. Així que ho ha de merèixer.

It’s up to you.

http://www.codic.cat/contactar/

Jo contestaré a tots els mails, si no t’he contestat seria perquè hi ha hagut problemes amb le servidor. Torna-hi.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Manquejades del PHP in_array

Dimarts, gener 22nd, 2013

Sempre dic que PHP és un llenguatge que m’agrada molt, i que em diverteixo molt treballant-hi i que un projecte Internet es pot fer diverses vegades més ràpid que en Java.

Ara bé, de la mateixa manera també dic que és ple de problemes, problemes de disseny i errors estúpids.

Avui explicaré quelcom prou poc intuitiu i que us pot portar a greus problemes al vostre codi.

L’ús d’ in_array

Observeu aquest codi:

<?php
$st_array = array(      'nom1' => 0,
                        'nom2' => 1,
                        'nom3' => '2',
                        'nom4' => 'Catalunya Lliure');

echo 'Cas 0:'.in_array('0', $st_array)."\n";
echo 'Cas 1:'.in_array('1', $st_array)."\n";
echo 'Cas 2:'.in_array('2', $st_array)."\n";
echo 'Cas n:'.in_array('n', $st_array)."\n";
echo 'Cas z:'.in_array('z', $st_array)."\n";
echo 'Cas Catalunya:'.in_array('Catalunya', $st_array)."\n";
echo 'Cas num no:'.in_array(3, $st_array)."\n";
echo 'Cas num sí:'.in_array(1, $st_array)."\n";

$st_array2 = array(2,'a','Catalunya Lliure');

echo 'Cas 1a:'.in_array(3, $st_array2)."\n";
echo 'cas 2a:'.in_array(2, $st_array2)."\n";
echo 'cas 3a:'.in_array('2', $st_array2)."\n";
echo 'Cas 4a:'.in_array('Catalunya', $st_array2)."\n";
echo 'Cas 5a:'.in_array('Catalunya Lliure', $st_array2)."\n";

Qualsevol desenvolupador de PHP diria que el resultat que espera és diferent del que rebrà.

Veiem el resultat:

PHP codi problemàtic resultat

Els resultats que he obtingut són els mateixos en sistemes Debian amb 5.3.3:

PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug  6 2012 14:18:06)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

En Ubuntu amb 5.3.10:

PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

I en PHP 5.4.10 i en 5.5.0.a.2 executats en aquesta sandbox: http://sandbox.onlinephpfunctions.com/

El resultat és l’esperat* en els casos en que el valor de l’array és numèric, però sembla totalment buggy en el cas de string (el que coneixem com Map a Java o hash a Python).
Veient els exemples hom pensaria que el problema es produeix si els valors assignats a barregen valors numèrics i string, però també si l’array té claus alfanumèriques (‘nom1′ => ‘0’). Aquest últim cas es veu clarament amb l’exemple de cercar ‘Catalunya’ al primer i al segon cas.

Però si tingués un bon amic com el meu amic Edu, us faria adonar que no es tracta de si la clau és alfanumèrica o automàtica, si no que el fet que hi hagi un 0 (zero) com a valor integer, és el que provoca aquest comportament esbojarrat i imprevisible del PHP.

Mirant la documentació del mètode loose de comparació de PHP observem on és el problema.

Encara que sigui contra intuitiu, en el mètode loose qualsevol cadena de text és == a 0 (zero integer).

* Nota: Dic que és l’esperat donat que la documentació de PHP per a in_array ja indica que “Searches haystack for needle using loose comparison unless strict is set.”, és a dir, que fa servir el mètode de comparació loose, en que es considera igual 1 i “1” per exemple.

I aquest és un dels grans problemes de PHP, que degut al sevu comportament intern, a les conversions entre tipus que fa automàticament, viola els principis de programació de fiabilitat**, i porta a situacions en que és altament probable que els programadors generin bugs o es generin bugs que només passen en situacions molt específiques.

** Quan dic que viola el principis de programació de fiabilitat de resultats, em refereixo a coses com:

Expressió Resultat
“Catalunya” == 0 TRUE
“0” == 0 TRUE
“Catalunya” == “0” FALSE

O sigui “Catalunya” == 0 i 0 == “0” però “Catalunya” és diferent de “0”. Epic fail.

Haurem d’utilitzar === que fa la comprovació de tipus també.

La solució universal que farà que els dos casos d’in_array funcionin correctament és emprar el mètode estricte.

Codi que funciona segons s’espera:

<?php 
define('METODE_STRICTE', true); 

$st_array = array(	'nom1' => 0, 
			'nom2' => 1, 
			'nom3' => '2', 
			'nom4' => 'Catalunya Lliure');

echo 'Cas 0:'.in_array('0', $st_array, METODE_STRICTE)."\n";
echo 'Cas 1:'.in_array('1', $st_array, METODE_STRICTE)."\n";
echo 'Cas 2:'.in_array('2', $st_array, METODE_STRICTE)."\n";
echo 'Cas n:'.in_array('n', $st_array, METODE_STRICTE)."\n";
echo 'Cas z:'.in_array('z', $st_array, METODE_STRICTE)."\n";
echo 'Cas Catalunya:'.in_array('Catalunya', $st_array, METODE_STRICTE)."\n";
echo 'Cas num no:'.in_array(3, $st_array, METODE_STRICTE)."\n";
echo 'Cas num sí:'.in_array(1, $st_array, METODE_STRICTE)."\n";

$st_array2 = array(2,'a','Catalunya Lliure');

echo 'Cas 1a:'.in_array(3, $st_array2, METODE_STRICTE)."\n";
echo 'cas 2a:'.in_array(2, $st_array2, METODE_STRICTE)."\n";
echo 'cas 3a:'.in_array('2', $st_array2, METODE_STRICTE)."\n";
echo 'Cas 4a:'.in_array('Catalunya', $st_array2, METODE_STRICTE)."\n";
echo 'Cas 5a:'.in_array('Catalunya Lliure', $st_array2, METODE_STRICTE)."\n";

I podeu observar el resultat:

PHP codi problemàtic solucionat amb strict

Pareu atenció a que amb el mètode estricte si cerqueu ‘1’ (string) i a l’array hi ha 1 (integer) in_array us retornarà FALSE.

Molt important a tenir en compte que tot el que rebeu de $_GET o $_POST sigui el que sigui us arribarà com un string, o un array d’strings, malgrat en el formulari hagin inserit valors numèrics com 2014.

Nota per a usuaris novells: Jo he utilitzat una constant amb el valor booleà TRUE per a fer servir el mètode estricte però prodrieu fer servir directament true.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Capturar una regió de pantalla en Ubuntu 12.04

diumenge, gener 13th, 2013

En Ubuntu 12.04 hi ha una combinació de tecles que permeten capturar una regió de la pantalla sense ajut de cap programari extra.

La combinació és prèmer Shift i simultànimanet Impr pant o Print Scrn a teclats internacionals.

La tecla Shift és aquella amb la que mentre la manteniu premuda i premeu una vocal feu una majúscula (o la que feu servir per als caracters com $ ! ” / etc…).

Altres combinacions que us poden fer servei i que també funcionen a windows són:

Alt + Impr pant = captura la finestra seleccionada

Impr pant = captura tota la pantalla. En ordinadors amb dos monitors captura la imatge dels dos.

Jo habitualment empro el programa KSnapshot que em permet fer una captura al cap d’un número de segons, però aquest truc em suposa un estalvi de temps la majoria de vegades.

Agraïments a en Maure per la combinació Shift + Impr pant. ;)

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Una experiència SD

dissabte, desembre 8th, 2012

Com sabeu els meus portàtils porten tots SSD.

Tinc previst escriure un article sobre les seve avantatges més endavant.

Però un dels seus desavantatges és que les escriptures reiterades en una cel·la de memòria provoquen la inutilització de la mateixa.

És un problema tan greu que molts fabricants de discs SSD hi incorporen fins un 20% d’espai extra que no es pot utilitzar i el disc mou les dades cap allí quan detecta que una cel·la és a punt de morir (aquelles cel·les també acaben quedant inutilitzables).

Llavors, per a evitar escriptures, no utilitzo partició de swap.

En general això no és problema, però si la memòria del portàtil s’acaba, com no se’n pot al·locatar més, el programa que havia fet la petició d’augmentar memòria peta.

Per a solucionar això vaig decidir comprar una tarja SSD de 4 GB, que em va costar 4,5 €, i hi tinc 2 GB per a còpies de seguretat, i 2 GB per a espai d’intercanvi swap.

La solució funciona bé però hi ha alguns contratemps:

– Quan suspenc el portàtil, de vegades en encendre’l de nou no em detecta la swap

– Si la tarja de memòria surt, i és fàcil en el meu model ja que al posar-lo a la bosa, si l’empeny una mica salta, i no me n’adono, quan l’encenc i el sistema necessita la swap, peta l’aplicació que la demanava

Amb tot és una solució enginyosa i molt barata que permet allargar la vida del disc SSD i no privar-nos de swap, i volia compartir-la amb vosaltres. :)

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Instal·lar Ubuntu Linux 64 bits en un Dell Vostro 3360 amb un disc mSATA 32 GB

dissabte, octubre 20th, 2012

Aquest article té les seccions / This article has the sections:

  1. Introducció / Introduction
  2. Història d’intents / History of trails
  3. Instruccions d’instal·lació (el camí ràpid) / Installation instructions (fast solution)
  4. Reflexions / Reflections

Afegiré les captures de pantalla quan em sigui possible. I will add the screenshots when possible.

 

Introducció / Introduction

Al projecte que estic dirigint hem comprat diversos Dell Vostro 3360 per a l’equip i un per a mi.

In the project I’m managing we bought several Dell Vostro 3360 laptops for the Team, and one for me.

Aquest portàtil és molt interessant, planejo fer-ne una anàlissi aviat, però a grans trets:

This is a very interesting laptop, I’m planning to write a review soon, but as a resume:

  1. pesa poc / lightweight
  2. té una potència considerable (Intel Core i5-3317U (1.7GHz)) / relatively powerful CPU
  3. Ve amb 6 GB de RAM / Equiped with 4 GB + 2 GB RAM
  4. Incorpora un disc dur SSD mSATA
  5. I un disc dur tradicional de 500 GB / Another disk of 500 GB
  6. Equipa 3 ports USB 3.0
  7. Costa 700 € IVA inclós / Cost 700 € taxes included in Catalonia

Història d’intents / History of trials

La qüestió és que des de Catalunay no es pot encarregar a la web de Dell amb Linux precarregat, des d’altres països sí, i vaig veure que un dels meus desenvolupadors tenia problemes per a instal·lar Ubuntu al SSD. Vaig aconseguir-ho, però instal·lar Linux en aquest portàtil és quelcom prou difícil, i no vaig trobar informació a Internet, així que detallo com aconseguir-ho.

The fact is that from Catalonia is not possible to buy from Dell with Ubuntu pre-loaded, from other countries it is.

I saw that one of the developers of my team experimented many difficulties to install Ubuntu on the SSD disk. I succedeed, but to install Linux in this laptod is hard enough, and I didn’t find satisfactory information on the Internet, so I detail the steps to do it.

Vaig fer aquest procès amb cinc portàtils vostro 3360 diferents i vaig provar més de 20 instal·lacions amb configuracions diferents incloent Ubuntu 12.04 de 32 bit i 64 bits i Ubuntu 12.04.1 de 32 i 64 bit.

I did this process with five laptops vostro 3360 and I tried more than 20 installations with different configurations including Ubuntu 12.04 32 bit and 64 bit and Ubuntu 12.04.1 64 bit and 32 bit.

Com a comentari graciós sobre windows, quan arrenques aquest equip per primer cop, tal com ve de fàbrica, amb windows precarregat, et dóna la famosa i infame pantalla blava. :)

As a funny comment, when you start this laptop for the first time, windows crashes with blue screen. :)

El primer que vaig intentar va ser instal·lar Ubuntu 64 bits, concretament la versió Ubuntu 12.04 64 bit que tenia en un llapis de memòria USB.

No va ser possible ni aconseguir que botés.

Donava un error:

 Can not mount /dev/loop1 on cow

Tampoc vaig tenir més èxit amb la versió de 32 bits, i tampoc amb les més actuals de la web Ubuntu 12.04.1 de 64 bits o de 32.

Vaig provar a repetir la operació canviant els modes de funcionament de la interfície SATA de la Bios, també sense èxit.

Començava a ser una mica frustrant, i no hi havia informació a Internet sobre com en sortir-se’n.

Vam tenir la idea de botar amb un CD USB extern.

We had the idea the boot with and external CD USB.

Per sorprenent que sembli va aconseguir arrencar Ubuntu 12.04 de 32 bits d’aquesta manera, sense obtenir l’error abans esmentat (loop1 on cow) i vaig arrencar indicincat “instal·lar” al menú d’ubuntu.

Però l’instal·lador era incapaç de detectar el disc /dev/sda (unitat SATA de 500 GB) i sí que detectava /dev/sdb el disc dur SSD mSATA, però era incapaç de veure la taula de particions, modificar res, o instal·lar.

Surprisingly the installer menu booted perfectly this way and I selected “install” from the menu. The installer was unable to detect the disk /dev/sda (the 500 GB SATA unit) but was able to detect /dev/sdb (SSD mSATA), but was unable to see the partition table, modify a thing, or install.

Així que estàvem encallats sense poder instal·lar.

So we got stucked without being able to install.

Llavors, vaig arrencar amb la opció de provar Ubuntu.

I booted with the option of “Try Ubuntu”.

Un cop iniciat vaig arrencar gparted.

Once then, I started gparted.

Gparted sí que podia accedir a la taula de particions sda i sdb. Vaig esborrar la partició “desconeguda” de 8 GB del disc mSATA SSD (/dev/sdb) i vaig crear una partició Linux i la vaig marcar com a arrencable.

Gparted was able to access the partition table for sda and sdb. I deleted the “unknown” partition from the mSATA SSD disk (/dev/sdb) and I created a 30 GB Linux partition and I marked it as bootable.

Vaig instal·lar Linux però en reiniciar després va arrencar windows, i la bios permetia com a únic disc arrencable el sda on residia windows.

I installed Linux but after rebooting windows started, not Linux.

The bios showed only the sda disk as bootable, and didn’t allow to change it.

La partició /dev/sdb que havia creat abans i on instal·lí Linux, havia desaparegut.

The partition /dev/sdb that I created before and where I installed Linux had gone.

Vaig repetir la operació vàries vegades sense èxit.

L’ordinador sempre botava i reapareixia windows amb la seva pantalla blava. ;)

I repeated the operation several times withour success.

The computer always booted windows and dead blue screen respawned. ;)

Vaig repetir les passes i amb Gparted vaig recrear completament la taula de particions, no només esborrar la partició existents i creant-ne una de noves, sinó sobreescrivint completament la taula de particions i això va funcionar.

I repeated the steps and with Gparted I recreated completely the partition table, not only deleting the existing partition and creating a new, but overwriting the entire partition table, and I created a new partition. It worked.

Installation instructions

Molt important, per a aconseguir instal·lar, cal seguir aquestes passes, si no se segueixen, no serà possible després instal·lar per a que boti el disc SSD.

Very important, in order to install it on the SSD, you must follow this instructions, if not, it will be unable later to install in order to boot from the SSD disk.

  1. Botar amb el CD USB extern / Boot with the exernal CD USB
  2. Seleccionar “Provar Ubuntu” / Select “Try Ubuntu”
  3. Arrencar GParted / Start GParted
  4. Seleccionar /dev/sdb i sobreescriure la taula de particions / Select /dev/sdb and overwrite the partitions table
  5. Crear una nova partició primària a /dev/sdb del tipus ext4 / Create a new primary partition on /dev/sdb of type ext4
  6. Marcar-la com a arrencable / Mark it as bootable
  7. Aplicar i sortir de Gparted / Apply and exit GParted
  8. Iniciar l’instal·lador d’Ubuntu / Start te Ubuntu installer
  9. Ara l’instal·lador detecta el disc /dev/sdb :) seleccionar /dev/sdb1 , indicar que serà ext4 (o ext2 al gust) i usada com a punt de muntatge / i formatar la partició / Now the installer detects the disk /dev/sdb :) select /dev/sdb1 and choose ext4 (or ext2) as type and to use it as mounting point for root / , select format the partition
  10. Si has seleccionat ext4 no respondrà el boto d’instal·lar, és un bug, ves enrere, repeteix la operació i et permetrà seguir / If you selected ext4 the button “install” it will not work, it’s a bug, go back and retry and it will work
  11. Ara podràs instal·lar amb normalitat / Now you can install as usual
  12. Després d’instal·lar reinicia, veuràs que intenta arrencar amb windows, però després d’un parell de segons es reinicia sol i aquest cop ja s’iniciarà amb Linux / After installing, reboot, and you will se that it starts windows, but after two seconds it will reboot and then it will start with Ubuntu

 

Ara, quan arrenquis l’ordinador, et sortirà un missatge de la BIOS de la controladora Intel Accelerator que abans no sortia. Ignora’l.

Now when you start the computer, a new message from the Intel Accelerator BIOS will appear. Ignore it.

 

Ara et recomano crear una partició de swap al disc /dev/sda . El portàtil té 6 GB de RAM així que 20 GB estarà bé. La partició swap mai ha de ser al disc SSD ja que redueix moltíssim la vida del dispositiu.

Now I recommend to create a swap partition on /dev/sda disk. Laptop has 6 GB of RAM so 20 GB of swap will be fine.

Reflexions / Reflections

Després d’instal·lar funcionar tot, menys la tarja de xarxa ethernet.

After installing everything works, except the network card.

Val a dir que ja vaig tenir problemes una vegada amb un ordinador de sobretaula HP, el més potent que venen , amb 12 GB de RAM, i no hi vaig poder instal·lar Ubuntu de 64 bits, vaig haver-ho d’instal·lar-hi la versió de 32 bit.

In the past I had problems to install Ubuntu 64  bit in a workstation HP, the most powerful they sell, with 12 RAM GB and I had to install a 32 bit version.

El que vull dir és que aquests fabricants de renom s’estan disparant al peu fent que els seus equips no suportin Linux, perquè la informàtica la movem els informàtics, i són ben pocs els que encara fan servir per a desenvolupar windows. (* Això és diferent a Anglaterra on molts treballen amb .NET i windows)

I mean that those well known manufacturers are shooting their own feet with their computers not supporting Linux, so the informatica world is moved by the technicians, and thy are really few of us that use windows to depevlop. (* This is different in England where many work with .NET and windows)

Els fabricants de marca, perdran bona part de quota (i la quota de la gent aconsellada pels informàtics també), si no són murris i  deixen de fer el ximple amb aquest tema.

The computer manufacturers will sell a good part of quota (and from the people we recommend what to choose) if they’re not clever and stop doing nonsenses unsupporting Linux.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

La fi dels dinosaures

dissabte, agost 25th, 2012

Fa molts anys vaig començar a comprar dominis a Network Solutions.

En aquells moments eren els millors. Eren fiables, de confiança, tenien un servei telefònic on els localitzaves si els necessitaves… i en general complien amb la premisa que després va popularitzar google “no siguis dolent” (don’t be evil).

Et podies refiar que si buscaves un domini allà i el compraves s’enregistrava.

Eren més cars, però compraves qualitat.

Amb el pas dels anys em vaig anar desencisant.

Els seus servidors dns de vegades no resolien el domini, així que vaig deixar d’usar-los.

Van començar a oferir paquets d’allotjament Web, fent la competència als proveïdors d’Internet.

Molts de nosaltres hem treballat a proveïdors Internet i això va ser un cop dur a tots els que oferíem allotjament.

De sobte els nostres proveïdors ens feien la competència.

Molts van deixar de treballar amb els venedors de noms de dominis que oferien serveis d’allotjament web.

Aquest moviment no em va agradar, per part de network solutions i altres empreses que primer només venien dominis, però vaig continuar amb ells perquè encara em semblaven seriosos, tot i que eren molt molt més cars que la competència.

Amb el pas del temps he tingut més disgustos.

Van canviar el procediment per a sol·licitar el traspàs d’un domini de manera que és realment difícil de trobar i d’activar. Tot amb l’objectiu de retenir dominis a qualsevol prou.

I finalment m’he trobat que tots els meus dominis tenien marcada una casella que diu “auto-renew” i que per tant s’auto-renoven sols, és a dir, que quan queda un mes per al venciment, network solutions em carrega a la visa l’import de la  renovació del domini per a un any.

Ho vaig descobrir perquè vaig rebre el càrrec d’un domini que ja no volia i pensava deixar expirar.

Això ja m’ha fet passar del descontentament a aixecar la meva ira màxima puix que no puc desactivar-ho des de la web. M’obliguen a trucar a un número de telèfon dels Estats Units per a desactivar-ho.

Com a la oficina tinc una molt mala cobertura, no em venia gens de gust fer aquesta operació, però no hi havia altra manera.

Vaig voler esborrar les meves targes visa de la seva web, i ¡sorpresa! no es podia. Podia afegir noves targes però no donar de baixa les existents.

Així que la meva rauxa va prendre el control, i vaig decidir que s’havia acabat amb aquesta gent.

Vaig aconseguir canviar la data de caducitat de les targes existents (el número no), de manera que fos incorrecta, i no em poguessin cobrar res més i vaig escriure un missatge al departament de suport queixant-me de tot això i anunciant-los que els tornaria el càrrec i que donaria de baixa tot.

Suposo que els missatges dels clients “VIP” com m’anomenen ells tenen una prioritat, i vaig rebre la trucada l’endemà a les 09:00 hora dels Estats Units.

Cal dir que la persona que em va atendre era molt educada, donant el tracte de Sir,  i tot i la mala senyal que hi havia se’l podia entendre perfectament, i també m’entenia, i treballava amb molta professionalitat. Li vaig explicar la meva frustració amb tot això i em va enviar un mail on lamentava la frustració que m’havien provocat.

Van esborrar les VISA de la web, i van desactivar l’autorenovació de tots els dominis.

Però he entès que n’estic fart de velles glòries que donen un mal servei i que tracten de retenir els dominis de qualsevol manera i amb males arts.

Migraré tots els dominis a d’altres proveïdors, que a més costes 6 vegades menys per domini.

Nota: No migraré a GoDaddy ja que encara que estic satisfet amb el servei, el seu president i fundador va matar un elefant de safari, tal i com explicava al seu bloc.

I això em porta a la reflexió que us faig. I és que totes aquelles empreses mastodòntiques, que tenen preus desorbitats i donen serveis amb clàusules de permanència abusives, preus cars, que no donen bon servei, com ara Data Centers que abans eren considerats la creme de la creme en part perquè et feien signar per contracte que no podies parlar malament de la companyia, i que a l’hora de la veritat no tenen ni monitors en condicions (encara usen de tub, que no funcionen bé, i en tenen un parell a més de teclats i ratolins que no van bé), empreses de renovació de domini com les que us he esmentat, google a qui tants professionals de la informàtica ja considerem el mal per la invasió de la privacitat que fa, microsoft que s’ha quedat emmirallada en l’èxit del seu sistema operatiu i s’ha permès ignorar els bugs que informàtics com jo els reportàvem, i que tornaven a ser a la següent versió, i a la següent, i a la següent…

Totes aquestes empreses tenen els dies comptats.

Donar mal servei, emprenyar els teus clients, té conseqüències. Probablement Internet ho ha accelerat.

I adormir-se i no escoltar el que els usuaris et demanen és donar mal servei.

Grans empreses que abans facturaven milions es poden veure abocades a la ruïna en tres anys si no saben treballar bé, i escoltar el mercat.

S’ha de ser molt flexible i cuidar molt l’usuari, que al final és el nostre client.

I el que val per a les empreses, també val per a espanya, que és a punt de perdre Catalunya per tot el mal que ens ha causat. Al món és en boca de tothom.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Solució al problema de que HeidiSQL no funciona en Linux amb Wine

divendres, agost 17th, 2012

Si quan tracteu d’instal·lar o executar HeidiSQL amb Wine, us peta de manera estrepitosa, la solució és ben senzilla.

Heu de canviar la configuració de Wine per a que funcioni com si es tractés d’un windows XP.

Amb això HeidiSQL arrencarà sense problemes.

Crec que el problema rau en que HeidiSQL és incompatible amb algunes versions de windows, com windows 2000, i encara que hi ha una llibreria dll específica que en teoria ho arregla, jo no vaig aconseguir que funcionés.

En canvi indicar a Wine que funcioni com si es tractés d’un windows XP és ben senzill, i soluciona el problema.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Canviar el disc dur del portàtil

dissabte, juliol 28th, 2012

Us mostro aquí, per passes, el necessari per a canviar el disc dur de l’ordinador portàtil.

Necessitarem:

– Un tornavís petit d’estrella (que no sigui de punta imantada)

– El disc dur que vulguem instal·lar

– Dur roba que no acumuli electricitat estàtica

– Un USB per a fer les còpies de seguretat prèvies

– Un USB o CD per a instal·lar el sistema operatiu quan haurem canviat el disc

Prèviament ens haurem informat de quin tipus de disc suporta el nostre portàtil.

Si és relativament modern, uns quatre anys o cinc,  portarà un disc dur de 2,5 polzades SATA-2 (de vegades anomenat SATA 3 Gbps o SATA II)

Si és antic portarà un ATA.

Si és molt molt modern portarà un disc dis SATA-3 (anomenat també SATA 6 Gbps o SATA III) però encara no és gens habitual.

El primer que farem serà fer una còpia de seguretat de les nostres dades.

Normalment emprarem un dispositiu extern USB, com un disc dur, o un llapis o clau de memòria USB.

Un cop fet això apaguem l’ordinador i li desconnectem tot.

Ens assegurem que estigui apagat, no pas suspès i desconnectem tots els cables.

 

Els portàtils lleugers només tenen dues badies, una per a la memòria i potser tarja wifi, i l’altra per al disc dur.

Acostumen a dur un petit logo per a identificar què conté cada ranura.

Així doncs quan tenim identificat quina tapeta guarda el disc dur, la obrim.

I retirem la tapa.

La petita llengua de plàstic que queda al descobert està pensada per a estirar d’ella i així retirar el portàtil amb més facilitat.

La manera com està col·locat el disc pot variar d’un model d’ordinador a un altre, així com els suports que utilitza.

Encara que avui en dia tendeixen a la simplicitat i la lleugeresa.

Arribats a aquest punt tocarem el terra amb la punta dels dits. Aquest és un petit truc per a descarregar l’electricitat estàtica que puguem portar.

Els pc són molt modulars i utilitzen components estàndard, així que aquí ens trobem un disc dur SATA-2 estàndard i un connector.

Removem amb compte el connector. No és fàcil trencar-lo però no es pot fer el bèstia.

Podem veure una làmina adhesiva protectora negra.

Primer la desenganxarem del disc dur, altrament serà impossible desconnectar el connector adaptador SATA-2.

Veiem el connector sata 2 del nou disc dur (de fet és sata 3 però és compatible amb ordinadors sata 2)

El connectem, adherim la làmina negra protectora, i el col·loquem al seu lloc.

Tanquem la tapa, i hi posem els cargols altra vegada.

I ara finalment ja hem acabat.

Ara haurem d’instal·lar el sistema operatiu.

En el meu cas he instal·lat un flamant Ubuntu 12.04 de 64 bits. :)

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Excepcions personalitzades en PHP

dimecres, juliol 18th, 2012

L’altre dia la meva amiga Laura em demanava quin objectiu més enllà de capturar errors tenen les Exception.

Li vaig comentar que a més d’atrapar errors no esperats (com que el servidor de la base de dades no respongui) també permet que l’aplicació s’enviï missatges.

Així que ara ho vaig a desenvolupar una mica.

Laura, et dedico aquest article. ;)

Agafem un exemple pràctic.

Tenim una classe que treballa amb moneda.

class Moneda
{
}

Al constructor li passem el codi de moneda:

$o_moneda_gbp = new Moneda('GBP');

Al constructor de la classe Moneda es comprova que existeixi dins l’array de monedes:

class Moneda
{

    public $st_monedes_suportades = array('EUR' => array ('activa'         => true,
                                                          'nom_ca'         => 'Euro',
                                                          'canvi_a_euros'  => 1),
                                          'USD' => array ('activa'         => true,
                                                          'nom_ca'         => 'Dòlars',
                                                          'canvi_a_euros'  => 0.82671)
                                              );

    protected $s_id_moneda = '';

    public function __construct($s_id_moneda = 'EUR')
    {
        if (!isset($this->st_monedes_suportades[$s_id_moneda]) || 
            $this->st_monedes_suportades[$s_id_moneda]['activa'] != true) 
        {
            // Aquí hem de notificar que no hem pogut localitzar la moneda
        }

        $this->s_id_moneda = $s_id_moneda;

    }

}

És en aquest moment que volem notificar a qui crida la classe Moneda que no podem procedir amb la operació que ens demanaven.
És en aquest moment en que intervenen i tenen sentit les Exceptions, i encara més les Custom Exceptions, que són Exceptions personalitzades.

Primer de tot definirem dues exepcions personalitzades:

class MonedaNoSuportadaException extends Exception {}
class MonedaNoActivaException extends Exception {}

class Moneda
{

    public $st_monedes_suportades = array('EUR' => array ('activa'         => true,
                                                          'nom_ca'         => 'Euro',
                                                          'canvi_a_euros' => 1),
                                          'USD' => array ('activa'         => true,
                                                          'nom_ca'         => 'Dòlars',
                                                          'canvi_a_euros'  => 0.82671)
                                          );

    protected $s_id_moneda = '';

    public function __construct($s_id_moneda = 'EUR')
    {
        if (!isset($this->st_monedes_suportades[$s_id_moneda]))
        {
            throw new MonedaNoSuportadaException('La moneda '.$s_id_moneda.' no se suporta');
        }

        if ($this->st_monedes_suportades[$s_id_moneda]['activa'] != true)
	{
            throw new MonedaNoActivaException('La moneda '.$s_id_moneda.' es troba inactiva');
        }

        $this->s_id_moneda = $s_id_moneda;

    }

}

Llavors només manca instanciar la classe amb un try catch

try {
	$o_moneda_eur = new Moneda('EUR');
} catch (MonedaNoSuportadaException $e) {
	die($e->getMessage);
} catch (MonedaNoActivaException $e) {
	die($e->getMessage);
} catch (Exception $e) {
	// Excepció no esperada
	die($e->getMessage);
}

El codi final:

<?php
/**
 * Created by Carles de http://www.codic.cat
 * User: carles
 * Date: 17/07/12
 * Time: 23:16
 */

class MonedaNoSuportadaException extends Exception {}
class MonedaNoActivaException extends Exception {}

class Moneda
{

    public $st_monedes_suportades = array(  'EUR' => array ('activa'         => true,
                                                            'nom_ca'         => 'Euro',
                                                            'canvi_en_euros' => 1),
                                            'USD' => array ('activa'         => true,
                                                            'nom_ca'         => 'Dòlars',
                                                            'canvi_en_euros' => 0.82671)
                                            );

    protected $s_id_moneda = '';

    public function __construct($s_id_moneda = 'EUR')
    {
        if (!isset($this->st_monedes_suportades[$s_id_moneda]))
        {
            throw new MonedaNoSuportadaException('La moneda '.$s_id_moneda.' no se suporta');
        }

        if ($this->st_monedes_suportades[$s_id_moneda]['activa'] != true)
        {
            throw new MonedaNoActivaException('La moneda '.$s_id_moneda.' es troba inactiva');
        }

        $this->s_id_moneda = $s_id_moneda;

    }

}

try {
        $o_moneda_eur = new Moneda('EUR');
} catch (MonedaNoSuportadaException $e) {
        die($e->getMessage());
} catch (MonedaNoActivaException $e) {
        die($e->getMessage());
} catch (Exception $e) {
        // Excepció no esperada
        die($e->getMessage());
}
Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Port Thunderbolt

divendres, maig 11th, 2012

El port Thunderbolt és un nou port desenvolupat per Intel i dut al mercat amb la col·laboració tècnica d’apple.

Ben aviat començareu a sentir-ne parlar.

Les seves característiques són excel·lents. Superen de llarg USB 3.0 i SATA 3.0 tot i que el darrer és un port de connexió interna.

Les seves principal característiques són:

– 10 Gbit/segon de velocitat de transferència bidireccional (full-duplex)

USB 3.0 té una capacitat màxima de 5 Gbit/s (bidireccional) i SATA 3 de 6 Gbit/s.

– Suporta simultàniament dades del tipus Pci Express i DisplayPort en el mateix cable

Amb adaptadors es podran connectar discs eSata o Firewire (són compatibles Pci Express de manera nativa)

– És compatible amb els gins DisplayPort actuals d’apple

– Es poden connectar dispositius els uns amb els altres, en cadena

Per exemple, una cabina de discs a l’ordinador, a la cabina un monitor, al monitor un ratolí…

– Cada port Thunderbolt té els seus propis 10 Gbit/s bidireccionals

És a dir, si un ordinador té tres ports Thunderbolt amb diferents aparells connectats es podria arribar a transmetre a 30 Gbits/s (bidireccionals)

En el cas dels ports USB l’ample de banda es repartia entre els dispositius.

– Es poden emprar cables elèctrics o cables òptics

– El cable elèctric permet una llargària de 3 metres

– Es poden connectar dins a 7 dispositius (1 o 2 poden ser pantalles DisplayPort v1.1a d’alta resolució)

– Baixa latència

– Precisió, en la gestió del temps, en sincronització

Ho recomanen especialment per a feines d’edició de vídeo i àudio.

– Permet proporcionar energia a dispositius (power over cable)

En el cas del cable elèctric 10 W.

– Permet QoS, Qualitat de Servei

És a dir, es pot prioritzar uns paquets de dades sobre uns altres. Per exemple transmissió de vídeo, o àudio, respecte d’altres paquets.

 

Jo no sóc gens fan d’apple, però els seus equips incorporen ja fa un temps el Thunderbolt, mentre que encara no he vist cap pc clònic fer-ho. Les últimes notícies que tinc és que estaven anunciats per a Abril d’enguany.

Aquí podeu veure una presentació que fa Intel:

http://www.intel.com/content/www/us/en/architecture-and-technology/thunderbolt/thunderbolt-technology-brief.html

Còpia local PDF: thunderbolt-technology-brief

Informació a la web d’apple:

http://www.apple.com/thunderbolt/

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Què és un Meme?

dilluns, abril 23rd, 2012

Què és un Meme?

Un Meme és una parida, una ximpleria, quelcom de curiós, divertit o sorprenent, que per algun motiu assoleix una popularitat notòria o èpica a Internet.

Sol passar a formar part de l’imaginari col·lectiu.

Un de molt notori, ja que és l’únic Meme Català que jo conec que ha adquirit proporcions universals i el fan servir a tot el món, és la imatge del clon del núñez que fan al Crackòvia.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Activar el micròfon amb Ubuntu

divendres, març 9th, 2012

He trobat moltes persones que tenien problemes per a fer funcionar el micròfon amb Ubuntu Linux.

Especialment a l’hora de voler parlar amb algú per Skype.

La solució és ben senzilla.

Resulta que Ubuntu per defecte desactiva el micròfon. Realment té lògica, ja que és un sistema operatiu que mira de preocupar-se per la seguretat, i un dispositiu d’entrada com és el micròfon activat, ben mirat suposa una amenaça a la nostra privacitat.

Aquí us indico les passes per a activar-lo.

Les captures de pantalla són amb Ubuntu 11.10 però el procediment és el mateix per a les versions anteriors d’Ubuntu.

Premem amb el botó dret sobre l’icone de so situat a la barra superior, a la dreta i seleccionem preferències de so o sound preferences.

Després anem als dispositius d’entrada, i desmarquem la casella mute o silenciar.

Ens assegurem que la selecció que tenim i l’indret on tenim el micròfon connectat coincideix (connector de darrera / rear connector, connector d’enfront / front connector).

I vet-ho aquí, ja ho tenim.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Solucionat problema amb generació de PDF

dijous, febrer 23rd, 2012

Per un problema de configuració en fer la migració la generació de PDF dels articles no funcionava.

L’enllaç que hi ha a cada article que diu “versió en PDF“.

Ha quedat esmenat.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Conte en Català: l’impacte

diumenge, febrer 12th, 2012

El so de les onades esclatant contra les roques ho va omplir tot, tot era pau, i retornaren a la seva ment els records d’infància. Els records d’una infància feliç a Pals.

Però la seva ment alerta li recordà que havia de tornar dels seus ensonyaments i atendre assumptes urgents i crítics.

Obrí els ulls i es trobà allà, aferrat fortament amb els seus dits enèrgics, a una roca escarpada.

Un cert dolor d’impacte al cos, i talls per la lluita prèvia, que començava a recordar amb les escarpades roques.

Sang que li rajava eixuta i calenta del front, i la visió dantesca del seu vaixell, el Verge de Montserrat, destrossat contra les roques, les seves restes surant a l’aigua, juntament amb els cossos inerts dels seus companys almogàvers.

 

Recordà.

 

Anaven a acabar amb la sífils. Unes criatures pèrfides que havien atemorit la població de Ses Illes, mig dones, mig serps. Amb uns ulls que eren el reflex del mal.

 

Aquestes critatures que feien tres metres si s’erguien, si estiraven la seva llarga qua, que era alhora el tronc inferior, i sobre el que corbat s’eixien, talment com una cobra, havien segrestat uns nens de la Pobla.

 

Bèsties sense ànima, sempre àvides de carns, veié com algunes d’aquelles males bèsties mossegaven els cossos sense vida dels seus valents companys, sentia la carn esquitllar-se quan la rossegaven i sorolls orrorosos quan l’engolien.

 

I sense pensar-s’hi prengué la determinació.

Podia haver-se amagat, on?. Encara que aquesta pregunta no arribà a fer-se al seu cap.

No era important viure o morir, però sí fer pagar aquelles monstruositats el mal que havien fet als seus companys, i a tants Catalans innocents de la costa.

 

Es palpà el cos revisant estar sencer, i localitzar les armes que l’acompanyaven. Empunyà la seva fidel companya, l’espasa curta, rígida, i tant esmolada que podia partir en dos d’un cop l’imponent roc de maó pur d’una muralla romana i romandre essent una arma mortal, i sentí com la seva força es feia més gran, es posà d’empeus i començà una magnífica carrera, saltant sobre les punxegudes roques enfollides, cap als seus enemics.

La primera bèstia en veure’l, rossegava el cos d’un heroi caigut i emeté un estrepitós crit, poc abans de que l’espassa li travessés el cervell.

Les altres, alertades per l’avís d’aquesta es dirigien cap a ell, 5 o 6 o 7 d’aquelles bèsties grosses i salvatges. Impulsades per un esperit maligne volien acabar ell.

Però ell no afluixà el pas, apretà a córrer envers aquelles coses horribles que havien atemorit tants pobles a la terra, i espasa en alt afrontà aquell mal.

La primera escomesa vingué del centre, un cap amb dents enormes venia propulsat per aquell cos de serp, que envià com un ressort aquell mig cos mortal cap endavant.

Amb uns reflexos prodigiosos l’almogàver s’impulsà amb sa cama esquerra cap a la dreta, apretant les dents i girant el seu cos a l’aire envers la cosa executà el moviment mortal que tallà el cap per sempre a aquella cosa.

Després tot passà molt ràpid. Clava, finta, escomet, tot a una velocitat endimoniada. Rodola sobre el cos serpèntic encara erguit d’una bèstia, ja morta, mentre deslliures una destral de la teva esquena amb un hàbil moviment i la llença sobre aquella cosa que queda partida literalment en dos, a l’alçada del cap, clava, salta i esquiva, talla, i contempla aquells cossos amputats mentre recobra l’aler.

Llavors remata el que queda, amb una precisió metòdica, per si de cas.

No hagués calgut.

 

N’havia matat 8, estava segur que n’hi havia més. I si els nens del poble eren vius, si hi havia una possibilitat els trobaria. O obriria una per una aquelles bèsties i trobaria els petits ossos i els duria de tornada al poble, per a donar-lis cristiana sepultura.

 

Com tornar no estava clar, sense vaixell no hi havia tornada. Però això ara no importava.

Potser no sobreviuria al cau d’aquells monstres, així que ja s’ocuparia d’aquest detall si sobrevivia, ara per ara els faria pagar car les maldats.

 

Recollí la seva destral, la netejà d’aquella sang verdosa, si és que en corria, de sang, pels cossos d’aquelles coses i s’avituallà amb les armes dels seus companys caiguts.

 

  • Perdoneu amics, que manllevi vostres armes, però en faré bon ús. Els faré pagar a aquestes coses, el que us han fet.

 

I causalitat o no, les onades mogueren els braços dels companys a l’aigua com si diguessin endavant, acaba amb aquestes coses, fes-lis-ho pagar.

 

Armat amb diverses espases, destrals, ganivets de mides desproporcionades, i amb l’esperit encès i la sang bullent al cap amb una sola idea, es dirigí cap a l’interior de les coves on es refugiava aquella ciutat del mal, l’últim bastió d’una civilització malèfica que havia mossegat la medul·la de tantes civilitzacions prop de costa durant mil·lennis.

 

Mentre entrava a la cova, mentre s’endinsava dins la gola del diable, i la negre nit anava ocupant-ho tot, i els crits malèfics d’aquelles criatures es feien més forts, crits que fondrien la valentia dels meus valents, ell s’endinsava sense minorar el pas; destral curta en mà dreta, espasa fidelíssima a l’esquerra, i un únic pensament: els faria pagar car tot el mal que havien fet o moriria delmant el número d’aquells éssers.

Recordà el seu pare, també almogàver, afectuós i enèrgic quan li deia:

  • Els Catalans som ésser lliures i nobles. Hi ha països on les persones són súbdits dels reis, sotmesos a les seves lleis i als seus capricis. Els Catalans som homes lliures, coneguts com homes francs, per ser veritablement lliures, i honrats. Tenim un rei, que jurà complir les lleis del nostre regne. És un guia, no pas nostre propietari. Tu lluites per la llibertat. Pel bé de la terra. Que no defalleixi mai la teva força a fer el correcte. Honraràs a Catalunya i a tots nosaltres.

 

Amb pas segur, travessant les tenebres, s’endinsà a la fosca, disposat a donar el primer cop, i també l’últim.

 

Tot es precipità llavors, arribà a un punt que s’obria donant pas a una enorme galeria en forma de plaça que s’extenia, cap avall, en una alçada d’uns trenta metres. Les parets de la cova s’eixamplaven a a tot l’espai de la plaça inferior, amb un petit espai que permetia que tot just una persona, amb penes i treballs, rodegés la cova.

Una llarga rampa conduïa a la plaça inferior ocupada per dues centes d’aquelles feres infernals que festejaven com posseïdes, i enganxada a la paret una gegantina serp, d’uns quaranta metres d’alçada i quatre de diàmetre, alçada a mig cos i que tenia el seu cap ple d’escates quasi al nivell de l’heori.

De l’extremitat inferior de la bèstia neixien un ou llefiscós i verdós, mig transparent. El darrer que veié abans sentir els crits d’alerta foren els nens.

Plorant, i tremolant de por i de fred, però vius, eren la futura vianda de les abominacions que sortirien dels ous.

 

Dues dotzenes d’aquelles coses es precipitaren rampa amunt cap on ell era.

No havien avançat dos metres que quatre queien partides en dos, per l’efecte de les espases llargues dels companys caiguts, que havia llençat fent una espiral.

Les bèsties no sabien quina una li en passava pel cap.

 

Desafiant esperà, mentre un número de bèsties increïblement nombrós es precipitaven rampa amunt, de cacera, proferint crits terribles i esfereïdors.

Quan el primer cap es llençà mossegar-lo, ell saltà cap a la vorera lateral de la paret, seguint el seu pla traçat i comença una folla carrera pels esquerps laterals de la paret que culminà amb un salt directament sobre la gran bèstia, que poc s’ho esperava.

 

La caiguda era mortal, però clavà la destral en aquell gran ull malèfic i la seva noble arma forjada pels artesans de València en les carns verdes de la cosa, alhora que les seves hàbils mans es coordinaven i s’aferraven ambdues al mànec, amb força.

Caigué, però l’espasa segava la bèstia i esmorteïa la seva violenta caiguda.

Fou una baixada plàcida per a ell, i terrible per a la cosa.

 

Les feres guardianes comprengueren tard el seu error i es precipitaren rampa avall cap a l’ésser de carn que havia ferit greument la seva reïna.

 

Li farien pagar molt cara la gosadia. El matarien entre terribles patiments, allargant-li la vida i desmembrant-lo poc a poc.

L’almogàver veié que allò era dat i beneit. Cent noranta sis bèsties s’apropaven a ell. Podia llençar-lis algunes de les armes que encara duia, i reduir el seu avanç, però ell sabia que la bèstia grossa que se sacsejava convulsa i furiosa pel sofriment, era el cabdill d’aquelles hosts.

Disposat a acabar amb aquella maledicció al preu que fos desenfundà amb el braç dret l’espasa llarga del company, que duia a l’esquena, i la clava al lateral del tronc de la bèstia amb tanta força que la clavà a la paret.

Ràpidament, amb ambdues mans, l’empentà amb ambdues mans fent el moviment d’una palanca, una tisora mortal que cisellà en dos aquell cos antic i malvat.

 

Amb una pesant caiguda el tronc superior es precipità sobre tantes criatures, esclafant-les i atrapant els seus cossos inerts, i creà un mur natural en el flanc de l’almogàver que el protegia parcialment d’atacs, en reduir l’espai disponible per a atacar-lo a una línia recte d’uns 3 metres d’amplada.

Insuficient, però, ja que cent setanta bèsties ja no pensaven a fer-lo patir si no que es dirigien mortalment contra ell, amb tanta fúria que saltaven unes sobre les altres, per tal de destruir la seva carn.

Llavors sí les armes volaren i feren noves víctimes, corregué cap al mal per a guanyar distància respecte el final de la cova i allunyar la lluita dels nens i escometé amb el que li quedava, la seva fidel espasa curta, el ganivet llarg i ample d’esbudellar cavalleria, i una destral i un ganivet per a les batalles curtes.

Esquivà, tallà, en una lluita desigual i perduda d’antuvi, disposat a vendre cara la pell i a endur-se tantes d’aquelles coses com li fos possible.

Esquivà un atac que donà de cap amb el mur de pedra, alhora que tallava el cap d’aquell ésser de l’abisme, i hagué de retrocedir un centímetre davant una altra escomesa.

En una lluita aferrissada perdia centímetre a centímetre. Les bèsties queien, però d’altres es precipitaven furioses sobre dels cossos caiguts i llençaven mortals atacs que només els seus ràpids reflexes pogueren esquivar.

 

Saltà contra la paret i s’hi propulsà per a descarregar la mortal maniobra sobre un enemic alçat sobre diversos cossos abatuts.

La següent escomesa no pogué evitar-la i s’endugué una ferida al turmell, uns ullals esmolats li havien travessat la carn i encara que la cosa l’havia perdut el cap, difícilment podria resistir.

 

Retrocedí una passa i es propulsà endavant.

 

Clavà i tallà fins que l’imponent ganivet es quebrà, la destral es feu astelles, amb l’esmolat ganivet curt feu estralls fins que es va esmicolar contra aquells cossos pèrfids.

 

Només la fidelíssima espasa forjada pels mestres artesans de València seguia al seu costat en la seva desesperada defensa.

 

Les bèsties veieren la feblesa i s’aturaren, disposades a cobrar-se la seva venjança en grup.

 

La lluita li havia fet anar retrocedir terreny, no perquè ell retrocedís si no perquè els atacs conjunts, i el fet d’esquivar-los, provocava una pèrdua de terreny inevitable però que cobrava cara amb les vides dels seus enemics.

 

Els fills de l’infern se’l miraven anticipant-li el seu destí i les més properes al cos de la reina caiguda miraren els nens obscenament i van emetre una s sonora amb les seves llengües bífides refregant-li pèrfidament que gaudirien fent mal als nens.

Es posaren totes les unes contra les altres, formant envers ell, deleroses de masegar aquella carn i triturar aquells ossos i fer patir el seu enemic.

I l’heroi, sense arronsar-se, es preparà per tallar fins el final.

Premé les dents, mirà els nens i els digué:

  • No patiu, jo no us deixaré.

Mirà aquelles coses als ulls desafiant i colpejant contra la roca furiosament cridà un cop i un altre:

  • Desperta ferro!
  • Desperta ferro!

 

Mentre les guspires saltaren i envaïren l’espai, el món semblà aturar-se, i algunes d’aquelles bèsties saberen el que és la por.

L’almogàver saltà i tallà, i clavà, i desenes de caps monstruosos de dents esmolades es llençaren a l’uníson contra ell…

 

 

 

Fou llavors quan les armes volaren, els crits humans s’alçaren, i les bèsties més endarrerides caigueren a un ritme trepidant.

 

Altres vaixells d’almogàvers de la Companyia havien vist el desastre del primer i es precipitaven per l’entrada i sortien d’arreu.

Un grup més impacient havia saltat de la rampa els últims metres directament sobre les bèsties, i creant un cercle havien separat l’avantguarda més propera als nens, de la major part de les bèsties, que ara es debatien en dos flancs.

 

No en quedà cap d’aquells monstres.

Fins els ous foren cremats.

 

I quan els vencedors almogàvers cercaven els nens, i retiraren piles de cadàvers de les sífils, van trobar amb grata sorpresa, que sota aquell munt de cossos verds, que no havien matat ells, romania l’almogàver, viu i amb l’espasa fermament aferrada, ple de ferides però victoriós, i darrera seu, abraçats a ell, els nens als que havia protegit fins amb el seu cos, dels atacs de les hosts malignes.

 

  • M’alegro de veure-us amics- va dir l’almogàver als seus companys -m’he quedat sense transport i aquests pobres nens tenen fred i gana, i han de veure els seus pares.

 

L’escrivà va prendre nota de l’episodi per a les cròniques de la Corona Catalana, tot i que estava profundament impactat per la indiferència d’aquell home davant la gesta heroica que havia protagonitzat.

Els seus companys rigueren, i celebraren aquella manifestació, ben pròpia de l’esperit combatiu que els empenyia a lluitar contra la injustícia.

 

Aquella nit, sota les estrelles, a l’esguard de l’estendard Català, la Senyera, amb el so de la mar mediterrània, i ben protegits per valents que donarien la vida per salvar-los, aquells nens assaboriren pa amb tomàquet i fuet, botifarra amb seques i escudella, mentre la nau feia rumb a Catalunya.

 

Recobraren les forces, i l’endemà els seus pares emocionats, els abraçaren amb llàgrimes als ulls i donaren gràcies a Déu nostre Senyor perquè la seva estimada pàtria, el país de la llibertat, comptés amb aquells homes intrèpids, coratjosos, i honrats, sempre disposats a lluitar per la justícia i allà on fos que calgués defensar els innocents.

 

Conte escrit per en Carles de Codi Ç.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy