Categories
altri linguaggi cazzate di tutto un po' fumetti

Due nuovi libri all’orizzonte

Se lo scorso anno, con il GrUSP vi abbiamo deliziato con il nostro primo libro su PHP, quest’anno lo faremo con quello su Javascript. Infatti per FAG Edizioni, insieme ad altri autori, sto scrivendo Javascript Best Practices. Se tutto va bene, ed i ritardatari finiranno per tempo i loro capitoli, vedrete il libro a Verona durante il prossimo JsDay. Così come per PHP Best Practices anche questo libro è un cookbook dove ogni capitolo affronterà uno specifico argomento legato a Js. Si parte quindi dai LocalStorage, a me molto cari, passando dagli ambienti di test automatico, a CoffeeScript, Node.Js e Pattern di sviluppo.

Affiancato a questo libro, ed all’organizzazione di tre conferenze diverse (anzi quattro), ho iniziato a lavorare (grazie alla mancanza di sonno indotta da cause esterne) a qualcosa di diverso.

Categories
lifehack php

Zend Server 6 and phpMyAdmin on OSX

I would never imagined to write a post on OSX, moreover in english, but time changes everything.

After I installed the new version of Zend Server 6 I had some issue with phpMyAdmin. A laconic

#2002 - Connection refused
The server is not responding (or the local server's socket is not correctly configured).

is shown up on chrome with no mercy.

The fix is quite easy as it subtle, open

/usr/local/zend/var/apps/http/__default__/0/phpmyadmin/3.5.6.0/config.inc.php

and change

$cfg['Servers'][$i]['host'] = '127.0.0.1';

with

$cfg['Servers'][$i]['host'] = 'localhost';

that’s it.

Categories
php webdev

Export GitHub issues as CSV with v3 API

That’s a very little snipplet/hack to retrieve the issue with curl and php. If you have time take a look to the official GitHub v3 API to create something better ;)

curl -u ":user" https://api.github.com/repos/:user/:repo/issues?per_page=1000  > issue.json

note that I have to use per_page parameter because since v3 API all the results are all paginated by 30. I used CuRL externally from php (I’m lazy) but you can implement the API call as you like.

Then create a php file like this:

<?php
// issues.php
$file = fopen('./issue.json', 'r'); 
$content = fread($file, filesize('./issue.json')); 
$issues = json_decode($content); 

// I retrieve milestone, issue number, state, title and description
foreach ($issues as $i) { 
  echo $i->milestone->title.";".$i->number.";".$i->state.";".$i->title.";".$i->body."\n\r";
}
?>

and execute it to have issues on a csv file

php issues.php > issues.csv

That’s all!

Categories
di tutto un po' eventi php tecnologia

Novità dal fronte: phpDay e jsDay 2012, nuovi business model e startup

jsday Manca ormai una settimana all’evento che con gli altri ragazzi del GrUSP abbiamo iniziato ad organizzare a Novembre: jsDay e phpDay. I programmi di entrambe le conferenze sono saturi di relatori di gran calibro e parlare nella stessa conferenza insieme a Douglas Crockford mi fa sentire un po’ un privilegiato *.

phpday Cosa interessante è che se lato jsday il trend è quello dei videogiochi, tra le oltre 100 proposte molte vertevano sullo sviluppo di giochi per browser, lato phpday uno dei problemi più sentiti è quello del deploy (e successivo mantenimento) del codice. Insomma due mondi che, nonostante siano molto vicini concettualmente (sempre di “web” si parla), si stanno allontanando molto dal punto di vista delle problematiche degli sviluppatori.

Sempre con/per il GrUSP ho coordinato la scrittura (a 2 dozzine di mani) del libro PHP Best Practices, edito da FAG Editore, che verrà presentato al phpDay. Il libro è un cookbook di circa 400 pagine che tratta svariati argomenti, dalla partecipazione alla community di PHP fino a come fare deploy con Ant… Prendete un assaggio dal sito ufficiale e ricordatevi che parte dei proventi vanno all’associazione.

Categories
php tecnologia

Silex, phar e mongodb su DreamHost

Qualche giorno fa ho voluto sperimentare una microapplicazione Silex sul mio account DreamHost ed ho notato, con un po’ di disappunto, che nè il modulo PHAR nè quello Mongo erano attivi sul server.

Fortunatamente DreamHost permette di personalizzare la versione del PHP.ini che gira sul proprio account abilitando (o compilando) i moduli mancanti.

Ecco come ho fatto a risolvere i vari problemi che mi affliggevano.

Categories
lifehack webdev

3 giorni, 3 talk, 1500Km

Era da un anneto abbondante che non mi capitava di fare una tournè su tutto il territorio italiano con talk che spaziano da html5 fino al lean, ed invece pare proprio che metà-fine Marzo sarà un periodo molto impegnativo a riguardo.

