I have built a 21 Bitcoin Computer “clone”

Two months ago, I decided to buy two Bitcoin ASIC Miners. The reason is quite simple: I am easy to get bored when I have everything prepared and ready to be used. 😴 Particularly if we are talking about technologies and computers. There is no fun if I can’t learn from crafting it, right?

When “The 21 Bitcoin computer” was announced I was surprised to see a Raspberry Pi device with a huge black brick on top of it: an ASIC Chip that mines between 50 and 120Gh/s. Basically it is an “already assembled and configured” device that can mine and be a Bitcoin full node. 👍

Photo from amazon.com

That seems to be an awesome product, for thousands of reasons, but I have decided to not buy it. The reason is not the price (~400$) or the software inside that is pre-compiled by a new company for you. The reason is simple: it would bore me.

Continue reading I have built a 21 Bitcoin Computer “clone”

I am running ZeroNet in background on my Mac

Since when I was little, I always loved peer-to-peer technologies… I even tried to create a GNU/Linux distribution based on that. .. but recently I have discovered a brilliant project that is combining the power of asynchronous cryptography, using Bitcoin private and public keys, with BitTorrent technology. This project is called ZeroNet and it is a new and interesting way to provide websites and real-time services in a p2p network.

ZeroNet-OldLogo

To join the network and browse the ZeroNet websites, now you have to keep running a python software in one of your terminal. I really hate to keep it opened 24h a day… even if I am nerd enough to love logs. I decided to run an instance of ZeroNet in background on my Mac: every time I turn on my computer, I am updating and seeding content. I feel happy to help this community 👍 Here is how I made it possible. Continue reading I am running ZeroNet in background on my Mac

Docker + aliases: I don’t install tools on my Mac

I really care about keeping the OS clean and untouched. Sometimes, when I have to develop using specific softwares and tools, I have to modify core and important sections of the system on my Mac or PC, and this can create some problems with package managers (like homebrew for Mac OS X; or like APT, pacman or yum for GNU/Linux)…

Docker Icon black and white

For example, few months ago I installed node.js on my Mac using the official package. When I started using homebrew, I had problems with the command line and the configuration. I even had the same problem when I was not using a virtual environment with Python 2.7 and 3.4… So I was forced to fix all the files/links manually with the super user… and I don’t like that: it is like corrupting my OS… Continue reading Docker + aliases: I don’t install tools on my Mac

My Bitcoin Experience: Wallets and Debit Card

I am in the world of bitcoin since 2012 when I opened my first bitcoin wallet on blockchain.info… and a lot of things changed since that moment: new services, growing communities, new alternative crypto currencies, ATMs, Credit-Debit cards, and a larger diffusion of people accepting bitcoin in their shops.

After those two years I can see a better view of what Bitcoin means to me and the innovation behind that technology, including Xapo debit card… and some of my friends are tired of me talking about bitcoins 🙂

How I choose a wallet

Using simple words: the wallet is a collection of addresses and their private keys. The address, that is used to receive the money, is a group of letters and numbers generated by the private key, that is required to send money.

Because you must have the private key of your address in order to sing a transaction, the security level where this value is stored must be high. The default bitcoin client provides a wallet, but is really slow and it must be synchronized and it will take some days…

Continue reading My Bitcoin Experience: Wallets and Debit Card

Google svegliati, Android è pronto!

KitKat ha decisamente fatto dei grandi progressiAndroid è pronto finalmente. Le API permettono di realizzare interfacce veramente ben fatte, studiate e finalmente usabili. Per questo i device con KitKat mi attirano particolarmente, ma usandolo sul kindle mi sono reso conto del difetto che ha Android: gli sviluppatori pigri e incapaci.

Solo tre anni fa utilizzavo un Samsung Galaxy S. Avevo deciso di sviluppare qualche applicazione per Android, ma dopo diverse bestemmie dovute all’ottimizzazione sui dispositivi, e dopo le continue frustrazioni nell’usarlo, mi passò la voglia di utilizzare quel device e di svilupparci sopra. Con KitKat sembrerebbe esserci una più concreta attenzione nei confronti dell’usabilità.

Pigrizia
Pigrizia

Su KitKat le applicazioni realizzate da Google sono veramente ben fatte: pulite, chiare, usabili, ma le altre su Google Play sono pessime. Le API per fare applicazioni decenti ci sono: Trello ha aggiornato l’applicazione di recente e come dice Alessio, “non ci sono sgorbi”. Allora dove è il problema se le cose si possono fare bene? IMHO: Sviluppatori e Google sono diventati “pigri”.

Se Android è pronto, allora perché troppe applicazioni sono brutte? Penso che la colpa sia di due fattori. Il primo: Google non ha ancora la forza che ha Apple con gli sviluppatori e i produttori di hardware. Il secondo fattore è legato a chi realizza le app che a causa del primo problema, è “pigro” e non riesce ad aggiornarle alle ultime versioni delle API, visto che la frammentazione di Android rende difficile questa operazione.

Frammentazione Android
Frammentazione Android

In poche parole Google dovrebbe svegliarsi, Android è pronto ma serve un “pugno di ferro” che spinga gli sviluppatori e i produttori hardware a non supportare più Gingebread e Froyo. KitKat, supportando device con 512 MB di ram, ha fatto un passo avanti per i produttori, ma non è abbastanza. Anche gli sviluppatori dovrebbero svegliarsi, perché se è vero che Trello si è aggiornata, perché allora la versione di Android di 1 Password fa schifo? (si ho scritto fa schifo perché fa schifo, quella sull’iPhone e sul Mac è da orgasmo 🙂 ).

