Picture

Name Marco von Ballmoos
Member since
Email [hidden]
Home page https://earthli.com/users/marco
Description

The (only) developer at earthli.com.

Contents

3217 Articles
111 Comments

7 months Ago

History doesn’t care about justice

Published on in Quotes

 History has no mercy. There are no laws in it against suffering and cruelty, no internal balance that restores a people much sinned against to their rightful place in the world. Cyclical views of history have always seemed to me flawed for that reason, as if the turning of the screw means that present evil can later be transformed into good. Nonsense. Turning the screw of suffering means more suffering, and not a path to salvation. The most frustrating thing about history, however, is that so... [More]”

Woefully unqualified “programmers”

Published on in Programming

As I was reading the absolute train wreck of a unit test in Testing with a Lisp (Daily WTF), the song “What the fuck is going on?” popped into my head, like it always does when I see that a programmer not only didn’t understand the assignment, not only doesn’t know how to program, but also doesn’t know that they don’t know how to program.

They are living their best life because they don’t think that “knowing how to program” is required in order to be a programmer. Neither does their boss or team, I guess.... [More]

Raiffeisen PhotoTAN Registration

Published on in Design

A major bank in Switzerland has an MFA that uses PhotoTAN. It took me dozens of attempts over three days to finally be able to register the app.

This isn’t the first time that this has happened. I’d reset my phone in July and I’d had to go through this for a couple of days then. When my partner reset their phone in August, it took days to register. In September, I’ve moved into a new phone and had to set up the app again.

  • It often failed to even send an SMS
  • 17 times it managed to send an... [More]

Links and Notes for September 29th, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

Technology-independent software-development courses

Published on in Programming

I was recently asked something like the following question, which I am citing with a few minor edits.

We would like to do a course about SW development with Python, preferably an online course, so that we can start at our own pace.

We don’t want a Python course, but would instead like a course more about SW development. It would be great if it were in Python because we are comfortable with it.

The interesting topics would be:

  • object-oriented programming
  • functional programming
  • design... [More]

To crash or not to crash; that is the question

Published on in Programming

Note: I found this old draft containing my response to a colleague.

I 100% agree with you, in general. I absolutely want to know immediately when an assumption I’ve made does not hold.

But…😁

The degree to which I’m willing to crash depends on whose consistency I’m basing my assumptions on. When I call a method in my code from another method in my code, I’m absolutely going to assert that an argument is not null. I can control that. My IDE will tell me when I might be passing null. That... [More]

Encodo White Papers Archive

Published on in Programming

This article is a copy of the white papers and process description that I wrote for Encodo Systems while I still worked there. I’ve preserved a copy of it here and in the linked articles.

Through our many years of experience building software, we’ve accumulated methodologies and principles that lead to quality software.

  • The experience and know-how we bring to our consulting services also make us excellent partners in development-process consulting.
  • We have experience in reviewing existing... [More]

Encodo White Papers: DI, IOC and Containers (2019)

Published on in Programming

Encodo keeps the SOLID principles in mind when designing software.

DI & IOC

We implement the Inversion of Control [I] pattern with the dependency-injection pattern (D) to allow for a large amount of flexibility in how an application is composed. We’ve applied this principle throughout the Quino framework and use it in our products as well.

What does this mean? It means that the product or framework doesn’t make any decisions about which exact components to use. Instead, it indicates the API... [More]

Encodo White Papers: Clean and Safe Code (2019)

Published on in Programming

These are the two core principles that guide how we write code:

  • KISS: Keep It Simple, Stupid
  • YAGNI: You Ain’t Gonna Need It

KISS

This first principle is a constant reminder to ourselves to avoid the seductive call of cleverness. Most code does not need to be clever. Very occasionally, it is necessary to implement something with real flair, that requires explanation.

The best code, though, requires no explanation. The best code gets its job done in a very boring way, using the same... [More]

Encodo White Papers: Testing as first-class citizen (2019)

Published on in Programming

Tests are code. Writing tests is not a “step”—it is part of writing the code itself. The component is nothing without its tests.

