Get Cape, a no-bullshit mobile provider focused on privacy and security, and get $10 off your monthly bill.

Teeny tech tips

Image

Table of Contents

The following is a perpetually incomplete list of little tech tips that i hope will be of use to others.

most private and secure smartphone

This is of course open to opinion, but the best privacy and security oriented combination of phone, OS and carrier that my research has yielded is a Google Pixel running GrapheneOS on Cape's network (yes, that's a referral link that benefits both of us if you're interested, and no, i'm not sponsored by them). And yes, i get it; using a Google device for those wanting to privatize and de-Google their life seems wildly counter-intuitive, however the Pixel's are the only devices that are approved by GrapheneOS which has a long list of requirements met only by Pixel's, including the incorporation of crucial security related hardware components, such as its Titan M2 chip and the IOMMU. For those that simply cannot stomach the thought of owning a Google branded phone, GrapheneOS has partnered with another company, as yet unnamed, in order to build a phone that meets their stringent specifications, however it likely won't be available until late 2026 or 2027.

If by chance you're considering a phone from Rob Braxman, STOP and read: Rob Braxman, 'The Internet Privacy Guy' or serial scammer?.

If you're considering a Linux powered phone as your primary device, forget about it, at least for now. Linux is simply not mobile ready.

Android app repositories

Accrescent is an upcoming app repository well worth keeping an eye on. They don't have a lot of apps at the moment, but it looks like the number may explode once they get the kinks worked out of the platform.

If you're running GrapheneOS, they have a small number of apps in their repository.

OpenAPK seems to be another decent app repository.

F-Droid is quite well known and they have a very large selection of open-source, ad-free and malware-free apps, however there have been concerns raised regarding their security and app signing practices. F-Droid seems to be getting somewhat better and i'm not sure if all of the controversy regarding their security is justified. You can read about their security model here. What i can very safely say is that, unlike the Google Play Malware Store, malware on F-Droid is largely nonexistent. I think the biggest concern is that, if F-Droid were to be compromised, then so could its users and that's a lot of people.

Although not an app repository, quite a few security conscious people recommend using Obtainium which provides an interface for downloading and updating apps directly from their source code repositories, such as GitHub, GitLab, Codeberg, etc..

Finally, there's the direct method whereby you download the apk file directly from the developers repository and, optionally, keep track of updates using a feed reader.

battery care

I'm not an expert regarding battery chemistry so you might want to double check me here.

Lithium Ion / Lithium Polymer: These dangerous chemistries are used extensively in all sorts of electronic devices from rechargeable flashlights and phones to remote control drones and full-size vehicles. Neither chemistry likes to be fully charged or fully discharged. To extend the life of these batteries, the general rule of thumb seems to be to charge them to roughly 80% of their total capacity and don't allow them to drop below roughly 20% of their total capacity. Most importantly, never, ever fully discharge lithium batteries. Constantly charging them to 100%, or keeping them on charge, will greatly shorten their life as well. Fast charging can also be extremely dangerous for these chemistries. As for Lithium Iron, i know very little about this chemistry other than it is apparently safer and more environmentally friendly. Regarding phones and certain other devices, the stated percentage of the battery charge may not be accurate.

Lead acid: Common in all vehicles with internal combustion engines and battery backup power supplies, these batteries should always be kept fully charged. This chemistry is prone to developing internal shorts which is one reason why they lose their capacity over time, however, apparently they can be rejuvenated using high amperage electricity, such as from an electric welder, but you're on you own here!

Regardless of battery chemistry, a safe charge rate for most battery types is 1C, meaning that, for a 1000 mAh battery, it is best to charge it at 1 Amp. Likewise, for a 500 mAh battery, a 1C charge rate would be 0.5 Amp. Lithium batteries are especially sensitive and can be extremely dangerous if not handled properly. Never buy cheap, off-brand lithium batteries!

searching a specific domain

Some websites don't offer an internal search engine, or they may utilize one which you'd rather avoid. Because i converted this website from a WordPress affair to a static one, even i use a 3rd party search engine to search content for 12bytes.org, however there are other ways to search this, or any other website. Beyond utilizing navigation menus, which are sometimes quite inadequate, you can also do a 'site' search using any search engine that supports the site: operator. For example, to search an entire domain for the term "kittens" using Mojeek, you can go to mojeek.com and enter the following in the search input: kittens site:example.com. This works with several other search engines, such as eTools, a meta search engine that pulls its results from multiple search indexes.

Another way is to utilize the website's sitemap if they have one. At 12bytes.org you'll see a link to the sitemap.xml file at the bottom of every page, but even if the website doesn't link to their sitemap, you can still try adding sitemap.xml to the domain: http://example.com/sitemap.xml. If a sitemap is available, then it's a simple matter of searching it using the Ctrl+F keyboard shortcut. Since you'll probably be searching URLs, and since URLs typically have a hyphen separating words, remember to separate your key words with a hyphen also.

reduce monitor brightness

I could slap myself for not realizing this simple solution earlier. Photographers and digital artists will obviously want to avoid tainting RGB gain and color temperature as suggested here, but others might find this tip to be a viable alternative to using 3rd party tools.

The problem: Your laptop display or desktop monitor is too damn bright, even at it's minimum setting.

The solution: For years i had been relying on redshift in order to reduce my laptop or monitor brightness beyond the minimum level available via its controls, however redshift hasn't been updated in a long time. I prefer KDE's Plasma desktop and there was a Plasma widget available for redshift that one could dump in their system tray but it was no longer available with the release of Plasma v6. I found a fork of redshift which supports Plasma v6 and it works, but then i started thinking about writing a script to leverage xrandr (one of the back-ends used by redshift) using hot-keys and getting rid of redshift since i was never super happy with it. xrandr cannot reduce a monitor's brightness below its minim level as far as i can tell, however it can reduce RGB (color) gain which results in a pseudo-brightness control. Well gee, i can do that directly with the controls on my monitor! And that's the part that dummy me overlooked, for years.

As long as you can adjust RGB gain either on your monitor or via software, such as for a laptop display, you don't necessarily need utilities like redshift or xrandr. In my case i've lowered RGB gain from the default levels of 100 to around 50 for red, green and blue. The caveat to not using redshift or xrandr is that color temperature may not be adjusted as easily unless your desktop environment offers a utility for doing so, as KDE's Plasma does with its 'Night Light' widget which allows one to reduce the blue light.

dealing with phone spam

Most spam and telemarketing calls are initiated by a computer these days and that can easily work to your advantage. Ever call a number that's no longer in service and heard 3 consecutive tones followed by "The number you have dialed is no longer in service..."? Those tones are called SIT tones and, upon hearing them, the computer calling you is likely to remove your phone number from their calling list and so the solution to your robo calling problem is, as you may have guessed, to record the SIT tones as the first part of your answering service greeting and then wait a few seconds before recording your usual message. Of course the people you typically associate with will wonder what's up when you're not able to answer your phone and so you might let them in on the secret. You can read more about this effective little hack in the article, Special Information Tones (SIT), where you can also download the 3-tone SIT file in WAV format which you can convert to another format if necessary. The same file is also available here.

A very effective and easy way to block spammers if you're using an Android powered phone is to block all numbers that aren't in your contacts list. Any callers not in your contacts should then be forwarded to your voicemail, thus you won't miss the calls entirely.

Another brilliant approach is to do as this creative woman did: How to Get Rid of Scam Callers LOL.

free maps for a Garmin GPS

Instead of paying Garmin for map updates, consider using Open Street Map data which is compiled specifically for Garmin devices and which is updated far more often. For example, on the OSM Map On Garmin/Download page, you'll find a link to the OpenMapChest website which offers a variety of maps for the world, some of which are updated weekly. Be sure to read the instructions before adding a map to your device.

password security do's and don'ts

First of all, DO NOT do like these idiots!

  • Use a local, trusted password manager, such as KeePassXC, to store all your passwords in an encrypted format. Beside the security benefit, you'll only need to remember one password in order to gain access to all your passwords. Don't use an on-line password manager and, if you are using one, consider abandoning it and changing all of your passwords.
  • Backup your passwords! If you have a way to secure a physical copy of your passwords, you could print them and lock them up somewhere.
  • Never reuse passwords! For every website you join or service you subscribe to, use a different password and, preferably, a different user name.
  • Use complex passwords that are difficult to guess. Never use birthdays, names of people or pets, single words, etc.. A long string of mixed-case letters, numbers and other characters is acceptable (something like "s9X&cL;2^k|W=#MC!"), but so too is a string of words that don't form a logical sentence (something like "open fad mix tee dog plunk red sit bell").

de-funking copied text

It's entirely possible that text copied from a document or website can contain hidden and unwanted characters. This is especially dangerous when copying commands to run in your terminal, but can also be a nuisance when copying text to re-post on the web. A solution to the problem is to leverage sed and the iconv packages. Linux desktops often include a clipboard utility which can run commands on copied text and following are the commands i use. The <<< '%s' part is a variable that references the copied text and this may be different for your clipboard manager.

  • Strip non-printing (invisible) characters: sed 's/[^[:print:]]//g' <<< '%s'
  • Convert characters to ASCII: iconv --to-code='ASCII//TRANSLIT' <<< '%s'
  • Combine both of the above: iconv -c --to-code='ASCII//TRANSLIT' <<< '%s' | sed 's/[^[:print:]]//g'

modifying dynamic CSS

You don't like the way something looks on a website so you break out Stylus to modify the CSS only to find out that the original styling is restored upon refreshing the page. Annoying! I'm seeing more websites using dynamic names for CSS selectors which makes targeting them a bit more difficult. Using a Substack article as an example, once you scroll down a bit an annoying subscription widget appears. The div class for the widget is .subscribeDialog_1h9fv_1, except the "1h9fv_1" part can change when you refresh the page. Substack also dims the page with .background_1h9fv_85 and displays a cookie banner with a dynamic CSS class. We can eliminate such annoyances using a wildcard in our CSS which, in this case, looks like so:

div[class*="background"] {
    display: none;
}
div[class*="subscribeDialog"] {
    display: none;
}
div[class*="cookieBanner"] {
    display: none;
}

You can read more about this in the article, Wildcard Selectors (*, ^ and $) in CSS for classes.

List all videos from a given channel

If you want to generate an HTML list of all videos for a video channel, such as for YouTube or many other supported platforms, install a copy of yt-dlp, a command-line program that can download videos from almost any video hosting platform, then run the following in your terminal to create an HTML list you can open in your web browser. You might want to add the opening and closing tags, such as <ul></ul>. Just replace '<channel_URL>' with the actual channel URL.

$ yt-dlp --no-check-certificates --flat-playlist --print-to-file '<li>%(title)s (<a href="%(url)s">link</a>)</li>' 'Playlist.html' '<channel_URL>'

For a text list, you could use this:

$ yt-dlp --no-check-certificates --flat-playlist --print-to-file '%(title)s (%(url)s' 'Playlist.txt' '<channel_URL>'