Programming Leftovers
-
Qt ☛ Qt 6.8 Software Bill of Materials
-
Raspberry Pi ☛ Does AI-assisted coding boost novice programmers’ skills or is it just a shortcut? [Ed: Promotion of garbage, as if Microsoft controls their messaging.]
How do artificial intelligence-driven development environments (AIDEs), impact novice programmers in time-sensitive situations?
-
Alex Ewerlöf ☛ Engineering grading systems
Unfortunately, it doesn’t work like that in reality. Poor tech health (e.g. too many high impact incidents, long resolution time, burnt out error budget, etc.) is just a symptom. The real root cause is somewhere else.
This article elaborates why engineering grading systems don’t work and what to do instead.
-
Alex Ewerlöf ☛ Best practice
Earlier in my career, I was an advocate of best practice. But as my understanding of the technology, product, operations and people grew, I realized that most best practices don’t live up to their promises.
All of them? What gives?
This short post elaborates why best practices should be taken with a grain of salt and what to do instead of following them.
-
Ubuntu ☛ Documentation, development and design for technical authors
Typically, a technical writer takes the product created by a development team, and writes the documentation that expresses the product to its users. At Canonical we take a different approach. Documentation is part of the product. It’s the responsibility of the whole team. Documentation work is led by a technical author, who is part of the team, and whose title signals their technical authority.
In documentation, the work of articulating internal logic, interfaces, workflows and conceptual relationships can expose product design problems and reflect them back forcefully to its creators. A technical author who is part of a development team and process can use documentation to help shape the product itself.
-
Chris ☛ Build Failure Rate from Build Times
Looking through the articles I’ve started but never finished, I stumbled over a cool experiment from a few years ago: When a build in a ci environment fails, it usually does so quicker than the time required for a full, successful build. This means we ought to be able to find the fraction of failed builds from the build times alone.
We can pretend build times are a two-component Gaussian mixture. The Gaussian is probably an awful fit for failed builds, which tend to have multi-modal times until failure, but for a quick-and-dirty approximation it might be enough. And the maths are easier than if we did more complicated modeling.
-
Sandor Dargo ☛ Replace CRTP with concepts?
With the static interface, we are creating a static family of types. There is no need for dynamic polymorphism to share the same interface. It’s still granted through a base class, which is a template taking the deriving class as a parameter.
-
James G ☛ Advent of Patterns: Define once, reference everywhere
When I am writing documentation, I often link to more complete guides that explain how to perform a specific action. For example, I may say “Above, set your API key. To learn how to find your API key, refer to our API key guide.” In that text, I would link “API key guide” to the product tutorial on how to find your API key. The API key guide can go into full depth about how to find your API keys, the different types of API keys, and how to manage them.
-
Robert Heaton ☛ PyMyFlySpy: track your flight using its headrest data
Fantastic idea number 1: the /info endpoint didn’t tell us our location, but it did tell us our precise, regularly-updated speed and direction. On our flight home I could track and save our speed and direction every second or so for the whole flight. I could use this information to estimate how far we had traveled in each second, and in which direction. I could dynamically calculate our position by starting at our airport’s co-ordinates, then adding on each second’s step.
-
Quentin Santos ☛ You can move !Unpin - Quentin Santos
Although I am now mostly comfortable with Rust, some concepts still elude me. One of them is the exact meaning of Unpin. The documentation says: [...]
-
Python
-
Allen Downey ☛ Multiple Regression with StatsModels
In the previous chapter we used simple linear regression to quantify the relationship between two variables. In this chapter we’ll get farther into regression, including multiple regression and one of my all-time favorite tools, logistic regression. These tools will allow us to explore relationships among sets of variables. As an example, we will use data from the General Social Survey (GSS) to explore the relationship between education, sex, age, and income.
The GSS dataset contains hundreds of columns. We’ll work with an extract that contains just the columns we need, as we did in Chapter 8. Instructions for downloading the extract are in the notebook for this chapter.
-
Mat Duggan ☛ Making Fun Flask Apps for No Reason
Sometimes life gets you down. Maybe it's a crushing political situation in your home country, perhaps you read the latest scientific data about global warming or hey sometimes you just need to make something stupid to remind yourself why you ever enjoyed doing this. Whatever the reason, let's take a load off and make a pointless Flask app. You can do it too!
-