December 28th, 2006 — Programació
Avui m’he trobat amb un problema curiós: intentava accedir a una pàgina web des de la funció fopen() del PHP per poder parsejar el codi però aquesta tasca en principi trivial era absolutament impossible amb la URL en concret que volia accedir (amb altres si que funcionava).
El curiós del tema és que des del navegador si que es podia accedir a la web en qüestió.
Quin era el problema? Que d’alguna manera és limitava la conexió HTTP des d’algo que no fos un navegador (que fa conexions GET). Cap problema, la solució era obrir una conexió mitjançant sockets i reproduïr manualment el protocol HTTP.
Quant ho estava fent, he trobat la classe HTTPRequest a la documentació oficial de PHP que precisament fà el que buscava i de forma molt elegant.
Reprodueixo el codi, per si es perd l’enllaç a l’original.
Continue reading →
May 23rd, 2006 — Uncategorized
Com a replica del recentment famos framework Ruby on Rails, s’han creat diversos frameworks de les mateixes caracteristiques però per a PHP. Tanmateix el port oficial el podem trobar com a “PHP on Track”:http://www.phpontrax.com/
Si volem avaluar-ne d’altres, podem trobar una llista “aquí”:http://www.theweb20dev.com/wordpress/2006/05/03/5-next-generation-php-frameworks/
August 24th, 2005 — Uncategorized
Fa dies que no escric al blog i això es degut a molts factors.
Un d’ells és el que m’he volcat força en el desenvolupament del programari de newsletters.
De fet, m’he quedat alguna nit fins a hores intempestives creant nou codi a l’hora que aprenia a utilitzar el paradigma OO amb el simple PHP4. 
El programari esta quasi be acabat, i en essencia ja funciona.
La part principal del desenvolupament consta d’una col.lecció d’objectes que inclouen els metodes suficients per a crear un aplicatiu a mida amb aquesta funcionalitat així com un objecte que permet conectar-se a la bústia de retorn dels misstages, per comprovar quins butlletins han estat retornats i afegir aquesta dada al sistema de logs, que tambe controla mails enviats, mails llegits…
En aquests moments el que estic fent es desenvolupar l’aplicatiu de newsletter, utilitzant els objectes fets i deixant de banda el disseny: això ja ho farà el dissenyador de Magma3.
Aprofito per a dir que he utilitzat 3 llibreries (també OO) de programari lliure:
1. ADODB : Permet fer una capa d’abstracció de la base de dades. Fantastic per garantir la portabilitat futura.
2. phpMailer : La llibreria que utilitzo per a l’enviament de mail. Em facilita enviar en format HTML. Les possibilitats son molt mes grans ja que permet enviar attachments o imatges.. tot i que son funcionalitats que en aquest cas concret no em serveixen.
3. Net_POP3 : Llibreria del repositori PEAR que em permet conectar-me a la bustia donada i agafar el correu… Bàsic pel mòdul de logs.
Ja per acabar dir, que estic preparant una web pel projecte, per a distribuir-lo com a GPL.
Aniré informant.
August 11th, 2005 — Uncategorized
Per fer menys tediosa les feines repetives és molt important intentar aprendre quelcom nou de cada projecte que es fa.
Porto tot el matí desenvolupant l’eina de newsletter per Magma3 i ho estic fent en PHP4 Orientat a Objectes.
Ja fa temps que utilitzo objectes PHP en els meus projectes, però mai n’havia desenvolupat cap. Ara, m’estic enfrontant a ells des del principi. De moment l’experiència és bona.
El següent pas serà aplicar algun patró de disseny formalment (de moment els estic implementant adHoc) i buscar alguna capa de Persistència pels objectes. Ara estic utilitzant-ne una molt rudimentaria feta per mi amb “l’ADOdb”:http://adodb.sourceforge.net/ però he vist que existeixen “cosetes”:http://www.appelsiini.net/~tuupola/php/DB_DataContainer/docs/ que poden estar bé, sense arribar a potència d’eines com l’Hibernate per Java.
Per cert, he deixat d’utilitzar el Dreamweaver com a IDE PHP: al final m’he instal.lat els plugins “EclipsePHP”:http://www.phpeclipse.de/tiki-view_articles.php per l’Eclipse i la veritat, van de conya!
Continuaré informant.
August 5th, 2005 — Uncategorized
Potser hi ha una forma trivial de fer-ho però jo no l’he trobat. El problema que acabo de solucionar és un que m’ha perseguit des dels meus inicis de programador de PHP i que no havia acabat de solucionar de forma el suficientment elegant.
El repte és ben senzill: incrustar el contingut d’una pàgina generada en php, per exemple, dins d’una variable.
El PHP te funciones per incloure ( include() ) un fitxer dins d’un altre, i executar-lo, però això no em servia, ja que jo el que volia es que aquest estigues dins d’una variable i no seria correcte fer:
$foo = include(”menu.php?idioma=3″);
Fa temps vaig solucionar el problema fent que el volcat me’l fes dins d’un textarea d’un formulari i que inmediatament s’autoreenvies per disposar del contingut dins d’una variable. Aquesta solució era molt patillera, a part de no funcionar bé en depent de quins navegadors antics, ja que limitaven el tamany dels textarea.
Bé, la solució és molt més fàcil que això: només cal obrir el fitxer amb un fopen() passant com a parametre una URL amb les seves variables. Això ens permetra llegir la cadena resultant un cop executat l’script PHP del fitxer remot.
$file = fopen (”http://www.servidor.com/menu.php?
idioma=3″, “r”);
if (!$file) {
echo “No es pot llegir!.\n”;
exit;
}
$foo =”";
while (!feof ($file)) {
$foo .= fgets ($file, 1024);
}
fclose($file);
I ja està: dins de $foo tindrem el contingut de la pagina.
Més senzill, impossible. 
July 11th, 2005 — Innovar
Fa uns quants articles, vaig parlar d’un framework anomenat Cake, que ens permetia treballar amb el Patró MVC amb PHP. Aquest cap de setmana vaig intentar començar un aplicatiu senzill amb Cake i em vaig trobar que el projecte encara és molt verge i no hi ha quasi bé documentació. Així doncs, m’esperaré encara una mica més, i mira, potser vaig fent boca aprenent una miqueta de RubyOnRails, que mai està de més.
July 7th, 2005 — Uncategorized
Un dels llenguatges que esta de moda ultimament (mes que res per ser de recent creació) és el “Ruby”:http://www.ruby-lang.org/en/ , sobre el qual escriure algun article properament.
Ruby és un llenguatge interpretat, molt a l’estil de l PHP o el PERL, però orientat a objectes nativament. De fet, és veu que pots arribar a fer programets de certa complexitat amb molt poques linies de codi.
Doncs bé, alguna gent, ha desenvolupat un framework amb ruby, per a poder desenvolupar aplicatius web amb la facilitat d’aquest llenguatge. D’això se’n anomena “Ruby On Rails”:http://www.rubyonrails.com/ .
Malgrat tot, aquesta tecnologia tè un petit inconvenient i és que la majoria de hostings no suporten encara aquest llenguatge.
Ara ve el que jo us volia comentar. He trobat un framework fet amb PHP, que ve a ser el que RubyOnRails es pera Ruby, amb l’avantatge clara de que PHP és el llenguatge instal.lat per defecte a la majoria de hostings del Mercat.
Aquest framework s’anomena “Cake”:http://sputnik.pl/cake/ i promet un desenvolupament i manteniment realment senzill, utilitzant patrons Model Vista Controlador. De moment no puc comentar res més del que diu a la pàgina, però en breu em posaré a fer alguna proveta i ja la comentaré per aquí.
July 1st, 2005 — Uncategorized
Aquest matí he anul.lat la inscripció que tenia de PFC. Despres de dos anys sense que avances massa, la desmotivació a pogut amb mi i despres d’algunes gestións per canviar-lo, al final m’he decidit a fer el pas.
En aquests dons anys, les excuses per no fer-lo han estat molt variades: inicialment, la feina a la consultora, que em deixava esgotat per posar-m’hi a casa, junt amb les tasques a l’Agrupament Escolta o a Minyons. Despres, quan vaig passar a una feina de mitja jornada per compaginar-m’ho, l’excusa era que havia de solucionar alguns altres temes més urgents.
La qüestió és que sigui per A o per B, el projecte seguia en Stand By.
El que he agafat ara, em motiva molt més i la veritat, és més fàcil que m’hi posi a fer-lo a casa que no pas l’altra.
El tema és ben senzill: dissenyar i implementar un curs de PHP sobre la plataforma d’eLearning “Moodle”:http://moodle.org . Això em servirà de pretext per haver-me d’introduir en el desenvolupament d’aquesta eina opensource i crear alguns moduls o extensions, que posteriorment seràn donats a la comunitat. A més, el material del curs, serà fet respectant l’estandard SCORM, per garantir un perfecte seguiment del profesor vers a l’alumne.
El projecte el faré al departament d’LSI i la persona que em portarà la part de desenvolupament del Moodle és força coneguda dins la comunitat de desenvolupadors d’aquesta plataforma, al haver proporcionat el wiki que ve per defecte amb l’instal.lació i un programari de correu, anomenat internalMail.
Aquesta vegada s’acabarà.