Llibre: Esta noche NO, querida
Ahir vaig acabar les últimes de 10 pàgines que feia més d’1 mes que tenia pendents d’acabar del llibre Esta noche NO, querida (ISBN: 8479019204) d’en Sergio Sinay. El llibre me’l va regalar la Daphne cap a principis de desembre, de fet, quan me’l va regalar no vaig acabar d’entendre què en podia treure de bo del llibre. Però un cop el vaig començar vaig veure que realment et convida a reinventar-te com a persona.
No és un llibre que et canviï de dalt a baix, però si que es veritat que et fa plantejar moltíssimes coses i et fa veure a tu mateix des d’una altre òptica. A diferència del que pot semblar el llibre no parla de sexe, tot i que en algún punt pot tocar el tema. Més aviat parla dels valors masculins, des dels homosexuals, als missogens; passant per metrosexuals, afeminitas, feministes, masclistes i qualsevol altre tipus d’home que se’ns pugui passar pel cap. Fixeu-vos el difícil que és definir-nos, etiquetar-nos o encasillar-nos en algún d’aquests rols si és que encaixem en algún.
Bé doncs, si algú de vosaltre no s’ha plantejat mai d’on venen les típiques expresions de l’estil: com un home, això és cosa d’homes, això és perquè sóc un home, o d’altres similars en aquest llibre podrem trobar-hi moltes formes noves d’interpretar aquestes expressions i d’altres. Però no només es queda en el llenguatge verbal, en la moral social o en els prejudicis socials sinó que també aprofundeix en les conductes socials i personals dels homes en la cotidinaitat. Com que m’estic embolicant molt només ús vull convidar a llegir aquest llibre que en un tres i no res tindreu llegit, i que a més, jo diria que ús ajudarà a ser una mica millors com a persones. Ah! i no només és pels homes, ja que les dones també poden aprendre moltíssim del llibre.
Per cert, si algú decideix comprar el llibre que es fixi on ho fa, perquè segons l’enllaç que he posat a la casa del llibre costa 12 i encanvi l’exemplar que jo tinc esta marcat en la contraportada per 5. Diria que val la pena mirar-s’ho.
SSH tricks: control usuaris i col·lisions en la fingerprint
Un parell de tricks per l’SSH un pel servidor (sshd) i l’altre pel client (ssh).
Si volem deixar accedir només a alguns usuaris al nostre sistema via SSH s’ha de posar al fitxer /etc/ssh/sshd_config la comanda AllowUsers. Aquest eginy l’he extret de Restrict SSH per user.
Un exemple:
AllowUsers root oysteivi otheradmin
L’altre enginy és molt útil quan programem scripts que usen per exemple: scp, rsync o d’altre similars. A vegades per molt que usem un sistema d’autenticació per clau pública amb ssh això no és suficient perquè hi pot haver un conflicte den la fingerprint que tenim guardada (o no) del servidor on anem a connectar. Llavors se’ns pregunta si volem guardar aquesta fingerprint sinó la tenim guardada o si assumim que hi ha conflicte entre la fingerprint guardada i la que ens esta enviant el sevidor. Per més detalls sobre el problema podeu consultar aquest article de securityfocus SSH Host Key Protection. A més segur que aquest exemple ajudarà a refrescar la memòria sobre el que em refereixo.
$ ssh ssh-server.example.com
The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)? yes
Per tal de controlar el comportament d’aquest event ho podem fer amb el paràmetre StrictHostKeyChecking=[yes|no|ask], això ho podem posar a /etc/ssh/ssh_config o bé a la línia de comandes a través del flag -o.
Exemple forçant la comprovació:
$ ssh -o 'StrictHostKeyChecking=yes' ssh-server.example.com
No RSA host key is known for localhost and you have requested strict checking.
Host key verification failed.
Exemple preguntant la comprovació:
$ ssh -o stricthostkeychecking=ask ssh-server.example.com
The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)? yes
Unbuntu liveCD en mode persistent
En l’article d’unionFS ja parlava dels liveCD en mode persistent. La idea és ben senzilla i potent a la vegada, es tracata d’inicar el linux a partir del liveCD en aquest cas, la Ubuntu. Però a direferència d’un procés d’inici normal indicarem al menú inicial que volem fer-ho en mode persistent i guardarem tots els canvis que fem durant la sessió: nous paquets instal·lats, dades d’aplicacions, personalitzacions del sistema, configuracions diverses, etc.
Com fer-ho és ben senzill i només cal disposar d’un pendrive, disc dur o qualsevol altre dispositiu d’enmagatzematge amb suport d’escriptura. Ara només cal:
- Canviar l’etiqueta el nom del volum per casper-rw:
e2label /dev/hda1 casper-rw - Si la partició té format ext3 s’usarà la partició arrel per enmagatzemar-hi els fitxers persistents.
- Si tenim un disc dur amb format FAT32, per exemple, podem crear un fitxer a l’arrel amb el nom casper-rw i dins del fitxer hi creem un sistema de fitxers ext3, així:
- Suposem que tenim la partició FAT32 montada a /media/hda1 i hi creem un sistema de fitxers ext3 de 128M. Cal que ens fixem en que el fitxer que conté el sistema de fitxers s’ha de dir casper-rw:
dd if=/dev/zero of=/media/hda1/casper-rw bs=1M count=128 - Quan iniciem el sistema amb el CD o DVD i ens trobem al menú inicial cal premer F6 i als paràmetres del kernel que ens apareixen a la part inferior de la pantalla afegim la paraula persistent al final.
- Si ens hi fixem quan s’inicia la distribució ja no només llegeix del CD sinó també del pendrive o disc dur.
Com que aquesta guia no és gaire exaustiva, ja que només volia exposar la idea i explicar la funcionalitat, per més informació es pot consultar: LiveCDPersistence del wiki d’ubuntu.
NOTA: és vital que recordeu que al disc dur també li heu de canviar l’etiqueta perquè es monti com a part d’enmagatzematge del mode persistent del liveCD sinó no es montarà. Jo vaig perdré més de 2h mirant codi font per culpa d’un error ortogràfic i de no tenir clar el que posava el manual d’ubuntu.
UnionFS – A Stackable Unification File System
unionFS és un sistema de fitxers de linux és realment un somni fet realitat, en principi ens permet fer una cosa ben senzilla. Com diu el títol, permet unir sistemes de fitxers apilant-los. Què vol dir això? doncs montar sistema de fitxers un sobre de l’altre. La gràcia on és? doncs en que per exemple podem montar un sistema de fitxers de només lectura i després a sobre un de lectura i escriptura; la difèrencia entre això i un montatge convencional és que veurem el contingut dels dos directoris i podrem modificar el sistema de només lectura guardant els canvis en el de lectura i escriptura. O sigui, ara tenim un nou sistema virtual format per la unió d’amdós sistemes. Crec que amb aquest exemple queda claríssima la potència de la idea.
També es pot usar aquest sistema de fitxers amb suport d’snapshots. O sigui, mantenint còpies passades de les versions anteriors dels fitxers. Així doncs, del sistema de modificar fitxers que usa el unionFS se’n diu copy-on-write, perquè quan ha de fer una escriptura d’un fitxer el que fa és fer-ne una còpia mantenint el contingut antic en un dels sistemes de fitxers que estan a la unió.
Quan es monten sistemes de fitxers amb diferents branques d’uns mateixos fitxers s’acostuma a donar prioritat a una de les branques. Si el que tenim montat és un CDROM i un disc dur, obviament la branca que ha de tenir prioritat és la del disc dur sinó no es podrien guardar els canvis.
L’ús més destacable que se’n fa d’aquest sistema de fitxers és en els liveCD, perquè permeten guardar dades de forma persistent en un disc dur o en un pendrive. O sigui, podem iniciar una distribució de linux amb un CD o DVD i instal·lar nous paquets, fer canvis en la configuració del sistema, guardar dades amb aplicacions, etc. i totes les noves dades que s’haurien d’haver guardat al suport de només lectura s’hauràn guardat en el disc dur o el pendrive gràcies al unionFS. Molts dels liveCD de les vostres distribucions preferides suporten el que se’n diu mode persistent ús recomano que consulteu la documentació si ús interessa la funcionalitat.
Per més informació: Versatility and Unix Semantics in a Fan-Out Unification File System (local).
HttpClient – PHP Web Client Class
Aquesta classe ens permet implementar de forma senzillissima un client HTTP 1.0 i 1.1 tan per peticions GET com POST. De fet, fa algo semblant al que que comentava de la classe de perl WWW:Mechanize tot i que amb molt menys detalls. Malgrat això pot ser molt útil per interactuar amb altres webs des del nostre codi en PHP. A més és senzillissim usar aquesta classe. HttpClient implementa les següent funcionalitats.
- Implements a useful subset of the HTTP 1.0 and 1.1 protocols.
- Includes cookie support.
- Ability to set the user agent and referal fields.
- Can automatically handle redirected pages.
- Can be used for multiple requests, with any cookies sent by the server resent for each additional request.
- Support for gzip encoded content, which can dramatically reduce the amount of bandwidth used in a transaction.
- Object oriented, with static methods providing a useful shortcut for simple requests.
- The ability to only read the page headers – useful for implementing tools such as link checkers.
- Support for file uploads.
Per més informació recomano que mireu els exemples que hi ha a la web de la classe és realment simple d’usar.
phpMailer – una classe de PHP per enviar emails
En PHP quan s’ha d’enviar un email sovint s’usa la funció mail() tot i que aquesta és una mica limitada en quan a paràmetres que se li poden passar al servidor SMTP. Per exemple, temes d’autenticació i xifrat. Via pear hi ha diverses solucions però a vegades cal que la solució que incorpori el nostre aplicatiu sigui independent d’aquest tipus de requisits de sistema. Així doncs phpMailer ens pot servir per sortir de més d’un embolic.
Suporta:
- Can send emails with multiple TOs, CCs, BCCs and REPLY-TOs
- Redundant SMTP servers
- Multipart/alternative emails for mail clients that do not read HTML email
- Support for 8bit, base64, binary, and quoted-printable encoding
- Uses the same methods as the very popular AspEmail active server (COM) component
- SMTP authentication
- Word wrap
- Address reset functions
- HTML email
- Tested on multiple SMTP servers: Sendmail, qmail, Postfix, Imail, Exchange, etc
- Works on any platform
- Flexible debugging
- Custom mail headers
- Multiple fs, string, and binary attachments (those from database, string, etc)
- Embedded image support
Un petit exemple d’ús perquè vegeu el senzill que és usar-lo:
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp1.site.com;smtp2.site.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "jswan"; // SMTP username
$mail->Password = "secret"; // SMTP password
$mail->From = "from@email.com";
$mail->FromName = "Mailer";
$mail->AddAddress("josh@site.com","Josh Adams");
$mail->AddAddress("ellen@site.com"); // optional name
$mail->AddReplyTo("info@site.com","Information");
$mail->WordWrap = 50; // set word wrap
$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
$mail->IsHTML(true); // send as HTML
$mail->Subject = "Here is the subject";
$mail->Body = "This is the HTML body";
$mail->AltBody = "This is the text-only body";
if(!$mail->Send())
{
echo "Message was not sent ";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
Aquesta troballa l’he fet a través de l’article phpMailer , a great Email transfer class del blog de Moody Bahrain.