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.

Categories
lifehack tecnologia webdev

QR Code bookmarklet

fullo.netSe vi piacciono i QR Code, come quello che vedete qui a sinistra sappiate che google mette a disposizione un comodo tool per la generazione on-fly degli stessi.

Per comodità ho creato una piccola bookmarklet che invoca il servizio e genera automaticamente l’immagine.

Per usarla, copiate questo codice all’interno di un bookmark:

javascript:window.open('http://chart.apis.google.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl='+document.location);void(0);

o, più semplicemente, trascinate questa QR Code Bookmarklet sulla vostra barra degli indirizzi.

ciuaz

Categories
lifehack pensieri webdev

Il problema del refactoring

Dare una stima dei costi per il refactoring di un progetto, senza prima averlo analizzato sarebbe come cercare di curare una malattia senza investire tempo e denaro in analisi mediche.

Fullo, mail a cliente anonimo

Sempre più spesso in Ideato ci arrivano richieste per riprogettare, rifattorizzare ed ottimizzare software già in produzione. Ovviamente chi chiede informazioni sui costi si ferma ad un misero «ma quanto mi costa?» senza però ascoltare le due/tre cose che sappiamo sull’argomento (mica ci abbiamo scritto un libro sul refactoring per hobby, no?).

Uno degli ultimi casi che mi è capitato riguarda la riprogettazione (a tutti i livelli, dall’UX alla sistemistica) di un portale da fare in partnership con altre aziende con cui stiamo lavorando già da tempo. Solo la fase di preventivazione di massima è costata a tutti parecchio tempo perchè, come al solito, non c’erano idee chiare da parte del cliente che è stato accompagnato mano nella mano in tutta l’attività.

Il quale, però, è ovviamente caduto dal pero vedendo che nel preventivo di analisi mancava la stima dei costi per il refactoring.

Ecco quindi spiegata la metafora che introduce questo post.