printf("hello, world\n");
Today is Setting Orange, the 54th day of Confusion in the YOLD 3190, aka Fri Jul 19 09:22:50 CDT 2024.
The Moon’s current phase is Waxing Gibbous (more than 50%, but not full), visible through the night. Today is National Daiquiri Day and also Stick Out Your Tongue day. You can sort out the correct order for celebrating these.
Today in history, French bicyclist Maurice Garin won the first Tour de France, which covered 2,428 km (1,508 miles).
fortune -s fortunes
Your objective is to save the world, whilst still leading a pleasant, humdrum life.
Authentic contributions build community
Comedian Steve Martin has a rule that built his career: “Be so good they can’t ignore you.” MAAS developer Peter Makowski recently took that to heart when he took on a fourteen-year-old bug in Firefox. As Peter tells it, “I could have just patched it for MAAS, given that I’m not a C++ programmer, but it seemed like a worthy challenge.”
At issue was the way Firefox handles substitute elements in HTML, like the stylized checkboxes we substitute for the defaults in our Vanilla framework. Group selections wouldn’t work, leaving MAAS UI users frustrated. Peter figured it wouldn’t be too hard to find the bug. Along the way, he picked up a taste of C++ and an appreciation for a well-written codebase.
“The Firefox code is extremely well-organized,” he said in a recent edition of the weekly MAAS Show and Tell podcast. “And I figured it was better to just fix it for everybody.” After all, we are open-source developers.
Even a little doc helps
Bill Wear, the MAAS technical author, has experienced, first-hand, the power of this kind of reciprocal community involvement.
“I had been trying for weeks to connect with our community, with little traction,” he said. “One week, the scheduled Show and Tell presenter backed out, so I had to throw something together at the last minute. I decided to sort of walk through my personal documentation on jq, the JSON prettifier utility.” The rest is history.
“A YouTube content creator who saw the podcast was impressed, and talked it up. All of a sudden, I had about ten large MAAS users wanting to connect.” One of them even became fast friends, and later explained what changed his mind.
“When you ask for help with your products, it sounds like a call for free labor,” this MAAS user said. “But then people see you offering free, public documentation for an independent open-source product that – let’s face it – is irreplaceable, but notoriously hard to use. You took the time to improve somebody else’s doc. That sold me.”
Based on these kinds of “freebies,” the MAAS team is building an organic community around the product. We’re getting outside contributions of code, significant feedback on our documentation, and even some volunteers to help with both.
The point is that community is a two-way street. When users and customers see us participating freely, they’re much more likely to join our work. It’s easy to ignore requests from a for-profit company asking for free code; it’s much harder to ignore committed open-source developers who regularly contribute to projects for the good of everyone.
MAAS 3.5 (and its deeper changes)
About a year ago, we decided to document our vision about how the future MAAS will manage next-generation data centers. We spent a great deal of time thinking deeply about the right topology for services in MAAS. Most of the ideas were compiled into the internal “Region-rack responsibility rethink specification,” which is our foundational document going forward.
We want MAAS to be fast and stay fast at scale, so we rethought the process of synchronising and distributing boot assets, so that the bootloaders, kernels and images, as well as services providing PXE booting, reside close to the deploying machines. We also worked out how to substantially increase the reliability of long-running operations such as machine deployment, with consistent retry policies and error reporting.
MAAS 3.5 is the first release where some of these concepts were implemented and so far this is the biggest release in terms of commits made – although the graph below doesn’t include tremendous work on MAAS documentation and MAAS UI.
git log tags/x.x.x..tags/y.y.y --invert-grep --grep "Update maas-ui" --invert-grep --grep 'Update maas-offline-docs' --pretty=oneline | wc -l
One significant shift is the introduction of MAAS Agent, which will eventually replace the Rack Controller, providing all its functionality without any external dependencies. Currently, MAAS Agent partially handles power management and is fully responsible for serving bootloaders and images.
Despite the introduction of Temporal as a MAAS workflow engine being significant enough to bump major version of MAAS to 4.0, we managed to integrate this substantial dependency seamlessly, keeping it hidden from the user. The hardest part was to get .deb packages for Temporal server and Temporal Python SDK (which depends on Temporal Rust Core SDK).
It seems that running Temporal as an embedded workflow engine is something that nobody ever did, so we are a bit alone in this journey and might have some interesting insights in the future.
Observability (O11y) is another key “enchantment” aimed at improving our system. In version 3.5 we changed the way we store logs by consolidating everything into a system journal. For snap version everything can be found in journalctl -u snap.maas.pebble
and via -t
you can provide various identifiers (e.g. maas-regiond
or maas-rackd
).
We are also happy to announce that MAAS snap is now using Pebble instead of supervisord
to manage external dependencies. While moving to Pebble we observed several bugs but at the end the most annoying deadlock one was fixed. Kudos to Ben Hoyt and Harry Pidcock for all the help.
ASCIItoon
My friends call me MAAS.
Author: Mark Shuttleworth <mark@canonical.com>
Date: Thu Mar 15 11:10:35 2012 +0000
[r=allenap][bug=][author=sabdfl] My friends call me MAAS.
diff --git a/utilities/normalize-spelling b/utilities/normalize-spelling
index 278c8264c..7196dca05 100755
--- a/utilities/normalize-spelling
+++ b/utilities/normalize-spelling
@@ -11,4 +11,4 @@ set -o nounset
# the capitalization of the first letter.
bzr ls -VR --kind=file --null \
| xargs -r0 grep -Iil maas --null \
- | xargs -r0 sed -i 's/M[Aa][Aa][Ss]/MaaS/g;s/m[Aa][Aa][Ss]/maas/g'
+ | xargs -r0 sed -i 's/M[Aa][Aa][Ss]/MAAS/g;s/m[Aa][Aa][Ss]/maas/g'