Inicio

1er Barcelona phpWorkShop

logo Barcelona phpWorkshopAquest cap de setmana en Marc i jo varem ser al Citilab de Cornellà de Llobgregat, no massa lluny de les oficines de movilpoint al primer Barcelona phpWorkShop. S’ha de reconeixer que les instal·lacions del recinte del Citilab estan molt bé i que jo diria que és un d’aquells llocs que et fan sentir orgullós de veure com evoluciona el ‘submón’ que representa, de fet, diria que aquest mural del Citilab té un bon recull de ‘parauletes’ que descriuen on transcorren moltes hores de la meva vida:

Mural del Citilab

Pel que fa les conferencies del phpWorkshop durant el matí varem assistir a la:

  • Motores de Workflow: más allá de las applications CRUD: sobre el tema dels workflows la veritat és que no hi estic gens posat, així doncs per mi això va ser totalment d’introducció. El ezComponents que és sobre el que es varen fer les pràctiques té molt bona pinta i la veritat és que el nivell del conferenciant (em sembla que era en Carlos Buenosvinos) era bo pel poc que varem poder-lo escoltar. Ja que la part pràctica es va reduir molt per problemes de temps. He de reconeixer que a partir d’ara hauré de prendre una mica més d’atenció en aquestes temes ja que poden interessar moltíssim als processos de negoci de l’empresa.
  • VIM, el IDE para PHP: aquest taller com ús podeu imaginar era ple de geeks començant pels conferenciants, però ho varem passar genial i una vegada més i després de més de 10 anys com a usauri de Vi (i després Vim) aquest em va demostrar que no para de sorprendrem. Així doncs, reamlent útil i una molt bona resposta als meus pressuposits de Zend Studio i Eclipse sobre Vim. Malgrat això hi ha problemes inherents a l’editor que no em permeten obligar a cap dels programadors que tenim a treballar amb eines amb curves d’aprenentatge tan llargues en el temps. Per no parlar de la facilitat en la que les coses s’oblidaran. Una molt bona nota pel taller.

i a la tarda a:

  • AJAX, hazle un “lifting” a tus páginas: aquesta conferència es va realitzar en una sala inmensa i en Marc i jo erem a la part del darrera de tot de la sala i no es sentia res de res, era impossible escoltar el que deia el conferenciant i seguir el que apareixia al projector. Malgrat això em va permetre descobrir el YUI molt més a fons i realment em va agradar moltíssim. He de reconeixer que l’Ernest tenia raó quan sempre em deia que els llibreries de JavaScript de Yahoo! era molt bones. Tot i que jo mai m’hi havia posat tan a fons. Ara el que toca és aprofundir més en el tema.

L’última conferència sobre XSS es realitzava a la mateixa sala i com que ja portavem tot el dia al Citilab varem decidir marxar. Ja que era molt difícil disfrutar-la en aquelles condicions. Tot i així he de posar una molt bona nota a l’organització de l’event. Malgrat l’ensurt que em van donar el dijous amb un email dient que no havia fet l’ingrés dels diners de l’event quan això no era així. Però finalment tot va acabar en això, un ensurt. A veure si l’any que ve podem repetir l’experiència i si a partir d’ara m’animo a disfrtuar més d’aquest gran espai que és el Citilab.

Pound: reverse proxy i load balancing

A través d’un howto de howtoforge he descobert aquesta eina anomenada Pound. Realment m’ha deixat impressionat per la seva simplicitat i potència al mateix temps. A més m’ha donat molt confiança saber que hi ha almenys un site processant 30M de peticions al dia, unes 600 per segon amb aquest aplicatiu. Aquest tipus de números sempre ajuden a donar confiança en les eines.

Doncs bé, l’eina bàsicament es dedica a capturar totes les peticions HTTP i HTTPs repartint-les després contra els servidors que té en el backend. En cap moment fa de caché ni res similar. Tot i que cal destacar la capacitat de poder fer de SSL wrapper. Així doncs, no cal que els backend facin de servidors SSL, només de servidor HTTP. Obviament pel client s’establirà una connexió HTTPs completament transparent. Si la validació SSL no és correcte Pound ja no envia peticions als servidors que té darrera.

Les funcions de balancejador de càrrega (load balancer) permeten no perdre les sessions establertes pels navegadors dels clients contra els servidor de backend, de fet, Pound implementa sis formes diferents de capturar una sessió per tal de no enviar peticions a un dels backends que no conegui la sessió del navegador.

Suporta funcions de fail-over, així doncs totes les peticions es direccionen només als servidors de backend que se sap que funcionen, la validació que es fa per saber si un servidor esta actiu o no és força simple i a grans trets es basa en paquets ICMP.

