Archive for June 2007

 
 

SpaceNavigator

SpaceNavigator

Non l’ho ancora provato, ma mi sembra la più grossa rivoluzione nei dispositivi di input dopo il mouse e la tastiera: è lo SpaceNavigator.
Si utilizza con “l’altra” mano (ovvero la destra, se siete manicini come me) e permette la gestione di ulteriori gradi di libertà di movimento senza cliccare su menu o fare combinazioni esoteriche di tasti.
Sul sito c’è un video che spiega bene come funziona: cliccate su Panoramica in 3d dei prodotti.

Consigli per programmatori

Quando dovete partire con un nuovo progetto, se dovete correggerne uno vecchio, se mettete mani su codice scritto in linguaggi che non conoscete ancora bene, sarebbe bene fare una cosa semplicissima.
Documentatevi prima di tutto su:

  • regole di stile;
  • costrutti idiomatici;
  • funzioni di libreria.

di quel particolare linguaggio.

Non è difficile, siamo nell’era di internet e dell’opensource.
Potete cercare su google se esiste una guida.
Potete leggere le indicazioni dei maggiori esponenti di quel linguaggio.
Potete scaricarvi alcuni progetti opensource e analizzarli per vedere quali sono gli standard.
Potete comprare un libro, o prenderlo in prestito.
Eviterete di reinventare la ruota, di far esaurire i programmatori che rimetteranno mano al vostro codice, e soprattutto eviterete di sembrare ignoranti o menefreghisti.
Non ultimo, il vostro karma ne trarrà enorme giovamento.

Italian startups

Sul perchè il 90% delle startup nasca negli USA, e in particolare nella Silicon Valley, c’è un bellissimo saggio di Paul Graham: “Why startups condense in America”, che consiglio vivamente di leggere, come tutti gli altri suoi saggi.

Sul perchè in Italia di startup non ne nascano proprio, ci sarebbe da fare un altro saggio.

Colpa dell’eccessiva tassazione, del sistema impresa ormai marcio, delle banche che prestano con fatica, degli enti pubblici e privati che non pagano o che hanno l’abitudine di pagare a 90 - 120 - 180 giorni.

Aprire un’azienda in Italia costa qualche migliaio di euro solo di spese e tasse, richiede più di un mese e innumerevoli procedure burocratiche. Si pagano tasse prima ancora di incassare, multe, si è soggetti a “studi del settore”, ci va un commercialista fisso che si districhi nei meandri della burocrazia e della legge.

Sinceramente passa la voglia.

E infatti l’associazione dei termini “startup - italian” è poco più comune che “cozze - marmellata”.

Nella Wikipedia il termine “startup” c’è in inglese, esperanto, tedesco, francese, ebraico, ma non in italiano.

Se cercate con Google “italian startups”, vi appare il soggerimento: “do you mean italian starters”? (1)

Questa la dice lunga su come siamo messi a livello internazionale.

Succede quindi che chiunque abbia un’idea buona e un po’ di coraggio se ne va negli USA, in Germania, in Spagna, in Irlanda o Inghilterra, in Nord Europa, dove è più facile trovare finanziatori, dove i clienti pagano, dove le tasse le paghi quando inizi a guadagnare, dove non è richiesto perdere giornate tra uffici e camera di commercio anzichè al pc a lavorare.

Qui in Italia rimangono gli amici degli amici, quelli che il papà conosce tutti, quelli che lo zio è senatore, quelli che il nonno è notaio, quelli che hanno ereditato l’impresa. Quelli che possono stare i primi mesi o anni senza veder entrare un euro mentre pagano tasse, stipendi, spese. Quelli insomma che hanno già le spalle coperte.

Ciò nonostante qualcuno ci prova ancora, nutro per loro profonda ammirazione e ho deciso di creare questa nuova categoria proprio per parlare delle nuove aziende (principalmente nel campo dell’IT) che decidono di aprire i battenti in Italia.

