Catturandi

Sto rileggendo il libro scritto da un ispettore di polizia della “sezione catturandi” della Squadra Mobile di Palermo.

Racconta come lo Stato stia efficacemente combattendo “cosa nostra” con tecniche di spionaggio raffinate, ma soprattutto con uomini coraggiosi pronti a sacrificare la propria identità, sicurezza e libertà per donarle alla Sicilia onesta.

Appostamenti, pedinamenti, controllo del territorio, intercettazioni ambientali e telefoniche.

Tutte attività che richiedono capacità fuori dal comune; spesso romanzate dai telefilm di successo.

A questi uomini, che agiscono nel silenzio e per uno stipendio “normale”, va tutta la mia considerazione e riconoscenza.

FLAG

FLAG (Forensic and Log Analysis GUI) is an advanced forensic tool for the analysis of large volumes of log files and forensic investigations.

PyFlag features a rich FeatureList which include the ability to load many different log file formats, Perform forensic analysis of disks and images.

PyFlag can also analyse network traffic as obtained via tcpdump quickly and efficiently.

Since PyFLAG is web based, it is able to be deployed on a central server and shared with a number of users at the same time. Data is loaded into cases which keeps information separated.

PyFlag is available under the terms of the GPL for anyone to use, modify and improve.

See more on PyFlag website

Foundations of Agile Python Development

Pur non essendo un programmatore professionista ho scritto un certo numero di righe di codice. Se mi dovessero chiedere qual’è il mio linguaggio di programmazione preferito risponderei Python.

È semplice ed immediato ed offre al programmatore la possibilità di rendere le cose più complesse, robuste e strutturate affidandosi alla programmazione ad oggetti e ai pattern.

Se siete innamorati del linguaggio Python questo manuale fa per voi. Applicando i numerosi suggerimenti sulla “programmazione agile”, incrementerete la vostra produttività.

“Foundations of Agile Python Development” è il primo libro che leggo sulla programmazione agile. L’autore, Jeff Younker, è quello che si direbbe “un guru” nella comunità dei pitonisti agili.

Hylafax

Articolo in itinere

in /etc/inittab
# Hylafax
S0:2345:respawn:/usr/sbin/faxgetty ttyUSB0
S1:2345:respawn:/usr/sbin/faxgetty ttyS0

in /etc/rc.local
# Hylafax
/usr/sbin/faxmodem ttyUSB0
/usr/sbin/faxmodem ttyS0

Avete problemi con il vostro centralino VOIP e le chiamate in entrata ?

Ragazzi. scagliate la prima pietra. Chi non si è trovato davanti ad un centralino VOIP perfettamente configurato che fa le chiamate in uscita ma non accetta le chiamate in entrata.
A volte una distrazione gioca brutti scherzi.
In questo caso basta selezionare dal menu di sinistra lavoce “General settings” e selezionare “Yes” sul parametro “Allow Anonymous Inbound SIP Calls?” …

P.s.: lo confesso: ci ho sbattuto il grugno per due ore prima di riuscirne a venire a capo …

Intelligenti pauca!

Ieri, sull’affollatissima battigia di Mondello, mi è capitato di chiacchierare con un simpatico signore. Un dirigente generale di una pubblica amministrazione.

“Spendete troppi soldi e male!” è stata la frase chiave del mio ennesimo “pacifico” tentativo di far capire, a chi può spendere e decidere, in una pubblica amministrazione, che cosa effettivamente sia l’Open Source e quali siano i vantaggi che se ne possono trarre.

Il comparto della cosiddetta “ICT” in Italia sta attraversando una crisi che non conosce precedenti, figlia peraltro di una crisi ben più grande che qualcuno è riuscito fino ad ora a nascondere grazie alla fortunata coincidenza di eventi climatici, disastri ambientali nel giardino del vicino di casa e i mondiali di calcio.

Ci si chiede come si possa recuperare competitività e riguadagnare quella valenza sul mercato che ormai si è inesorabilmente persa a vantaggio del fattore prezzo. Come sostengo da anni, l’adozione delle soluzioni Open Source nella Pubblica Amministrazione potrebbe essere la soluzione rilevante per tutto il settore.

Evito ogni considerazione sull’esito mediocre (per non parlare di totale fallimento) di alcuni progetti pregressi, nati sulla scorta dell’emotività e della possibilità di alcuni “eletti” vicini a chi chi decide, di “rinnovarsi” riciclandosi come “esperti” di Open Source.

