24 Aug 2014

GitLab sembra aver messo il turbo. Di rientro dalle ferie infatti, aprendo il feed reader che ormai gridava vendetta per la quantità di elementi non letti che avevo, ho visto che proprio ieri è stata rilasciata la versione 7.2 di questo software open source che ho iniziato a usare ormai in ambito di produzione, e che sinceramente trovo di una bellezza (si può dire di un programma che è bello?) disarmante. Ci sono un bel po’ di novità in GitLab 7.2, e arrivano tutte a stretto giro rispetto al mio post dell’altra volta, il che mi ha sorpreso notevolmente. Il changelog è fitto di migliorie per così dire estetiche, ma bando alle ciance, andiamo a vedere cosa ci aspetta con questo aggiornamento:
- Le etichette: adesso le etichette possono essere colorate :-) Se ne facciamo largo uso, sicuramente ci perderemo in mezzo a un bazilione di label diverse assegnate alle nostre issue di progetto. Finalmente è possibile colorare queste etichette, e colorarle non solo di una palette predefinita ma anche di colori personalizzati. Dato che mi sta molto a cuore l’issue management, considero cambiamenti come questo irrisori dal punto di vista teorico, ma ingenti dal punto di vista pratico visto che permettono un colpo d’occhio decisamente più efficace sullo stato di avanzamento dei lavori.
- Le Star: In azienda si usano diversi strumenti per il networking tra dipendenti. Di fatto, col tempo, la Star di GitHub è diventato oltre che un’aggiunta al proprio elenco di bookmark, anche un importante elemento di social networking dato che ha emulato il Like di Facebook. Circa. GitHub se n’è accorto, e per stilare GitHub Explore (ovvero l’interessantissima newsletter che mandano ogni settimana agli iscritti - e voi dovreste iscrivervi, che domande) usa proprio delle metriche parametrizzate sul numero di star che un progetto riceve - oltre che i fork e tante altre cose. GitLab 7.2 può fare la stessa cosa, finalmente, quindi per gli utenti è possibile “starrare” i repository di altre persone oltre che forkarli. Hell yeah!
- Diff unfolding: Questa è una novità molto interessante. Di solito nel diff che ci mostra GitLab le parti nascoste non possono essere visualizzate. Vediamo quindi solo ciò che è inerente il contesto delle rimozioni e delle aggiunte ad ogni file. GitLab 7.2 introduce invece la possibilità di clickare sui puntini di sospensione visualizzati sull’interfaccia web del tra i commit, permettendoci di visualizzare ulteriori parti non cambiate del file, fino ad arrivare a visualizzare tutto, senza esclusioni di sorta. Molto, molto bene - ed è, credo, anche la feature tecnicamente più rilevante di questa versione.
- Pagina Explore rivista: La pagina Explore, che sarebbe quella pagina web dove vengono visualizzati tutti i progetti pubblici della vostra installazione di GitLab, è stata completamente rivisitata in favore di un design più moderno, pulito e meno “brandizzato”, se vogliamo. Sono molto soddisfatto di questa pagina personalmente; mi auguro che anche altre parti dell’interfaccia vengano riviste (magari non quelle relative alla dashboard) per rispecchiare questo design.
Aggiornamento
Beh, abbiamo spolpato abbastanza il changelog - il resto sono caratteristiche della versione Enterprise, o che non mi interessano (:-D). Quello che invece rimane è l’aggiornamento: siccome è il mio primo aggiornamento di GitLab, “recensisco” (e vi mostro in breve) la procedura adesso; pensavo a qualcosa di più complicato, invece per aggiornare la vostra installazione di GitLab 7.1 a GitLab 7.2 basta dare i semplici comandi di seguito.
Per prima cosa, creiamo un backup:
$ sudo gitlab-rake gitlab:backup:create
Dopodiché, andiamo a interrompere le operazioni dei servizi che ci intralcerebbero, scarichiamo il pacchetto, e installiamo la nuova versione:
$ sudo gitlab-ctl stop unicorn
$ sudo gitlab-ctl stop sidekiq
$ wget https://downloads-packages.s3.amazonaws.com/debian-7.6/gitlab_7.2.0-omnibus-1_amd64.deb
$ sudo dpkg -i gitlab_7.2.0-omnibus-1_amd64.deb
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl restart
Gli ultimi due comandi lanceranno la riconfigurazione e la migrazione a GitLab 7.2.
La parte divertente
Già che ci siamo vi racconto anche un aneddoto interessante: non fate gitlab-ctl stop, per nessuna ragione al mondo, oppure arresterete anche Redis e PostgreSQL (o quello che usate come database) - che è quello che ho fatto io al posto di stoppare solo Unicorn e Sidekiq. Il risultato è stato che gitlab-reconfigure ha fallito la migrazione del database, e mi sono dovuto andare a cercare come lanciarla a mano (senza trovare nulla: quello che vedete sotto è un comando inventato sul momento che per puro caso era veramente quello. :-D
Per lanciare manualmente la migrazione del database della vostra installazione di GitLab, aprite una shell e date questo comando:
$ sudo gitlab-rake db:migrate
Tutto andrà a posto, come nei finali delle migliori fiabe.
Buon lavoro a tutti :-)
04 Aug 2014

