How to make SonarQube accept tabs instead of spaces for indentation

I’m developing a Java application as a university assignment and I’m using SonarQube for automatic code quality assessment.

Sonar is quite rigorous in spotting errors in code, and this is often useful. But it becomes annoying when Sonar floods the list of problems with multiple messages about the use of tabs instead of spaces for code indentation. Eclipse by default indents code with tabs: I think that this is the right decision and I don’t want to change that setting, even if SonarQube doesn’t like it.

So, how to configure SonarQube to accept spaces?

  1. Start Sonar and go to http://localhost:9000. This is the main dashboard of SonarQube.
  2. Log in using the link in the upper right corner of the screen. Username and password are both “admin” by default.
  3. Click on “Quality profiles” in the upper toolbar. You should see only one profile, called “Sonar way”.SonarQube Quality Profiles
  4. Use the “Copy” link to make a duplicate of this profile. Name the new profile as you want, e.g. “Sonar way (tabs)”.
  5. When it’s done, click on the number relative to the new profile in the “Rules” column. Sonar should come up with a list of active rules.
  6. Use your browser search feature to find the rule named Tabulation characters should not be used”. Deactivate it using the button on the right.
    SonarQube Rules
  7. Using the upper toolbar, go to Dashboards -> Home, then click on your project. You should now be in the dashboard of your project.
  8. Choose Settings -> Quality Profiles.
    Quality profile for project in SonarQube
  9. Select the new quality profile and click “Update”.
  10. Now, in Eclipse, you should force a full analysis of your project. To do this, run the project as “sonar:sonar” profile using Maven.You can also type mvn sonar:sonar in a terminal window in the folder that contains your pom.xml file.
  11. Go again in the SonarQube dashboard. Now you should no longer see the warnings about spaces.

Sovrapposizione di date di appello – segnalazione al Difensore degli Studenti del Polimi

Aggiornamento: meno di 24h dopo la mia segnalazione, il problema è stato risolto spostando l’appello di Meccanica. Un sentito ringraziamento al Difensore degli Studenti del Poli!

Gentile Difensore degli Studenti,

sono uno studente del terzo anno del Corso di Laurea in Ingegneria Informatica, nonché rappresentante degli studenti nel mio CCS.

Desidero segnalare delle inadempienze da parte della Scuola di Ingegneria Industriale e dell’Informazione, riguardanti la violazione di un articolo della Carta dei diritti e dei doveri degli Studenti universitari del Politecnico di Milano, nonché di un regolamento della stessa Scuola.

Nella bozza di calendario esami della scuola di Ingegneria Industriale e dell’Informazione, i primi appelli di Meccanica e Fisica Tecnica della sessione di luglio 2015 si sovrappongono nella stessa data (2 luglio) e nella stessa ora (16:30).

Il Regolamento Didattico del corso di Laurea in Ingegneria Informatica obbliga gli studenti che intendono proseguire gli studi nel corso di Laurea Magistrale a sostenere gli esami di Meccanica e Fisica Tecnica; consiglia esplicitamente di inserirli al terzo anno, piuttosto che in Laurea Magistrale (consiglio che ho seguito, insieme a molti miei colleghi).

Le “Procedure per la Verifica dell’Apprendimento nei Corsi di Laurea della Scuola di Ingegneria Industriale e dell’Informazione” prevedono, al punto 4, quanto segue:

Il calendario delle prove di verifica dell’apprendimento garantisce di norma la non sovrapposizione degli appelli relativi ad insegnamenti dello stesso anno e stesso semestre. Agli studenti laureandi viene garantita la programmazione di una prova entro la data di scadenza consegna verbali solo per gli insegnamenti del secondo e terzo anno di corso.

L’art. 12 della Carta dei diritti e dei doveri degli Studenti universitari del Politecnico di Milano recita quanto segue:

Ogni insegnamento deve prevedere un numero e una distribuzione temporale degli appelli tali da garantire agli studenti una ragionevole programmazione del proprio carico di esami. Il calendario degli appelli deve essere reso noto entro l’inizio di ciascun semestre da parte delle Facoltà. Eventuali modifiche potranno essere concordate tra gli studenti ed il docente del corso.

Il termine per la verbalizzazione degli esami ai fini dell’iscrizione all’appello di laurea della sessione è il 14 luglio: questa sovrapposizione renderebbe dunque impossibile agli studenti laurearsi in tale sessione, anche se perfettamente in regola con la propria carriera universitaria.