It should be easy to verify any requirement with a test. The tests should tell the story of the requirements.

A developer can test any component in isolation (unit testing) or can test the component in the constellation in which it normally exists (integration testing).

Tests are code

Just so we’ve said it: tests are not a place to use a different coding style... [More]

Encodo White Papers: Document Everything (2017)

Published on in Programming

Good documentation is part of every piece of quality software. What do we mean by “good”, though? Or “documentation”, for that matter? Quality software should be self-explanatory, but don’t be fooled into thinking that you don’t need to write documentation.

Actors & Use Cases

Documentation has an audience. Before writing anything, consider who you’re writing it for. What are the possible audiences?

Evaluators

Evaluators are interested in what your software does, how it interacts with other... [More]

Encodo White Papers: Continuous Integration and Delivery (2017)

Published on in Programming

An important part of the software process is the final step: delivery.

If you can’t get your software into your customer’s hands, then what’s the point of writing it at all?

Goals

There are several at-times cross-cutting goals. In descending order of importance, they are:

  • Improve reliability and quality of releases
  • Improve efficiency of the release process
  • Improve testing feedback loop
  • Improve efficiency of the development process

Definition

There are several aspects to continuous... [More]

Encodo White Papers: Design by Contract (2006)

Published on in Programming

Design by Contract is a software engineering practice in which software requirements and promises − the “Contract” − are explicitly written into the code. The code is, at the same time, better documented, more reliable and easier to test against. Encodo uses this technique to ensure software quality.

A brief overview of contracts

A software contract is composed of several components: preconditions, postconditions and invariants. Preconditions are what a component requires of a client, whereas... [More]

Encodo White Papers: Code Reviews (2017)

Published on in Programming

A healthy and active review culture is essential for any team interested in building quality software. At Encodo, we’ve been doing reviews for a long time. They’ve become an essential part of everything we do:

  • Analysis
  • Estimates
  • Design
  • Architecture
  • Coding
    • Style
    • Performance
    • Coverage
    • Security
  • Deployment
  • And more…

Definition

What we mean by review is not a formal process at all. It is simply that you prepare work you’ve done for an informal presentation to a team member. Explaining what... [More]

Encodo White Papers: Component-based Design (2006)

Published on in Programming

This article is part of an archive of Encodo White Papers.

What is the best approach when designing a new application, be it a small tool or an end-user application?

Build a Prototype?

Many developers jump straight into a prototype, in order to get a feel for how the application will work. While prototypes are good for demonstrations, they are dangerous: in projects with tight time or budget constraints, the temptation to simply “build out” the prototype becomes irresistible. This leads to... [More]

Encodo White Papers: Test-driven Development (2006)

Published on in Programming

Most people in the software industry have heard of test-driven development — it has become a buzzword with several possible meanings.

The Problem with Unit Testing

One of the more negative associations is the notion of unit testing. Unit testing traditionally involves writing a test for each and every routine in a unit or class, to ensure that it does what it claims. This practice has, of late, declined in popularity — mostly because of the sheer mindlessness of maintaining complete... [More]

Links and Notes for September 22nd, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

Links and Notes for September 15th, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

Links and Notes for September 8th, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

We’ve been here before

Published on in Miscellaneous

The interview The Great Reorganization of Sexuality and Gender by Hugh Ryan (This is Hell!) is quite an interesting discussion, which ranged over some absolutely terrible characterizations of what the concerns of so-called right-wingers are, as well as seemingly obstinately refusing to acknowledge the modern-day use of the word snowflake, instead clinging to a 19th-century definition, as well as completely misdefining the Dunning-Kruger Effect, and misusing “strawman argument” for good measure. Then he uses the phrase... [More]

8 months Ago

Capsule Movie Reviews Vol.2023.07

Published on in Movies

