Category Archives: Computer Science

L’open source ha vinto

I risultati ci sono, e dimostrano tutto ciò che alcuni di noi già sapevano: l’open source diventa “by default”. Significa che il 78% delle aziende intervistate nel sondaggio condotto da Future of Open Source,  costruiscono il loro software su tecnologie open source, e due terzi di esse costruisce software per i loro clienti basandosi sull’open source.

Ancora più significativo, è il risultato delle aziende intervistate che partecipano attivamente a progetti open source, che è aumentata dal 50% al 64%, mentre ben l’88% si aspetta di contribuire a progetti open entro i prossimi tre anni.

Le aziende stanno capendo il risultato della potenza di dare il proprio contributo, e della cooperazione. Chi si impegna in tutto questo, ha un beneficio sotto il punto di vista dei processi, meno regressioni per quanto riguarda il gap tecnologico, e migliorano il flusso di innovazione. Condividono il compito di revisionare software che sia riconosciuto dai contributors come sicuro. E’ il miglior lubrificante IT nell’era di internet. Continue reading L’open source ha vinto

richard stallman

Manifesto per lo sviluppo software responsabile

Il software ci circonda in ogni aspetto della vita. Le nostre auto sono piene di software, la nostre comunicazioni si basano sul software, e quasi tutti i dispositivi nella nostra vita quotidiana contengono software. Quello che però le persone non si sono mai poste, è quanto sia importante quello che gli sviluppatori software stanno realizzando, e l’impatto che stanno avendo sulla vita delle persone. La carta stampata ha avuto una influenza notevole sulla vita dell’umanità, ma ci sono voluti 300 anni per avere una diffusione su larga scala. Allo stesso modo le automobili hanno cambiato il modo in cui la gente si sposta, e allo stesso modo della carta stampata, ha impiegato del tempo (100 anni) affinché fossero alla portata di tutti. L’industria del software ha invece si e no 50 anni, e ha avuto un impatto maggiore rispetto a qualsiasi altra cosa inventata prima.

Continue reading Manifesto per lo sviluppo software responsabile

Quali sono i vantaggi del TDD?

Sono sicuro che molti di voi, si staranno chiedendo che cosa significa la sigla TDD. Bhe, la sigla TDD, sta per Test Driven Development, che tradotto in italiano è esattamente “Sviluppo guidato da test” [approfondimento su Wikipedia allo Unit Testing].

Sono andato a “sbattere” contro il TDD durante il mio corso di ingegneria del software avanzata all’università, e da allora il TDD l’ho sempre apprezzato come modello di sviluppo.

Ci ho realizzato Summbot l’anno scorso, e devo ammettere che mi ci son trovato abbastanza a mio agio, anche se, essendo stata la prima volta, lo sviluppo è stato più lento del solito.

Usare il TDD mi ha insegnato molto, e anche se non è il modello di sviluppo che adotto oggi (in quanto i tempi di sviluppo spesso sono cortissimi, si parla di qualche settimana), ognuno di noi dovrebbe provarlo almeno una volta. Magari scopri che ti ritrovi a tuo agio.

Mi piace definire il TDD come me lo ha illustrato tempo fa il mio professore di ingegneria del software: è come un martello ed una vite. In qualche modo potresti riuscire ad avvitare la vite utilizzando il martello, ma non stai utilizzando lo strumento per quello per cui è nato. Il TDD è esattamente così.

Mi spiego meglio. Continue reading Quali sono i vantaggi del TDD?

Amy Webb: Come ho hackerato i siti di incontri online.

Se mi seguite sui miei canali social, sapete che amo i TED Talks, e penso che questo diventerà un appuntamento fisso sul blog, dove pubblicherò quelli che ritengo più interessanti ed “inspiring”. Oggi propongo quello di Amy Webb, una donna molto sfortunata con i siti di incontri online. Le persone che le piacevano non rispondevano ai suoi messaggi e il suo profilo attirava persone discutibili (e peggio). Così come farebbe ogni persona amante della matematica, ha cominciato con un foglio di calcolo. Ascoltate la storia di come è riuscita a decodificare la sua vita sui siti di incontri online, con risultati frustranti, divertenti e che le hanno cambiato la vita.

Continue reading Amy Webb: Come ho hackerato i siti di incontri online.

Facebook’s iOS Infrastructure

Facebook has been iterating its mobile products, continuing to increase the richness of the content and speed at which it is delivered. In transitioning to become a mobile-first company, Facebook has faced complex issues and opportunities to make its products more innovative, while building abstractions to do so that are powerful, yet simple—all fit for a very large scale.
Continue reading Facebook’s iOS Infrastructure

Vale la pena passare ad un VPS o ad un server dedicato?

