Language Selection

English French German Italian Portuguese Spanish

Programming/Development: Minicoin, GNU Gengetop and Python

Filed under
  • 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

Olimex Tukhla High-End Open Source Hardware NXP i.MX 8QuadMax SBC in the Works

Most open-source hardware Arm Linux SBCs are optimized for cost, and there are few higher-end boards with extensive connectivity designed for professionals. Beagleboard X15 would be one of the rare examples currently available on the market, but it was launched five years ago. One European company noticed the void in this market and asked Olimex to develop a high-end open-source Linux board with a well-documented processor. They ruled out RK3399, and instead went Olimex Tukhla SBC will be powered by NXP i.MX 8QuadMax, the top processor of i.MX 8 family with two Cortex-A72 cores, four Cortex-A53 cores, and two real-time Cortex-M4F cores. Read more

Robotics Recap: Learning, Programming & Snapping ROS 2

Robotics@Canonical puts a strong focus on the migration from ROS to ROS 2. ROS 2 benefits from many improvements, especially robot security. Our goal is to make it easy for you to transition to ROS 2, whether you’re completely new to ROS or a seasoned engineer retooling for a new environment. Your new platform should be secure-by-default, and we expect you’ll need to pivot between different environments as you migrate from ROS to ROS 2. Along the way we’ve encountered some friction points, some mild surprises, and some opportunities to better leverage existing tools. Whenever that happened we tried to fix them and share our experiences so you didn’t run into the same problems! This has resulted in blog posts and videos in three key focus areas: getting started with ROS 2, software development in ROS 2, and building snaps for ROS. Let’s recap some of our recent output. Read more

Linux 5.8-rc5

Ok, so rc4 was small, and now a week later, rc5 is large.

It's not _enormous_, but of all the 5.x kernels so far, this is the
rc5 with the most commits. So it's certainly not optimal. It was
actually very quiet the beginning of the week, but things picked up on
Friday. Like they do..

That said, a lot of it is because of the networking fixes that weren't
in rc4, and I'm still not hearing any real panicky sounds from people,
and things on the whole seem to be progressing just fine.

So a large rc5 to go with a large release doesn't sound all that
worrisome, when we had an unusually small rc4 that precedes it and
explains it.

Maybe I'm in denial, but I still think we might hit the usual release
schedule. A few more weeks to go before I need to make that decision,
so it won't be keeping me up at night.

The diffstat for rc5 doesn't look particularly worrisome either. Yes,
there's a (relatively) high number of commits, but they tend to be
small. Nothing makes me go "umm".

In addition to the outright fixes, there's a few cleanups that are
just prep for 5.9. They all look good and simple too.

Anyway, networking (counting both core and drivers) amounts to about a
third of the patch, with the rest being spread all over: arch updates
(arm64, s390, arc), drivers (gpu, sound, md, pin control, gpio),
tooling (perf and selftests). And misc noise all over.

The appended shortlog gives the details, nothing really looks all that
exciting. Which is just as it should be at this time.

Go forth and test.


Read more Also: Linux 5.8-rc5 Released As A Big Kernel For This Late In The Cycle