These are my notes to remember what I watched and kinda what I thought about it. I’ve recently transferred my reviews to IMDb and made the list of around 1600 ratings publicly available. I’ve included the individual ratings with my notes for each movie. These ratings are not absolutely comparable to each other—I rate the film on how well it suited me for the genre and my mood and. let’s be honest, level of intoxication. YMMV. Also, I make no attempt to avoid spoilers.

Star Trek III: The... [More]

Killing with medical neglect

Published on in Public Policy & Politics

 The article Drug makers have tripled the prices of top Medicare drugs by Beth Mole (Ars Technica) writes,

“Overall, the average lifetime price increase for the top 25 drugs was 226 percent. The highest increases were seen in drugs that have been on the market the longest. For example, drugs that were on the market for under 12 years had an average lifetime price increase of 58 percent, while those on the market for 20 or more years had an average lifetime increase of 592 percent.

These are medications to help people.... [More]

Art is not Content

Published on in Philosophy

 The always-entertaining Patrick [H] Willem made two excellent videos about the state of filmmaking and art, in general. The first one discusses what people are calling AI films, focusing on the recent spate of so-called Wes Anderson AI remakes.

There’s not a lot of my own, original writing in this article. Instead, I’ve done the service of transcribing what I found to be the pithiest, hardest-hitting parts of Willem’s two rather long videos, which total more than 90 minutes.

A.I. Filmmaking Is Not The Future. It's a Grift. by Patrick (H) Willems (YouTube)

At 27:00,... [More]

Links and Notes for September 1st, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

The UI is an afterthought, a detail

Published on in Programming

Complexity: Divide and Conquer! by Michel Weststrate on May 7, 2017 (YouTube)

“Can we make our UI dumb enough to make our app usable without it?”

The video demonstrates navigating through a simple e-commerce site. Then, he shows how the app can be driven from the console by calling the APIs directly—upon which the URL and UI all update automatically. That is, the logic is not in the UI.

He then demonstrates that he can drive the web site without a UI by deleting the rendering to React DOM entirely. He can still manipulate the console API to perform the same... [More]

Elite Universities are Hedge Funds

Published on in Public Policy & Politics

The article US Colleges and Universities Are Becoming Giant Exploitation Machines by Daniel Denvir & Dennis M. Hogan (Jacobin) writes,

“[…] there are schools like Yale or Princeton, frankly, that have the latitude such that they could pretty much send people to school for free. But in spite of that, they continue to overwhelmingly enroll wealthy students.

And it’s not merit-based; they’re laundering privilege into credentials. That’s their business.

“They’re going to end up graduating students with more debt who also have... [More]

Lip service is not enough

Published on in Public Policy & Politics

The article Let Me Reiterate the Questions I Asked in My AOC Essay by Freddie de Boer (SubStack) writes

“Ocasio-Cortez is not treated like a legislator, but like an icon, a sacred cow who can’t be criticized where any back-bench fifth-year representative would be for similar behavior. I don’t know what that is, but it’s not progressive.”

 This is a not unusual idolization of a person who is seen as a bulwark against things ostensibly even more evil. But, as listed in concise detail in the linked article, there are... [More]

Sanders 💕 Biden

Published on in Public Policy & Politics

Oh, c’mon, Bernie. Really?

 The article In New Hampshire speech, Bernie Sanders seeks to give Biden “progressive” credentials, comparing him to FDR by Patrick Martin (WSWS) reports on Sanders’s latest disappointment. The article basically provides detail for what it says on the tin.

Specifically, he said this:

“The Democrats, once and for all, must reject the corporate wing of the party and empower those who are prepared to create a grassroots, multi-racial, multi-generational working class party in every state in... [More]”

Links and Notes for August 25th, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents

Links and Notes for August 18th, 2023

Published on in Notes

Below are links to articles, highlighted passages[1], and occasional annotations[2] for the week ending on the date in the title, enriching the raw data from Instapaper Likes and Twitter. They are intentionally succinct, else they’d be articles and probably end up in the gigantic backlog of unpublished drafts. YMMV.

[1] Emphases are added, unless otherwise noted.
[2] Annotations are only lightly edited and are largely contemporaneous.

Table of Contents