Eclipse, JAVA

Dire addio alle NullPointerException velocemente e semplicemente

Uno tra i peggiori e maggiormente insidiosi nemici del buon codice è il lancio di una NullPointerException. Peggiori perché molto frequente e insidiosi perché molto difficile da prevedere se non applicando una buona dose di attenzione durante la scrittura del codice.
Nel tempo sono state proposte varie soluzioni: si va dall’utilizzo di tipi cuscinetto (Optional<T>) alla scrittura di nuovi linguaggi (Ceylon) o di costrutti zuccherosi (Groovy ‘?’), ma nulla di applicabile velocemente e semplicemente al linguaggio Java.

A dire il vero la soluzione era già stata proposta con la JSR-305 il cui processo di inclusione nella specifica Java è attualmente ad un punto morto.
Fortunatamente la comunità di sviluppatori è più rapida ed è presente un’implementazione ospitata su Google Code e presente anche sui repository Maven.

La soluzione proposta sarebbe questa: si applica l’annotazione @Nullable alle variabile che ci si aspetta possano essere null, mentre si usa @Nonnull per quelle che ci si aspetta non possano mai essere null. Semplice e veloce. Ci penserà poi il compilatore/analizzatore statico di codice a verificare che non rischiamo di incorrere nell’odiata eccezione senza volerlo.
Nella versione ottimizzata vi è anche la possibilità di annotare il package per definire una semantica predefinita ed annotare solo le variabili nulle o viceversa.

Si dia il caso che questa sia proprio la soluzione ideale per Java. È infatti sufficiente configurare il proprio IDE per utilizzare queste annotazione nella fase di compilazione del codice ed impedirci così di incorrere in NullPointerException indesiderate. Senza contare che i principali software di analisi statica del codice utilizzano o possono utilizzare queste semplici annotazioni per metterci in guardia da accessi non controllati.

Annunci
Ubuntu

[Ubuntu] Variabili di AMBIENTE /etc/environment

Molte volte è utile inserire delle variabile di AMBIENTE per i vari programmi.

Dalla guida ufficiale di Ubuntu si raccomanda di inserirle all’interno di:

/etc/environment

Invece sconsiglia vivamente di inserirle all’interno di /etc/profile e di /etc/bash.bashrc come di solito si usa fare

link: https://help.ubuntu.com/community/EnvironmentVariables#System-wide_environment_variables

Mysql

[Mysql 5.5] ERROR 2006 (HY000) at line 2169: MySQL server has gone away

Questo errore mi è comparso nel momento in cui ho voluto importare un file da 64MB, all’interno della mia nuova instanza di mysql.

In giro le varie soluzione sono molto semplici, basta andare nella cartella di installazione di mysql:

C:\Program Files\MySQL\MySQL Server 5.5

E modificare il file my.cnf nella sezione

[mysqld]
.....
.....
max_allowed_packet = 64M

La voce max_allowed_packet di default è impostata 1M, che è il motivo per cui mysql non riesce ad importare grandi file sql.

Purtroppo con la versione 5.5, ci sono vari file file my-*.cnf per evitare di impazzire, molto semplicemente, è possibile utilizzare MySQL Workbench 5.2 CE nella sezione: Admin -> Configuration -> Option File, cercare la voce max_allowed_packet e modificarla a mano

 

Successivamente riavviare il servizio di mysql, è sarà finalmente possibile importare il file sql.

 

Windows

[Windows 7] Impostare etc/host, ossia alias per indirizzi IP

Molte volte capita di dover lavorare con un sacco di indirizzi ip, la maggior parte di cui, si scordano dopo due secondi (soprattutto se si lavora in ambiato informatico).

In nostro aiuto può venire un file di impostazione all’interno di windows:

C:\<WINDOWS_DIR>\System32\drivers\hosts

Dove la cartella <WINDOWS_DIR> è la vostra cartella di windows.

All’interno di questo file di testo è possibile impostare semplicemente una coppia di valori:

indirizzo ip              nome alias host

192.168.1.15               test.diego.it

In questo modo quando provate a connetervi con l’indirizzo test.diego.it andrete direttamente all’ip associato, senza la noia di dovervi ricordare tutti i numeri.

nota: nel caso non vi permetta salvare le modiche può essere dovuto a due motivi:

  1. non siete amministratori
  2. avete l’antivirus attivo, che impedisce la modifica.