Author: Oriol Rius

Unbuntu liveCD en mode persistent

Reading time: 2 – 3 minutes

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

Reading time: 2 – 4 minutes

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.

unionfs.png

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

Reading time: 1 – 2 minutes

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

Reading time: 6 – 10 minutes

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.

OpenDNS – els millors DNS que podeu usar per navegar

Reading time: 2 – 2 minutes

opendns.gif

Sovint quan et pregunten quins DNS li poso a la màquina acostumo a contestar 194.179.1.100 com a primari i 194.179.1.101 al secundari, això ho vaig aprendre a l’època del primer infovia el del 055. Des de llavors se m’han quedat grabats aquest parell de DNS públics. Doncs bé, si a més d’això a cada empresa que vaig, a la xarxa de la meva feina o la meva intranet a tot arreu hi tinc un servidor DNS intern llavors mai tinc la necessitat de configurar-me servidors DNS externs. Així doncs, mai havia tingut la necessitat de plantejar-me quins eren millor o pitjors i què m’oferien uns o altres. Doncs bé, aquest cap de setmana tot llegint el blog de l’Alex King, concretament l’article sobre l’OpenDNS he descobert aquest servei tan interessant.

Algunes de les avatatges de l’OpenDNS són:

  • Temps de resolució molt ràpid. Servidors per tot el món.
  • Correcció d’errors tipogràfics comuns (p.e. convertir .xom -> .com)
  • Avisa si s’intenta entrar en una pàgina de phishing. Per tant, és ideal per protegir d’aquests atacs.
  • Es pot forçar l’update d’un domini, forçant el refresc.
  • A més és gratuït. Viuen de la publicitat que posen a la web i a les pàgines de bloqueig de phishing.

cleanup-maildir – netejant el maildir

Reading time: 2 – 2 minutes

Avui he trobat aquest article Cleanup Maildir folders (archive/delete old mails) | MDLog:/sysadmin i no he dubtat ni un segon en baixar-me l’script: cleanup-maildir (local) programat en python. De fet, el seu nom ja diu molt del que fa. Bàsicament jo l’uso per netejar el directori Junk. És a dir, allà on rebo les alertes de correus considerats spam, virus, phishing o d’altres malwares. És a dir, he posat l’script al cron i li he dit que el contingut de la carpeta Junk del maildir que tingui més de 15 dies es vagi eliminant. Així no m’he de preocupar d’anar borrant de forma periódica tot el correu mailiciós que ja mai miraré perquè ningú m’ha dit allò tan famós de: “T’he enviat un correu, no ho has vist?” i llavors comences a buscar per la carpeta on hi ha tota la brossa a veure si el troves. Doncs bé, ara només hi haurà 15 dies de brossa.

Realment és un script molt xorra però que el trobo molt útil, ja que té força opcions com per exemple no borrar els correus marcats com a llegits, o com a importants, o crear automàticament subcarpetes on guardar els correus que tenen una antiguitat determinada. Segurament encara em deixo alguna funció però jo diria que la idea queda més que clara.

M’he comprat un hosting als EUA

Reading time: 3 – 5 minutes

dreamhost.png

M’he comprat un hosting a dreamhost. Ja fa temps que a través d’un blog vaig veure l’anunci i és realment impresionant els serveis que et donen per dos duros. Com ja vaig comentar en el post Ja en tenim un altre… fem-nos els nous propòsits fa temps que tenia ganes de comprar-lo per guardar-hi els arxius relacionats amb el blog, posar-hi les fotografies, les còpies de seguretat i per tenir un lloc on experimentar amb mil històries. Doncs bé, no us perdeu la llarga llista de funcions totalment gestionables per un panell de control i per una shell de linux que m’han donat per només 9,95$ al mes.

  • 97-day money-back guarantee
  • 24 hour Technical Support (E-Mail)
  • Disk Storage at signup: 200 GB
  • Monthly Bandwidth at signup: 2 TB
  • MySQL Databases: Unlimited
  • Web-Based Account Control Panel
  • Jabber TM Chat Server
  • User Accounts
    • E-Mail Accounts (POP/IMAP): 3.000
    • Shell / FTP Users 75
  • EMail
    • POP / SMTP Access
    • IMAP Access
    • Web-Based Email Access
    • Procmail Mail Filtering
    • Spam Filtering – SpamAssassin
    • Email Addresses (Aliases)
    • Announcement Lists
    • Discussion Lists
  • Domains
    • Free Domain Registrations (A $9.95 Value!)
    • Free Domain WHOIS Privacy
    • Domains Hosted: Unlimited
    • Subdomains Hosted Unlimited
    • Domains Forwarded/Mirrored: Unlimited
  • Custom DNS
  • Programming
    • PHP4 Support
    • PHP5 Support
    • Full Unix Shell
    • Crontab Access
    • Full CGI Access
    • Ruby On Rails
    • Canned CGI Scripts
    • Server Side Includes (SSI)
    • CVS Repository
    • Subversion Repository (SVN)
  • Advanced Features
    • SSL Secure Server (req. Unique IP)
    • Enhanced Web Security
    • WebDAV
    • Snapshot Data Backup
    • Daily Access Statistics
    • Access to raw log files
    • Banner-Free DreamBook.com account
    • Passworded Directories (.htaccess)
    • FrontPage Extensions
    • RealAudio and Video (http stream)
    • QuickTime Streaming
    • Anonymous FTP Server (req. unique IP)
    • One-Click Automatic Software Installers: WordPress, phpBB, Advanced Poll, ZenCart, MediaWiki, Joomla, Gallery, WebCalendar

