2022-12-18

On messages and message-passing

Over the decades, numerous software system architectures have emerged which require invocations across subsystems to be done via message-passing instead of programmatic interface method calls. Such architectures are so common that many programmers have come to regard message-passing as an end in and of itself, oblivious of the fact that it is nothing but a (poor) technical mechanism for accomplishing a certain architectural goal.

2022-12-11

Intertwine

The Intertwine Logo, by michael.gr

Abstract

A mechanism is described for automatically converting method invocations of any programmatic interface into a single-method normal form and converting back to invocations of the original interface, so that general-purpose operations can be performed on the normal form without explicit knowledge of the interface being invoked. Implementations are provided for C# and for Java.

2022-12-05

Jeff Atwood: Building Social Software for the Antisocial


This is only of interest to people who are into Stack Overflow.

Have you ever wondered why Stack Overflow is exactly the way it is? Here are some insights.

(Note: this presentation violates one of the cardinal rules of presentations, which is to avoid long texts, so here is a tip: ignore every screen that contains a long text, just listen to what Jeff Atwood is saying.)

Note: as I look at him, I can't help but think that all he is missing is the upward curved tie, i.e. he has to be the real-life person after whom Dilbert was fashioned.

2022-12-03

IntelliJ IDEA can now exclude methods from code coverage

Screenshot from "What's New in IntelliJ IDEA 2022.3"

The latest version of IntelliJ IDEA supports a new option for excluding certain methods from code coverage by annotation, and it is the result of a feature request posted by me!

2022-12-01

Setting up Windows

Instructions for future reference.

How to ALWAYS show all icons on the Windows 11 taskbar

To always show all system tray icons in Windows 11:

Open the Run prompt (Win+R) and execute the following nonsense:

explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}

In the dialog that appears, there will be a checkbox to always show all icons and notifications on the taskbar.

Original source of information: TheWindowsClub

<rant-mode>

2022-11-19

About these papers

I am one of those people who choose to publish their ideas on a blog. 

The practical reason behind doing this is so that in a conversation I can refer my interlocutor to a text which elucidates my points better than I could conversationally. Admittedly, the opportunity to do this does not arise as often as I wish it did, and even when it does happen, about half the time the interlocutor appears to be reluctant to go and actually read the post, so let's just say that I publish my ideas mainly because I like doing it.

2022-10-19

Incremental Integration Testing

Incremental integration testing logo by michael.gr

A new method for Automated Software Testing is presented as an alternative to Unit Testing. The new method retains the benefit of Unit Testing, which is Defect Localization, but eliminates the need for mocking, thus greatly lessening the effort of writing and maintaining tests.

2022-10-18

Software Testing with Fakes instead of Mocks

What are fakes, what are their benefits, and why they are uncontestably preferable over mocks. Also, how to create fakes if needed.

Introduction

2022-10-12

50 things expected of developers


Games industry veteran Mike Acton gave talk/rant at GDC (Game Developers' Conference) 2019 where he listed 50 things he expects of developers: https://www.youtube.com/watch?v=cV5HArLYajE  This list was transcribed by Adam Johnson and posted here: https://adamj.eu/tech/2022/06/17/mike-actons-expectations-of-professional-software-engineers/ and I am copying it here for posterity.

I found this list useful as reference material; some of the items on this list do not apply to my job because I rarely do anything especially performance-oriented nowadays, and some of the items on the list are good to always have in mind but subject to the programmer's own judgement, on a case by case basis, whether they should be practiced or not.

Here it is: