Name Marco Von Ballmoos
Member since
Email [hidden]
Home page http://earthli.com/users/marco

The (only) developer at earthli.com.


2243 Articles

3 months Ago

James Tobin on the ‘paper economy’

Published on in Quotes

I found this quote in the tooltip of XKCD #2101[1].

“I [suspect] that we are throwing more and more of our resources, including the cream of our youth, into financial activities remote from the production of goods and services, into activities that generate high private rewards disproportionate to their social productivity. I suspect that the immense power of the computer is being harnessed to this ‘paper economy’, not to do the same transactions more economically but to balloon the quantity and... [More]”
James Tobin on July 1984

Using Unity, Collab and Git

Published on in Programming

If you’re familiar with the topic, you might be recoiling in horror. It would be unclear, though, whether you’re recoiling from the “using Collab” part or the “using Collab with Git” part.

Neither is as straightforward as I’d hoped.

tl;dr: If you have to use Collab with Unity, but want to back it up with Git, disable core.autocrlf[1] and add * -text to the .gitattributes.

Collab’s Drawbacks

Collab is the source-control system integrated into the Unity IDE.

It was built for designers to be... [More]

Roubini on Cryptocurrencies and Blockchain

Published on in Finance & Economy

The following citations are from an interesting talk/paper, Testimony for the Hearing of the US Senate Committee on Banking, Housing and Community Affairs On “Exploring the Cryptocurrency and Blockchain Ecosystem” by Nouriel Roubini on October 2018 (U.S. Senate Banking Committee) (sub-titled: Crypto is the Mother of All Scams and (Now Busted) Bubbles While Blockchain Is The Most Over-Hyped Technology Ever, No Better than a Spreadsheet/Database).

He had good foresight in 2007, but I’m surprised to see how confident he is about the current system in that paper... [More]

Finding deep assembly dependencies

Published on in Programming

Quino contains a Sandbox in the main solution that lets us test a lot of the Quino subsystems in real-world conditions. The Sandbox has several application targets:

  • WPF
  • Winform
  • Remote Data Server
  • WebAPI Server
  • Console

The targets that connect directly to a database (e.g. WPF, Winform) were using the PostgreSql driver by default. I wanted to configure all Sandbox applications to be easily configurable to run with SqlServer.

Just add the driver, right?

This is pretty straightforward for a... [More]

QQL: A Query Language for Quino

Published on in Programming

In late 2011 and early 2012, Encodo designed a querying language for Quino. Quino has an ORM that, combined with .NET Linq provides a powerful querying interface for developers. QQL is a DSL that brings this power to non-developers.

QQL never made it to implementation—only specification. In the meantime, the world moved on and we have common, generic querying APIs like OData. The time for QQL is past, but the specification is still an interesting artifact, in its own right.

Who knows? Maybe... [More]

Breaking Changes in C#

Published on in Programming

Due to the nature of the language, there are some API changes that almost inevitably lead to breaking changes in C#.

Change constructor parameters

While you can easily make another constructor, marking the old one(s) as obsolete, if you use an IOC that allows only a single public constructor, you’re forced to either

  • remove the obsolete constructor or
  • mark the obsolete constructor as protected.

In either case, the user has a compile error.

Virtual methods/Interfaces

There are several... [More]

Version numbers in .NET Projects

Published on in Programming

Any software product should have a version number. This article will answer the following questions about how Encodo works with them.

  • How do we choose a version number?
  • What parts does a version number have?
  • What do these parts mean?
  • How do different stakeholders interpret the number?
  • What conventions exist for choosing numbers?
  • Who chooses and sets these parts?


In decreasing order of expected expertise,

  • Developers: Writes the software; may *change* version numbers
  • Testers:... [More]

v6.0: .NET Standard & Authentication

Published on in Programming

Note: this article was originally published at Encodo.com at the end of October, 2018.

The summary below describes major new features, items of note and breaking changes.

The links above require a login.


At long last, Quino enters the world of .NET Standard and .NET Core. Libraries target .NET Standard 2.0, which means they can all be used with any .NET runtime... [More]

Learning Quino: a roadmap for documentation and tutorials

Published on in Programming

Note: this article was originally published at Encodo.com in July, 2018.

In recent articles, we outlined a roadmap to .NET Standard and .NET Core and a roadmap for deployment and debugging. These two roadmaps taken together illustrate our plans to extend as much of Quino as possible to other platforms (.NET Standard/Core) and to make development with Quino as convenient as possible (getting/upgrading/debugging).

To round it off, we’ve made good progress on another vital piece of any... [More]

Delivering Quino: a roadmap for deployment

Published on in Programming

Note: this article was originally published at Encodo.com in July, 2018.

In a recent article, we outlined a roadmap to .NET Standard and .NET Core. We’ve made really good progress on that front: we have a branch of Quino-Standard that targets .NET Standard for class libraries and .NET Core for utilities and tests. So far, we’ve smoke-tested these packages with Quino-WebApi. Our next steps there are to convert Quino-WebApi to .NET Standard and .NET Core as well. We’ll let you know when it’s... [More]

Removing unwanted references to .NET 4.6.1 from web applications

Published on in Programming

Note: this article was originally published at Encodo.com in July, 2018.

The title is a bit specific for this blog post, but that’s the gist of it: we ended up with a bunch of references to an in-between version of .NET (4.6.1) that was falsely advertising itself as a more optimal candidate for satisfying 4.6.2 dependencies. This is a known issue; there are several links to MS GitHub issues below.

In this blog, I will discuss direct vs. transient dependencies as well as internal vs. runtime... [More]

Quino’s Roadmap to .NET Standard and .NET Core

Published on in Programming

Note: this article was originally published at Encodo.com in May, 2018.

With Quino 5, we’ve gotten to a pretty good place organizationally. Dependencies are well-separated into projects—and there are almost 150 of them.

We can use code-coverage, solution-wide-analysis and so on without a problem. TeamCity runs the ~10,000 tests quickly enough to provide feedback in a reasonable time. The tests run even more quickly on our desktops. It’s a pretty comfortable and efficient experience,... [More]

Docker for Windows and Hyper-V

Published on in Tips & Tricks

As it stands, Docker for Windows still requires Hyper-V to be enabled on the host machine. If you’ve been around long enough, you may still believe (falsely, it turns out) that Hyper-V doesn’t work with hyper-threading.

The problem with Hyper-V was apparently never that it disabled hyper-threading but that it led to sub-optimal cache-usage on older chips (single-core). Newer chips have many more cores and much larger caches, so the cache-poisoning issue from 2005 is no longer a problem.
... [More]

Repairing Windows Updates that refuse to install

Published on in Tips & Tricks

 Updates won't install Windows Defender not runningFor quite some time now (months?), my Windows 10 installation has had a problem/corruption in its Update Database that prevented it from applying some updates.

At first, it was just a definition update for Windows Defender, which is bad enough. However, a recent update to Windows Defender itself could not be applied and this conflict prevented Windows from even starting Windows Defender Antivirus.

That’s not great.

Finally: A Solution

Digging around online in this problem area is... [More]

Convert Markdown to earthli format

Published on in Programming

The earthli blogging format uses HTML-like formatting, described in the lengthy manual (with examples). However, Encodo’s blogging back-end now uses Umbraco, with Markdown for content. I used to be able to cross-post with ease, by copy/pasting. Now, I need to convert the content from Markdown to earthli formatting.

The following steps suffice to convert any article:

  1. If there are attached media (e.g. graphics), save those locally
  2. Create a new earthli article with the same title as the source... [More]

Syncing Contacts with the Apple iCloud

Published on in Tips & Tricks

too long; didn’t read: Back up with Time Machine before syncing your contacts via iCloud. If iCloud wipes out your contacts, you can restore the ~/Library/Application Support/AddressBook/ folder to get them back.

I regularly use two MacOS devices and one iOS device. Considering who else already has my contacts, I figure it was time, for convenience’s sake, to use Apple’s iCloud to sync my contacts across the three devices.

I obviously not writing this article to inform the world that... [More]

Why so angry?

Published on in Quotes

“Rage is by no means an automatic reaction to misery and suffering as such. Only where there is reason to suspect that conditions could be changed, and are not does, rage arise.”
Hannah Arendt

The True Self

Published on in Quotes

“At sea, a fellow comes out,”
Herman Melville

Capsule Movie Reviews Vol.2019.1

Published on in Books & 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 almost 1200 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.

36.15 code Père Noël... [More]

Compiler Pessimism

Published on in Programming

“In practice, nearly everything you write is potentially dependent upon the order of evaluation, but in practice it isn’t because you are not a nincompoop.”

He completes the thought with “[b]ut the compiler doesn’t know that. The compiler must adhere to the letter of the language standard, because it has to compile insane code as well as sane code.”

Occupy vs. Burning Man

Published on in Philosophy

Chuck Palahniuk on Joe Rogan says that there was only one Occupy because it wasn’t any fun. Burning Man, on the other hand, has been going on for 30 years and is bigger and better every year.

