Language Selection

English French German Italian Portuguese Spanish

Programming/Development: Minicoin, GNU Gengetop and Python

Filed under
Advertisement
  • Building and testing on multiple platforms – introducing minicoin

    While working with large-scale (thousands of hosts), distributed (globally) systems, one of my favourite, albeit somewhat gruesome, metaphors was that of “servers as cattle” vs “servers as pets”. Pet-servers are those we groom manually, we keep them alive, and we give them nice names by which to remember and call (ie ssh into) them. However, once you are dealing with hundreds of machines, manually managing their configuration is no longer an option. And once you have thousands of machines, something will break all the time, and you need to be able to provision new machines quickly, and automatically, without having to manually follow a list of complicated instructions.

    When working with such systems, we use configuration management systems such as CFEngine, Chef, Puppet, or Ansible, to automate the provisioning and configuration of machines. When working in the cloud, the entire machine definition becomes “infrastructure as code”. With these tools, servers become cattle which – so the rather unvegetarian idea – is simply “taken behind the barn and shot” when it doesn’t behave like it should. We can simply bring a new machine, or an entire environment, up by running the code that defines it. We can use the same code to bring production, development, and testing environments up, and we can look at the code to see exactly what the differences between those environments are. The tooling in this space is fairly complex, but even so there is little focus on developers writing native code targeting multiple platforms.

    For us as developers, the machine we write our code on is most likely a pet. Our primary workstation dying is the stuff for nightmares, and setting up a new machine will probably keep us busy for many days. But this amount of love and care is perhaps not required for those machines that we only need for checking whether our code builds and runs correctly. We don’t need our test machines to be around for a long time, and we want to know exactly how they are set up so that we can compare things. Applying the concepts from cloud computing and systems engineering to this problem lead me (back) to Vagrant, which is a popular tool to manage virtual machines locally and to share development environments.

  • GNU Gengetopt - News: 2.23 released

    New version (2.23) was released. Main changes were in build system, so please report any issues you notice.

  • Abolishing SyntaxError: invalid syntax ...

    Do you remember when you first started programming (possibly with Python) and encountered an error message that completely baffled you? For some reason, perhaps because you were required to complete a formal course or because you were naturally persistent, you didn't let such messages discourage you entirely and you persevered. And now, whenever you see such cryptic error messages, you can almost immediately decipher them and figure out what causes them and fix the problem.

  • Sending email with EZGmail and Python
  • Creating and Importing Modules in Python

More in Tux Machines

