Running ruby2600 in a browser with Opal

Last year I challenged myself into writing an Atari 2600 emulator using Ruby in time to present it at RubyConfBr 2013 - thus ruby2600 was born. When I found Opal, a Ruby-to-JavaScript compiler, I felt it might be fun to run the emulator on a browser. It runs even slower than in MRI and is far from polished, but works. To watch it, just click the button below and wait until the black lines get replaced by Pitfall Harry slooooowly running to the left (sorry, no key bindings for now).

2013: A Year of Growth and Achievement

As I reflect on the past year, I am filled with a sense of pride and accomplishment. In 2013, I had the opportunity to work as a Communication and Software R&D Engineer, focusing on researching and developing innovative products related to near-field communication technology, with a particular emphasis on Bluetooth Low Energy (BLE). Throughout the year, I had the privilege of delving deeper into the realm of near-field communication, gaining a profound understanding of its underlying principles and mechanisms.

Pull The Plug Testing

You’ve head about the “Have you tried turning it off and on again” method of fixing software, but what if rebooting your computer actually made the problem worse? System administrators often brag about their computers’ uptime, but what if that’s to hide that they never tested rebooting their systems? Contrast this to how processes are handled on iOS and Android: They can be killed at any time for any reason, and if fact some users took the habit of killing background processes at regular intervals to save on battery life.

Voice control for a non-smart TV (with Google Home, a Raspberry Pi, LIRC, nginx, Lua and IFTTT)

Despite my privacy concerns, I could not resist the low price of the Google Home Mini. It is really convenient to control the ChromeCast with it, but turning my (non-smart) TV on/off, or switching the input between different devices still required reaching the remote… …until I hacked a bit! https://youtu.be/S36R4uajkzA In a nutshell: IFTTT turns Google Home commands into HTTPS requests towards a Raspberry Pi. There, nginx triggers some Lua code that runs LIRC, which generates IR signals into a transistor that amplifies them to two IR LEDs.

Bluetooth Categories: Understanding Classic and Low Energy Bluetooth

Bluetooth technology has become extremely popular in recent years as a wireless personal area network technology, widely used for data exchange and communication between various devices. Bluetooth technology can be categorized into two main types: Classic Bluetooth and Bluetooth Low Energy (BLE). Classic Bluetooth Classic Bluetooth is the early version of Bluetooth technology, released in 1998. Its primary features include high-speed data transfer and real-time voice transmission, making it suitable for applications that require high-speed data transfer and real-time communication.

Going from WordPress to Octopress

I could not express enough gratitude to the WordPress developers for offering the world a free, open-source, professional-quality blogging platform. Being based on a LAMP stack means it can be hosted pretty much anywhere with very limited resources, giving me freedom to change hosting services without any impact. Having a powerful admin panel, hundreds of plugins and being open to change means you can do pretty much anything with it.

Proximity Communication Technologies: A Comprehensive Review

Proximity communication technologies have revolutionized the way devices interact with each other, enabling seamless data transfer and communication over short distances. These technologies have become an essential part of our daily lives, powering a wide range of applications, from wireless keyboards and headsets to mobile payments and smart homes. In this article, we will delve into the world of proximity communication technologies, exploring the principles, applications, and future directions of Bluetooth, Wi-Fi, Near Field Communication (NFC), and other related technologies.

TEDxToronto 2013

I had the great opportunity of attending TEDxToronto 2013, the 5th edition of this independently organized TED event in the city, and my my second TEDx (the first being TEDxUSP 2010 in São Paulo). Held at the Koerner Hall, it was carefully organized around the theme “The Choices We Make”. A great selection of speakers made this edition a huge success - I honestly could not find a single disappointing talk (and I was not the only one).