Oggi parliamo di shared hosting (hosting condiviso), VPS (virtual private server) e server dedicati.

Se siete un blogger o anche un semplice webmaster, quasi sempre si inizia con un piano di hosting condiviso, al fine di risparmiare, sperando poi in una crescita successiva del sito. Ma cosa succede quando il sito inizia a crescere? Son “dolori”. Se il tuo business inizia a crescere, il piano di hosting dovrebbe seguire la vostra crescita. E’ tempo quindi di pensare ad aggiornare ad un VPS o ad un hosting dedicato.

Prima di prendere qualsiasi decisione, è importante capire quali sono le differente tra un virtual private server (VPS) e un hosting dedicato, in maniera tale che si possa scegliere l’opzione migliore per il proprio sito/portale/business.

Continue reading Vale la pena passare ad un VPS o ad un server dedicato?

Message “No identities are available for signing” when you want to publish an app on App Store

Yesterday, i have finished developing an update for my application “YFC“, and when it came time to send the update to the App Store, Xcode has returned the following error: “No identities are available for signing“.

ERROR No identities are available for signingI thought it was an error related to certificates, but it was not.

On the internet I found several solutions to the problem, but they were too long to do, so I found a loophole faster, so that I could send the update as soon as possible.

The best solution I’ve found is this, proposed by AppDeveloperMagazine.

Basically: export the application for Ad Hoc Deployment, and load it on the App Store via Application Loader. For me the solution worked and saved me a lot of time.

To the next.

Paolo

Il problema del consenso distribuito: l’algoritmo Paxos, step-by-step

Nei sistemi distribuiti, una serie di macchine sono in grado di raggiungere un consenso su una decisione che è estremamente importante. I sistemi di database, ad esempio, devono assicurare che tutte le macchine siano d’accorso se effettuare un commit o il rollback di una transazione, in modo che ogni macchina abbia una visione coerente dei dati (si immagini ad esempio il problema sul proprio conto bancario. Una macchina pensa che tu abbia 1000 euro sul tuo conto, ma un’altra macchina crede che tu abbia il conto vuoto).

Il consenso è difficile da raggiungere, perché i messaggi tra le macchine possono essere persi o ritardati in modo indefinito, oppure le macchine stesse possono fallire – come fa una macchina a sapere se un’altra macchina ha elaborato un messaggio?

Solitamente si utilizza il Commit a due fasi (Two-phase commit), ma ha un problema – se il nodo coordinatore di una transazione fallisce, il sistema rimane bloccato fino a quando questo nodo non si riavvia. Il commit a tre fasi risolve questo problema del blocco, ma fa sempre affidamento su un unico coordinatore.

In questo articolo, si discute Paxos, un protocollo distribuito alternativo al commit a due fasi e a quello a tre fasi. Paxos garantisce che i nodi sceglieranno sempre e solo un singolo valore (quindi garantisce la safety), ma non garantisce che un valore verrà scelto se la maggioranza dei nodi non sono disponibili (progress). Gli algoritmi di consenso hanno come obiettivo la safety, perché non importa se si faccia un commit o un rollback – ma è di fondamentale importanza che una sola risposta sia scelta.

Continue reading Il problema del consenso distribuito: l’algoritmo Paxos, step-by-step

What most schools don’t teach

1 million of the best jobs in America may go unfilled… because only 1 in 10 schools teach students how to code. Whether you want to be a doctor or a rockstar, ask about a coding class at your school or learn online.

Learn about a new “superpower” that isn’t being taught in in 90% of US schools.

Starring Bill Gates, Mark Zuckerberg, will.i.am, Chris Bosh, Jack Dorsey, Tony Hsieh, Drew Houston, Gabe Newell, Ruchi Sanghvi, Elena Silenok, Vanessa Hurst, and Hadi Partovi. Directed by Lesley Chilcott.

Share this post.

Il problema P versus NP: classi di complessità.

Questo è l’unico problema del Millennio che abbia a che fare con i computer. “Si tratta di un interrogativo sull’efficienza con cui i computer possono risolvere problemi. Gli esperti di scienze informatiche suddividono i compiti computazionali in due categorie principali: compiti di tipo P, che possono essere affrontati efficacemente da un computer, e compiti di tipo E la cui soluzione potrebbe richiedere milioni di anni. Purtroppo, la maggior parte dei grandi problemi computazionali che sorgono nell’industria e nel commercio ricade in una terza categoria, NP, che sembra essere intermedia fra N ed E. Ma lo è davvero? Non potrebbe essere solo una versione mascherata di P? Dopo trent’anni di tentativi, nessuno, finora, è stato in grado di dimostrare se P e NP siano, o no, la medesima cosa.

Il problema è interessante e intrigante, e per maggiori info vi rimando alla pagina di Wikipedia.