Senza fare questioni di religione, non si può parlare di “modello Open Source” incastrando il tradizionale modo di produrre software in una serie di aziende vuote che nascono con l’unico scopo di “creare” poltrone di lavoro per politici parcheggiati in attesa delle prossime elezioni.

Non si nemmeno far passare come una lodevole iniziativa l’adozione dell’Open Source sottoforma di “scopiazzamento” alla bell’e meglio di programmi liberamente prelevabili dalla Rete e utilizzati al posto di equivalenti commerciali, se questi programmi vengono poi installati ed utilizzati da personale che costa 1.000 euro al giorno alla Pubblica Amministrazione.

La scelta dell’Open Source, più che sul risparmio, va centrata sul lato progettuale e sullo sviluppo a lungo termine. Impiegando quindi più specialisti rispetto all’utilizzo di un pacchetto commerciale che richiede invece del personale certificato e lascia margini di manovra più bassi.

Recuperando molti validissimi programmatori e analisti che potrebbero, grazie alla filosofia della community, sviluppare nuove soluzioni, soluzioni anche molto innovative, anche esportabili, si darebbe una vera opportunità di lavoro e si spenderebbero senz’altro meglio i soldi pubblici.

Spesso le soluzioni Open Source sono meno avide di risorse, perché frutto di una migliore progettazione e di un processo di revisione continua che difficilmente si riscontra nel software commerciale. La conseguenza indiretta è che si abbassano le specifiche sull’hardware, consentendo, in molti casi di dilatare i tempi di utilizzo delle apparecchiature già in dotazione.

Viene il dubbio, ovvio, che vi sia una sorta di accordo massonico tra produttori di certi software commerciali e produttori di hardware, ma è il loro mestiere e le loro preoccupazioni sono quelle di trarre il massimo profitto dal cinese che assembla le piastre madri per 100 euro al mese, non quello di “liberare” le specifiche hardware per agevolare la comunità Open Source.

Faccio riflettere su questo aspetto, molto importante, quando mi si dice che sostenere l’Open Source significa sostenere lo sfruttamento o il lavoro gratuito. Ribadisco: le multinazionali che stanno dietro al telefonino di ultima generazione o al computer multicore usato per scrivere lettere con Word, sfruttano manodopera dell’Estremo Oriente per compensi dieci volte inferiori a quelli di un equivalente operaio specializzato europeo o americano.

Sul piano dello sviluppo del software, poi, si smetterebbe di comprare all’estero, pagando così il prodotto di altri rimanendo legati mani e piedi a fornitori monopolisti.

Pagando programmatori italiani, finalmente la spesa della pubblica amministrazione servirebbe a rilanciare il mercato: cessando l’emorragia di denaro pubblico che finisce nelle tasche dei soliti noti che erogano consulenze e vendono prodotti che, guarda caso, sono sempre quelli che poi finiscono per essere i migliori.

Chi crede nello sviluppo comune del software come bene da condividere, chi crede che la conoscenza condivisa sia un valore universale, come l’aria che respiriamo e l’acqua che beviamo, difficilmente potrà indossare la giacca e la cravatta e sedendo accanto al ministro di turno, adularlo o addirittura corromperlo al fine di dirottare somme ingenti in progetti inutili o dagli importi gonfiati al solo scopo di consentire il mantenimento della pletora di “poltrone di lavoro” di cui parlavo prima.

Insomma, sono convinto, ma chiedo conforto, che una forte diffusione dell’Open Source, senza incorrere in scelte binarie, potrebbe essere un forte aiuto alle aziende italiane dell’ICT che pagano programmatori italiani che poi spendono soldi nei negozi italiani dove lavorano altri dipendenti italiani che pagano le tasse in Italia…

Intelligenti pauca!

MySQL peanuts

I never liked a MySQL database server, IBM DB2 I preferred and then finally I switched to PostgreSQL. Unfortunately, to fill the stomach (cit. “rotellaro”), I’m often forced to interact with MySQL. Below here some peanuts knowledge gathered during my work.

Export a table in ‘.csv’ format

mysql -u[username] -p[password] [nome_database] -B -e "select * from \`[nome_tabella]\`;" | sed ‘s/\t/","/g;s/^/"/;s/$/"/;s/\n//g’ > /var/www/html/exported_table.csv

Example of dataset
If you use a dataset to work for a very large production MySQL database. Let’s see how to deal withmysqldump

mysqldump --opt --where="true LIMIT 5000" dbinproduzione > miodbditest.sql

that allows a new database with 5000 records (maximum) for each table. If we were to act on the size of a single table

mysqldump --opt --where="true LIMIT 5000" dbinproduzione tabella > miodbditest_tabella.sql