Vull recomanar aquest servei de hosting a tot aquell que vol penjar-se un blog a internet o necessita uns serveis semi-professionals per ús personal. Obviament mai hi ha res com tenir el teu propi servidor a casa. Però malgrat tenir els servidors de casa, de la feina i dels amics. Sempre va bé tenir un altre lloc on guardar-hi coses sense haver de patir ni perdre-hi temps en haver de gestionar-lo tu mateix. Ja que et dona un cert nivell de tranquilitat i de despreocupació. En principi estic molt content de la meva compra, a veure si el temps em dona la raó. De moment ho he comprat per un any però m’agradaria fer-ho durar, ja que els preus per dos anys etan molt bé.

Així doncs, aquest és el regal de reis que m’he fet i de moment hi he hospedat el domini oriolrius.cat. Tot i que si hi accediu us redireccionarà cap al servidor que tinc a casa via un petit script que m’he fet amb php. Suposo que la cosa es quedarà així molt de temps mentre hi vaig migrant cada cop més serveis. A mesura que els vagi migrant ja aniré informant a veure què tal funciona tot plegat.

Ja en tenim un altre… fem-nos els nous propòsits

Reading time: 4 – 6 minutes

Si el president de la generalitat dona missatges als ciutadants de Catalunya jo els dono als meus lectors. De fet, amb els 6 anys que porto escribint al blog mai havia escrit res especialment per despedir-me de l’any. Però avui m’ha donat per aquí. Porto una bona estona pensant si escriure un article sobre MonkeyGTD que tinc preparat però la veritat m’ha fet mandra usar més d’una neurona per escriure l’article. Així doncs he preferit algo una mica més humà.

Potser el més important que volia escriure per avui a part de felicitar-vos les festes a tots plegats és escriure una serie de reflexions que ja fa dies que tinc pel cap. D’això n’hi ha que en diuen els nous propòsits per l’any que vé. Potser pel meu esperit metòdic i disciplinat a mi no m’agrada dir-ne propòstis. Perquè sona a obligacions de coses que sembla que mai acabes fent. Llavors l’únic pròposit que hauria de fer seria: treballar menys i dedicar més temps a desconnectar. Però no ens enganyem la meva vida es resumeix una suma de ben poques coses: informàtica, telemàtica, tenis, amics, família i novia. Per tant, siguem sincers jo no connecto ni desconnecto, simplement dedico més o menys temps a alguns elements de la suma anterior.

Doncs la llista de coses que realment vull fer en aquest 2007 és ben senzilla. Primer de tot posar ordre en moltes coses que tinc donant tombs. Fixeu-vos que no dic fer les coses, només posar-hi ordre. No és que aquesta llista de coses no estiguin ordenades, sinó que sota el meu punt de vista són massa extenses i per tant, les hauria de focalitzar molt més. Fins ara potser em feia por no guardar alguna cosa per si mai podia ajudar-me a mi o algú del meu voltant. Doncs bé, a partir d’ara vull reorganitzar tot el que tinc i llençar/eliminar moltíssimes coses de forma que pugui focalitzar molt més els meus interessos. Així doncs, el meu objectiu és simplement dir que no a més temes i simplement ignorar-los per molt que em piqui el ‘guasanillo’.

Una de les primeres coses que vull fer és una llista dels temes més tècnics (a nivell conceptual) en els que em centraré. Com si fos una llista d’interessos. De fet, m’agradaria que fos un dels primers articles de l’any que vé: una llista d’interessos. Obviament no serà una llista completament estàtica ni es pot fer en un sol dia, però si que la puc anar mantenint per així tenir sempre una visió global de quins interessos tinc. A més gràcies a la interiorització del mètode GTD cada cop és més senzill treballar amb tota aquesta informació. Un cop tens el mètode i l’objectiu és molt més senzill ordenar les carpetes de l’IMAP, les wishlist, els bookmarks, les carpetes del directori home, etc.

