FOSSPicks
Node-RED
If you've done anything with home automation, home monitoring, or web scraping, then it's likely you'll have come across a great web service called IFTTT (an acronym for "If This Then That"). IFTTT lets you easily map data from your devices, such as a temperature sensor or light switch, to a plethora of other services such as your Google Calendar, Nest account, or even Twitter. It enables you to easily turn on heaters when temperatures plummet or tweet your average heart rate after a run. But IFTTT is not open source and can't be self-hosted. While it was once completely free, it has just launched a Pro tier and limited free accounts to just a few connections.
There are a few solutions you can host locally that perform a similar job. In particular, the Domoticz home automation server includes both a Lua scripting engine and an integrated Blockly visual programming interface, but they can't marshal connections from one device to a service in the same way that IFTTT does. But Node-RED can, albeit with some effort on your part. Node-RED is a super powerful, sublimely designed and implemented, self-hosted visual programming interface you can easily run from a Raspberry Pi (or any other Linux device). It doesn't include drag-and-drop services to easily connect one device to another, but it does provide every possible function and utility to build your own interface for any device you want and process the data from those devices in any way you need.

Node-RED has been around for a few years. It was initially developed by IBM and released as an open source project in 2016 where it became part of the JS Foundation. As both "Node" and "JS" implies, Node-RED is written in JavaScript, and as such it integrates perfectly with many other web technologies and commonly used online data structures. But it's also easy to use and understand, even if you're not a programmer. Much like a flow diagram or modular synthesizer, you build your own functionality by controlling the flow of data. It starts with an Inject node, which can be dragged from the node palette on the left. This node lets you grab data from another device or service, or you can generate data locally using a time stamp or click of the mouse. You can attach this to a CSV parser or HTML parser to separate the contents from the Inject node, and then you operate on those using the same kind of programming logic you'd find in any language, albeit with an emphasis on flowing streams of data. There's even a group of special nodes for use on the Raspberry Pi. These will send and receive data from the GPIO pins and even interpret input from the mouse or keyboard, creating all kinds of controller potential from a simple web interface.
When installed, you access the web interface from port 1880 of your device. Even on an older Raspberry Pi, the web UI is very responsive and easy to use. There are three main areas. On the left is the node palette, while the main chunk of the view is for your "flow," which is the name given to your patchwork of code and nodes. A flow needs to be deployed before it starts running, and you can have more than one loaded at a time with each using its own tab. On the right is the info, documentation, and debug output pane. This allows you to switch between the nodes in the flow view to see which parameters they take, what they do, and any output from your network. It allows you to construct almost any kind of data grabbing, data parsing, and data forwarding function that your home automation needs, all from behind your own home's firewall.
Project Website

Online shooter
batufo
This is a simple but fantastic little game for several reasons. First and foremost, it's an addictive game to play. You control a UFO that moves within a variety of 2D scrolling arenas. To steer, you rotate your craft left and right, much like you do in Asteroids, before applying short bursts of thrust to accelerate in the direction you're facing. The end result is that you can move like a billiard ball, bouncing against the walls and other obstacles, diminishing your shield as you collide. You can pick up power-ups and travel through warp points, but the premise of the game is to destroy the other players. These appear in craft similar to yours, bouncing around the walls of the maze and trying to hit the power-ups before you do. Of course, your task is to destroy these other players using either your laser or a well-placed proximity mine that explodes when you or another player goes over it. The clever thing is that these players are real humans, because batufo is effortlessly multiplayer.
The other reason why batufo is such a good game is that it has been written in Google's shiny new application framework, Flutter. Flutter applications are often developed in Dart with JavaScript, and they are quick to build and use few system resources. They're also effortlessly multiplatform, and batufo will run on Linux, macOS, Windows, Android, and even in a web browser without any difficulty. But all of this has been augmented by the developer documenting the entire game-building process from their own set of excellent videos, which are linked to from their website. These videos show every stage of the game's development and offer brilliant insight into how an indie developer approaches game design, even to the point of building a level builder anyone can download and use to create maps for the game.
Project Website

Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Direct Download
Read full article as PDF:
Price $2.95
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Find SysAdmin Jobs
News
-
OpenMandriva Lx 23.03 Rolling Release is Now Available
OpenMandriva "ROME" is the latest point update for the rolling release Linux distribution and offers the latest updates for a number of important applications and tools.
-
CarbonOS: A New Linux Distro with a Focus on User Experience
CarbonOS is a brand new, built-from-scratch Linux distribution that uses the Gnome desktop and has a special feature that makes it appealing to all types of users.
-
Kubuntu Focus Announces XE Gen 2 Linux Laptop
Another Kubuntu-based laptop has arrived to be your next ultra-portable powerhouse with a Linux heart.
-
MNT Seeks Financial Backing for New Seven-Inch Linux Laptop
MNT Pocket Reform is a tiny laptop that is modular, upgradable, recyclable, reusable, and ships with Debian Linux.
-
Ubuntu Flatpak Remix Adds Flatpak Support Preinstalled
If you're looking for a version of Ubuntu that includes Flatpak support out of the box, there's one clear option.
-
Gnome 44 Release Candidate Now Available
The Gnome 44 release candidate has officially arrived and adds a few changes into the mix.
-
Flathub Vying to Become the Standard Linux App Store
If the Flathub team has any say in the matter, their product will become the default tool for installing Linux apps in 2023.
-
Debian 12 to Ship with KDE Plasma 5.27
The Debian development team has shifted to the latest version of KDE for their testing branch.
-
Planet Computers Launches ARM-based Linux Desktop PCs
The firm that originally released a line of mobile keyboards has taken a different direction and has developed a new line of out-of-the-box mini Linux desktop computers.
-
Ubuntu No Longer Shipping with Flatpak
In a move that probably won’t come as a shock to many, Ubuntu and all of its official spins will no longer ship with Flatpak installed.