giovedì 31 marzo 2016

Promemoria: domande prima di accettare di prendere in carico un software

Elenco delle domande da fare (cioè delle risposte da ricevere chiaramente per iscritto) ogni volta che mi fanno ereditare un progetto software fatto da altri.

Sviluppo:

- come si fa a installare i tool di sviluppo?
- devo usare per forza il vostro IDE? se sì, perché?
- compilatori e librerie: state usando le versioni più recenti? se no, perché?
- come e quando vanno aggiornati compilatori e librerie? a chi fare riferimento?
- quale sistema di version control si usa per i sorgenti? a chi fare riferimento?
- quali sistemi di bug tracking? sono integrati col version control? a chi fare riferimento?
- quali convenzioni occorre rispettare nel codice?
- cosa si usa per la documentazione?
- chi e quando fa la revisione del codice?
- c'è un database? viene aggiornato? c'è un DBA a cui fare riferimento?

Collaudo:

- come si fa il deploy di prova? e in ambiente di collaudo? e in rilascio?
- chi e come conferma la correttezza dei deploy? se fallisce, chi e quando se ne deve occupare?
- chi e come può accedere ai log? posso accedere ai log aggregati? se no, perché?
- come si eseguono i test? i test disponibili coprono tutta la casistica?
- riguardo alla sicurezza, ci si può già fidare a mettere il progetto in "produzione"?
- quale è normalmente il carico di lavoro? come si può misurare?
- può sopportare carichi improvvisi e imprevisti? si può verificare?

Esercizio:

- come posso sapere se una mia modifica ha drasticamente rallentato o appesantito il sistema?
- cosa perde il cliente in caso di disservizio in esercizio?
- il contratto col cliente prevede una SLA? chi è il responsabile che la deve assicurare?
- le violazioni alla SLA sono trattate come bug del software?
- in caso di disservizio dovuto a fattori esterni, entro quanto tempo deve tornare operativo il sistema?
- cosa deve succedere in caso di disservizio iniziato in giorni festivi?

mercoledì 30 marzo 2016

Promemoria installazione Ubuntu 16.04

Dopo l'installazione di default e dopo aver aggiornato i pacchetti:
sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove

sistema:
sudo apt-get install psensor indicator-multiload vinagre moserial guvcview gnome-tweak-tool unity-tweak-tool lighttpd vsftpd wireshark traceroute u-boot-tools lm-sensors gconf-editor xsel gparted vim ssh ubuntu-restricted-extras ncftp units minicom powertop smartmontools arj nmap

n.b.: il pacchetto xsel serve per usare dalla shell:
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

altri browser:
sudo apt-get install chromium-browser midori arora epiphany-browser qupzilla flashplugin-installer

creatività:
sudo apt-get install gimp audacity gnuplot5-qt povray openshot inkscape xournal sweethome3d lyx

social: solo IRC grafico e Twitter da command-line:
sudo apt-get install hexchat twidge

multimedia:
sudo apt-get install xawtv pavucontrol vlc mplayer mencoder flac lame id3v2 youtube-dl 

emulazione/simulazione:
sudo apt-get install wine dosbox dosemu virtualbox-qt virtualbox-guest-additions-iso

un po' di fonts aggiuntivi:
sudo apt-get install fonts-isabella fonts-linuxlibertine ttf-aenigma ttf-adf-* ttf-anonymous-pro ttf-sjfonts ttf-tiresias ttf-mscorefonts-installer

programmazione: Rust ancora non è installabile dai repository ufficiali, dunque:
sudo apt-get install ruby z88dk git arduino netpbm exif gcc-msp430 msp430mcu msp430-libc gcc-msp430 libjpeg-progs libjpeg62-dev usbutils binwalk tidy autoconf libtool

gaming:
sudo apt-get install prboom-plus

altro:
sudo apt-get install ibus-table-emoji ubuntu-keyboard-emoji

modifiche all'interfaccia: nell'Unity Tweak Tool modificare:
unity-tweak-tool : Launcher : Web Apps : Amazon / Ubuntu One
                 : Launcher : Icon size: 40
                 : Window Manager : HotCorners : Spread All Windows
                 : Appearance : Fonts : Ubuntu12, UbuntuMono13, UbuntuCondensed12, UbuntuBold12
                 : Appearance : Cursor : Whiteglass