today's howtos

  • Getting started with JBoss | Enable Sysadmin

    JBoss Enterprise Application Platform (EAP) is an enterprise-grade, open source platform to deploy highly transactional and scalable web applications. It includes everything you need to build, run, deploy, and manage enterprise-level Java applications in different environments—including on-premises, virtual environments, and private, public, and hybrid clouds. This article explains some of what I have learned during my time with JBoss EAP, its operating modes, installing it, and managing the JBoss service. I will also show how to build and deploy a sample web application archive (WAR) file so that you can learn alongside me.

  • How to scale GRUB menu on 4K displays

    Several weeks ago, I installed Kubuntu 20.04 on my IdeaPad Y50-70, a somewhat old but rather capable 15.6-inch laptop with a 4K screen resolution. Predictably, the device wasn't usable in its native screen mode, and I had to make everything bigger, scaling and all that. In the end, I managed to create an ergonomically comfortable setup, with two exceptions - the login menu, and the boot menu. The former gave me some grief, but I was able to get it sorted. With GRUB, there were more problems. One, the menu wouldn't show, even though I had a dual-boot configuration in place. Two, the menu was tiny, with the text barely readable. So I embarked on a journey of GRUB modifications, hence this tutorial. Let me show you how you can make the GRUB menu bigger on HD/UHD displays.

  • Use this Linux command-line tool to learn more about your NVMe drives | Opensource.com

    NVMe stands for Non-Volatile Memory Express, and it refers to how software and storage communicate across PCIe and other protocols, including TCP. It's an open specification led by a non-profit organization and defines several forms of solid-state storage. My laptop has an NVMe drive, as does my desktop. And they're fast. I love how quickly my computers boot and how quickly they're able to read and write data. There's no perceptible delay. It also didn't take long for me to get curious about the technology driving this ultra-fast storage, so I did a little investigation. I learned that NVMe drives consume less power while delivering much faster access to data compared to even SSD drives over SATA. That was interesting, but I wanted to know more about my particular NVMe drives, and I wanted to know how they compared with other drives. Could I securely erase the drive? How could I check its integrity? Those questions led me to an Internet search that yielded an open source project with a collection of tools to manage NVMe drives. It's called nvme-cli.

  • Delta Chat, Overview and Installation

    The email messenger, Delta Chat, is a Germany communication app which everyone can use and just works friends and family even without them using the same application. This article overviews it and give installation guide for Ubuntu and Android users. Let's chat!

  • How to install Node.js & NPM on Debian 11

    Node.js is an open-source, cross-platform runtime environment for developing server-side and networking applications built on Chrome's V8 JavaScript engine. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. NPM(Node Package Manager) is the default package manager for Node.js. It comes installed when you install Node.js. You can do almost everything with it since it provides access to thousands of packages that can be downloaded and installed in your application's project directory through the command-line interface. In this article, we will learn what Nodejs is and how to install it on a Linux machine using a non-root user account.

  • How to Install pgAdmin 5 PostgreSQL Administration Tool on Debian 11

    pgAdmin is a free and open-source graphical administration tool for PostgreSQL which is easy to use. It supports PostgreSQL 9.6 and above, and it can be run on multiple operating systems, including Windows, macOS, and Linux.

  • Install Filebeat on CentOS 8 - Unixcop

    Filebeat is used to ship logs to logstash or Elastic search to filter and use them as per requirement. Whether you’re collecting from security devices, cloud, containers, hosts, or OT, Filebeat helps you keep the simple things simple by offering a lightweight way to forward and centralize logs and files. Filebeat consists of two main components: inputs and harvesters. These components work together to tail files and send event data to the output that you specify. An input is responsible for managing the harvesters and finding all sources to read from.

  • How to Install FreeRADIUS and Daloradius on Ubuntu 20.04 – VITUX

    RADIUS is a AAA (authentication, authorization, and accounting) protocol that helps in controlling network access. In other words, RADIUS protocol is used for connection management between the Network Access Server (NAS) and Authentication server. The connection between two ends(NAC-NAS or NAS-Authentication server) is initiated after a successful negotiation on the network layer by exchanging packets containing necessary information such as NAS identification, authentication port number etc. In simple words, it can be said that RADIUS provides authentication, authorization, and account information from an Authentication server to a device requesting access.

Today in Techrights

NVIDIA 470.74 Graphics Driver Brings Support for Linux Kernel 5.14, Firefox Improvements

Good news for NVIDIA users who want to upgrade their distributions to Linux 5.14 as NVIDIA 470.74 is here with a fix for bug that caused the nvidia-drm.ko kernel module to crash when loading with DRM-KMS enabled (modeset=1) on the Linux 5.14 kernel series. In addition, it improves support for the Mozilla Firefox web browser to prevent visual corruption by adding an application profile to disable FXAA (also available for FreeBSD and Solaris systems), it fixes a Vulkan performance regression that affected the rFactor2 computer racing simulator game, and addresses a bug that could cause GPU apps to exit when resuming from suspend. Read more

Pensela: An Open-Source Tool Tailored for Screen Annotations

You may have come across several screenshot tools available for Linux. However, a dedicated screen annotation tool along with the ability to take screenshots? And, with cross-platform support? Well, that sounds even better! While you get many tools to beautify your screenshots and the screenshot tools like Flameshot, Pensela lets you focus on annotations first. It focuses on offering several annotation options while giving you the ability to take full-size screenshots. Here, I shall highlight some of its features along with my experience using it. Read more