Posted on

Xiaomi Mi Pad 4

Google Play Store on Xiaomi Mi Pad 4

While the Xiaomi Mi Pad 4 ships with Google Play installed, if one does a factory reset, then the resulting MIUI 9.x does not bundle with Google Play Store or the GBoard keyboard. There are several steps needed to get it set up, including: - Find, download, install Google Play Store + Google Play Services - Install and enable the Google Gboard, and Gboard Keyboards

Evie Launcher and Launcher Configuration

I find the Evie Launcher to be a good, modern, and clean interface. Basically it prevents one from getting lost or accidentally creating new screens, which is a fundamental flaw on both Android and iOS default launchers.

Firefox Browser

The Firefox Browser is the go-to browser for all devices. Also, search is using Duck Duck Go.

Things to Turn Off, and On

  • Quick Ball = off
  • Battery Percentage Display = on
  • Enable buttons, turn off full-screen gestures

Other Apps

  • Foscam Viewer
  • Telegram
  • Google Contacts
  • Duo
  • Gmail

MIUI 9 vs. MIUI 10

MIUI 9 focused on speed, removing many components that were generally not used by consumers. MIUI 10 will have much more so-called intelligence, which will likely slow it down to a crawl (unless the AI is turned off, in which case MIUI 10 might be as fast as MIUI 9. For now, I'm holding off on MIUI 10 for most devices (except for the Xiaomi Redmi 6A which does have it come as an OTA update).

Posted on

Fish Shell – Friendly Interactive SHell

Note: I've replaced Fish Shell with Bash in my personal technology stack, as of March 2018. Ha ha, back on Fish Shell. Fish Shell is a very useful shell. I use it on OSX and Linux. Provides for some sanity at the command line. For an editor I use Nano. Note that there are some limitations, and a learning curve on getting it set up. However, it does have some limitations, and is definitely newer than other shells. When trying to run a command that won't work in fish, then simply invoke bash and get it done. No real limitations to speak of. For doing shell scripting, it is very straightforward and definitely more modern. Useful docs on the fish shell available.

What Fish Can't Do (So Well)

Fish is a bit more limited as a general purpose command/utility invoker, as it seems to throw errors. Overall, it is a bit cranky, and really only best when doing scripting. To that end, better facility with Python will probably fill in the gaps around Bash that Fish does well, while focusing on tool that would be even more extensible.

See Also

Posted on

Firefox Quantum Browser on Linux

Firefox is currently the best non-Google option for browsing, in terms of a fairly well-supported plugin/extension/add-on environment. It isn't perfect, and is a bit ugly at times, but is definitely faster/more stable than Chrome. If one values privacy, then Google products are simply not an option, though Firefox/Mozilla is not perfect by any means.

Installing Firefox on Linux

Strangely, as of November, 2018 the browser cannot update itself for Linux. Hence: - Download the latest Firefox Quantum Build - Uncompress the file into ~/Downloads - sudo rm -rf /opt/firefox - sudo mv ~/Downloads/firefox /opt/firefox - Launch Firefox and > History > Restore Previous Session

Plugins, Addons, Extensions, Configuration

...

Stupid Browser Tricks

...

Posted on

Bash Shell Scripting

Bash being the most common shell, it makes sense to learn bash shell scripting. I didn't think this at first and later came to the conclusion, having spent time with Fish Shell. However, Bash is definitely old and creaky with some frankly ridiculous implementation details. Fish can be installed most everywhere, and is generally superior in many ways. Where it is not, commands can simply be run in Bash.

Variables, Conditionals, Utilities

Most of Bash scripting is variables (including initially environment variables), conditionals, and utilities. For example, the common task of changing the names of files in a directory, copying them, moving them, etc., is a combination of setting up variables (e.g., $f for filenames of a given sort), then looping over (while) them and executing various commands (mv, cp, etc.).

See Also

Touring Complete Programming Language

Apparently, Bash is Turing complete, which means it is fairly sophisticated, complex, and thorough. That doesn't mean it should be used for everything, but certainly can be used for many things. Python would be a competitor in terms of doing shell scripting, but it would depend on how complicated, or exactly what kind of functionality is needed in order to prefer Python over Bash in terms of scripting.

Current Assessment of Shell Scripting in Bash

For scripts that run simple commands (such as openvpn or autossh then Bash simply handles errors better with an old-school shim when missing a shebang. However, dealing with ease and elegance with actual scripting, and working from a modern design document, Fish is hard to beat.

Posted on

Portable Music Players & Linux

This article briefly describes some issues with managing portable music players on Linux, particularly the Apple Ipod Shuffle and the Sandisk Clip Jam (it's replacement).

Quod Libet

Quod Libet is absolutely zero help with managing portable music players (with a single exception, the generation of playlist.m3u files). This is a big regret since it has much of what I need in a music manager, including: - Low resource utilization - Relatively fast and stable when indexing large collections - Ability to edit metadata on individual and groups of files - Dark theme Therefore, I have to look outside of QL in order to manage portable music players.

Playlists in Quod Libet

Based on my workflow and media organization in Quod Libet, what I generally do for a playlist is clean up a set of albums/tracks from one or more artists and one or more albums, then create a playlist out of that. This generally means the complete contents of one or more albums organized under one or more artists. This allows me to use the Export as Playlist plugin which generates an *.m3u file with some pathing that needs to be cleaned up.

Sandisk Clip Jam Playlist Lament

My review of the Sandisk Clip Jam is a lament to SCJ Playlists: > Since playlists are important for portable media players, they should have a well-thought-out approach. Unfortunately this is not the case. One has to monkey about with .m3u files and actually edit them by hand. Sad and a bit nuts as well. > > Several issues: > > The namespace is effectively 7 characters, so don't have directories with playlists that might conflict on those first 7 characters. > > There are three "quick" playlists but no way to get them out of the way, so there is always "click, click, click" to get past them since they are the first three. I don't care to make playlists on the go, so please let me make these go away. > > .m3u file needs to have the full path of the location, e.g., Music/Joy Division/Peel Sessions/01 Exercise One.mp3 > > Unlike as stated in the documentation and forums, the music files do not need to be in the same directory as the playlist file, and they can be stacked all in Music with referenced directories and subdirectories underneath. > > CRLF for returns > > Obviously this is a nasty and brutish way of handling playlists, and so various scripting is needed to get things working without a huge amount of ongoing time being wasted. > > Also, the cheap and huge earbuds (unwearable in my medium-sized ears) are really a waste. No one really expects anything good to be bundled, so save the earth a little. > > Overall the device itself is pretty decent, except for the glaring problem noted above.

How to Create and Edit Sandisk Clip Jam *.m3u Playlists

The key is to use a media player/manager to generate the .m3u playlist, and then search/replace to change the paths in the files to match that of the Sandisk Clip Jam, which is generally Music/Artist/Album. Since my audio library has the very same structure, it is not difficult to copy entire albums and artists (with their albums) to the Sandik Clip Jam. As noted above, the playlists need to have the same Music/Artist/Album/Track structure. However, the playlists themselves can repose in the same Music directory. *Note: VLC can also perform the function of generating playlists, though my choice is Quod Libet, using the Export as Playlist plugin which generates an *.m3u file. After creating the playlists and editing them, copying wholesale the directory structure into Music completes the operation. Updates begin in Quod Libet and then a delete/recopy is necessary (akin to Ipod/Itunes operations)

GTKpod for Ipod Audio Management

[GTKpod](creating/editing playlists and ) is one of the last relatively decent and straightforward Ipod (only) managers. Capable of drag-and-drop audio and creating/editing playlists. Installation is available from the Gnome Software Manager and elsewhere.

Posted on

Managing Fonts in Debian

Microsoft Core Fonts Installer

Check to see if this is installed via apt-cache

sudo apt-cache search ttf-mscorefonts-installer

More Fonts with Installers

More fonts to install, if needed

ttf-liberation
fonts-liberation
ttf-uralic
fonts-uralic
ttf-root-installer
ttf-freefont
ttf-dustin
ttf-linux-libertine
fonts-linuxlibertine
fonts-dustin
ttf-staypuft

Copy Fonts to Directories

/usr/share/fonts
/usr/share/X11/fonts
/usr/local/share/fonts
~/.fonts

Note, better/easier to symlink to /usr/share/fonts/ if organized with a set of font directories. Example:

First remove font shares:

sudo rm -rf /usr/share/fonts/software-fonts
sudo rm -rf /usr/share/fonts/code-128-fonts
sudo rm -rf /usr/share/fonts/thai-fonts

Then add font shares

sudo ln -s /home/jeff/async/software/fonts /usr/share/fonts/async-fonts
sudo ln -s /home/jeff/async/github/code-128-font/fonts /usr/share/fonts/code-128-fonts
sudo ln -s /home/jeff/async/github/thai-font-collection/downloadable-free-thai-fonts /usr/share/fonts/thai-fonts

Rebuild the Font Cache

sudo fc-cache -fv

List all Installed and Cached Fonts

fc-list

Reconfigure Fonts

This may be needed to support bitmap fonts.

dpkg-reconfigure fontconfig-config
Posted on

Epub Editing Tools

Tools change over time, but it seems that in the Epub world we have more of the same. As of November 2018: - Calibre's Epub Editor is pretty nifty - Sigil development stalled, then picked up again - Pagina Epub Checker is still under development and useful - Pandoc with or without some kind of TeX, LaTeX, or XeLaTeX -- the last one is better for font support Things haven't really changed over the past X years, much. Certainly not since the 2017 note on Epub tools.

Some Pandoc Resources

Posted on

Kindle Paperwhite 4th Gen

I've used a Kindle since the Kindle Keyboard (3rd gen), and since then purchased and used the DX for a while (the much larger model). On 06 September 2012 the Kindle Paperwhite was released and I registered mine on 10 September. I broke that model within six months by wedging it in a bag that had too many objects in it, but Amazon sent out a replacement free-of-charge (which included free shipping, and I live outside the United States). Well folks, the first generation Paperwhite has served me well, and I did not feel a need for an upgrade, at the prices that were available for fancy versions like the Voyage and Oasis, or non-Kindle devices such as what Kobo offers. However, at this point, on the eve of the release of the fourth generation of the paperwhite, that has changed, and I intend to upgrade.

Specifications of First and Fourth Generation Paperwhite

Generation Dimensions Weight Lighting Screen Storage Bluetooth Audible Waterproof
First Gen 117 x 169 x 9.1 mm 213 grams 4 led 212 ppi 2gb no no
Fourth Gen 116 x 167 x 8.2 mm 182 grams 5 led 300 ppi 8/32gb yes IPX8

Reasons to Upgrade

At 12% smaller (mainly due to thinness) and 15% lighter, less is more, and this is a significant motivator to upgrade. Storage is not an issue for me, and 8gb will be fine. The increased quality of the lighting 5 vs. 4 led) and screen resolution (300ppi vs. 212ppi) are nice, but not essential. Bluetooth audible is ok. I don't use audible now but might later. I certainly would not upgrade for that feature. The waterproof quality, combined with dimensions/weight and screen, is what puts this over the edge in terms of a desire to upgrade.

Open Source, Open Content

While I do use a Kindle, most of my content I have in PDF and Epub formats. PDF is not very readable on the Kindle and I rarely do it. However, Epubs are easy to convert using Calibre, an open source, cross platform library and ebook management tool. The DeDRM toolkit is very useful for stripping out the nasty DRM that comes with Kindle ebooks. I prefer unlocked files as my main library repository. Also, many ebooks are available at a variety of locations including Library Genesis, a resource of unparalleled breadth and depth. I prefer to use the Kindle device due to its quality hardware, and ease of access of their ebook offerings (I do regularly purchase content from Amazon). The DRM they use I simply work-around/ignore. In the past I've rooted both the Kindle Keyboard (3rd Gen), Kindle DX, and Kindle Paperwhite, though my current version is using stock Kindle software on the device. I'm not irrevocably mated to Kindle and Amazon, but it is my current preferred platform.

Posted on

Octavo Touch-Type Form Factor

In this post I outline what I would consider a compelling form factor, one which existed for a while, but which may be is returning for certain niche uses.

Usability and Useful Form Factors

While the term notebook has been taken over to mean a laptop computer that is much larger on average than a standard physical lined-paper notebook, that in my experience is best sized as Duodecimo or 12mo. With a size of 4.75-5" x 7.25-7.5". I consider this one of the handiest form factors for books. However, dealing with a computing device with a touch-typable keyboard (less than 100% in size, but still able to achieve 80-wpm typing with less than 5% error rates (above standard practice), one needs a different size: Octavo. Technically this could be 7"-10" in length and 4.5"-6" in width.

Handheld PCs - Mobilepro - Jornada - Viao P

The various form factors of H/PCs from the late 1990s through the 2000s ranged from the diminuative HP Jornada to the quite similar NEC Mobilepro and Sony Viao P: - 7.4"-9.7" length - 3.7"-5.2" width - 0.8"-1.3" thickness - 6.5"-8.1" screen diagonal - 510g-770g weight The 9.6" x 4.7" x 0.8" (24 x 12 x 2 cm) and 500g (or lighter) is possibly the best form factor, with 88% standard keyboard it supports full touch-typing. The NEC Mobilepro has 79% sized keyboard, which is certainly adequate for small to medium-sized fingers of an adult male. For the purposes of touch-typing, the Jornada is likely too small for a majority of touch typists. However, it is likely possible to do a clever keyboard layout that still supports touch-typing, and get the length somewhere around 8.5", shaving off an inch or so, while keeping the same screen dimensions (if desired).

Screen Sizing and Usability

The screen of the Viao P is 1,600 x 768 in 7.99" which is ~222 ppi. Even when having a slightly smaller form factor, it should be possible to get close to a 9" screen, which would go a long way to making for a much more usable device. The Viao P is a nearly 2:1 aspect ratio. In landscape mode, this maked for cramped reading. However, in portrait mode, this is much more usable in terms of reading for documents and websites. The question is, at what size does reading standard websites become possible? The 768 pixel height is too small for most websites, which do not appear able to handle such widths, and devices with this are trapped in a no-man's land of almost, but not quite, mobile. Resizing web pages can reduce general legibility.

What is Not Needed in an Octavo Device

Generally there are several misgivings regarding an Octavo-class device, as we are calling this design thought experiment. These are things that such a device does poorly, at best, including: - Webcam (actually, this might be very useful, esp. to replace the handheld) - Speakers (moderately adequate are good enough) - Trackpad / Pointing devices (touchscreen covers it) For the first four items, simply dispense with them. There is no need for a webcam, speakers, a trackpad, pointing devices, and the like.

Ports Aplenty

Include the following: - Headphone Jack - MicroSD Card Slot - 2 x USB C for power, HDMI out, etc. Bluetooth and WIFI as necessary evils, but support decent USB C dongles that can include HDMI, additional USB, RJ45, for docking purposes.

ChromeOS to the Rescue - Or Not

The one major issue regarding such small devices are the poorly designed and bloated operating systems that go on these. Focus on the streamlined, secure, and regularly updated ChromeOS, including support for Android and Linux apps. This seems way more appropriate than a version of Windows, which is unfortunately the standard. ChromeOS can deal with Battery Life much better than other general purpose operating systems. In addition, Debian is a better option if the distribution supports the various hardware components/drivers. That said, Windows 10 is the go-to OS for full-featured laptops and netbooks. Debian is generally possible on most standard platforms.

Flip/Convertable Chromebook

Having a flip/hinge mechanism and of course touchscreen support means that the 9" screen is a small tablet form factor as well as a touch-type keyboard device.

E-ink & Ebook Reading

A final improvement on the back of this device would be an E-ink display, and especially the ability to read ebooks.

Convergence and Device Unity

Currently, I bring my 200g Kindle Paperwhite to read. It isn't too far to be able to integrate what is effectively a Kindle, a Tablet, and a Keyboard.

Tablets Advantages and Disadvantages

To be honest, many tablets are very close to what is desired (not including e-ink) as bluetooth keyboards can be added to things like the Huawai Mediapad M5 (which is an 8" screen in 300g), or the cheaper, heavier Lenovo Tab 4. The Huawai comes in at 8.4"x4.9"x0.3" and has a 2560 x 1600 screen. A great form factor and with accessories such as bluetooth keyboards and cases, this is already mostly a viable computing platform.

PDA, Palmtop, UMPC - 2018

While this was originally published in August, 2018 it turns out that there are three brands producing models that more-or-less meet/match these specifications and needs. These are more recently being referred to as PDAs (Personal Digital Assistants), Palmtops, and/or UMPC (Ultra-Mobile Personal Computers). Whatever the computer niche, they are a welcome return of this form factor. These are: Planet Gemini, GPD Pocket, and One Mix Yoga, and most recently the Topjoy Falcon.

Planet Gemini

First or rather most recently there is the Planet Gemini -- the name refers to twin OS support: Android and Linux (which is to say, Linux and Linux) -- which is specifically attempting to recreate the Psion (and indeed has a designer who was involved in it). This is the smaller of the three, with only a 6" screen, and weighting 320 grams. Also, it is the only one which is in its first generation / initial release.

GPD Pocket, GPD Pocket 2

The GPD Pocket 2 is on presale as of October, 2018.

One Mix Yoga, One Mix 2 Yoga

By the company One Computer is a smashup of model names one, mix (at least not miix) and yoga. Still, this is the larger of the three brands, weighing in at 515 grams. It is an upgraded processor at 1ghz core-m Kaby Lake, with 256gb PCIe. A solid offering.

Topjoy Falcon

Topjoy Falcon is the most recent netbook launched on Kickstarter in October, 2018.

Overview of Current PDA/UMPC/Palmtops

Model | Weight | Screen | Dimensions | Processor | Ram | Storage | Camera | 4g | 2-in-1 | SD-Card | Price -------------- | ------ | ------------------ | ---------------- | ------------------ | --- | ----------- | ------ | --- | ------ | ------- | ----- Planet Gemini | 320g | 6" 2160x1080 18:9 | 17 x 8 x 1.5 cm | MediaTek 6797T | 4gb | 64gb eMMC | Front | yes | no | yes | $599* GPD Pocket 2 | 467g | 7" 1920x1200 16:10 | 18 x 11 x 1.5 cm | intel Core M-5Y10 | 8gb | 128gb eMMC | none | no | no | no | $699* One Mix 2 Yoga | 515g | 7" 1920x1200 16:10 | 18 x 11 x 1.7 cm | intel Core M3-7Y30 | 8gb | 256gb PCIe | none | no | yes | yes | $649** Topjoy Falcon } 650g | 8" 1920x1200 16:10 | 20 x 13 x 2.0 cm | intel Silver N5000 | 8gb | 128/256 SSD | none | no | yes | no | $499* *Prices are current/sale prices at Geekbuying or Direct/Kickstarter/Indiegogo **Note also the One Mix Yoga at $449

Other Form Factors

While Octavo is first and foremost a smallest functional full keyboard, there are other options that are interesting (and moreso than a wrist watch), such as Runcible.

Posted on

LMDE3 Cinnamon Modifications

Here are some ways of getting things tweaked. Your mileage may vary.

Mint-Y-Dark

This theme has some hardcoded colors in PNG files. Grayscale them with ImageMagick, as follows:

for file in /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/*.png; do convert "$file" -colorspace Gray "$file"; done
for file in /usr/share/themes/Mint-Y-Dark/gtk-3.0/assets/*.png; do convert "$file" -colorspace Gray "$file"; done

Edit the /usr/share/themes/Mint-Y-Dark/gtk-2.0/gtkrc file for color. Replace #8fa876 with #993333 for a nice red to go with Mint-X-Red Icons. I prefer scrollbars with 15px width.

Edit the /usr/share/themes/Mint-Y-Dark/gtk-3.0/gtk.css file for color and scrollbar width. Replace #8fa876 with #993333 for a nice red to go with Mint-X-Red Icons. I prefer scrollbars with 15px width.

Double the size of the following .png files in /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/

  • slider-vert.png
  • slider-vert-active.png
  • slider-vert-insens.png
  • slider-vert-prelight.png
  • trough-vertical-active.png
  • trough-vertical.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-active.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-active.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-insens.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-insens.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-prelight.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/slider-vert-prelight.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/trough-vertical-active.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/trough-vertical-active.png
convert /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/trough-vertical.png -resize 200% /usr/share/themes/Mint-Y-Dark/gtk-2.0/assets/trough-vertical.png

Cinnamon Theme

Unfortunately there are also lots of .svg files in /usr/share/themes/Mint-Y-Dark/cinnamon/ (both in subdirectories of /common-assets/ and /dark-assets/) with colors also hard-coded into them (bizarre, to say the least). These cannot be handled with ImageMagic convert, but rather either need to go through a process of conversion, grascaling, then converting back into .svg format (such as with Autotrace), or some other tool which can directly deal with color inside .svg files.

Edit the /usr/share/themes/Mint-Y-Dark/cinnamon/cinnamon.css file for color and scrollbar width. Replace #8fa876 with #993333 for a nice red to go with Mint-X-Red Icons.

Atom Application Scrollbars

Atom does not inherit these gtk configuration/theme settings and needs its Atom Scrollbars to be Configured Manually. Same with Visual Studio Code, scrollbars need to be set manually.

Screenshot default folder location

Screenshot default folder location needs to be set manually, such as:

gsettings set org.gnome.gnome-screenshot auto-save-directory ~/async-images-2019