Finalment també cal destacar una funcionalitat que m’ha cridat molt l’atenció, ja que permet fer de wrapper d’URL i enviar les peticions que acompleixin certes expressions regulars cap a un o altre servdidor. Això permet, per exemple, enviar els dominis virtuals cap a un o altre servidor. A més, també podem per exemple, enviar les peticions d’imatges cap certs servidors de backend específics.

Al llegir-me la documentació d’aquesta eina el que més m’ha intrigat és saber com resolien el típic problema que presenten les eines d’aquest tipus, els fitxers de logs. M’explico, una cosa molt important a poder controlar des del punt de vista d’un servidor web és saber d’on arriben les peticions si el servidor web no rep les peticions directes d’internet sinó a través d’un balancejador com Pound la IP origen de la petició es perd i per tant, els fitxers de logs dels servidors web no són reals sinó que tenen com a origen sempre el balencejador. A més de totes els problemes associats a no saber d’on venen les peticions, com el control d’accés i d’altres similars.

Doncs bé, bàsicament això es soluciona a través d’una capçalera HTTP afegida des de Pound a la petició web. Així doncs és en aquesta capçalera que s’han d’anar a buscar les dades necessaries per recomposar el fitxer de logs del servidor web. També hi ha mod’s d’apache que ja solucionen aquest tema directament capturant aquesta nova entrada en la capçalera HTTP, concretametn val la pena que no perdeu de vista mod_extract_forwarded2.

Sota el meu punt de vista un gran descobrint i una eina molt interessant per tal de poder montar servidors web’s amb més cara i ulls. No sé si algú l’haura provat 😉

VMWare trick: usar màquines virtuals creades en versions més noves en motors vells

Quan creem una màquina virtual d’VMWare amb una versió nova del Workstation, per exemple, si després volem usar aquesta màquina amb VMWare server 1.0.x la definició de la màquina virtual que es troba dins del fitxer .vmx no és compatible amb el motor esmentat. Així doncs, no podem llençar la màquina i el que veurem és un error que diu:

Configuration file was created by a VMware product with more features than this version

Doncs bé, aprofitant que les definicions de les màquines virtuals estan fetes amb fitxers de text podem editar-los i arreglar aquest problema, almenys jo ho he pogut fer gràcies a le notes de l’article: How To Convert VMware Server 2.0 Beta VMs into VMware Server 1.0.4 escrit a Desktop Virtualization.

Els canvis a fer són molt simples, primer cal modificar el fitxer .vmx que defineix la nostre màquina. Dins del fitxerlocalitzem on posa:

virtualHW.version = “6″

canviem la versió per:

virtualHW.version = “4″

Ara cal canviar també el fitxer on es defineix el disc dur virtual que usarà la màquina, això ho trobareu al fitxer .vmdk localitzem la part del codi on posa:

ddb.virtualHWVersion = “6″

i la canviem per:

ddb.virtualHWVersion = “4″

A mi m’ha funcionat, de totes formes el meu escenari era molt concret no sé si funcionarà per qualsevol escenari similar, tot i que jo opino que si.

phpList: newsletters i mailings de correu OpenSource