Di quello 0,0001 per cento che sfugge alle statistiche.

E mi piacerebbe vedere che qualcuno ce l’ha fatta, mettendoci solo buone idee, capacità, volontà, determinazione e non amicizie, favoritismi e nepotismo.

(1) Ovvero: “volevi dire antipasti italiani?” (Spero che
nessun visitatore straniero associ “italian starters” con “cozze marmellata”… :-))

import this

Si lo so che è vecchia ma mi piace molto!
Se al prompt interattivo di Python digitate

>import this

comparirà “The Zen of Python”.
Un pezzo di alta filosofia per programmatori, secondo me valida per tutti i linguaggi.

Eccolo in inglese

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

E in italiano, per chi non mastica molto l’inglese

Bello è meglio che brutto.
Esplicito è meglio che implicito.
Semplice è meglio che complesso.
Complesso è meglio che complicato.
Lineare è meglio che innestato.
Diradato è meglio che denso.
La leggibilità è importante.
I casi speciali non sono abbastanza speciali da rompere le regole.
Anche se la praticità batte la purezza.
Gli errori non dovrebbero mai passare in maniera silente.
A meno che non vengano esplicitamente resi silenti.
Di fronte ad una ambiguità, rifuggi dalla tentazione di tirare a indovinare.
Dovrebbe esserci un — e preferibilmente soltanto un — modo ovvio per fare qualcosa.
Anche se questo modo potrebbe non sembrare ovvio alla prima occhiata a meno che tu non sia olandese.
Adesso è meglio che mai.
Anche se mai è spesso meglio che *esattamente* adesso.
Se l’implementazione è difficile da spiegare, è una cattiva idea.
Se l’implementazione è facile da spiegare, potrebbe essere una buona idea.
I namespaces sono una fantastica idea — facciamone di più!
Andate anche a vedervi il modulo python\lib\this.py :-)

Gestire le password

Se dovete gestire un sacco di passwords e usernames, come sempre più spesso capita se utilizzate molto la rete o addirittura ci lavorate, avete varie possibilità.

1. Usare sempre lo stesso username e password.

  • PRO
    • è facile
  • CONTRO
    • Se siete costretti a dare la password del vostro pc d’ufficio al vostro collega stronzo, perchè siete a casa malati, sarete costretti a cambiare tutte le password di tutti i vostri account (se fate in tempo).

2. Segnarle tutte su un foglio o un file in chiaro

  • PRO
    • e’ facile
  • CONTRO
    • Se lo perdete siete spacciati.
    • Se ve lo fregano siete spacciati.

3. Usare un software apposito.

  • PRO
    • Il file delle password è criptato, quindi lo potete salvare in vari posti senza aver paura che lo possano leggere.
    • Avrete password sempre diverse.
  • CONTRO
    • Non ce ne sono!

Io ho deciso di optare per la terza scelta, e da alcuni anni utilizzo Keepass.

E’ un software opensource utilissimo, che vi permette, tra le altre cose:

  • di gestire gruppi di password;
  • di utilizzare il completamento automatico;
  • di generare password random.

L’utilizzo è molto semplice, ma vi do alcuni consigli.

  • Utilizzate una master password sicura e lunga almeno 16 caratteri, che sia impossibile da individuare. Per esempio un insieme di parole senza senso e numeri.
  • Imparate subito ad usare l’autocomplete. Con un programma del genere, non vi serve ricordarvi le password. Fatele generare automaticamente al programma, poi quando dovete inserirle:
  1. Ctrl-U per aprire il sito;
  2. Vi posizionate sull’edit box dello username;
  3. Ctrl-V per incollare username, password e premere invio :-)
  • Abituatevi a segnare SEMPRE e SUBITO i nuovi username e password che vi vengono dati, e quando dovete generarli voi fatelo in automatico.
  • Effettuate backup periodici del database delle password: su cd, su chiavetta usb, dove volte voi.

Potete scaricarlo su http://keepass.info/