How to restore data

mysql -p mio_stage_di_test < miodbditest.sql

Copy all databases on a remote server as individual files

for I in $(mysql -e 'show databases' -u root --password=root -s --skip-column-names); do mysqldump -u root --password=root $I | gzip -c | ssh user@server.com "cat > /remote/$I.sql.gz"; done

Dump MySQL database from remote server to local server

mysqldump --host=[palermoserver] --user=[binnu] --password=[votapdl] -C pizzini_db | mysql --host=localhost --user=[localuser] --password=[localpassword] db_pizzini

To backup a really big database to a remote machine

mysqldump -q --skip-opt --force --log-error=dberror.log -uroot -ppassword databasename | ssh -C user@server 'cd /path/to/backup/dir; cat > databasename.sql'

using the --skip-opt you don’t allocate full database in RAM.

Import database

mysql>use [nomedatabase]; mysql>source [nomefile]

Create MySQL user

CREATE USER IDENTIFIED BY 'password';

CREATE USER username IDENTIFIED BY PASSWORD 'password';

If you also wish to abandon MySQL and move to PostgreSQL contact me

How to dump a single table of a database to file

mysqldump -u [username] -p [nomedb] [nometabella]> [nomefile]

Dump the whole database (with lock)

mysqldump --lock-tables --opt [nomedatabase] -u [username] --password=[password] | gzip > [nomefileesportato]

Dizionario enciclopedico di Informatica


A scuola i dizionari li ho usati per dovere, specie per affrontare prove di latino e francese, che non ho mai amato ma che mi hanno insegnato che nella vita è necessario inghiottire rane anche vive, per andare avanti.

Quando ho cominciato a studiare per conto mio l’inglese attingevo dal dizionario per ricopiare a mano le definizioni delle parole nuove su quaderni-rubrica con le pagine divise per lettere.

Negli anni ho arricchito la mia biblioteca con altri dizionari: monolingue, bilingue, sinonimi e contrari. Anche di lingue che ho solo lambito, come l’arabo e lo spagnolo.

Oggi ne uso due soli, ma intensamente e quotidianamente: lo Zingarelli e l’Etimologico della lingua italiana, entrambi della Zanichelli.

Di recente ho potuto apprezzare l’ottima fattura del Dizionario enciclopedico di Informatica, sempre di Zanichelli. È uno strumento indispensabile per la comprensione e la traduzione della terminologia informatica, entrata ormai appieno nella vita
quotidiana.

Si spazia dai termini usati nei settori tradizionali dell’informatica come le basi di dati, la grafica, la teoria e l’analisi di algoritmi, giungendo all’architettura dei calcolatori, i sistemi operativi, lo sviluppo del software.

L’ultima edizione in mio possesso riporta anche numerosi neologismi legati agli aspetti sociali dell’informatica e i più noti termini gergali e di uso comune.

Come sempre Zanichelli ha un occhio di riguardo per chi usa Internet (in effetti potrebbe risultare scomodo portare appresso il dizionario, sebbene non sia di dimensioni eccessive).

È sufficiente inserire il codice riportato sul bollino SIAE nel frontespizio per accedere al sito per l’attivazione della licenza e proseguire con la consultazione on line.

Dizionario enciclopedico di Informatica
Inglese-Italiano Italiano-Inglese
di Daniela Cancila e Stefano Mazzanti
784 pagine
oltre 20.000 lemmi

Per acquistarlo, vai direttamente sul sito di Zanichelli

Storia dell’hacking…

Spring Security 3

La sicurezza è un fattore critico per qualsiasi applicazione Web. Le applicazioni vulnerabili attraggono gli hacker. Questo libro è uno strumento di lavoro per gli sviluppatori Java: insegna come fronteggiare le problematiche di sicurezza utilizzando la libreria Spring.

Potrete apprendere come funzionano le applicazioni in uno scenario reale e quali sono le minacce più recenti. Inoltre viene spiegato come combinare Spring con i più comuni sistemi di autenticazione: LDAP, OpenID, CAS, Kerberos e Active Directory.

Il libro ha la solita parte iniziale con la panoramica sui concetti di base sulla sicurezza e sulla configurazione (corretta) delle applicazioni prima che siano rilasciate in produzione. Come filo conduttore per gli esempi viene adottato un sito di e-commerce basato su JSP. A mano a mano che si leggono i capitoli, si imparerà a “rinforzare” la propria applicazione simulando appunto quello che succede nel mondo reale.

Il libro conclude con le istruzioni per migrare da Spring Security 2 a Spring Security 3.