Disabling Bluetooth auto-suspend with module options

In my previous post I showed how to restart Bluetooth on Debian Linux. Here, I explain how to disable Bluetooth auto-suspend with a kernel module option. Kernel modules can be passed parameters that affect how they work. The parameters that a module accepts can be discovered with modinfo. In the example below modinfo btusb displays […]

Centrino Ultimate N-6300 slow to connect to Wi-Fi network

Wi-Fi connections from my laptop became unstable after I upgraded it to Ubuntu 19.04. To get them to work, I had to turn the Wi-Fi adapter on and off several times, which quickly became annoying. The following attempts to fix the problem were unsuccessful: disabling IPv6 disabling power-saving on the Wi-Fi adapter setting bt_coex_active=0 during […]

SO #57225262—Inputting list of passwords in a class

Stack Overflow question ‘Inputting list of passwords in a class’ is more interesting as an object-oriented design (OOD) exercise than as a debugging exercise, but it also provides an opportunity to practise some Python programming. The requirements identified in the problem are: represent a set of credentials comprised of a username and a password; represent […]

How we use SQL Server Data Tools

This post describes the process that we use to develop databases with SQL Server Data Tools (SSDT) in Visual Studio. Conventions For this process to work, the conventions below must be followed. Use the live database as the gold standard for schema objects (and data). Deploy only database projects that have been built successfully. Deploy to a database that matches […]

How to identify and fix an anaemic domain model

CRUD applications tend to involve classes with many accessor methods but little business logic, the behaviour being implemented at a higher level in manager (or ‘god’) classes. Usually this signals that the domain model is anaemic. While many developers know the symptoms, few know how to resolve the problem. Anaemic classes have no responsibility other […]