installazione di Skype: prima occorre installare la paccottiglia di prerequisiti di librerie i386:
sudo apt-get install libqt4-dbus:i386 libqt4-network:i386 libqt4-xml:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 libxss1:i386 libxv1:i386 libqtdbus4:i386 libaudio2:i386 libmng2:i386 libqt4-declarative:i386 libgstreamer-plugins-base1.0-0:i386 libqt4-opengl:i386 libqt4-sql:i386 libqt4-xmlpatterns:i386 libqt4-script:i386 libgstreamer1.0-0:i386 libcap2:i386 sni-qt:i386 libssl1.0.0:i386 libpulse0:i386 libasound2-plugins:i386

quindi procurarsi dal sito skype la versione per Ubuntu Precise e installarla:
sudo dpkg -i skype-ubuntu-precise_4.3.0.37-1_i386.deb

supporto extra (USB 2.0, USB 3.0) per VirtualBox: scaricare dal sito Oracle l'Extension Pack per VirtualBox 5 per Linux, quindi installarlo con:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack*

si possono liberare quasi 600 mega eliminando la documentazione di TeX:
sudo apt-get remove texlive-latex-extra-doc texlive-latex-recommended-doc texlive-latex-base-doc texlive-pictures-doc

lunedì 14 marzo 2016

Ho schiattato un fusibile...

Parecchi anni fa comprai da Sparkfun questo sbrilluccicoso Benchtop Power, che da un connettore ATX estrae 3.3V, 5V, 12V e -12V con tanto di fusibili e perfino LED di accensione.
L'ATX da 500W, che mi costò solo 18 euro (e ci credo: efficienza 70% con carichi da almeno 1A), è capace di tirar fuori 48A a 5V oppure 16A a 12V (e soli 0.8A sulla -12 e "appena" 32A sulla 3.3V).

Oggi ho involontariamente cortocircuitato un'alimentazione e schiattato il relativo fusibile (Sparkfun ce li ha messi da 5A perché "a chi può mai servire più corrente?"), evitando danni peggiori. Ho riciclato quello della -12V mai usato.


sabato 12 marzo 2016

Interruttori Android? malemale!!

Allora, un tizio va in un albergo di Londra e scopre che lì gli interruttori per la luce, per le tende, ecc., sono dei tablet Android incassati nel muro (fa tanto figo premere un tablet anziché un interruttore!). Lo scopre perché l'apps "Orologio con Touch Interruttore" è andata in crash (vedi foto).

Un paio di questi tablet non erano completamente incassati ed esponevano addirittura una porta ethernet. Il bravo tizio, che per puro caso ha in valigia uno switch ethernet e dei cavi, mette il suo notebook Linux in mezzo e sniffa il traffico mentre "preme" il touchscreen di tali "interruttori" Android: il Wireshark gli dice che stanno transitando pacchetti in formato Modbus (un protocollo inventato nel 1979, trentasette anni fa era solo per i PLC, ovviamente senza alcun tipo di crittografia).

Trova con Google una libreria Pymodbus per "parlare" in Modbus e... da command-line accende e spegne gli aggeggi. E subito si accorge che nell'indirizzo IP è indicato anche il numero della camera! Praticamente in albergo alle tre di notte può accendere alla massima luminosità tutte le luci e aprire tutte le tendine e scatenare il panico.

Invece, tomo tomo onesto onesto, va a dirlo al proprietario dell'albergo che gli risponde che presto prenderà provvedimenti.

Morale della favola: domotica? touch? android? mmmmm!!!

martedì 8 marzo 2016

Crolla un altro bastione: la Microsoft annuncia SQL Server per Linux

Notizia dal blog Microsoft: SQL Server per Linux - annunciato per il 2017 - forse da oggi hanno cominciato a svilupparlo: int main() { ...


Nel 2001 il presidente della Microsoft (Ballmer) aveva detto «Linux è un cancro che si aggrappa alle intellectual property ogni volta che le tocca».

giovedì 3 marzo 2016

JSL (Japanese Sign Language)

Lingua giapponese dei segni:

martedì 1 marzo 2016