domenica 11 ottobre 2015

Morire di antiscienza

Bambina di due mesi muore di pertosse.
I vaccini proteggono sia chi e' vaccinato che chi non lo e'. Andatelo a dire a questi genitori che si son visti morire la figlia che i vaccini fanno male se avete il coraggio. Gli antivaccinisti sono dei delinquenti. Non c'e' altro da aggiungere.

giovedì 8 ottobre 2015

Java - come usare un booleano

...e come ottimizzare un metodo

Bisogna cercare di utilizzare il minimo indispensabile di codice, questo non solo nei metodi grandi, ma deve essere un'attitudine mentale, che deve portare a pensare come risparmiare calcoli e uso di variabili sempre e comunque in modo da mantenere il nostro codice snello, leggibile ed il piu' efficiente possibile.

farlo male

primo errore: non ha senso usare un blocco if-else per restituire un booleano, in quanto la condizione if richiede un booleano essa stessa. Per cui se mi serve restituire true faccio prima a restituire l'espressione che userei nella condizione dell'if, altrimenti la sua negazione (!).

Secondo errore: due return. Non e' bellissimo inoltre complica la leggibilita' del codice. Sempre bene inizializzare un parametro e restituire quello alla fine - cosi il povero idiota che leggera' il tuo codice non si trovera' una miriade di return senza doversi calcolare quando passa da un return e quando passa da un altro.

terzo errore: sempre di leggibilita' se vuoi eseguire una certa istruzione solo se un certo dato non e' null, allora fai un blocco if-else su quella condizione, non un return sull not-condizione ed esegui l'istruzione fuori dal blocco if-else. E' molto piu' complicato da capire.

farlo bene

Uno: creo un parametro booleano, al quale assegno il valore dell'if else (il metodo deve restituire true se avviso non e' null - quindi il mio booleano sara' avviso != null - molto piu' chiaro no?)

Due: eseguo il metodo solo se il booleano e' true (ovvero se avviso non e' null) - anche qui e' chiarissimo cosa sto facendo e perche'.

Tre restituisco il valore del booleano che e' true se avviso non e' null false se lo e'. Non c'e' verso di confondersi. Il codice in questo modo e' piu' semplice e piu' leggibile.