Si inizia il 21 marzo con il php.to.start a Torino, organizzato dal PUG Torinese (sono sempre più orgoglioso di aver contribuito alla nascita dei pug locali) dove parlerò di come vivere su internet senza essere (per forza) una web agency.

Il 22 pomeriggio sarò invece a Bologna ad un Meetup organizzato da Intel nel programma Intel AppUp University come relatore sulle potenzialità di HTML5 ed un piccolo intervento/tutorial sui sistemi di storage client side (ormai mio cavallo di battaglia).

Stesso argomento tratterò il 24 a Roma durante il CodeMotion nel talk che ormai sto portando in giro da un annetto e che, pare, sia abbastanza richiesto.

Vi ricordo inoltre che il 13 Aprile ci sarà il Mobile PHP a Milano evento/barcamp gratuito ed aperto a tutti che verterà sull’utilizzo di PHP a supporto del mondo mobile.

Ci vediamo in giro!

Categories
open source tecnologia

PHP and MongoDB Web Development Beginner’s Guide, una review

PHP and MongoDB Web Development Beginner’s Guide” è un libro consigliato a chi vuole approciarsi a MongoDB con un approcio molto pragmatico ed orientato ad esempi concreti.

Nel libro, piuttosto che affrontare tutta la teoria dietro ai database documentali, si spiegano, capitolo per capitolo, le funzionalità che questo database NoSQL mette a disposizione degli sviluppatori e come possano essere sfruttate in piccoli progetti.

Ogni capitolo infatti tratta uno specifico aspetto di MongoDB, tralasciando i primi due capitoli più introduttivi alle funzionalità di base del sistema viene spiegato come usare Mongo per gestire (trasparentemente) le sessioni di PHP, geolocalizzazione di dati, storage di file con GridFS ed i log/analitiche del proprio sito. Viene dato anche un po’ di spazio alle pratiche di Map/Reduce anche se avrei approfondito il capitolo con qualche esempio più complesso.

Il libro è scritto abbastanza bene, e stranamente, gli esempi di codice PHP sono ad oggetti e vengono illustrati alcuni dei pattern usati. Unico limite del libro è che non vengono descritte le funzionalità avanzate di Mongo come sharding, load balancing e replicazione, ma da una beginners guide non ci si poteva aspettare altro.

Insomma, un buon punto di inizio, ma non di arrivo, per chi si vuole avvicinare a MongoDB.

Categories
lifehack pensieri webdev

Sulla riusabilità del codice

Passando molto più tempo a gestire la (follia della) gente che sul codice ho iniziato a rivedere alcuni concetti a me cari durante la mia precedente, e forse futura, vita da sviluppatore. Uno di questi è la riusabilità del codice.

Il primo tarlo sull’argomento si è presentato quando, durante l’Agile Day di Roma, mi è stato chiesto se in ideato reinventavamo la ruota ogni volta e per ogni progetto. In quell’occasione la mia risposta, data di getto e senza pensarci troppo, fu: “utilizzeresti del codice (anche tuo) scritto 4 anni fa?“. Il principio di base è che in 4 anni la tecnologia (sul web) evolve tantissimo, ed allo stesso modo evolvono le competenze dei team, riutilizzare quindi codice obsoleto e potenzialmente legacy non fa altro che limitare le potenzialità di uno sviluppatore (riducendo in alcuni casi la qualità globale del progetto).

Categories
pensieri tecnologia

HP cederà le linee di produzione dei pc?

Come qualcuno di voi avrà letto pare che dopo aver risentito della maledizione Palm (notate come tutte le aziende che comprano Palm o prodotti/marchi di Palm ad un certo punto, a prescindere dalla qualità insita del prodotto, lo dismettano?) HP abbia deciso di non produrre più hardware sul sistema operativo web oriented per eccellenza.

A seguito della notizia ne è arrivata una, a mio parere, più triste: HP sta valutando di dismettere anche la linea di produzione PC.

Categories
lifehack php tecnologia webdev

Zend Server e WordPress 3.x

Collaborando con Zend Italia, e con il buon Enrico, alla preparazione di un micro-benchmark su WordPress è emerso, tra le altre cose, che il CMS in questione non ama particolarmente il sistema di Page Cache dello Zend Server.

Questo avviene perchè il primo, non potendo comunicare al secondo la modifica di una pagina (ad esempio dovuta ad un commento), riceve dal sistema di caching sempre e solo lo stesso contenuto. Dopo un paio d’ore di studio delle API dello Zend Server e delle action di WordPress è emerso un simpatico snipplet che permette di usare direttamente il CMS in situazioni di grosso carico di lavoro senza doversi appoggiare a plugin di caching (come ad esempio il pur sempre ottimo W3 Total Cache) e lasciando quindi l’installazione di WordPress la più pulita possibile.

Qui di seguito il proof-of-concept (funzionante) del codice in questione.