I have something blasphemous to tell you.
Unit Testing is wrong.
There, I said it.
I know I just insulted most people's sacred cow.
Sorry, not sorry.
I will explain, bear with me.
I have something blasphemous to tell you.
Unit Testing is wrong.
There, I said it.
I know I just insulted most people's sacred cow.
Sorry, not sorry.
I will explain, bear with me.
Inntel Hotel at Amsterdam, Zaandam |
(Useful pre-reading: About these papers)
This assumes that you have previously established a wi-fi connection, so windows has created what it calls a "profile".
In short, the commands are:
netsh wlan connect ssid=<ssid> name=<name>
and
netsh wlan disconnect
To obtain ssid and name, use:
netsh wlan show profile
This should display all existing profile names, and by default, the <name> is the same as the <ssid>.
Things can get more complicated if you have multiple wi-fi adapters, or an ssid that differs from the profile name, but the above should cover the general case.
Photo of two elephants friendly interacting with each other, from The Scientific American: Fact or Fiction?: Elephants Never Forget |
This post discusses the stateless microservice design pattern; it is meant as support material for other posts of mine that discuss microservices, mainly michael.gr - The Stateful Microservice.
Dory, the yellow-blue fish (a Royal Blue Tang) that suffered from amnesia in the 2003 movie Finding Nemo by Pixar. |
Even if you disagree with the terseness of this definition, and you regard microservices as necessarily more than that, I hope you will at least agree that it is precisely scalability and resilience that the stateless microservice design pattern aims to address, so the definition serves its purpose at least in the context of this series of posts.
There are many who will try to convince you that in order to build a scalable and resilient system, you need statelessness; so much so, that microservices have almost come to be regarded as synonymous with statelessness. This post examines whether this is that in fact so, and what is the cost of doing things this way.
This article attempts to shed some light on what a microservice really is; it is meant as support material for other posts of mine that discuss microservices, mainly michael.gr - The Stateful Microservice.
If you go looking for information out there, you will find many different descriptions of what a microservice is; these descriptions exhibit considerable difference of opinion, and to the extent that they agree, it is largely the result of copy-paste. One common theme in these descriptions is that in trying to define this elusive concept, they tend to assign fictitious properties to it. Often, the claims have nothing to do with what a microservice technically is, but rather with impertinent concepts such as the allegedly "independent" software development style around microservices, or some alleged organization of microservices "around business capabilities". Even when the claims do manage to stick within the technical realm, they range from the unwarranted to the preposterous. I have seen statements to the effect that a microservice is supposed to live in its very own source code repository, that a microservice must be independently deployable, that microservices must communicate with each other via REST, etc. (My favorite one is that they must necessarily be stateless; more on that in another post of mine; see michael.gr - On Stateless Microservices.)
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
Actor Wayne Knight in the original Jurassic Park movie playing the role of the unscrupulous programmer Dennis Nedry, (anagram of "Nerdy",) the main villain. |
Malicious Inaction (noun) any situation where a piece of software encounters an unexpected condition and responds by deliberately doing nothing, including not throwing an exception. Synonyms: Silent Failure; Deliberate Malfunction; Unscrupulous Programming; Undermining; Sabotage; Treachery; Subversion; Vandalism.
I think that the term "Silent Failure" fails to express the amount of harm done. Sure, the word "failure" indicates that something went wrong, but the word "silent" somewhat lessens the severity of the term, and it makes sound as if no feathers were ruffled, so it may have been alright.
Well, no. It was not alright. It never is. We need a stronger term to better capture the harm caused by the sinister practice of hiding error. We need a term that clearly conveys wrongdoing, a term that assigns blame and shame.
Hence, I present to the world my new and improved term: Malicious Inaction.
The Stack Overflow blog podcast 312 (of 2021/02/12) "We're building a web app, got any advice?" awarded me with what they call a lifeboat!
My notes on how to use SVG graphics in a WPF application
The goal is to be able do do things like this:
... where mySvgImage somehow stands for a vector image that has somehow been obtained from an SVG file.
The solution must not involve any proprietary, closed-source libraries.
Naturally, we want one of the following:
Please note that this is work in progress. I am still working on it and refining it, as my understanding of it improves.
I have a set of public repositories on GitHub showcasing my work, (⬀) which is in java with maven. These projects are interdependent, so when you check out one of them, in order to compile and run it you need the binaries of some of the others. You could manually check out all of them and put them in an IDE project, but that's too much work. Solving this problem requires having Continuous Integration & Continuous Deployment (CI/CD) in place, so I decided to try my luck in setting one up using free services only.
The process involves three entities:
We begin with a situation where we already have the Source Repository (GitHub) and we want to set-up the CI/CD Provider (CircleCI) and the Artifact Repository (Repsy).
This is a draft paper about a lightweight data modelling framework that I am developing as a home project, for use in other home projects of mine. It is incomplete; I will be amending it as I find time to write more and as my understanding evolves of what this framework is supposed to do.
Every single software project in existence deals in one way or another with data. Some projects have small amounts of data, some have large amounts of data, some even have "big" data. The data almost always exhibit a certain well defined structure, known as the Schema, and the loosely defined term Data Model is used to refer either to the data, or to the schema, or non-specifically to both.
In virtually all cases, the data model is highly application-specific, but many characteristics and operations are common or even ubiquitous across data models.
Here is a brief technical explanation of MVVM, which contains enough detail (borrowed from its WPF implementation) and examples to allow the reader to grasp how it actually works.
The Thinker (French: Le Penseur) by Auguste Rodin (From Wikipedia) |