Share your knowledge with the world.

Image for post
Image for post
Photo by RetroSupply on Unsplash.

Vacatronics is a publication to share content and knowledge about programming, electronic, and technology in general. We’re always looking for great content that make us grow as a community.


Some topics we like and are interested in that you can write about:

  • Programming: tutorials on any programming language, like Python, JavaScript, Go, Elixir, etc.
  • Electronic: anything related to embedded devices and IoT solutions, like sensors, development boards, network protocols, robotics, etc.
  • Product design: stories that help us how to create a product, from the design to the final release.
  • Future of technology: any topic related to the future of technology, such as blockchain, quantum computing, data mining, big data, machine learning, AI, etc. …

There are plenty of good options to start.

Image for post
Image for post
Photo by Jorge Ramirez on Unsplash

The Internet of Things, or IoT, is already a reality. You are probably using one (or more) IoT device right now, or at least, have been benefited by one. And this market tends only to grow.

Generally speaking, the internet of things is a network of physical objects that enables these objects to create and exchange data.

According to some researches, there’s an estimation of 25 billions IoT devices around the world in 2021, with this number reaching about 64 billions by 2025 (and a market of 11 trillion dollars). …

If Lebron James practices every day, you should too

A woman guiding man doing push-ups in a gym
A woman guiding man doing push-ups in a gym
Photo by Jonathan Borba on Unsplash

In a culture based on productivity, most of the time, practice is left aside. It is sometimes considered a waste of time, especially for those with more years of experience.

I’m not talking about just playing or doing something. I’m talking about deliberately practicing an activity. About the fundamentals. The basics of your profession.

Learn From the Masters

For high-performing athletes, this is taken seriously. They understand the importance of practicing the most basic fundamentals of their sports — especially those ones who are on the top.

Steph Curry, the best shooter in NBA history, practice up to 500 shots a day. Muhammad Ali, one of the best boxers of all time, dedicated 20 minutes to jumping rope. Roger Federer, the best tennis player of all time, practices his balance volleying in a trampoline. …

Adding meta information to your data.

Image for post
Image for post
Photo by Annie Spratt on Unsplash.

Go is not a pure object oriented programming language. It does not provide classes, but it does provide structs.

As stated in the language specification:

Struct is a sequence of named elements, called fields, each of which has a name and a type.

A struct is used when you want to define a schema for your data, made of different properties (fields).

A field can be identified:

  • Explicitly: as in the Person struct above, all the fields are declared in the same struct.
  • Implicitly: as in the User struct, it embeds the fields from the Person struct. It is also known as embedded fields. …

Use the power of Go to improve your web application performance.

Image for post
Image for post
Photo by Halacious on Unsplash

For a long time, JavaScript has been the only programming language the browser understands and it delivers the performance that most web applications needs.

But it can have some performance issues when we are talking about more intensive use, like 3D games, computer vision, and image editing.

WebAssembly is meant to solve this problem.

What is WebAssembly?

As put by the official website:

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.

But what does it mean?

It means you can compile a code written in C or Rust, for example, and execute it on the browser, at near-native speed. …

And have access to a lot of devices.

Image for post
Image for post
Created with

Exchanging data has always been a challenge for the industry, with different options from devices (HMI, PLC) to protocols (Profibus, Modbus). If you wanted to connect various machines, you would either have to use the same manufacturer (therefore, the same protocol) or invest a lot of time to implement all the different protocols by yourself.

In the 1990s, a first attempt was made to create a standard, and the OPC (OLE for Process Control) was born. Known today as OPC Classic, it consists of three main specifications:

  • OPC DA (Data Access): defines an interface between client and server to exchange data. …

Configuring a LCD with Python.

Image for post
Image for post
Photo by Josh Sorenson on Unsplash.

A Rasberry Pi (RPi) is a low cost mini computer and has the size of a credit card. It is a great solution for hobby and home projects (and some commercial, too) because it has various input/output pins, video, camera, sound interfaces and many good OSes to install.

In this tutorial we are going to connect a RPi with a LCD display using SPI communication.


The Serial Protocol Interface (SPI) is a synchronous serial communication interface used for short distance communication, especially in embedded systems. …

Improve your application and save your time.

Image for post
Image for post
Photo by Todd Quackenbush on Unsplash

Go is an amazing language that you can use to build almost any kind of program. Developed in 2007, it has the ease of an interpreted language while also being fast and efficient as a compiled language. It was also built thinking about concurrency and getting advantage of the multicore machines. You can even write programs to embedded devices.

Since then, a lot of nice programs and tools have been created using Go, such as Kubernetes, Consul, and NSQ.

With only the standard packages from Go you already can build a nice application.

Fortunately, Go has a vibrant community that creates and shares a lot of libraries that you can use to improve your development. …

Make your app available for more people.

Image for post
Image for post
Photo by NASA on Unsplash

The world has never been more connected than now. You can have access to news from the other side of the globe in a matter of seconds. With more than 190 countries in the world, more than 7000 languages are spoken today. Even if we only count the top 20, it is still a lot.

Each of these languages can have their own way of representing an information, from numbers to the direction of the text. Developing your app to fulfill all these different languages can be very cumbersome.

Globalization (g11n) is a strategic approach to anyone who wants to make a product available for more people around the world. It consists of two steps: internationalization (i18n) and localization (l10n). …

Comparing a Wasm application with JavaScript.

Image for post
Image for post
Photo by Dietmar Becker on Unsplash.

A while ago, while studying Go, I stumbled across WebAssembly and how to use your code in the browser with a language other than JavaScript.

A new world of possibilities and a lot of ideas came to my mind. After all, one of the features of the WebAssembly is to run code “on the web at near native speed”. To be efficient and fast. Faster than JavaScript, anyway.

After creating my first application in WebAssembly using Go, I’ve got curious on how it actually performs against JavaScript.

What is WebAssembly?

Assembly language (or asm) is the closest way to a machine code as you can get without having to write the instructions in binary code. With the help of a assembler (or compiler), you can translate a human readable language into machine code directly. …


Fernando Souza

Enthusiast of programming, electronics, technology and beer, not necessarily in that order. Linkedin:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store