Ho segnalato il problema alla Presidenza di Scuola e ai docenti titolari dei due corsi in data 14 marzo; mi è stato consigliato di scrivere alla Segreteria Didattica del DEIB, cosa che ho fatto in data 15 marzo. La segreteria didattica mi ha risposto dicendomi di aver inoltrato la mia mail alla Presidenza di Scuola, in data 16 marzo. Da allora non ho ricevuto risposta.

Sempre in violazione dell’art. 12 della Carta, il calendario definitivo degli appelli non è stato pubblicato entro l’inizio del semestre (9 marzo), e non è ancora disponibile sul sito della Scuola; inoltre, non erano disponibili al 9 marzo le date delle prove in itinere di maggio, né su WebPoliself né sul sito della scuola.

La bozza di calendario per gli esami di luglio è stata pubblicata il giorno 13 marzo (dai metadati del PDF), data della chiusura della finestra di modifica semestrale del Piano di Studi, rendendo nella pratica impossibile agli studenti una scelta di esami tale da evitare sovrapposizioni.

Auspico che un suo intervento possa riportare la situazione alla regolarità.

La ringrazio per l’attenzione e porgo cordiali saluti.

Pietro De Nicolao

BitTorrent: how to make Transmission ignore the “private flag”

2015-01-02 2 commenti

Jack SparrowSome BitTorrent files have a so-called “private flag”, which is a bit in the .torrent file telling the BitTorrent client: “please, disable DHT and peer exchange; use only trackers for the discovery of peers interested in this torrent”. This can be quite useful for private trackers, communities where the files are shared only among the members and should not “leak” outside.

But some not-so-bright people upload torrents with the private flag set on public torrent sites such as The Pirate Bay, forcing all the downloaders not to use DHT. This is meaningless and detrimental to the quality of downloads, because often trackers are taken down and DHT is a very useful, distributed technology that enables us to be less dependent on said trackers.

At this time, all BitTorrent clients enforce the private flag. One can not simply edit the .torrent file stripping out the private flag, because this would alter the hash and make the torrent file invalid. The only way to ignore the private flag is to edit the source code of the BitTorrent client and make it use DHT whether the flag is set or not.

Today I’ll show you how to make this modification to the source code of a popular free and open-source client: Transmission.

I won’t cover here the steps needed to download and compile the source code, since they are OS-dependent and well documented on the Transmission development wiki.

Once you’ve downloaded the source code, all you need to do is to make a little edit to a single line of the file libtransmission/metainfo.c.

Lines 518-522 in the original source tree look like this:

518   /* private */
519   if (!tr_variantDictFindInt (infoDict, TR_KEY_private, &i))
520     if (!tr_variantDictFindInt (meta, TR_KEY_private, &i))
521       i = 0;
522   inf->isPrivate = i != 0;

You only need to edit line 522. It should read, simply: “inf->isPrivate = 0;”. So the modified snippet looks like:

518   /* private */
519   if (!tr_variantDictFindInt (infoDict, TR_KEY_private, &i))
520     if (!tr_variantDictFindInt (meta, TR_KEY_private, &i))
521       i = 0;
522   inf->isPrivate = 0;

We’re telling that every torrent should be treated as “public”. Now save the file, compile the client, locate the executable and use it. Done! No private flag anymore. :-)

Registro elettronico violato? Date un’occhiata a quel software!

Scena del film "WarGames".

Scena del film “WarGames”.

È di questi giorni la notizia di 13 “studenti hacker” che si sarebbero alzati i voti scolastici accedendo al registro elettronico della propria scuola.

Sono molto curioso di capire come gli studenti possano essere entrati nel sistema: se abbiano usato metodi “low tech” (keylogger, ingegneria sociale sui prof., PC lasciati loggati…) oppure abbiano sfruttato vere e proprie vulnerabilità del software. Eventualità, quest’ultima, molto interessante dato che permetterebbe attacchi su più ampia scala con un minimo sforzo (e, volendo, nessuna rintracciabilità).

In attesa di ulteriori news, sono andato a vedere le release notes (note di versione, ossia le descrizioni degli aggiornamenti software) del sistema di registro elettronico più usato dalle scuole italiane, sviluppato da Axios. Ci sono alcune frasi che agli occhi di uno sviluppatore minimamente attento alla sicurezza del proprio software fanno un po’ rabbrividire, e pensare alle SQL injection come ipotetici vettori di attacco. Il testo che segue è integralmente preso dalle release notes del prodotto “Request per registro elettronico” (qui).

