[SubVersion] Installazione e configurazione di un server SVN su Linux Debian

In questo articolo si descrivono i passaggi per installare e configurare un server SVN (http://subversion.tigris.org/) su ambiente Linux (Debian) per il versioning del codice sorgente e della documentazione di un progetto.

Per installare l’ultima versione di Subversion presente sulla repository della distribuzione Debian, occorre lanciare da terminale il seguente comando:

$ apt-get install subversion
									

Tale comando scarica l’ultima release di Subversion e risolve tutte le dipendenze. Se si riscontrano problemi, occorre scaricare e installare tutti i pacchetti e procedere con una installazione manuale. Se si usa una distribuzione Linux che non sia Debian o il comando apt-get non è disponibile, leggete l’articolo How to install subversion on Linux and make it working.

Per verificare che l’installazione del server SVN sia andata a buon fine, basta digitare sulla shell il comando svn. Se è tutto ok, potete passare alla creazione della repository. Ecco il comando:

$ svnadmin create /srv/svn/repos
									

Tale comando crea la repository nel percorso /srv/svn/repos/ del vostro server (potete sceglierne anche uno a vostro piacimento). Se tutto è andato a buon fine, ritroverete in tale directory i seguenti file e sottodirectory:

conf/   dav/    db/    format/    hooks/    locks/     README.txt

Di seguito, ulteriori dettagli sulla configurazione e l’utilizzo del server SVN installato.

Continua la lettura

Shoah, il giorno della memoria

Il 27 Gennaio del 1945 le truppe sovietiche dell’Armata Rossa arrivarono ad Auschwitz scoprendo il campo di concentramento degli orrori nazisti e liberando i pochi sopravvissuti al genocidio degli ebrei.

Oggi si celebra il “Giorno della memoria“, in commemorazione delle vittime del nazionalsocialismo e del fascismo, dell’Olocausto e in onore di coloro che a rischio della propria vita hanno protetto i perseguitati.

« La Repubblica italiana riconosce il giorno 27 gennaio, data dell’abbattimento dei cancelli di Auschwitz, “Giorno della Memoria”, al fine di ricordare la Shoah (sterminio del popolo ebraico), le leggi razziali, la persecuzione italiana dei cittadini ebrei, gli italiani che hanno subìto la deportazione, la prigionia, la morte, nonché coloro che, anche in campi e schieramenti diversi, si sono opposti al progetto di sterminio, ed a rischio della propria vita hanno salvato altre vite e protetto i perseguitati.»

[ Legge 20 luglio 2000, n. 211 – Istituzione del “Giorno della Memoria” in ricordo dello sterminio e delle persecuzioni del popolo ebraico e dei deportati militari e politici italiani nei campi nazisti ]

 

La nostra società è ancora impregnata di ideologie xenofobe. L’istituzione di una giornata di commemorazione serve soprattutto a ricordare gli orrori/errori commessi in passato. Serve ai più giovani a osteggiare qualsiasi atto di razzismo e xenofobia, a rispettare la vita e la dignità umana.

Non servono altre parole, basta solo un minuto di silenzio.

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/27/shoah-il-giorno-della-memoria/.

Niente progetti per il futuro?

Non si poteva trovare titolo migliore in un periodo di crisi come questo. Uno spettacolo messo su da due comici “geograficamente distanti” ma molto simili nei contenuti e nell’espressività. Giobbe Covatta e Enzo Iacchetti inscenano “Niente progetti per il futuro” di Francesco Brandi, una parabola contemporanea che racconta con leggerezza una società in crisi, anche dal punto di vista culturale.

Lo spettacolo ha vinto il Premio Flaiano 2009 e il Presidente della Giuria, Masolino D’Amico lo ha recensito così: “Dramma sottile e coinvolgente, spesso imprevedibile, nel rappresentare l’incontro di un semplice garagista con un Vip della televisione, colto e intelligente ma egocentrico oltre ogni limite. Ne esce il ritratto di una società intera, priva di valori e piena di contraddizioni.”

A Roma è possibile partecipare all’evento al Teatro Quirino dal 31 gennaio al 19 febbraio 2012. Dopo averlo visto (dopo il 1 Febbraio), vi scrivo un pò di righe sulla trama e sulle riflessioni che sicuramente ne verranno fuori. Il costo del biglietto è anche esiguo, visto lo spessore dei due comici.

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/26/niente-progetti-per-il-futuro/.

[BugTracker] Installazione di Mantis

In questo articolo, scrivo due righe sull’installazione di un software di bug tracker open-source: Mantis Bug Tracker (www.mantisbt.org). Poiché ho trovato la guida di installazione alquanto incompleta, vista poi la semplicità di setup e configurazione dello stesso, condivido qui la mia esperienza.

Ecco i singoli passi:

  • Download del pacchetto di Mantis dal sito ufficiale: http://www.mantisbt.org/download.php (io ho scaricato l’ultima versione che, ad oggi, è la 1.2.8);
  • Una volta scaricato il pacchetto, occorre scompattarlo e deployarlo nella directory del proprio web server (si richiede un server Apache con supporto a PhP – come segnalato nei requisiti minimi). Io ho usato EasyPhP 5.3, che trovate a questo link: www.easyphp.org; ma vi consiglio anche XAMPP (specie se usate ambiente Unix): www.apachefriends.org/it/xampp.html ;
  • Oltre al web server Apache, occorre mettere su un DBMS per poter permettere a Mantis di creare le tabelle di sistema. Il DBMS che richiede è MySQL (provato con la versione 5) oppure PostgreSQL (ancora sperimentale). Una volta installato il DBMS, basta appuntarsi le credenziali di un utente di root che ci serviranno per configurare Mantis;
  • Deployato il pacchetto scompattato di Mantis nel web server (nel mio caso, ho copiato il pacchetto mantis sotto la directory webapps), occorre installarlo. In primis, occorre rinominare il file config_inc.php.sample in config_inc.php e aprirlo per inserire le credenziali di accesso al database. Per esempio, ho creato un nuovo schema (mantis) in MySQL5, con un utente root (la cui password è root):

# — Database Configuration —
$g_hostname      = ‘localhost’;
$g_db_username   = ‘root’;
$g_db_password   = ‘root’;
$g_database_name = ‘mantis’;
$g_db_type       = ‘mysql’;

$g_default_language= ‘italian’; (questa riga l’ho messa io per settare la lingua di default)

NOTA. La creazione iniziale dello schema si può fare anche in automatico, con il passo che verrà descritto di seguito, ma ho preferito farla prima e mappare le credenziali di accesso nel file conf_inc.php, come suddetto.

  • A questo punto, siamo pronti per lanciare la procedura di installazione automatica, che permetterà a Mantis di creare tutte le tabelle di sistema nel nostro database: http://hostname:port/mantis/admin/install.php (sostituire, come è ovvio, hostname e port con il proprio hostname e la porta su cui espone il proprio web server; mantis è il context-root del pacchetto che ho precedentemente deployato sotto webapps);
  • Seguire la procedura guidata inserendo i campi richiesti (controllando la correttezza delle credenziali di accesso al database).

Se tutto è andato a buon fine, basta accedere alla pagina di login di Mantis (http://hostname:port/mantis/login_page.php) con l’account di amministrazione (di default è administrator, se non lo si modifica nella procedura guidata di installazione, con la password specificata oppure con la stessa del DBMS).

Ricordarsi, per motivi di sicurezza, di eliminare la cartella admin presente nella root di Mantis!

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/24/bugtracker-installazione-di-mantis/.

[Liferay5] Problema cancellazione utente/i da pannello di controllo

Mi è capitato un bug nella cancellazione degli utenti da pannello di controllo di Liferay. La versione incriminata è la 5.2.3. Il sistema ha creato in maniera errata alcuni account utente in fase di registrazione ed, evidentemente, alcune informazioni erano vitali per poter ricercare tali utenze da pannello di controllo, ed eseguire su di essi operazioni di modifica o cancellazione.

Probabilmente, il motivo di errata registrazione era dovuto ad una gestione non transazionale della creazione degli utenti in fase di autenticazione (è stata modificata la classe LoginUtil di Liferay, chiamando un WerbService per recuperare le informazioni di un utente registrato e memorizzando l’account sul db di Liferay, associandolo a gruppi e ruoli predefiniti).

Qualcosa in questi passi suddetti è andato storto, magari per un eccessivo carico di accessi al sistema. Fatto sta che alcuni account contenevano informazioni incomplete (utenze non associate a gruppi/ruoli, dettagli personali non aggiornati, … ) e non erano ricercabili dal quadro di controllo di Liferay e, dunque, nemmeno modificabili o cancellabili. Dopo averci sbattuto la testa e avendo provato diverse strade, la questione si è risolta con la soluzione che sto qui a dirvi, ossia con una cancellazione forzata con uno script SQL sulle tabelle di sistema di Liferay.

Da premettere che la cancellazione di questi account “corrotti” è stata necessaria per permettere a tali utenti di poter accedere al sistema con le proprie credenziali di posta. Liferay riconosce come già registrato al sistema un utente in base alla sua email (o screenName).

So che non è consigliabile mettere le mani sul db di Liferay, ma a mali estremi, estremi rimedi. Non potendo risolvere altrimenti (primo tentativo fatto con una portlet che richiamava le API di Liferay per la cancellazione di un utente – UserLocalServiceUtil.deleteUser(long idUser) – che ha funzionato solo per alcuni utenti), è stato indispensabile ed inevitabile cancellare con una query secca gli account corrotti.

Vi allego la procedura SQL creata (utilizzata su MySQL), che si può adattare anche ad altri DBMS. La soluzione è stata trovata nel forum di Liferay, di cui allego il link in fondo a questo articolo, ma modificando lo script SQL facendo delle cancellazioni puntuali sugli account corrotti e non sui record “orfani” che non trovano un riferimento (idUser) nella tabella User_. Usando, infatti, questa ultima soluzione (segnalata appunto nel post anzidetto), venivano cancellate una serie di informazioni vitali per il corretto funzionamento del sistema.

Ecco come si è proceduto per la cancellazione degli account utente “corrotti” dallo schema di Liferay, con una transazione SQL,:

  1. creazione di una tabella di appoggio (l’abbiamo chiamata USERS_TO_DELETE) in cui abbiamo elencato gli ID degli account da cancellare. Questi ID non sono altro che quelli che si recuperano dalla tabella User_ (colonna userID);
  2. creazione dello procedura SQL che elimina prima tutti record corrispondenti agli ID enumerati al punto 1 dalla tabella User_ e, successivamente, tutti i riferimenti agli stessi nelle altre tabelle di sistema di Liferay;
  3. Nello script SQL è stato mappato staticamente l’id di sistema del model “com.liferay.portal.model.User” (ID=10039 preso dalla tabella ClassName_);
  4. A questo punto, basta lanciare la procedura, a server spento!
  5. Dopo aver riavviato il server di Liferay, basta lanciare da pannello di amministrazione la funzionalità di svuotamento della cache del database (Quadro di controllo >> Gestione del server >> Svuota la cache del database).

Seguendo i precedenti passi, gli account che vogliamo eliminare, con tutte le informazioni correlate, vengono cancellati (in modo definitivo) dal sistema. Importante è l’operazione di svuotamento della cache del database, poiché mi è capitato di veder “magicamente” ricomparire un account cancellato!

Vi allego la procedura SQL e una serie di riferimenti usati per risolvere il problema.

Allegati

Procedura SQL Delete Users Liferay
Titolo: Procedura SQL Delete Users Liferay (0 click)
Etichetta:
Filename: procedure_delete_users_liferay.zip
Dimensione: 1 kB

Vi consiglio di leggere anche:

[Pirateria] Megaupload era qui!

Si è ripresentato l’incubo del blocco di uno dei più importanti siti di file sharing, Megaupload. Chi non ricorda la chiusura di Napster nel 2002, dopo una delle battaglie più lunghe e costose della storia dell’informatica. E’ stato il primo programma peer-to-peer che iniziava a farci apprezzare i vantaggi della rete internet. Chi non scaricava musica, qualche piccolo video, … file di dimensioni non eccessive, viste le velocità delle nostre reti di casa, molte a 56k. Era scontato che lo chiudessero, viste che chi ci andavano a perdere erano le major discografiche; ma era anche facile chiuderlo, perché Napster utilizzava dei server centralizzati. Così alla sua chiusura, l’ultima frase che venne riportata sul sito www.napster.com fu “Napster era qui“.

Poi sono nati i sistemi di p2p che si poggiavano su rete Gnutella (KazAa), il nostro amato “mulo” (Emule, Amule), i torrent (Vuze, BitTorrent, uTorrent) e, man mano che le velocità di download aumentavano, i server di hosting e file sharing (Megauplod, Fileserve, RapidShare, …).

Questi servizi di hosting sono anche detti cyberlocker, cioè permettono la condivisione di file tra gli utenti iscritti al servizio e, per garantire un minimo di legalità, possono/devono eliminare i materiali condivisi su segnalazione dei detentori dei copyright.

Eppure hanno chiuso Megaupload senza la possibilità di potersi difendere. Così da un giorno all’altro. Eppure erano soliti rimuovere materiale protetto da copyright. Ma la cosa peggiore è che si chiude un vero e proprio servizio utilizzato a livello mondiale. E mi chiedo: perché devono decidere  le leggi statunitensi per un servizio che interessa tutto il mondo? E poi il servizio offerto è di file sharing, un po’ come fa la DropBox. Dovrebbero chiudere tutto a questo punto, tipo Youtube, che comunque ha vinto la causa civile nei confronti di Viacom, che l’aveva denunciata qualche annetto fa. Io personalmente se voglio vedere un bel film preferisco andare al cinema, oppure la musica che mi piace la compro (iTunes o addirittura su vinile). Tutto il resto lo vedo, leggo o ascolto online (Youtube è il top per me).

Comunque, la vicenda ha fatto non poco incazzare i pirati e gli hacker mondiali, i quali già si sono vendicati pubblicando un nuovo dominio e mettendo su addirittura un server in Belize: http://megavideo.bz/. Tanto esistono una miriade di altri programmi, hosting per il P2P, che non impediranno mai la condivisione dei file. Vedremo come andrà a finire!

[portfolio_slideshow size=medium autoplay=false random=false centered=true carousel=false navstyle=graphical navpos=top pagerstyle=thumbs pagerpos=bottom]

Vi consiglio di leggere:

 

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/21/pirateria-megaupload-era-qui/.

Il signore delle dita

Ogni volta che lo vedo, nelle mie passeggiate a piazza Navona, rimango affascinato e mi soffermo a guardare un personaggio così particolare. Sarà che il baffetto mi è familiare, sarà che vedo nell’espressione di quell’uomo una grande passione in quello che fa. Gli piace far divertire i bambini, rendere nostalgici i più grandi, strappare un sorriso a chiunque si fermi lì a guardar muovere le sue dita.

Parlo del burattinaio di Piazza Navona, Marcel Gorgone. In una libreria mi sono trovato tra le mani anche un suo libro “Il signore delle dita“, che vi consiglio assolutamente di comprare (lo trovate in parecchie librerie di Roma e su Amazon, anche in formato elettronico – in inglese).

“It is difficult to distinguish fantasy and reality when speaking about Marcel, because he is one of those – few, perhaps a bit more – people who know the concrete dimension of the fairy tale and the chase after it and experience it daily.”

(estratto dalla Prefazione del libro “The lord of the fingers“)

Un giorno poi, che lo stavo di nuovo guardando lì al suo banchetto con i suoi burattini tra le dita, distribuisce dei volantini in cui mi ritrovo i suoi contatti, lo schizzo del suo viso e una sua bellissima frase, che voglio condividere: “Sii sempre te stesso e nessuno potrà dirti di farlo in modo sbagliato“.

Spero di aver attirato la vostra curiosità su questo personaggio. L’ho trovato su Facebook e, appena l’ho aggiunto, mi ha accettato lasciandomi il messaggio “Benvenuto”. Se lo incontrate a Piazza Navona, fermatevi a guardarlo, magari staccate per un attimo da tutto … e volate con la fantasia.

[portfolio_slideshow size=medium autoplay=false random=false centered=true carousel=true navstyle=graphical navpos=top pagerstyle=thumbs pagerpos=bottom]

 

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/16/il-signore-delle-dita/.

[AppMobile] iVagabro

Applicazione Mobile: iVagabro

Pagina Store: Apple Store

Descrizione:  iVagabro è l’app mobile su cui sono pubblicati i fantastici comics, acrilici, stencil, disegni e studi dell’artista romano Gabriele Tamburini.

Requisiti: Compatibile con iPhone 3GS, iPhone 4, iPhone 4S, iPod Touch (terza generazione), iPod touch (4a generazione) e iPad. Richiede l’iOS 4.2 o successive.

Categoria: Mode e tendenze

Tecnologie: XCode 4; iPhone 4; MacOx 1.6 (Lion) – Linguaggio: Objective-C; Framework e Librerie: Google Map API (per le mappe Google), GoogleData Library (per video Youtube), ASIHTTPRequest (per le chiamate HTTP client-server), Three20 (per la gallery)

[portfolio_slideshow]

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/14/appmobile-ivagabro/.

[AppMobile] LuBannApp

Applicazione Mobile: LuBannApp

Pagina Store: Apple Store

Descrizione: LuBannApp è l’applicazione mobile de LuBannaiuolu.net, la Community online di Calabritto e Quaglietta.

Requisiti: Compatibile con iPhone, iPod touch e iPad. Richiede l’iOS 4.2 o successive.

Categoria: Social Network

Tecnologie: XCode 4; iPhone 4; MacOx 1.6 (Lion) – Linguaggio: Objective-C – Framework e Librerie:  ASIHTTPRequest (per le chiamate HTTP client-server), Three20 (per la gallery)

[portfolio_slideshow]

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/14/appmobile-lubannapp/.

[SitoWeb] Il Filebo

Sito web: Il Filebo – Virgilio Del Guercio

URL: www.virgiliodelguercio.it

Descrizione: Sito web dell’artista calabrittano Virgilio Del Guercio. Pubblicità, gallery ed eventi; Personale.

Tecnologie: Joomla 1.5 – Linguaggi PHP5, CSS2

[portfolio_slideshow]

Creative Commons License
This work by Francesco Ficetola is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/01/14/sitoweb-il-filebo/.