Il codice non deve essere solo funzionante, deve essere funzionale (quindi non solo fare le cose, ma farle bene e con bene intendo usando il minimo di risorse possibili e rilasciandole quando non servono piu'), ma deve essere anche manutenibile, quindi chiunque venga dopo deve poter capire quello che sto facendo, e come lo sto facendo. Quindi il primo passo e' scrivere codice leggibile, ma anche evitare il piu' possibile le forme arzigogolate (un esempio e' null != qualcosa - e' la stessa cosa che scrivere qualcosa != null ma lo rendo meno leggibile) e aderire piu' possibile alle convenzioni (implicite ed esplicite) del linguaggio. Perche' chi legge si aspetta che le cose siano fatte in un certo modo e non come gira al programmatore di turno. Il secondo e' usare i commenti. Quando sto facendo qualcosa di complicato due righine di spiegazione non ti costano niente, e facilitano la manutenzione da parte di chi leggera' quel codice. Semplicemente gli eviti di andarsi a leggere un blocco di codice e cercare di capire. E soprattutto gli eviti di fraintendere. Se spieghi cosa stai facendo hai piu' possiblita' che chi venga dopo capisca se stai facendo un errore oppure sia una cosa voluta...

Alla prossima!

martedì 6 ottobre 2015

Chiesa ed Omofobia


E' di qualche giorno fa la notizia dell'ex-monsignore Krzysztof Charamsa espulso dalla Chiesa.

L'ex monsignore in questione ha attaccato la Chiesa accusandola di averlo espulso per il fatto di essere omosessuale. In realta' i fatti sono leggermente diversi. Nel senso lui non ha dichiarato di essere omosessuale e basta ma ha anche dichiarato di avere un compagno. Ed e' stato questo il motivo dell'espulsione. Non tanto la sua omosessualita'.

Teoricamente l'orientamento sessuale di un sacerdote conta poco o niente, nel senso avendo fatto voto di castita' ed essendo destinato al celibato, non fa differenza se non va con un uomo o non va con una donna.

Qualcuno potrebbe obiettare che un sacerdote deve essere testimone dei valori della Chiesa (famiglia figli etc), ma vale lo stesso discorso di cui sopra - casto e celibe - quindi se non lo sa come etero non lo sa nemmeno come omosessuale.

Quindi ex-mons. Charasma faccia poco la vittima, perche' quelli che piangono e accusano gli altri quando la colpa e' soltanto loro li trovo semplicemente insopportabili, inoltre costui scredita tutti gli omosessuali col suo comportamento da "frignone". Senza considerare che distoglie l'attenzione da quella che e' la vera omofobia, che purtroppo esiste...

Alla prossima!

venerdì 2 ottobre 2015

Java ottenere il nome del mese dal suo numero

Lo scopo e' ottenere il nome del mese (localizzato) dal "numero". Es se ho 1 voglio Gennaio in it, January in en/us etc...

Non c'e' da sprecarsi troppo, la classe DateFormatSymbols (di java.text) fa gia' tutto quello che ci serve. L'unica cosa da tenere presente e' che la DateFormatSymbol e' 0-based (quindi Gennaio e' 0, Febbraio 1 etc)

Quando si tratta di roba del genere, preferisco metterla in una classe di utilita' e accedervi staticamente (non ho effettivamente bisogno di un'istanza in questo caso).

Il metodo getMonths() mi restituisce tutti i mesi dell'anno (localizzati) e ordinati sotto forma di String[]. Essendo un vettore il primo elemento (Gennaio) e' 0, per cui per avere una corrispondenza tra il numero "naturale" del mese e quello nell'array basta sottrarre 1 ed ecco fatto...

Alla prossima!

Il grande complotto impossibile


I vari complottisti (appunto), sostengono che esista un "grande complotto mondiale". Questa mentalita' si nasconde in maniera piu' o meno apparente in quasi tutti i ciarlatani, anche quelli medici. Molti seguaci dell'omeopatia, per giustificare la mancanza di prove si aggrappano come un gatto sullo specchio all'ipotesi del complotto di BigPharma e di tutti gli scienziati e chimici di tutto il mondo, che essendo tutti corrotti rendono impossibile produrre prove certe e non taroccate... I vari simoncini, Di Bella, Vannoni sono tutti dei perseguitati. Idem con patate quelli che credono alle scie chimiche o alle ipotesi di auto-attentato dell 11 Settembre. C'e' un enorme grandissimo complotto medico-politico-giudaico-termo-metal-chimico.

Queste persone non ragionano*, perche' ovviamente un grande complotto mondiale e' impossibile in quanto prima o poi qualcuno su milioni di persone coinvolte deve parlare per forza. Inoltre piu' il complotto e' grande e piu' sono evidenti le prove, quindi dovrebbero accorgersene tutti o quasi. Se nessuno a parte loro se ne accorge cosa vuol dire? O che quasi tutta la popolazione mondiale e' coinvolta, oppure...

Senza considerare che se davvero esistesse un complotto di tale portata non ne verrebbe permesso piu' o meno liberamente di parlarne...

...e poi c'e' l'evento che chiude definitivamente la bocca ai complottisti... So che e' successo un po' di tempo fa, me vi ricordate di Snowden quel ex consulente CIA (quindi uno del mestiere, non un geometra fallito o il salumiere della porta accanto che si improvvisa geologo) che ha scoperchiato una pentola di nefandezze rilevando come gli Stati Uniti spiassero regolarmente le comunicazioni anche di Paesi ritenuti alleati.

Se ci si pensa non era un complotto mondiale. Non erano coinvolte milioni di persone. Eppure ha parlato. Nonostante lavorasse per la CIA, nonostante sia ricercato e sia dovuto espatriare. Non come i complottisti "denoantri" che stanno comodamente seduti sul divano a casa loro a lanciare accuse di qua e di la' - e nessuno li va a cercare...

Anzi a voler ragionare alla loro maniera si potrebbe pensare che se esiste un complotto loro ne fanno parte e cercano di screditarlo in tutti i modi :) (prima che mi ricopriate di commenti: e' una battuta!)

complotto vero complotto falso
Qualcuno prima o poi parla Nessuno ne parla - MAI
Chi parla e' qualcuno del settore Chi parla e' gente che non c'entra una mazza
Chi parla viene ricercato dalla polizia Chi parla non gli succede niente
Chi parla puo' portare prove Chi parla cerca scuse perche' le prove non le ha
Analizzando le prove portate (che non sono link su yt) si puo' verificare che quello che dice e' vero Di solito vengono portati link a yt che non dimostrano niente oppure si citano documenti che citano come fonti altri documenti che citano come fonti i documenti iniziali (v. autoreferenzialita')
A seguito delle dichiarazioni rilasciate e delle prove portate succede un casino mediatico A seguito delle dichiarazioni rilasciate e delle prove non portate non succede niente (ma perche' la stampa e' corrotta... si come no)

C'e' un articolo nonciclopedia che spiega benissimo le contraddizioni delle teorie del complotto e che vi consiglio caldamente di leggere.

Alla prossima!


*ragionano a modo loro, prima tirano le conclusioni e poi cercano le prove a supporto

giovedì 1 ottobre 2015

Giocare ai vecchi videogiochi

Chi ha giocato negli anni d'oro del computer ('80 e '90) non riesce a non avere un po' di nostalgia per quei videogiochi dalla grafica schifida (ammettiamolo) ma dal gameplay superlativo.

Effettivamente non potendo contare su una grafica superfica dovevano per forza concentrarsi sul gioco per risaltare. Questo non vuol dire che non siano state prodotte diverse schifezze, ma mentre queste sono cadute (per fortuna) nell'oblio, ci sono giochi immortali che meriterebbero una partitella...

Innanzitutto, se il gioco e' basato su Scumm (se non sapete di cosa sto parlando potete anche smettere di leggere, vuol dire che siete o troppo giovani, o troppo poco appassionati del genere perche' questo articolo possa realmente interessarvi), tipo MonkeyIsland per intenderci (e molti altri della Lucas), allora fate abbastanza presto:
ScummVM e' quello che fa per voi.

Sostanzialmente e' una macchina virtuale Scumm... Si scarica da qui, ed e' disponibile per un sacco di piattaforme (android incluso).

Aggiungere un gioco e' abbastanza semplice, dopo averlo scaricato (assicuratevi che sia legale farlo), avviate scummvm e aggiungete il gioco passandogli il path della directory. Fatto. Poi potete giocarci semplicemente cliccandoci. Per i piu' duri (ma angolofoni) c'e' una guida passo passo sulla wiki di scumm

Se il vostro gioco* non e' scumm, ma gira su dos allora avete l'opzione dosbox che si scarica da qui. Anche db e' disponibile per varie piattaforme.

Dosbox richiede un pelino piu' di messa a punto. Dovrete mettere le mani nel file dosbox.conf, basta un qualsiasi editor di testo (vi, gedit, npp fate voi).

La guida completa e' qui
Le parti che interessano di piu' sono:

Come montare una risorsa:

MOUNT [Drive-Letter] [Local-Directory] il primo parametro indica con che lettera montare la risorsa in dosbox (quindi se volete mappare la directory "pippo" come u: dovrete o in dosbox.conf (se vi serve montata tutte le volte che si avvia) oppure da cli (se vi serve una volta sola) dovrete digitare: MOUNT u $PATH_DI_PIPPO/pippo (su windows i backslash mi racco). Se vi serve ogni tanto potete pensare a farvi un batch (un file .bat che contiene esattamente quello che digitereste nella cli)

Se volete che la risorsa sia vista come floppy o come cd basta aggiungere al comando di mount -t floppy o -t cdrom (esempio: Z:\>MOUNT D D:\ -t cdrom). Alla stessa maniera si puo' montare una iso (-t iso) o addirittura piu' di una (al comando di mount passate il path assoluto delle iso che volete montare).

Farlo all'avvio di dosbox

cosa? Non quello pervertiti! Se volete che dosbox esegua una serie di istruzioni all'avvio (analogamente come il dos faceva con il file autoexex.bat allora la sezione [autoexec] e' quello che fa per voi.

Li potete scrivere i vostri comandi dos e vederli eseguiti all'avvio di dosbox. Quindi eventuali mount, settaggi di tastiera e soundblaster etc.

Approfondimenti:

Note Legali:

Alcuni giochi, soprattutto quelli molto vecchi, vengono rilasciati come "freeware". Ovvero la casa produttrice si rende conto che non c'e' piu' niente da guadagnarci e quindi decide di rilasciarli gratuitamente (come il caso di C&C RedAlert). Altri pur rimanendo molto vecchi, non subiscono modificazioni di sorta alla licenza. Quindi formalmente sono ancora tutelati dal punto di vista legale, ma poi nella sostanza sono nel totale disinteresse della casa che li produceva (per ovvie ragioni) e vengono chiamati abandonware - ovvero sw abbandonato. Se scaricate un abandonware dal punto di vista pratico non danneggiate nessuno (il gioco non e' piu' in vendita), ma comunque rimane un atto illegale in quanto formalmente il gioco e' ancora tutelato dalla sua licenza, anche se nessuno se ne cura piu'. Quindi se lo volete fare l'importante e' che siate consapevoli di quello che state facendo.

Buon divertimento!


*anche se non e' un gioco ma qualsiasi sw per dos

I complottisti e il bias cognitivo

L'articolo e' stato aggiornato dopo la pubblicazione iniziale

Su un certo blog, di cui non metto il link per non regalargli visibilita'*, c'e' una discussione relavita all'omeopatia, e alla presunta "falsificazione" di Medbunker.

Ora a parte il fatto che Medbunker non ha falsificato proprio niente, ha solo analizzato i pochi studi relativi all'omeopatia e ha presentato i risultati. Sostanzialmente e' venuto fuori che se lo studio e' fatto bene, l'omeopatia non e' superiore al placebo come efficacia. Gli studi che mostravano delle evidenze erano quelli fatti male o deliberatamente falsificati.

Uno studio fatto male, per esempio, e' uno che non considera le possibili cause esterne. Come citato fra i commenti, c'e' uno studio che evidenza un marcato effetto ansiolitico (superiore al placebo) di un certo prodotto omeopatico. Qual'e' il problema? Che se come diluente e' stato usato l'alcool (e si usa in omeopatia), questo da solo ha gia' effetto ansiolitico (due link al volo: emernet e alcol.dronet).

Quindi uno studio fatto bene dovrebbe verificare il componente omeopatico da solo (o con diluente che non ha l'effetto che si sta cercando di ottenere dal preparato omeopatico).

Non e' mia norma discutere con certa gente, anche perche' come si nota dalle risposte di chi gestisce il sito (basta che cerchiate "medbunker omeopatia" e viene fuori) si vede il prosciutto davanti agli occhi, e voler ignorare quella che e' la realta' - basta vedere come risponde a chi chiede delle prove sull'omeopatia:

un altro pappagallo scientista che recita la filastrocca delle "prove scientifiche"..... Sei un ballista!

Che dire di fronte ad un ragionamento cosi' profondo e articolato? Che dire di fronte ad un'evidenza scientifica cosi' marcata?

Stavolta pero' non sono riuscito a trattenermi e ho fatto notare che l'alcool puo' avere effetto ansiolitico

Il "gestore" la prende sull'ironico, al che fornisco dei link sulle prove di quanto ho detto (quelli che ho postato piu' sopra). Commento che pero' non viene approvato, lo riposto ieri e anche il commento di ieri svanisce nel nulla

Questo e' un tipico esempio di bias cognitivo ovvero si considera solo cio' che e' a favore, mentre si ignora categoricamente tutto il resto.

Non che me ne interessi piu' di tanto, nel senso la gravita' esiste (e la terra non e' cava) che la gente ci creda oppure no, mi interessava mettere in luce il modus operandi di certi blog e di certe persone, quando il commento diventa scomodo si mette a tacere il commentatore.

D'altra parte censurare e' l'unico modo che hanno, visto che l'evidenza scientifica e le prove sono contro di loro. Guardare in faccia la realta' vorrebbe dire ammettere di essere stati mistificati ed essere stati essi stessi a loro volta mistificatori. Per questo preferiscono tenerli chiusi e non guardare...

Alla prossima!


02/10/2015 - Aggiornamento:

Ieri compare questo commento (sottolineature mie - screenshottato per comodita' vostra):

E bravo Pisano! Vedo che ha anche un blog :) Stia tranquillo non ho censurato proprio niente, i link nel mio blog vengono messi automaticamente fuori e li è bene che rimangano quando sono fuori luogo o stupidi ;) Le consiglio di continuare a seguire quel denigratore dell omeopatia, mi sembra ottimo per i fan della Scienza come lei, lasci perdere i blog come il mio, non sprechi il suo tempo!

A parte l'uso del lei che in netiquette non si fa, vabbe' sottigliezze...

l'utente ivano dice due cose, anzi una la dice esplicitamente l'altra la sottintende:

  • La prima e' che disqus mette automaticamente in moderazione i commenti che contengono un link - ed e' indubbiamente vero - anche se Ivano non lo scrive in maniera esattamente chiara.
  • La seconda e' che i link che avrei postato sarebbero ot o stupidi - cosa che potete verificare facilmente visto che li ho postati anche qui.
Come potete verificare dal suo blog la discussione riguardava l'effetto ansiolitico dell'alcool, visto che ivabellini pareva ignorare questo effetto (che e' ampiamente dimostrato in letteratura medica), gli ho fornito due link.

Ora se e' vero che la moderazione dei commenti non l'ha attivata lui (viene attivata in automatico se il commento contiene un link), e' pur vero che poi il moderatore (cioe' lui) deve poi approvare o rifiutare il commento in questione. Considerato il tempo che e' passato e che il commento ancora non e' stato approvato (vedere lo screenshot piu' sotto) - il fatto che affermi di non censurare niente sa tanto di arrampicata sugli specchi... Della serie: la moderazione non l'ho attivata io quindi io non censuro anche se il commento non te lo approvo.

Mi scuso per le dimensioni dello screenshot ma era necessario per poter prendere la data e ora di winzozz senza ricorrere a tagli (che avrebbero potuto far gridare al taroccamento).

Il fatto che poi nella discussione sull'efficacia come ansiolitico di un preparato omeopatico contenente alcool (il quale ha effetto ansiolitico gia' da solo) vengano "cassati" i link che portano prove che se l'alcool ha effetto ansiolitico di suo forse il preparato omeopatico non c'entra niente la dice lunga...

Alla prossima!