In Scrutini vengono controllati e rigetttati, nell’inserimento dei voti, caratteri strani tipo “\” e “/”.

Prima venivano forse interpretati?

Ora si consente di modificare la password inserendo anche lettere.

Ah, quindi prima le password erano composte solo da numeri? Speriamo che almeno fossero di lunghezza sufficiente.

Modificata funzione per accettare sia la , che il . come separatore decimale nei voti

I problemi nel filtraggio dell’input sono spesso un cattivo presagio per la sicurezza di un’applicazione…

Inserito controllo per carattere speciale ‘ in argomenti, commenti e note

Come sopra: sbagliare a parsare gli apici, in particolare, equivale ad implorare di essere bucati con una classicissima SQL injection.

In calcolo media valutazioni il + ed il – vengono considerati solo se preceduti da un voto

Anche qui: prima venivano forse interpretati?

Dulcis in fundo, la pagina di logout del registro elettronico è suscettibile ad un attacco XSS (Cross-Site-Scripting), per esempio col seguente URL:

http://www.sissiweb.it/Secret/RELogOff.aspx?Error_Desc=<b>In questo campo può essere inserito codice arbitrario, anche maligno.</b><BODY ONLOAD=alert(‘XSS’)>

Molti di voi probabilmente non visualizzeranno il popup JavaScript (qui totalmente innocuo) a causa delle protezioni anti-XSS dei browser moderni (controllate la console JavaScript): tuttavia, il codice viene “iniettato” senza problemi nel sorgente della pagina mediante il parametro dell’URL, e questa è una vulnerabilità grave.

In questo articolo ho condotto solamente un’analisi sommaria rispetto alle prime cose che ho visto: sarei deliziato se qualcuno più ferrato di me nel campo della sicurezza informatica riuscisse a trovare altre vulnerabilità nel registro elettronico.

How to block advertisements on uTorrent 1.8.6 for Mac OS X using the hosts file

2014-11-09 12 commenti

uTorrent has made advertisements unremovable with its latest release for Mac (1.8.6): they appear in the left sidebar and there’s no way to remove them, even by editing the advanced preferences.

uTorrent with ads

Luckily, we can simply block the uTorrent ad servers at system-level, editing the hosts file. Using the free network analyzer Wireshark I easily discovered which servers uTorrent connects to, to fetch the ads.

To block those ads, first quit uTorrent. Then open the /etc/hosts file with your favorite text-editor (you’ll need root privileges) and append the following lines:

# uTorrent ads
0.0.0.0 cdn.bitmedianetwork.com
0.0.0.0 static.ap.bittorrent.com

Update: if you need help editing the hosts file, please read this guide on OS X Daily.

Next, trash the ~/Library/Caches/com.bittorrent.uTorrent folder in order to get rid of any cached ads.
Now restart uTorrent, et voila: the ads are gone!

uTorrent without ads

Umberto Veronesi: “il 50% dei nostri giovani fa uso di cannabis”. Ma è vero?

Sul sito de L’Espresso, in data 7 agosto 2014, Umberto Veronesi, eminente scienziato, medico e politico italiano, pubblica un appello per la legalizzazione della marijuana in Italia.

Droga4

Tra gli argomenti a favore della legalizzazione, Veronesi scrive (grassetto mio):

Sono cifre che la dicono lunga sull’inefficacia del proibizionismo, ancor più se pensiamo che, malgrado il numero enorme di carcerazioni, si stima che il 50 per cento dei nostri giovani faccia uso di cannabis, senza calcolare il gran numero di adulti. Dovremmo considerare la metà dei nostri giovani dei criminali?

Ora, già ad una prima lettura, dire che la metà dei giovani italiani fa uso di cannabis sembra una stima davvero eccessiva, anche se si parlasse di un uso occasionale e non abituale.

Ovviamente la fonte del dato non è citata.

Andiamo a vedere i dati, dunque. Ho trovato online il REPORT GPS-ITA 2012: “Indagine sul consumo di sostanze psicotrope nella popolazione italiana 18-64 anni”, a cura della Presidenza del Consiglio dei Ministri, Dipartimento Antidroga. Fonte che dovrebbe essere affidabile, e che sicuramente non ha interesse a sottostimare il consumo di sostanze illegali.