phpList logoFa temps l’O.Manyà em va demanar una aplicació per fer just això i no n’hi vaig saber dir cap, el més frustrant és que ja coneixia aquesta eina de fa molt de temps però mai li havia fet massa cas. De fet, la veia com una evolució del mailman. Però ara me’n adono que és algo molt més corporatiu, és a dir, no és pas una eina per gestionar llistes de correu (diria que no és capaç de fer-ho). Sinó que esta molt més orientat al concepte de newsletter o de mailings. O sigui, ideal per emetre comunicats d’empresa als nostres clients o per escriure mailings personalitzats als nostres clients informant del que sigui. Després de fer un repàs per les moltíssimes funcionalitats què té diria que la pinta és excel·lent. A més si ús passeu per la web del phpList veure-ho que té força screenshots i screencasts que poden donar-vos una idea molt aproximada de tota la funcionalitat que té l’eina.
A continuació adjunto el llistat de funcionalitats que té l’eina, com deia val la pena invertir-hi una estona en donar un cop d’ull. M’ha cridat molt l’atenció la possibilitat de poder generar mailings a partir de subscripcions a RSS. Així doncs, si a l’empresa tenim un blog podriem emetre un butlletí de notícies de forma automàtica gràcies a aquesta funcionalitat.

  • The Web Interface lets you write and send messages, and manage phplist over the internet.
  • phplist keeps sending messages from your web server, even after you shut down your computer.
  • 100 000 + subscribers. phplist is designed to manage mailing lists with hundreds of thousands of subscribers. phplist is excellent with smaller lists too!
  • No duplicate messages. No ‘forgotten’ messages. phplist manages message delivery with a message queue, ensuring that every subscriber gets the email message, and that no subscribers receive two copies, even if they’re subscribed to more than one list!
  • Open/View Tracking tells you how many users opened your email message. This provides a minimum statistic, as many email clients with privacy or security policies block images (gmail, thunderbird, and others).
  • Click Tracking tracks links and URLs. Statistics can be viewed by message, URL or subscriber.
  • Multiple Subscribe Pages allow you to choose many different combinations of templates, languages, user attributes and lists.
  • Templates are completely customizable, and make site integration a breeze.
  • Multiple Templates on different subscribe pages can integrate phplist with several different web sites.
  • Subscriber Attributes like ‘name’, ‘country’, and other personal information, are completely customizable. You can specify what information you need to get from users when they subscribe.
  • User Specific Content. You can use Subscriber Attributes in message content to make each and every email message personalized with the subscribers name, country, or any other attribute.
  • HTML email messages. Subscribers can be given the choice between text or html email messages. You decide whether subscribers can choose, what the default choice is, and what format a message is sent in: text only, html only, or both!
  • The HTML Editor allows you to edit html messages from phplist using FCKeditor. TinyMCE is also available.
  • Internationalization. phplist is available in English, French, German, Spanish, Portuguese, Traditional Chinese, Dutch, Vietname and Japanese and translation work is in progress for other languages.
  • Easy Install via Fantastico, FTP upload, or SSH.
  • Multiple List Administrators. The super-admin can assign lists to List Managers, who can manage their users and lists. The super-admin user can ‘prepare’ messages that can be sent by list managers to their lists.
  • Subscriber Preferences. Every email message contains personalized URLs for subscribers to update their preferences or unsubscribe. Subscribers can update their own information and keep your database up to date. Unlike most other mailing list managers, in phplist subscribers can change their email address.
  • The User Management tools are excellent to manage and maintain large databases of subscribers.
  • Bounce Processing keeps your database clean of unused and non-existent email addresses.
  • Advanced Bounce handling let’s you teach phplist to distinguish between permanent and temporary message-delivery errors. You can define automated actions on receipt of bounce messages according to matches with your regular expressions.
  • CSV Import and Export. Use CSV and tab delimited files to import your existing list of users or to export the users on the phplist system for use in your in-house database. phplist’s database has a ‘foreign key’ to help keep multiple copies of databases synchronized without duplicating users.
  • Attachments can be uploaded and included in messages for download.
  • Send a Web page. Tell phplist the URL of a web page you want to send to your users, and phplist will fetch it and send it. You can even put subscriber-specific parameters in the URL.
  • RSS feeds can be automatically sent to a mailing list weekly, daily, or monthly.
  • PDF messages can be automatically created and sent as attachments to ensure that your message is seen the way it was designed by all your subscribers, regardless of their email message reader.
  • Batch Processing is useful in shared hosting environments. Set the maximum number of sent messages in a given time period.
  • Throttling can limit the load on your server so it doesn’t overload.
  • Domain Throttling limits the number of emails to specific domains to keep on the friendly side of their system administrators.
  • Scheduled Sending let’s you tell phplist when the message is to be sent.
  • Repetition. A message can be repeated automatically to send updated dynamic content and attachments.
  • Text from HTML. Text email messages are managed fluently in phplist. phplist will automatically create a text version of an html message. Optionally the message composer can create it manually.
  • PGP signing and encrypting (soon).
    Send your message digitally signed or encrypted, or both.
  • Email to Fax (soon).
    Configure the details of your favourite email 2 fax gateway and phplist will send the HTML version of the message as a PDF attachment to your fax gateway. The fax will include the images in the HTML.
  • Integration with other tools. Several systems exist on the internet that integrate phplist with your favourite CMS or blogging tool. Check out the Documentation for a list.

Podcast 1×07: gestió de projectes

Després de molt de temps usant Trac, des de movilpoint hem hagut de deixar-lo d’usar per les seves limitacions i l’hem substituit per les eines que descric en aquest podcast:

  • Mantis – gestió de tickets
  • Dokuwiki – aplicació Wiki
  • CAS – servidor d’autenticacions
  • SCMBug – sistema SCM per enllaçar Mantis i controladors de versions de codi
  • Elastix – software appliance que integra Asterisk i Openfire
  • Openfire – servidor Jabber
  • Asterisk – open source PBX

Després dels enllaços demanar-vos disculpes per l’allargada d’aquest podcast però crec que valia la pena repassar el perquè de tot plegat i les avantatges i inconvenients. Sobretot si voleu aclarir qualsevol concepte o resoldre dubte deixeu comentaris i els respondré en molt de gust.

[display_podcast]

Generador registre SPF pel DNS

Per casualitat he trobat una eina que pot ser molt útil si heu de crear el registre TXT del DNS, amb les dades SPF necessaries pel vostre domini. Curiosament és una web de Microsoft, com que aquesta colla tot ho fan igual s’ha de dir que ho han fet en forma d’assistent.

A més de la mateixa web he extret aquest gràfic que és força explicatiu del que és i com funciona el SPF:

SPF schema

Scroll to Top