This is an insipid analysis of the two events. Occupy is about a revolution, against the corporate dominance. Burning Man is about subsuming revolutionary fervor in a corporate way. Tickets cost $200-$1200.

At least Joe Rogan pushed back against that.

Occupy never got a chance because it was squashed as... [More]

Skynet is the good outcome

Published on in Technology

Will Artificial Intelligence take over the world? Only if we let it, I think.

And we’re almost certainly going to let it.

Our habit seems to be to capitulate to any form of power that dangles a short-term bauble of convenience before our greedy, beady eyes, even if it always seems to be just out of our grubby reach.

AI is dangerous less for what it is capable of doing now and more for how much power we concede it even when it’s stupefyingly shallow. We’ve given up before the battle has even... [More]

Because of course they do

Published on in Public Policy & Politics

I’m not even going to do more than cite the article US Intelligence thinks Russia may have microwaved US embassies in Cuba, China by Sean Gallagher (Ars Technica).

I’m honestly not sure how anyone with an ounce of journalistic self-respect can write an article like this non-ironically.

I wrote in the title, “because of course they do”. I’m referring to the “analysts” who—after nearly a year—have decided that the Russians are to blame.

It is here that we should all become more adept at both thought experiments and... [More]

Poisonous Hyper-capitalism

Published on in Technology

From Kai-Fu Lee’s new book says Artificial Intelligence will be Google vs China and will kill half the world’s jobs by Robert X. Cringely

“And I find it difficult to see China as being any more of a development crucible than is Sand Hill Road, where startups have even less time to succeed and therefore more pressure to evolve. Explain to me how this is incorrect, because the numbers are published and are real. In comparison to other adolescent startup cultures, yes China is and will be successful and they are... [More]”

A Holier-than-thou Bullshit Factory

Published on in Public Policy & Politics

Out-of-date and chock-full of devil’s advocacy.

I’ve listened to some coverage of the Kavanaugh hearings on The Intercept. This includes an unusually giddy and convinced Jeremy Scahill and a typically partisan Amy Goodman.

What shines through is this notion that being blackout drunk (i.e. not remembering parts of an evening) is an indication of alcoholism, or having a drinking problem. It’s also the sign of a really good party.

These people all sound like shrill churchgoers who can’t even... [More]

Analyzing a LateStageCapitalism meme

Published on in Public Policy & Politics

There was a meme posted to Reddit at How are we supposed to live? that discusses the costs of various features of life now vs. 40 years ago.

The discussion petered out quickly when someone posted a refutation from Meme Policeman. In fairness, it didn’t exactly refute the meme, but questioned its numbers and tried to put them into a better context.

I responded with the following comment,

It’s not just the cost of these things, but also the value obtained for the money.

While offering more... [More]

Explicit vs. Implicit Violence

Published on in Philosophy

On a post on Reddit, someone cited Michael Moore as follows,

“In my first film, Roger & Me, a white woman on social security clubs a rabbit to death so that she can sell him as “meat” instead of as a pet. I wish I had a nickel for every time in the past 10 years that someone has come up to me and told me how “horrified” they were when they saw that “poor little cute bunny” bonked on the head. The scene, they say, made them physically sick. The Motion Picture Association of America gave Roger &... [More]”

Inventing languages for the sake of it

Published on in Programming

The article Fear, trust and JavaScript: When types and functional programming fail presents issues in JavaScript and a solution: use another language. The list several newer ones that are completely untested.

But the main problem that the article mentions can’t be solved 100% by any language. The main problem is at the boundaries of your application: inputs.

When you get data from an external source, you have to validate it somehow before passing it along to the rest of the application.

No... [More]

Anyone Can Be a Programmer, Right?

Published on in Programming

The post on Reddit called Someone asked me to make a site for them and I don’t know how the fuck I’m supposed to go about it. is about exactly what it sounds like it’s about. Amid the flurry of comments with recommendations on how to pretend he (or she) knows how to build a web site by using tools he’s (or she’s) never heard of, I chimed in with,

What is it about software that makes people who have never done it think that they can do it professionally?

What if your neighbor had heard you... [More]

iOS can’t get the easy stuff right

Published on in Technology

This is a laundry list of issues I’ve had with iOS over the last half-year or so. Some things get fixed; others break. This operation system is in its 12th version and is 10 years old. It’s made by the richest company on the planet. It’s frustrating to watch the magical engine of capitalism and privatization be seemingly unable to get even the easy stuff right.

How is it that I’m the only one to whom this happens? iOS is supremely unreliable. I have an iPhone 6s with iOS 12.01 and a battery... [More]