All posts by bamyers99

Ubuntu AisleRiot Solitaire Removal

Ubuntu 24.04 (Noble Numbat) does not ship with the AisleRiot Solitaire game. It can be installed manually with 'sudo apt install aisleriot'

To get the custom Ubuntu card deck, copy the below file bonded.svgz to /usr/share/aisleriot/cards as root. ie. 'sudo cp .../Downloads/bonded.svgz /usr/share/aisleriot/cards'

bonded.svgz is from https://ubuntu.pkgs.org/22.04/ubuntu-main-amd64/aisleriot_3.22.22-1_amd64.deb.html

C++ Static Initialization Order Fiasco Workaround

The C++ Static Initialization Order Fiasco (SIOF) can happen when 2 classes have static initializers and one classes static initializer calls the other class before its static initializer has been executed. The order of static initializer execution is determined by the linker.

SIOF Example

A parser that stores some regexes.

Parser.h

class Parser {
static std::map<std::string, Regex> regexs;
}

Parser.cpp

using namespace std;
map<string, Regex> Parser::regexs = {
{"table" , Regex("!\\{\\|[^{]*?\\|\\}!m")},
{"link" , Regex("!\\[\\[[^\\[\\]]*?\\]\\]!")}
};

Regex.h

class Regex {
static std::map<char, int> modifiers;
Regex(string& regex);
}

Regex.cpp

using namespace std;
map<char, int> Regex::modifiers {
{'i', PCRE_CASELESS},
{'m', PCRE_MULTILINE}
};

Regex::Regex(string& regex) {
modifiers['m'] could fail
}

Parser::regexes and Regex::modifers are both globally initialized statics.

Depending on the linker, Parser::regexes could get initialized before Regex::modifers. If that happens, then the reference to modifiers['m'] will fail in the Regex constructor that the Parser::regexes initializer calls.
Continue reading C++ Static Initialization Order Fiasco Workaround

AT&T Cordless Phone - Manual Handset Registration

If the automatic new handset registration does not work by putting the handset in the base cradle, a manual registration process is available.

This is for the Accessory Handset model CL80113 for use with the following Base units: CL81113, CL81213, CL81313, CL82113, CL82213, CL82263, CL82313, CL82363, CL82413, CL82463, CL83113, CL83213, CL83263, CL83313, CL83363, CL83413, CL83463.

Press and hold the Handset Locater button in the base cradle until the In Use light is steady red. Release the button. The base display will say Registering...
Press the # key on an unregistered handset to start the registration process. That is it.

Tweaking Ubuntu Unity To Show All Of An Apps Windows

In OS X, clicking on a dock icon shows all open windows for the app. In Ubuntu, clicking on a launcher icon only shows the most recently used open window. This is annoying if you want to copy files between two folders or view all Xpad note windows.

Ubuntu 18.04

In Terminal
sudo apt install dconf-tools
dconf-editor
org / gnome / shell / extensions / dash-to-dock
Change click-action custom value to minimize
Another change to match 16.04 functionality when scrolling over app icon:
Change scroll-action custom value to cycle-windows

For Ubuntu 16.04 read on.
Continue reading Tweaking Ubuntu Unity To Show All Of An Apps Windows