Posted: febbraio 28th, 2009 | Author: Francesco Apollonio | Filed under: Guide, Programmazione, recensione | Tags: code tips, eclipse, Guide, plugin, program, utility | No Comments »
Sviluppando con eclipse mi sono reso conto che mi mancava una features molto comoda, il code-folding, cioè la capacità di un editor di collassare più linee di codice in una sola nascondendo quelle del blocco successivo.
Normalmente questo è perfettamente funzionante ma solo con determinati blocchi (ad esempio i metodi, le classi etc) e tutto è poco ampliabile.

ad esempio in questo caso il blocco del for non può essere nascosto
Cercando in rete (con enorme difficoltà) ho trovato un progetto (Coffee-Bytes) che permette di fare esattamente questo ma in molti più blocchi ed anche in blocchi “personalizzati” (capirete successivamente cosa intendo).
L’installazione è molto semplice, basta aggiungere tra i link per l’update (Help->Software Updates) l’indirizzo specificato nella pagina web del progetto e successivamente selezionare Coffee-Bytes per l’installazione.

ecco come appare prima di selezionare per l'installazione
A questo punto non rimane che abilitarlo dal menù Window->Preferences :

impostare il nuovo folding
E ricaricando il file java aperto questo è il risultato:

esempio del nuovo code-folding - prima
esempio del nuovo code-folding – dopo
Da notare il blocco personalizzato delimitato da “//[start]” e da “//[end]“.
Happy Coding
Posted: febbraio 27th, 2009 | Author: Francesco Apollonio | Filed under: Guide | Tags: 64bit, apt, debian, dns, kde, kdm, linux, squeeze, utility, X, xmodmap | No Comments »
Dopo tanti anni di perfetto funzionamento il mio laptop ha deciso di lasciarmi (o quasi), sono corso così ai ripari con un nuovo desktop che da tanto desideravo.
Nell’installare la mia amata debian sono incappato in alcuni piccoli problemini, questa “guida” è in primo luogo un promemoria per il futuro.
- KDE: ho provato a utilizzare la versione 4.2 dai repository unstable/experimental (il cubo mi piace molto per switchare tra i desktop
) ma dopo aver configurato tutto quanto (apt-pinning compreso) rimanevo poco soddisfatto della puliza del sistema. alla fine ho deciso di utilizzare i backport della 4.1 (http://kde4.debian.net) per testing.
- AUTO-DNS: avete presente quella comoda opzione (dns-nameservers) di `network/interfaces` che permette di impostare automaticamente i dns di un’interfaccia? necessita del pacchetto `resolvconf` installata
- KERNEL64: compilo il mio primo kernel a 64 bit… ovvio mi dimentico qualcosa: `ia32-compatibility` per la precisione, skype e wine non erano molto contenti della cosa
- XMODMAP: necessitavo di impostare i tasti multimediali della mia tastiera direttamente da KDM subito dopo il login, ecco la soluzione:
aggiungere questo codice:
1
2
3
4
| if [ -f $HOME/.Xmodmap ]; then
/usr/bin/xmodmap $HOME/.Xmodmap
fi
;; |
al file /etc/kde4/kdm/Xsession, automaticamente andrà a caricare i file .Xmodmap presenti nelle home degli utenti.
Posted: febbraio 11th, 2009 | Author: Francesco Apollonio | Filed under: recensione | Tags: files, hard disk, kde, linux, program | 1 Comment »
quante volte vi è successo di non trovare più neanche un megabyte di spazio libero sul disco e non avere la minima idea su come liberarne un po?
questa applicazione che sto presentando è molto utile proprio in questi momenti di sconforto, il suo nome è filelight. la sua funzione è analizzare lo spazio occupato del disco (effettuando una lenta scansione di tutto l’hard disk) e visualizzare un comodo grafico a cerchi concentrici indicando (sia visivamente, che numericamente) lo spazio occupato, ecco un esempio:

grafico di utilizzo della partizione di root
come si può vedere ho 3,5GB di dati in una cartella nascosta (il cestino di KDE per la precisione, ma dato che uso fluxbox :/ ) che probabilmente non avrei mai trovato…
La lettura del grafico è semplice i cerchi diventano sempre più specifici andando verso l’esterno: il cerchio più interno è tutta la partizione di root, poi nel cerchio immediatamente dopo ci sta una grande porzione di ciambella corrispondente alla home e così via…
Una particolare menzione va fatta anche a philesight, un clone del primo ma pensato per essere utilizzato tramite una interfaccia web per visualizzare il grafico di un server remoto.
Posted: febbraio 10th, 2009 | Author: Francesco Apollonio | Filed under: Guide, Programmazione | Tags: internet, ip, mysql, php | No Comments »
Leggendo qua e la ho mi son ritrovato su questa pagina. tante volte avrei voluto conoscere la localizzazione geografica di un indirizzo ip, per svariati motivi: sapere l’origine di un mio visitatore per esempio.
Bene ora tramite questo database mysql è possibile conoscere (approssimativamente) la localizzazione di un indirizzo ip.
Per poterlo utilizzare bisogna avere un server mysql sul quale fare l’import del database, vi consiglio di farlo tramite la linea di comando del server per non avere problemi data la dimensione del file, questo è il comando da dare:
source /path/to/ipinfodb.sql
successivamente è necessario possedere l’indirizzo ip da ricercare (ovviamente
) nella forma `a.b.c.d` e utilizzando la formula:
(256*a + b) * 256 + c
calcolarsi il valore con cui fare la ricerca. Questa è la query:
SELECT * FROM `ip_group_city` where `ip_start` <= 4881709 order by ip_start desc limit 1;
dove al posto di `4881709` dovete metterci il risultato dell’operazione sopra descritta.
Questo piccolo script php fa tutto questo per voi, dovete solo riempire con server, username, password e database:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <?php
if (!isset($_GET['ip'])){
?>
<form action="searchip.php" method="get">
<input type="text" name="ip" /><br />
<input type="submit" />
</form>
<?
} else {
//QUESTO SCRIPT NON È SICURO (NON C'È CONTROLLO SULL'INPUT), UTILIZZATELO SOLO PER DELLE PROVE LOCALI!
$split = explode(".", $_GET['ip']);
$COUNT = (256*$split[0] + $split[1]) * 256 + $split[2];
$QUERY = 'SELECT * FROM `ip_group_city` where `ip_start` <= '.$COUNT.' order by ip_start desc limit 1;';
mysql_connect('localhost', 'username', '');
mysql_select_db("test");
$res = mysql_query($QUERY);
$arr = mysql_fetch_array($res);
echo "Country: ".$arr['country_code']."<br />City: ".$arr['city'];
}
?> |
buon lavoro
Posted: febbraio 8th, 2009 | Author: Francesco Apollonio | Filed under: Programmazione | Tags: bash, debian, linux, utility | No Comments »
avete bisogno che un vostro programma resti sempre attivo ma continua a chiudersi inspiegabilmente e ogni volta dovete riattivarlo a mano?
Questo potrebbe servirvi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #!/bin/bash
PROGRAM="opera"
TIMER="5s"
function activate {
echo -n "Attivo..."
$PROGRAM &
PID=$!
echo $PID
}
while true; do
if [[ -z $PID ]]; then
PID=`ps aux | grep $PROGRAM | head -1 | awk '{print $2}'`
fi
if [[ -z `ps hp $PID` ]]; then
activate
else
echo "Gia attivo: $PID"
fi
sleep $TIMER
done |
una volta configurato impostando le due variabili in alto il resto è presto fatto, basta lanciarlo all’avvio!
Buon lavoro