A pagina 92 del report si trovano le statistiche sul consumo di cannabis, e nessuna di queste sembra dare ragione, anche lontanamente, alla stima di Veronesi.

Vediamo ad esempio il consumo nella popolazione generale 15-64 anni, negli ultimi 12 mesi:

Droga1

Lo studio afferma: “Circa il 79% della popolazione si stima non abbia mai assunto cannabis nella vita”. Un dato abbastanza incompatibile con la stima di Veronesi.

Però lui parlava di giovani: nella statistica generale, magari i giovani si drogano tantissimo e gli adulti pochissimo, chi lo sa? Allora vediamo i dati disaggregati per fasce d’età.

Droga2

Vero, con l’avanzare dell’età il consumo di cannabis diminuisce, ma non risulta affatto che metà dei “giovani” assuma cannabis.

Anche la seguente tabella è significativa:

Droga3Stupisce davvero l’uso disinvolto di percentuali, senza alcuna puntuale citazione degli studi, da parte di uno scienziato della statura di Umberto Veronesi.

Ricorso del Polimi sulle lauree magistrali in inglese: il Consiglio di Stato prende tempo

giustiziaIl Consiglio di Stato, esaminando il ricorso del Politecnico di Milano relativo alla sentenza sfavorevole del TAR contro la decisione di erogare tutti i Corsi di Laurea Magistrale in lingua inglese, ha deciso di non emettere una sentenza ma di chiedere prima alcuni documenti. Un mese dopo, ecco il testo dell’ordinanza.

Breve riassunto delle puntate precedenti:

  1. il Senato Accademico del Politecnico di Milano ha deliberato nel 2012 di erogare i Corsi di Laurea Magistrale solo in lingua inglese (con pure il parere favorevole degli studenti);
  2. un gruppo minoritario di docenti, non accettando la decisione, ha fatto ricorso al TAR Lombardia, vincendolo (testo della sentenza);
  3. il Politecnico di Milano ha allora fatto ricorso al Consiglio di Stato (testo del ricorso);
  4. il Consiglio di Stato ha fissato l’udienza di merito per il giorno 11 marzo 2014.

Eccoci dunque alle novità. Il Consiglio di Stato ha deciso, nella seduta dell’11 marzo 2014 (testo dell’ordinanza) di acquisire alcuni documenti e di rimandare l’ulteriore trattazione dell’appello al 25 novembre 2014.

Ecco le richieste del Consiglio di Stato.

Il Collegio ritiene necessario, al fine di decidere, acquisire agli atti la seguente documentazione, in originale o copia autentica:

  • elenco completo degli insegnamenti compresi nel corso di studi relativo alle lauree magistrali o ai dottorati di ricerca esistenti presso il Politecnico di Milano, con la specificazione di quelli per i quali è previsto l’uso esclusivo della lingua inglese e di quelli per quali sia eventualmente previsto l’affiancamento con corsi in lingua italiana;
  • relazione di chiarimenti, a firma del rettore del politecnico di Milano e del ministro appellante, necessaria ad appurare l’attualità dell’interesse all’appello, alla luce della deliberazione del Senato accademico di cui al verbale in data 20 gennaio 2014 relativa all’offerta formativa 2014-15 (dalla quale risulta che dal giorno 16 gennaio 2014, “a seguito di una modifica nell’applicativo ANVUR-MIUR per l’offerta formativa…è possibile inserire quale lingua di erogazione di un corso di studio anche la doppia lingua “italiano-inglese”” e circa i conseguenti provvedimenti adottati, in tal senso, per i singoli corsi di laurea, nonché circa la durata temporale –se condizionata, o a regime- delle stessa modificazione;
  • provvedimento di “modifica dell’applicativo ANVUR-MIUR”, con i relativi allegati anche relativi al testo dell’” applicativo” prima e dopo la modifica.

Come si era capito già da tempo, siamo nel bel mezzo di una battaglia combattuta non con argomenti relativi alla didattica e alla buona organizzazione dell’università, ma tra tribunali e carte bollate. Vedremo chi la spunterà; in ogni caso, anche se venissero annullate le linee guida decise dal Senato Accademico, i Consigli di Corso di Studio proseguiranno il proprio lento – ma inesorabile – cammino verso l’internazionalizzazione.

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 909 follower

%d blogger cliccano Mi Piace per questo: