To shuffle all songs on a USB stick, select Browse, select Song, press Shuffle button.
Raspberry Pi 4 MythTV OTA DVR
Process for creating a Raspberry Pi 4 Over-the-air (OTA) DVR to watch and record TV shows.
Continue reading Raspberry Pi 4 MythTV OTA DVRMythTV Key Bindings
MythTV version 31 default key bindings. Dumped from the database table keybindings. MythTV user documentation for keybindings.
Continue reading MythTV Key BindingsSony RMT-TX102U TV Remote CEC Keycodes
Sony TV remote control HDMI Consumer Electronics Control (CEC) keycodes. Useful for programming a device connected to the TV to respond to the remote. ie. Raspberry Pi running MythTV
Continue reading Sony RMT-TX102U TV Remote CEC KeycodesC++ 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
OS X --> Ubuntu
I recently bought a new laptop from System 76 with Ubuntu preinstalled. This replaced a 7 year old MacBook Pro. Apple no longer sells 17" laptops and HP and Dell linux laptops are well hidden on their websites. Read on for equivalent linux software to match what I used on OS X.
Continue reading OS X --> Ubuntu
X Windows - Window Swallowing
X Windows "window swallowing" is the process of program 1 capturing the main window of program 2 to display it inside of program 1's main window. For example, Firefox using an external program to display a PDF in a tab. Firefox's built-in javascript PDF viewer leaves a lot to be desired. Slow rendering or no rendering at all, memory hog, with the download button not working when it doesn't render.
The following description is derived from my experience getting MozPlugger to work in Firefox to display PDF files using Evince.
Continue reading X Windows - Window Swallowing
Mysqldump to TSV Conversion Using Flex
First a little background information. I wanted to import an 8 Gig Wikipedia table dump for a project that I was working on. The table was too big to import all of the records on my Linode server. I only needed certain rows and columns, so I tried parsing the dump file in PHP. This worked, but it was much too slow. So then I went looking for text processor programs. This turned up awk, grep, lex and sed. awk, grep and sed are all line based processors. These would not work because the dump file has multiple database records per line. That left lex and its successor flex.
Continue reading Mysqldump to TSV Conversion Using Flex