Siamo nella situazione prevista da Lawrence Lessig nel suo Code. Le leggi le fa il software. La sfiducia nella politica impedisce di ritenere possibile e sensato un intervento democratico.
Luca De Biase fa un degno punto della situazione correlando alcuni fatti di questi giorni, e correlandoli piuttosto bene. Ci sono però alcune precisazioni da fare, e qualche bastonata da dare a chi dovrebbe fare di più ma rimane evidentemente impantanato nel proprio operato.
Perché è vero che le leggi in questo momento le sta facendo il software - o meglio, chi sta dietro a un preciso software - però c'è sempre da dire che le leggi hanno il compito di regolare e in parecchi casi coadiuvare il rapporto tra individui e tra enti; e se i software, per così dire, hanno potere legislativo in questo tavolo è solo perché dovrebbero esserci altri stakeholder immersi in questa trattativa, in questo caso (per l'Italia) drammaticamente assenti.
Dove sono i nostri digital champion? Dove sono le istituzioni, quelle vere? Non sono dell'opinione di Luca, in Parlamento abbiamo diverse figure competenti in materia; è che probabilmente non vengono indirizzate queste competenze nella maniera giusta. Infine, un grosso plauso al concetto del mettere in piedi un'infrastruttura in cui tutti possano muoversi nella norma, senza daneggiare nessuno, e senza il bisogno di costruire la Google Nation. Che sennò poi c'andiamo a rimettere.
Digital champion italiani, vi si aspetta al varco, metteteli voi i paletti ché nessun altro è qualificato per farlo.
Photo courtesy of Daniel Mitsuo
28 Jul 2014

Nonostante in questo periodo stia guardando con interesse qualsiasi notizia proveniente dal mondo open source mi ero perso uno degli aggiornamenti più importanti riguardo - probabilmente - uno tra i miei software preferiti, ovvero GitLab. Il clone open source del sistemone che usa GitHub (non esageriamo, ma in piccolo è così) infatti si è reso veramente molto simile al suo parente chiuso, con alcune feature che, portate in uso stabile in questa release, lo rendono perfetto anche per aziende che dal proprio flusso di lavoro pretendono parecchio anche a livello di frontend per i propri sviluppatori.
Bando alle ciance, il changelog di GitLab 7.1 parla da sé:
- API per i contributor: adesso possiamo prenderci tutti i contributor di un progetto con una singola chiamata API. Statistics incoming! :D
- Discussioni: se c’è una cosa che GitHub sa fare bene, è consentire a persone potenzialmente sociopatiche e omicide di esprimersi verbosamente senza causarsi danni fisici. GitLab ha fatto tesoro di tutto questo, implementando un frontend per le discussioi che permette di tirare in ballo linee di codice, emoticon e quant’altro (persino cambiamenti & co.) senza dover sacrificare nessun gallo nero al signore oscuro. Un grosso passo avanti. Mi scusino gli sviluppatori che si sentono vessati da queste osservazioni… ma lo sapete meglio di me che è vero. Vi vengo a portare le arance al gabbio, prometto.
- Nuova pagina di login: è bellissima. Punto. Forse un filo enterprise, ma ci sta.
- VERSION nella sidebar: se avete un file VERSION all’interno del repository, vi verrà mostrato nella sidebar il contenuto, ovvero il version number. Mai più persi tra mille rilasci ;)
- Milestone di gruppo: semplicemente epico. Se abbiamo un progetto suddiviso in più sottoprogetti, le group milestone permettono di raggruppare tutte le issue di tutti i progetti che appartengono a una milestone nominata ugualmente in ogni sezione. Questo significa che per la milestone “pippo” potremo avere una visione di insieme parecchio ampia per quanto riguarda ogni milestone e chiuderla (o riaprirla per lavori dell’ultimo minuto) con molta più cognizione di causa, esaminando la situazione nel complesso.
È sicuramente un bel traguardo, questo, sia per GitLab che per l'intera comunità open source: avere a disposizione sia GitHub (che ormai è lo standard de facto per tutto quello che viene portato avanti in totale apertura) che un software as-a-service per sviluppare qualcosa di interno dove decidere la disponibilità per il pubblico di ogni repository è un grosso valore aggiunto, dato che naturalmente si abbassano i costi della piattaforma di code hosting, e soprattutto chi vuole può installare il proprio software in-house senza dover dipendere da fornitori con comportamenti ballerini.
Auguri GitLab, ancora una volta :-)
18 Jul 2014

Our decoration API is also showing it’s age. It’s cumbersome to use, too difficult to use. In fact there is a KDecoration and a KCommonDecoration – the latter trying to make KDecoration easier to use by for example providing buttons. The API got extended several times to support more features which are all optional. […] So what makes KDecoration2 better? Obviously it’s no longer QWidget or QWindow based. Instead it’s a pure QObject based API.
La citazione di cui sopra è di Martin Gräßlin, che mi fa sempre impazzire per la qualità eccellente della comunicazione di ciò che accade all’interno del ciclo di sviluppo della decorazione finestre di KDE. In sostanza, adesso KDecoration2 (ovvero il nuovo decoratore delle finestre in KDE Frameworks 5) espone una API basata su QObject, la quale immagino che renderà più flessibile la manipolazione della titlebar in modo da non introdurre solamente oggetti come i bottoni più classici dei classici, ma anche altro.
Un po’ come OS X, per esempio, o le header bar di GNOME Shell. Però fatte un po’ meglio.
11 Jul 2014

Ormai vi è diventato per me uno strumento di costante lavoro. Quando non mi viene richiesto un IDE lo utilizzo per scrivere codice e parecchio altro; soprattutto mi torna utile in tutti quegli ambiti dove un editor grafico seppur buono come Sublime Text non mi serve allo stesso modo. Proprio oggi sfogliando Reddit sono inciampato in un utilissimo video che insegna come usare vi (e conseguentemente anche vim).
Imparàtevelo. Vi servirà, ne potete star certi.
[youtube=http://youtu.be/h1Utc-zsQJI]
Come mi ricorda il mio amico Claudio che sta seduto qui affianco a me in treno a farmi da umarell mentre scrivo (:-D) su Linux potete servirvi di vitutor, che fa la stessa cosa in maniera leggermente più pratica e meno "videata".