Il risultato di questa scarsa attenzione nei rilasci e nelle regole, l’ho notato cercando di lavorare con Android: è completamente diverso da iOS e per questo è quasi impossibile fare un paragone. Quello che posso dire è che le uniche app usabili e “produttive” sono quelle di Google e pochissime altre, le restanti applicazioni mi fanno solo perdere tempo. A volte è difficile scrivere un documento di testo, programmare un tweet, salvare un promemoria o creare una nota: una esperienza d’uso pessima e che cambia da app ad app.

Svegliati Google, perché penso che Android sia pronto: ha un ecosistema di sviluppatori che si sta sempre più consolidando, ma mancano delle regole ancora più rigide per rendere Android un sistema operativo più usabile.

Falsificare i voti sui post di Wired

Navigando su Wired mi sono reso conto che alcuni blog post hanno un widget che permette agli utenti di esprimere il loro parere sotto forma di wired, tired oppure expired. Così ho studiato un po’ il funzionamento del codice javascript, trovando un sistema di votazione molto banale. Simile a qualche cosa che avevo visto quando avevo 16 anni.

4837773532_8d66313110_o

Falsificare i voti sui post di wired è molto più semplice di quanto mi aspettassi: in meno di 30 minuti ho scritto e caricato su GitHub un banale script per votare, cambiando continuamente IP.

Mentre ero alla ricerca di un nuovo lavoro per sopravvivere, ho scritto una libreria python per utilizzare TOR, il software-network per rendere anonima la navigazione, ed eseguire una query ad un URL specifico. Giusto per allenarmi e non morire di noia… così ne ho approfittato ed ho unito le due idee.

Il funzionamento di questo script è il seguente: prima di tutto, viene analizzata la pagina per trovare gli URL per votare, poi lo script avvia un processo TOR in modo da connettetesi al network di proxy e rendere anonime le chiamate. In fine chiama diverse volte l’URL corretto cambiando indirizzo IP e controllando che la votazione sia stata eseguita correttamente.

Mettendo da parte l’orgoglio nerd, da un punto di vista di usabilità inserire un captcha o un login con Facebook per una semplice votazione può essere doloroso, ma per le cose importanti può essere una soluzione. Alcune competizioni on-line lo fanno proprio per evitare che si vinca imbrogliando. Non so quanto sia importante per un blog, anche se è una debolezza!

tell me more how you changed the world

È semplice falsificare i voti sui post di Wired, però è triste vedere questo difettuccio. Banale, stupido ma comunque un difettuccio. Supponiamo ci sia un articolo relativo ad una Startup che vende un prodotto particolare. Supponiamo che le persone decidano di comperarlo in base ai voti wired espressi su quell’articolo. Uhm? Per fortuna non funziona così!

Fa molto lamer, ma visto che non sto lavorando, vedere il numero degli “expired” e dei “tired” aumentare di poche unità mi ha fatto riflettere. Spero solo di non aver alterato nulla di importante! Non è il mio intento.

Persino i form/moduli di Google Docs possono essere ingannati con lo stesso procedimento. Anche se è un po’ più complesso, ho scritto uno script dedicato. Sul repository GitHub aggiornerò la documentazione, sperando che almeno chi gestisce i blog di Wired si accorga del banale problema che ho trovato.

Per maggiori informazioni su come utilizzare lo script, ho creato una piccola guida qui.

Intel Galileo: Arduino da 400Mhz

Qualche giorno fa ho partecipato all’evento di apertura della Maker Faire qui a Roma. Durante l’evento è stato annunciato l’incontro tra Arduino e Intel, creando un nuovo prodotto che fa sbavare non solo me, ma tutti gli appassionati di informatica, di elettronica e i “Makers”.

Photo Credit: http://www.flickr.com/photos/84454580@N00/8334340659/ I_am_Allan

Dopo l’annuncio, presso lo stand della Intel distribuivano una misteriosa scatola blu, con disegnato Galileo Galilei con degli occhiali Hipster: La scatola conteneva un Intel Galileo! [Spoiler] Quando la si apre, c’è un circuito che riproduce il jingle della Intel facendo partire l’ormone nerd a chiunque stia sollevando coperchio 🙂

Sono riuscito ad ottenerne uno! :D
Sono riuscito ad ottenerne uno! 😀

La board dell’Intel Galileo dispone di un processore Intel Quark X1000, con una velocità di 400Mhz, oltre ad avere l’interfaccia Ethernet, USB2.0 e le classiche specifiche tipiche degli Arduino. Avendo avuto un Raspberry Pi, posso dire che non è il massimo, visto anche che il prezzo previsto è di 60$ (Il Raspberry Pi parte dai 25$).

Tuttavia ci sono cose che Raspberry Pi non riesce a fare senza dover spenderci altri soldi: con il raspberry pi ho semplicemente installato una distribuzione Linux e mi sono divertito con il software, mentre con Arduino sto esplorando molto più il mondo dell’elettronica e dell’hardware. Potrei costruirci un robot, come quello che hanno fatto salire sul palco durante la presentazione! 😀

Intel Galileo: Board

Non ho ancora tante idee da realizzare ma credo che giocherò parecchio con Intel Galileo: anche se è possibile farlo, non ho alcuna intenzione di installare Linux sul dispositivo, voglio ampliare le mie conoscenze sfruttando saldatori, LED e sensori. 🙂 Per il momento ho realizzato un semplice software che fa generare due numeri, se il primo numero diviso 2 è maggiore del secondo numero, allora un led si accende e si spegne. Banale, però è stato molto divertente vederlo funzionare e mi piacerebbe migliorarlo un pochino: l’ho caricato su GitHub per divertirmi con chi vuole stravolgerlo! 😛

Si accettano consigli, suggerimenti o altre idee da realizzare 🙂