How I made a Bartop Arcade

Those who know me know that in these past months I’ve been finishing my Bartop: an Arcade Cabinet large enough to house the monitor and the control panel (without the coin box).

Main features are:

  • Wood cabinet;
  • 17″ LCD Monitor;
  • Stereo speakers;
  • LED backlit Marquee;
  • Panel control for 2 players.

For the cabinet design I’ve used Google Sketchup: I had to learn it by myself taking into account all the issues concerning cutting and measuring the wood.
I’m neither a do-it-yourself expert nor a woodworker, so I’ve done a lot of feasibility study: my dad was a great help.

After the cabinet design, it’s time for the control panel: it hosts 2 joystick and 12 buttons in the top part, leaving free space for 4 buttons (Player 1, Coin 1, Player 2 e Coin 2) in the bottom part.
To make it I’ve used Adobe Illustrator because it’s a tool I’m familiar with and it permits to use millimeters as a measure unit.

As you can see, the panel control (A and B) can be opened to allow maintenance work, same for the rear door (between D and E).

Now it’s time of hardware parts, here’s the shopping list:

I received a used 17″ LCD Monitor for free (I had to buy an HDMI-DVI for 8 €) and the wood (14mm Poplar plywood) cost me about 50 € (a 80cm x 80cm panel and a 150cm x 50cm panel).

Outsideprint is the site I’ve used for the glass decal: easy to use, fast and with great support.

It was obvious for me to use a Raspberry Pi but I can’t say the same thing for the I-PAC 2: connecting the controls wires (joystick and buttons) directly to the GPIO of Raspberry goes against the modularity principle (a must for me).
The IPAC 2 “transforms” the control panel into a keyboard so I can extend the hardware (regarding the Raspberry and the controls) easily without headaches.

Now it’s time to share some photos of the bartop (finished and during the construction):

How I made a Bartop Arcade

IMPORTANT: If you are interested in making a Bartop, I created a Git repo with all the sources under the MIT license.

This post contains just the essentials info , oherwise it would have been a wall of text.
I thank Arcade Italia for showing me the right way, Retropie for the great software shared to the community and last but not least my dad.

Insert coin…

Translated version: Italian

Cloudbleed e SHAttered

Questa settimana è stata molto critica per il mondo della sicurezza, infatti sono successe 2 cose molto importanti.

Cloudbleed

Il 17 Febbraio 2017 è stato scoperto un bug di sicurezza nel reverse proxy di Cloudflare che causava la fuoriuscita di dati residenti in memoria come cookies HTTP, tokens, data in POST, ecc…
La scoperta è stata fatta da Tavis Ormandy facendo immediatamente il giro del mondo, il tutto è degenerato quando si è scoperto che questi dati sono stati salvati nelle cache dei vari motori di ricerca (Cloudflare ha collaborato con Google per mitigare questo effetto collaterale).
Attualmente navigando tra la cache di Bing e Yahoo si può ancora incorrere in qualche frammento di memoria sparso tra il contenuto in quanto è difficile riconoscerlo sistematicamente (e quindi eliminarlo).

SHAttered

Il 23 Febbraio 2017 Google ha annunciato la prima collisione in SHA-1, che cosa vuol dire? Quando 2 file diversi hanno lo stesso hash siamo davanti ad una collisione e Google infatti è riuscita a creare 2 PDF diversi con lo stesso SHA-1.
SHA-1 (come altri sistemi di hashing) viene usato per dimostrare che un determinato file non è stato modificato oppure che è stato scaricato correttamente, le implicazioni di sicurezza sono ovvie.
Divertente come WebKit abbia messo in crisi la propria repo SVN committando un test riguardante proprio le collisione SHA-1.
Git è meno sensibile alle collisioni SHA-1 in quanto i 2 file dovrebbero avere anche le stesse dimensioni (rendendo la sfida molto più difficile).

GitLab cancella accidentalmente il database di produzione

Se andate su GitLab adesso troverete il seguente messaggio:

GitLab.com is currently offline due to issues with our production database.
We’re working hard to resolve the problem quickly. Follow GitLabStatus for the latest updates.

Comunicando attraverso Google Docs scopriamo maggiori dettagli:

  • LVM snapshots are by default only taken once every 24 hours. YP happened to run one manually about 6 hours prior to the outage
  • Regular backups seem to also only be taken once per 24 hours, though YP has not yet been able to figure out where they are stored. According to JN these don’t appear to be working, producing files only a few bytes in size. It looks like pg_dump may be failing because PostgreSQL 9.2 binaries are being run instead of 9.6 binaries. This happens because omnibus only uses Pg 9.6 if data/PG_VERSION is set to 9.6, but on workers this file does not exist. As a result it defaults to 9.2, failing silently. No SQL dumps were made as a result. Fog gem may have cleaned out older backups.
  • Disk snapshots in Azure are enabled for the NFS server, but not for the DB servers.
  • The synchronisation process removes webhooks once it has synchronised data to staging. Unless we can pull these from a regular backup from the past 24 hours they will be lost
  • The replication procedure is super fragile, prone to error, relies on a handful of random shell scripts, and is badly documented. The staging DB refresh works by taking a snapshot of the gitlab_replicator directory, prunes the replication configuration, and starts up a separate PostgreSQL server.
  • Our backups to S3 apparently don’t work either: the bucket is empty

So in other words, out of 5 backup/replication techniques deployed none are working reliably or set up in the first place.

A quanto pare le repo sono salve mentre non si può dire la stessa cosa per gli issues e i merge requests, morale della favola?
E’ giusto fare i backup ma è altrettanto importante testarli!

UPDATE: GitLab ha scritto un post dopo la tempesta. Un applauso per la trasparenza e per il modo in cui hanno affrontato il problema.

Fossdroid.com è ora open source

Ciao ragazzi,
dopo aver ricevuto un sacco di mail a riguardo ho provveduto a rendere open source il codice di Fossdroid.com.

Enjoy!

NetBeans: dark look and feel with Darcula LAF

Darcula is a dark look and feel that first appeared in the 2012 release of IntelliJ IDEA 12 and now it’s available for NetBeans thanks to Revivius (plugin owner) and to Konstantin Bulenkov (for open sourcing original Darcula LAF).

If you want more info about Darcula LAF you can read the interview with Konstantin Bulenkov.