Si hi ha un element al que tinc ganes de donar-li el tomb al 100% és al meu blog, wiki, etc. però sincerament no crec que ni tan sols aquest any 2007 sigui capaç de migrar-lo a un altre CMS. Hi ha moltíssima informació i malgrat cada cop intento tenir criteris més estríctes a l’hora de generar nous articles, comentaris, manuals, howtos, cookbooks, etc. hi ha molts articles i documents que s’haurien de tractar de forma manual i no podrien posar-se en un sistema de migració automàtic.

Per tot això i moltes altres coses doncs, no veig possible migrar el meu sistema d’informació online. Però això no vol dir que hi vagi introduïnt nous elements. Ja fa dies que dono tombs en comprar un hosting a dreamhost. Els preus i el servei em semblen inmillorables i voldria allotjar-hi oriolrius.cat on hi podria anar desenvolupant el nou blog, wiki, etc.

Per anar acabant doncs, només vull dir que m’agradaria simplement invertir més temps en ordenar els temes que porto amb la finalitat de poder fer menys coses, per tal, d’aprofundir més en les mateixes i tenir més focalitzats els meus interessos. De ben segur serà una tasca difícil i gens senzilla però com sempre m’han ensenyat les coses grans s’han de dividir en coses ben petites, per tal de solucionar millor el gran problema. A més si parteixes d’un bon mètode, disciplina i il·lusió no cal dubtar de l’èxit de la tasca.

Amb aquest ànim de fer menys coses i més profundes simplement vull desitjar-vos un bon any a tots i sobretot aneu amb compte amb el cotxe aquesta nit. Amb la resta de coses ja no dic que aneu amb compte perquè ja sé que no ho fareu 😉

Driver Collector – extreient els drivers del windows

Reading time: < 1 minute

L’any 2002 ja vaig parlar del WinDriver Expert escencialment el programa és algo molt semblant al Driver Collector. Malgrat tenen alguns matisos diferents ambdós val la pena tenir-los ben localitzats ja que moltes vegades ens trobem amb màquines de les quals ningú té els drivers d’algún dels seus dispositius. Doncs bé, aquest programet podrem extreure els fitxers del driver per quan haguem de re-instal·lar la màquina.

drivercollector.jpg

Perl: Template::Extract, Template::Generate i WWW:Mechanize

Reading time: 2 – 4 minutes

perl.png

Normalment no parlo mai de llibreries de Perl, tot i que fa una bona colla d’anys vaig estar usant-lo força. Obviament encara hi havia el PHP3 i el Python no era ni un somni. De fet, no li puc negar la súper potència al Perl simplement el problema que li trobo és que té una sintaxi tan confusa, complexe o espessa, diguem-ho com volguem que si el deixes una temporada després no recordes gairebé res. Però no volia comentar les difícultats que tinc per recordar el que sabia de Perl en aquest article.

Simplement volia aprofitar per referenciar un parell d’articles d’en BrainStorm que parlen d’unes eines que em canviaran la vida la propera vegada que hagi de programar una eina de web spidering. De fet, jo fins ara els anomenava robots, bàsicament eren eines que servien per construir-me bases de dades a partir de webs que disposaben d’informacions molt completes. Per exemple, webs amb reculls de característiques de milers de mòbils.

Les referències als articles:

Les llibreries de les que ens parla en BrainStorm:

  • Template::Extract construïm un template a al aplicar-lo sobre un document HTML ens permet obtenir-ne les dades, sense les etiquetes. De fet, si volem podem fins hi tot escollir quina informació en volem extreure, no tenim perquè extreure-ho tot. Concretament els templates es contrueixen segons la sintaxi que s’anomena TT2.
  • Template::Generate construeix templates estàndars a partir d’un HTML que li passem. Així després només ens cal modificar el template per tal d’ajustar-lo a les necessitats que poguem tenir.
  • WWW::Mechanize podem navegar a través d’una pagina web des de dintre d’un objecte de perl. És genial perquè ens permet arribar a les dades que ens interessa aconseguir de forma completmant transparent. Per exemple, connectem a una web, ens registrem, anem a la zona restringida cliquem a una secció de la web i obtenim la documentació que voliem dintre de l’objecte de perl. Ara si volem li podem aplicar un Template::Extract, per exemple.

Jo diria que es tracta de la trilogia perfecte per generar eines que ens permeten extreure informació de documents HTML. Una altre aplicació que és la que s’ens comenta al segon artícle que he referenciat la creació de resums RSS de pàgines que no disposen d’aquesta funcionalitat.

Scroll to Top