Notes on Scanning With Linux

I frequently use a Fujitsu sheet-feed scanner with my MacBook. Here are some notes about how I would go about cobbling together a scan-to-text-PDF solution with Linux. I don’t think it would result in a comparable user experience, but if I had to scan 10 pages into Linux 1000 times, here are some helpful pointers:

  • I really like my S1300. I hope the S1300i would be as nice.
    • https://www.gaggl.com/2016/11/getting-fujitsu-scansnap-s1300i-to-work-on-ubuntu-16-04lts/
    • http://www.openfusion.net/linux/scansnap_1300i
    • http://iokevins.blogspot.com/2015/08/fujitsu-scansnap-s1300i-on-debian.html
    • https://www.josharcher.uk/code/install-scansnap-s1300-drivers-linux/
  • https://knurdnerd.com/paper-to-pdf-workflow-with-ocr-on-linux/
  • https://help.ubuntu.com/community/OCR
  • Hardware:
    • https://www.amazon.com/Fujitsu-ScanSnap-Portable-Document-Scanner/dp/B008HBFADQ?
    • https://www.amazon.com/Canon-P-215II-Document-Scanner/dp/B00LPRQW86?
    • https://www.amazon.com/Brother-Wireless-High-Speed-ADS-2700W-Touchscreen/dp/B0757Z7NLC?

Linux, Mac, or Windows On My Laptop

My MacBook is getting old, so I’m thinking about a new laptop. OS options include Linux, macOS (formerly OS X), or Windows. Some non-mainstream OS-associated things that are important to me include:

  • Quicken. Many of the features. I use the retirement planner, portfolio tracking, and the transaction-tracking registers. Before you tell me “Banktivity” or whatever is better, make sure it can:
    • Download transactions from my bank, credit cards, retirement accounts, 529 plans, HSA.
    • Chart my net worth for 10+ years.
    • Import 25 years of Quicken data at 100% fidelity.
    • Tell me how long before I reach poverty if I lose my job.
    • Tell me when I can retire.
    • Track my spending and my income.
    • Data stored locally.
  • Scanning documents via a sheet-feed scanner to PDF+text format. I want an install-it solution – not “assembly required.”
  • TurboTax
  • GPS + topographic management. Something similar to Garmin’s BaseCamp.
    • I think BaseCamp just looks for volumes named “Garmin” and “GTOPO” for the device and the map disk. You might be able to run BaseCamp in a Windows VM or Wine, because it doesn’t use drivers to talk to the device.
    • Alternatives: QMapShack, Viking, GPSMaster.
  • Set-it-and-forget-it backup. I could live with just a periodic backup of data files, since I use CrashPlan.
  • Home-and-landscape design software. I want an install-it solution – not “assembly required.” I could live without this.
  • I really do use VBA in my spreadsheets, although I could rewrite this code.

No, I don’t think Quicken is part of the OS, but the OS I choose determines whether I can use Quicken. Given my desire for Quicken’s feature set, I either have to use Windows as my OS or Windows-in-a-VM.

Linux doesn’t have a complete scanning package. Yeah, you can scan anything with almost any hardware, but you have to cobble together the complete package, and bits and pieces of it will remain ragged. Too much tinkering for someone who scans documents often.

Something I hate about Quicken: Proprietary data storage with no API.

Hardware:

  • Big disk.
  • Fast CPU.
  • Don’t need a discrete video card.
  • 16 GB RAM. Prefer 32 GB.
  • 500 GB disk. Prefer 1 TB.
  • 15” display UHD/HiDPI. 1920x1080 is not high enough DPI at 15”.
    • There are many laptops with 3840 x 2160 and many with 2560 x 1440 or 2160 x 1440.
    • 15” MacBook Retina has 2880 x 1800.
  • Good touchpad (similar to MacBook’s).
  • Battery life
  • 300+ nits brightness
  • Glossy display

Some options:

To any of these prices, add a 3-4 year warranty (AppleCare)

Suppose I save $1200 and I keep my laptop 4 years. That’s $300 per year. If I stretch it to 6 years, it’s $200 per year.

Some things I don’t like about Windows:

  • Microsoft really owns your laptop. They’ll choose when to update Windows. They’ll choose whether you are allowed to re-install it.
  • There is nothing comparable to Time Machine.
  • I haven’t seen a trackpad that works as smoothly as the Mac’s.
  • No AppleCare carry-in repair.

Some things I really don’t like about Mac:

  • Apple really could decide to move the whole Mac platform to an incompatible CPU. They did it once before.
  • Apple controls whether you can use 3rd party hardware to repair. There are serious “right to repair” issues.
  • That damn battery is glued in. (I need to repair my trackpad, but I’d have to un-glue the battery to get to it.)
  • You can’t put macOS in a VM unless that VM is running on a Mac.
  • Apple is just about to drop support for 32-bit apps. Some of my 32-bit apps are abandonware.
  • You can’t get a 15” MacBook Air – You only get 15” in the MacBook Pro.

Some things I really don’t like about Linux:

  • No Quicken. No complete scan-to-text-PDF package.
  • You really spend way too much time tinkering. I just spent a lovely day and a half getting double-clicks to work right in an Ubuntu 18.10 VM.
  • GPS device + topo map management is… not a polished package.
  • No AppleCare carry-in repair.
  • Chrome consumes even more memory per page on Linux than on macOS!

“Creative” possibility:

  • I have a NAS-on-Linux server. Move all my data + apps to this server, and use a Chromebook to access it. (Quicken goes into a Windows VM.)
  • Won’t work for copying tracks to/from GPS device (except a Garmin can be treated as a USB drive with a particular folder layout).
  • Won’t work for scanning
    • Unless I get a USB extender.
    • Caution: Most USB over “Ethernet” are actually USB over RJ45, and they won’t flow through a switch.) (And many of them suffer ‘disconnects’. Do you really want to add complexity?
    • $420 ScanSnap iX500 can scan to Google Drive without a computer.
    • $280 Epson WorkForce ES-400 scans to Google Drive - check to be sure it can do this without a computer attached. (“Cloud Connect”).
    • $200 Brother ADS1500W can scan to Google Drive (“Web Connect”).
  • Or move all my data and most of my apps to NAS-on-Linux, and get a budget thin-and-light Windows laptop with UHD display as a terminal. (Looks like at least $1000.)

Issues with My Current MacBook:

  • Trackpad won’t left-click. (It will left-tap.)
  • Battery life has fallen to about 4 hours.

Working plan:

The smart thing to do at this point is to string my MacBook along a while longer, despite its messed up trackpad. If it out and out dies, either:

  • Buy another MacBook and spring for the extra $1300.
  • Buy a not-quite-top Dell, cobble together a decent backup. Be sure to see a real display and trial a real touchpad.

How to Block 99% of Junk Calls on Your Land Line

Here’s a way to block 99% of robocalls, political calls, sales calls and surveys to your land line. Please read the whole thing because there are some surprises in it.

  1. Sign up for a Google Voice number.
  2. In Google Voice settings, set up your home land line as a “linked number”.
  3. In Google Voice settings, enable “Screen calls”.
  4. In Google Voice settings, enable “Filter spam”.
  5. In Google Voice settings, go to Legacy Google Voice. Go to Settings, Calls, and for “Caller ID (incoming)” select “Display my Google Voice number”.

At this point, if someone calls your Google Voice number:

  • They’ll have to state their name the first time they call you, unless they are in your Google Contacts. (If you need to receive robo-calls from someplace like your library or your county emergency alert, create a Google Contact for them.)
  • When the calls arrive at your home land line, they will display your Google Voice number as the caller ID.

Next, set up your home land line to accept calls solely from Google Voice:

  1. Buy a white list call blocker such as this one from Amazon. You want a white list only. You’re going to program it to accept calls from a single number.
  2. Program it to accept calls solely from your Google Voice number.

Junk callers simply don’t go through the identify-yourself process at Google Voice. I’ve never had a robocall or even a human telemarketer bother to complete the process.

Now you have to tell all your friends, family, and associates that your new number is (your Google Voice number here).

Bonus Extra:

But what if you don’t want to tell all your friends about your new number? You can actually work with Google to transfer your EXISTING home number to be your new Google Voice number. Then you have to sign up for a new phone number at home, but nobody ever calls that number (because your white list device doesn’t answer for them.)

Total cost: Less than $100 for the device, plus 30 minutes of setup.

Should I Use a VPN at College?

I’ve moved away to college. When should I be using a VPN?

The internet is a scary place. Before you reach the internet, your traffic must first travel through your LAN (local area network). When you were at home, your LAN was safe. When you’re away from home, your LAN isn’t safe.

The main difference is that at home, your computer is hidden from the outside world by your gateway router.

Due to the magic of NAT (Network Address Translation), computers outside your home cannot ‘see’ computers inside your home, unless your home computer reaches out to touch them. In other words, your computer at home can initiate a conversation with a computer outside your LAN, but a computer outside your LAN cannot initiate a conversation with your home computer.

When you’re behind a NAT router, computers on your LAN can initiate a conversation with you and they can also ‘listen in’ on conversations your computer has with other computers. External computers can’t.

At college, one or two things happen. At a few colleges, there is no NAT, and every computer on the network is visible to the entire internet. At most colleges, there is NAT, but there may be 10,000 computers on your LAN and they can all see your computer. Colleges are full of smart people with lots of time on their hands. Some of them may be studying computer security, and they might enjoy seeing what they can do to your computer.

Short answer:

  • Be sure to run a firewall, whether or not you run VPN. VPNs hide your traffic. They don’t hide your computer.
  • Use VPN when you do something you don’t want everyone to see.
  • VPN is more work, and it is slower than not using VPN, so you might not want to use it for everything.
  • Really, really be sure to use it when accessing financial accounts or your email.
  • Your college might object to VPN or prevent VPN.

What Does a VPN Protect You From?

VPN Tunnel

A VPN (Virtual Private Network) is a pipeline (tunnel) from your local LAN to another, distant LAN. Your network traffic travels from your computer to the distant LAN, and then it goes to the internet. Nobody on your local LAN can see the traffic while it is inside the tunnel.

Some VPNs hide the local LAN from your computer while you are connected to the VPN. Others don’t. It is often a configuration option.

VPN Is Not a Firewall

Running a VPN does not protect you from your classmates hacking into your computer. Every computer on your LAN can see your computer. If your college does not use NAT, every computer on the internet can see your computer.

If they can see your computer, they can try to hack into your computer. Your primary protection is to use a firewall. Windows, macOS, and Linux all come with firewalls. You should never, ever connect your computer to the college network without its firewall running. Without a firewall, your computer can be compromised in minutes, particularly if you are behind on applying updates.

VPN Prevents Content Leakage

Modern, secure web sites use HTTPS to move data between your browser and the site. HTTPS is ‘secure,’ meaning that nobody can see what you send or receive. But some web sites exchange data in HTTP, which is not secure. Even if the main site uses HTTPS, some of them move some data with HTTP.

There was a big brouhaha a few years back, where major sites were moving cookies with HTTP before they switched to HTTPS to show you the main web page. Bad guys could capture these cookies. They could use them to masquerade as you, and access the web site. Once they were on the web site, they could change the password – your password. Oops! See Firesheep for more info. This issue has been addressed by the major web sites (Gmail, Facebook, Twitter, etc.) Bob’s Bargain Web Site may not have fixed it.

If you use VPN, all of your web traffic is hidden from your local LAN by the tunnel. It’s not just your web traffic. ALL of your network traffic is hidden.

  • Whenever you are entering a user ID and a password, check to be sure your URL begins with “https://”.
    • If you are using a modern version of Chrome, which hides “http://” and “https://” in the address bar, it will show “Secure” at the beginning of the address bar instead of “https://” and “Not Secure” otherwise.
  • Use a VPN if you are logging into your bank (or other financial web site), email (or any Google service, since they all share your GMail login)
    • You really, really don’t want someone to see your bank ID/password. You don’t want them to break into your email account because they can use your bank’s “forgot my password” feature to send a new bank password to your email account.

Proxies and WPAD

There’s this thing called a proxy server. Your college may hide the internet from your computer by a firewall. But you want to browse the internet. To get around this, there’s a thing called a ‘proxy server.’ YOUR computer isn’t allowed to talk to the internet, but the proxy server is. So instead of talking to the internet directly, your browser says to the proxy, “Hey! Go get this page for me,” and the proxy fetches it and gives it to your browser.

A proxy server has some visibility into your network traffic. (More on this later.)

Your computer has to discover the proxy server in order to use it. Your browser uses something called WPAD (Windows Proxy Auto Discovery) to discover the proxy. Even on many non-Windows computers, despite the name.

WPAD has some shortcomings. A bad guy can trick your computer into using the wrong proxy by setting up his own WPAD server. Thats’ bad.

If you are using Windows, I recommend that you edit C:\Windows\System32\drivers\etc\hosts, and append a line with:

  • 255.255.255.255 wpad.

The trailing period is important. You will have to use an Administrator-enabled account to edit the file.

This will disable WPAD. If that breaks your internet access, you’ll have to un-delete it or ask your college help desk how to manually specify an auto-proxy server. Tell them you can’t use WPAD and you need help configuring your browser to use a manually specified URL for the proxy auto-config file.

I recommend disabling WPAD, whether or not you use VPN. If you do not disable WPAD and you do use VPN, it is more difficult for a bad guy to use WPAD to trick your computer into using a bad proxy. It is not impossible. That’s why I recommend disabling WPAD.

College Snooping

Colleges sometimes try to be your parents at their worst. Read about “in loco parentis,” if you want to know why. If you are using HTTP, they can see all your web traffic. If you are using HTTPS, they can’t see inside the web pages, but they can still tell which web sites you visit. If you browse to http://people-doing-vile-and-nasty-things, you might not want your school to know. Shucks, they may actually prevent you from browsing there. If you really want to visit that site, perhaps to do research for an Abnormal Psychology term paper, a VPN can (mostly) hide the fact that you’re going there from your college.

So privacy is one reason to use a VPN.

Colleges may have a list of web sites they don’t want you to visit. They may have protocols (such as BitTorrent) that they don’t want you to use. A VPN can work around college blocking. Exercise caution here. In all of those papers you signed when you enrolled, and all of those “I read this” checkboxes you checked online, you may have agreed to something like, “I promise not to circumvent web site blocking and you can spank me if I do.”

Colleges may outright block VPN because people use it to work around site blocking. You might be able to work around their blocking of VPN. It is generally a bad idea, because even if you work around a VPN block, they can still tell that you are using VPN if they try hard enough. If they block VPN, they probably have a policy against working around the block. They may or may not send you a warning letter before they expel you (or disable your internet access) for violating policy.

Changing Your Location

Maybe you run into a web site which says, “We don’t allow access to people who live where you live.” When you use a VPN, they don’t see your local LAN as being where you live – they see your VPN LAN as your home. You now “live” somewhere different.

This is actually a common use for commercial VPN by some people. You can buy access to a commercial VPN and, if you live in the USA, you can use the VPN to look like you live in Europe, or vice versa. If you want to watch a movie which is only available in some countries, this is a way to “live” in a different country.

Hiding Your Tracks

I include ‘Hiding Your Tracks’ here for completeness – not as a guide.

If you’re trying to break into a web site, you want to be hard to find. If you just casually start hacking, they’ll probably find you in your dorm room. You could use VPN to cover your tracks. In fact, some criminals use VPN #1 to connect to VPN #2 to connect to VPN #3, to be really hard to find.

Don’t do this. If you’re committing a big enough crime to make this worth the effort, you’re committing a big enough crime for the FBI to go to the trouble to track you down despite your VPN. If you’re crossing state lines, you’re committing Interstat Wire Fraud, and that’s a federal crime. It doesn’t matter how smart you are. Eventually, you’ll slip up and leave a track somewhere. Perfection is not achievable.

It Isn’t Free

  • Using a VPN takes effort.
  • Using a VPN slows your traffic. Instead of going directly to the site, your traffic must detour to the VPN’s LAN first.
  • Using VPN uses bandwidth of your VPN provider. If your VPN provider is a company, you probably don’t care. If your VPN provider is Dad, Dad’s ISP probably has a bandwidth cap and you’ll annoy Dad if you make him hit that cap.
    • But I never hit the cap at home! Yeah, but now you are using DOUBLE the bandwidth. All of your traffic first travels into Dad’s LAN and then it turns around and travels out from Dad’s LAN.

Summary

I’ve moved away to college. When should I be using a VPN?

  • Be sure to run a firewall, whether or not you run VPN. VPNs hide your traffic. They don’t hide your computer.
  • Use VPN when you do something you don’t want everyone to see.
  • VPN is more work, and it is slower than not using VPN, so you might not want to use it for everything.
  • Really, really be sure to use it when accessing financial accounts or your email.
  • Your college might object to VPN or prevent VPN.

Replacing the Tip on Fizan Trekking Poles

I have a set of Fizan Compact 4 Trekking Poles. (I ordered the Compact 3, and was disappointed to receive the heavier Compact 4.) I snapped off the tip.

I’m ordering a set of “Black Diamond Flex Tips” from Amazon. They also sell “Black Diamond Flex Tech Tips”. I can’t tell the difference. The former is cheaper, so I chose them. UPDAT: The “Flex Tech Tips” have replacable points; the “Flex Tips” don’t. Some people say that the points come unscrewed from the Flex Tech Tips, so the Flex Tips may actually be better.

Ebay (and many other web sites) also has “Trekking Plastic Anti-Slip Alpenstock Stick Pole Replacement Tip” or “Hiking Walking Plastic Alpenstock Pole Replacement Anti-slip Flex Tip”. You can buy a dozen of them for $16. They look like they’d fit, because their hole diameter is 0.4”, and that matches the Fizan.

There are two different things called “tips”. The carbide point (the tip of the tip) is available at my local REI. The larger, plastic end (to which the carbide point attaches) is what I’m replacing. That’s the part that breaks, and the Fizan doesn’t have a removable point. When I say “tip” without qualifying, I mean the black plastic end, not the point.

To remove the old tip from the Fizan, heat it in boiling water for about 40 seconds. You want the entire tip in the water because there is adhesive holding it in place. The adhesive is at the end of the tip farthest from the carbide point. You’re softening the glue, not expanding the plastic.

YouTube videos suggest putting a Crescent wrench loosely over the pole, and whacking down onto the tip. I tried it. It didn’t work. I think it may work better on poles without adhesive-attached tips. Once it was good and hot, I grabbed the tip with pliers down near where the carbide point lives, and tisted it off. Grab as close to the point as you can, so you don’t squash the tubing inside. (The tubing doesn’t come all the way to the end.)

This seems to be a good search string for eBay for replacement tips:

Replacement Tip for Alpenstock Walking Trekking Pole

I ordered from eBay “Trekking Plastic Anti-Slip Alpenstock Stick Pole” (which might have been shortened in the email receipt to “Trekking Plastic Anti…”. These are cheap, and will take forever to ship from China.

I bought the “Black Diamond Flex Tips, Long” from Amazon (a.k.a. “Long Tip”) and they are too long, but look usable. I’m hoping that the “Black Diamond Flex Tech Tips” are better length. Flex Tips do NOT have the replaceable point (rubber vs titanium); I think the Flex Tech Tips DO have the replaceable point. REI carries the points but not the tips.

UPDATE: They all arrived – the Flex Tips, the Flex Tech Tips, and the eBay tips. None of them fit the Fizan Compact 4. The tips all expect more taper than the Fizan poles have. i.e. The tips get much narrower inside as you near the point. The Fizan poles are almost cylindrical, with just a tiny amount of taper. Consequently, you can’t push any of the tips on far enough so that they don’t wobble. Also, the Black Diamond tips are much longer than the Fizan tips. The eBay tips are about the same length. The only thing I can see that might make any of these tips work is if I trim a little off the end of the poles. That will make the pole fit farther into the tip; perhaps far enough that they’ll fit tightly at the large end.

Markdown Dialects

Markdown is a vague concept, not a specific markup language. That’s a problem for long-life content. If your Markdown parser of choice reaches end-of-life, your content may render poorly in its successor.

Here are the parsers/apps that matter to me, and the markup which appears portable among them. I’m going to try to limit my Markdown authoring to that which works in these dialects. Note that “works” doesn’t mean “identical output.” It just means that the output looks adequate, given the input.

In general, I have standardized on a subset of Github Flavored Markdown (GFM).

Note that some conversion among Markdown dialects may be accomplished via pandoc: https://github.com/jgm/pandoc/wiki/Pandoc-Tricks

Matters to me:

  • GFM (claimed)
    • Marked 2, Discount - Mac Markdown viewing app, using built-in “Discount (GFM)” parser
    • Github - a real page at github.com
    • Typora, Mac
    • Typora, Win
    • Typora, Linux
    • Jekyll, local - as rendered locally
    • Jekyll, github - as rendered when pushed to Github Pages
    • pandoc - as processed by pandoc -s –katex –metadata pagetitle=”BLAH” -f gfm input-file.md -o output-file.html
    • Tiddlywiki, anstosa - (using anstosa markdown plugin)
    • Chrome GFM Plugin - https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk?hl=en
  • Commonmark
  • MultiMarkdown
    • Marked 2, MMD - Mac Markdown viewing app, using built-in MultiMarkdown parser

I’m clearly not going to take the time to thoroughly compare all of those. Here’s my short list:

  • Marked 2, Discount - this is my ‘reference’ implementation
  • Marked 2 MultiMarkdown
  • Typora, Mac
  • Jekyll, github
  • Tiddlywiki, anstosa
  • Commonmark

For my Markdown Acid Test Page, here’s what works for my short-list parsers:

Summary: Use any of my listed markup except:

  • Don’t count on auto-linking.
  • Don’t count on blockquote preserving newlines.
  • YAML front-matter doesn’t work in Tiddlywiki or Commonmark.
  • Tables don’t work in Commonmark.
  Marked2, Disc Marked2, MMD Typora, Mac Jekyll, Github Tiddlywiki, anstosa Common-mark
Escape char Y Y Y Y sometimes Y
Auto-linking N N Y N Y N
Basic text styling Y Y Y Y Y Y
Unordered list Y Y Y Y Y Y
Ordered List Y Y Y Y Y Y
ATX Headers Y Y Y Y Y Y
Block Quote, newlines preserved Y,Y Y,Y Y,Y Y,N Y,N Y,N
Preformatted Text Y Y Y Y Y Y
Fenced Code Block, both forms Y Y Y Y Y Y
Fenced Code Block w/Lang, both forms Y Y Y Y Y Y
Horizontal Rule Y Y Y Y Y Y
Hyperlinks Y Y Y Y Y Y
Image Links Y Y Y Y Y Y
Math Y Y Y Y Y N
YAML Front-matter recognized OR not rendered Y Y Y Y N N
Tables Y Y Y Y Y N

Markdown Acid Test Page

These are the Markdown forms I use:

Escape Character

Backslash \*prevents\* these asterisks from causing formatting.  Backslash is the \`escape\` character.

Backslash *prevents* these asterisks from causing formatting. Backslash is the `escape` character.


Bare URL Auto-linking

Bare URLs are auto-linked by only some parsers.  http://example.com

Bare URLs are auto-linked by only some parsers. http://example.com


Basic text styling

regular text, **bold** text, *italic* text, `code` text

regular text, bold text, italic text, code text


Unordered List

* Unordered List
    * With nesting
    * Always use 4 spaces per indent
        - Can also use hyphen instead of asterisk
        - Like this
* Some parsers work with other spacing, but all work with 4
  • Unordered List
    • With nesting
    • Always use 4 spaces per indent
      • Can also use hyphen instead of asterisk
      • Like this
  • Some parsers work with other spacing, but all work with 4

Ordered List

1. Ordered List
    1. With nesting
    1. Always use 4 spaces per indent
1. Some parsers work with other spacing, but all work with 4
2. Try to keep your numbers sequential, but it isn't really necessary
  1. Ordered List
    1. With nesting
    2. Always use 4 spaces per indent
  2. Some parsers work with other spacing, but all work with 4
  3. Try to keep your numbers sequential, but it isn’t really necessary

ATX Headers

# Header Level 1 - document title

Although you can follow the header immediately with text, it is safest to wrap it with blank lines.  Must put blank line BEFORE any header.  Must separate the # from the text with a space.  They do not necessarily proceed from largest to smallest. (e.g. Jekyll renders level 1 as smaller, red text, when compared with level 2.)

## Header Level 2 - Chapter/Section title

Text goes here.

### Header Level 3 - Not yet defined

Text goes here.

#### Header Level 4 - Not yet defined

Text goes here.

##### Header Level 5 - Not yet defined

Text goes here.

###### Header Level 6 - Not yet defined.  This is the lowest level supported.

Text goes here.

Header Level 1 - document title

Although you can follow the header immediately with text, it is safest to wrap it with blank lines. Must put blank line BEFORE any header. Must separate the # from the text with a space.

Header Level 2 - Chapter/Section title

Text goes here. Don’t skip levels. Must put blank line before a title line, but not needed after. This form is called “atx.” Don’t use setext (which underlines titles with dashes or equal signs, because it only goes to two levels of header.

Header Level 3 - Not yet defined

Text goes here.

Header Level 4 - Not yet defined

Text goes here.

Header Level 5 - Not yet defined

Text goes here.

Header Level 6 - Not yet defined. This is the lowest level supported.

Text goes here.


Block Quote

Note that there can be 0-3 spaces before the “>”. It doesn’t change behavior.

ordinary text

  > These lines will get joined into one block quoted line by SOME dialects but not all.
  > block quote line 1.
  > block quote line 2.

ordinary text

ordinary text

These lines will get joined into one block quoted line by SOME dialects but not all. block quote line 1 block quote line 2

ordinary text


Preformatted Text


    preformatted text
    is rendered in fixed-width font
    and retaining your line breaks
    if you begin the line with four spaces.
    two spaces works with only some parsers.
    you may need to wrap with blank lines for some parsers.

preformatted text
is rendered in fixed-width font
and retaining your line breaks
if you begin the line with four spaces.
two spaces works with only some parsers.
you may need to wrap with blank lines for some parsers.

Fenced Code Block

```
Desired form.
fenced code block line 1
fenced code block line 2
Use backticks, where possible.  They are more portable than tilde fences.
```
Desired form.
fenced code block line 1
fenced code block line 2
Use backticks, where possible.  They are more portable than tilde fences.

Fenced Code Block (Alternate Form)

~~~
Alternate form, to be avoided where possible.
fenced code block line 1
fenced code block line 2
Use backticks, where possible.  They are more portable than tilde fences.
~~~
Alternate form, to be avoided where possible.
fenced code block line 1
fenced code block line 2
Use backticks, where possible.  They are more portable than tilde fences.

Fenced Code Block With Language Specifier

``` javascript
Desired form.
fenced code block with language name line 1
fenced code block with language name line 2
Use backticks, where possible.  They are more portable than tilde fences.
Be sure to put a space between the markers and the language name.
```
Desired form.
fenced code block with language name line 1
fenced code block with language name line 2
Use backticks, where possible.  They are more portable than tilde fences.
Be sure to put a space between the markers and the language name.

Fenced Code Block With Language Specifier (Alternate Form)

~~~ javascript
Alternate form, to be avoided where possible.
fenced code block with language name line 1
fenced code block with language name line 2
Use backticks, where possible.  They are more portable than tilde fences.
Be sure to put a space between the markers and the language name.
~~~
Alternate form, to be avoided where possible.
fenced code block with language name line 1
fenced code block with language name line 2
Use backticks, where possible.  They are more portable than tilde fences.
Be sure to put a space between the markers and the language name.

Horizonal Rule

horizontal rule below.
3 dashes is sufficient.  I use 5 dashes because I think it reads better.  Wrap with blank line above and below.

-----

and

---

horizontal rule above.

horizontal rule below. Use 3-5 dashes. Wrap with blank line above and below.


and


horizontal rule above.


[human link description](http://example.com "optional flyover title")

human link description


![image alt descsription](https://www.w3schools.com/images/colorpicker.png "optional flyover title")

image alt descsription


Mathematical Fomulae - LaTeX / MathJax / KaTeX

LaTeX / MathJax / KaTeX support varies.  If you need it, use it.  Wrap it with $$.

$$\displaystyle f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi$$

MathJax / KaTeX support varies. If you need it, use it. Wrap it with $$. There should be a formula after this line.

[\displaystyle f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi]

There should be a formula before this line.


YAML Front-matter

YAML front matter. For maximum portability, wrap YAML front matter with --- lines, and follow the ending --- with a blank line. If you create front-matter manually, append two spaces to the end of each line. This reportedly causes plain-old Markdown parsers to render it all as unformatted text, rather than trying to process it as Markdown.

---  
title:      Too Much "Security"  
framistat:  Boojum  
---  

Normal text here.

Tables

Tables:

| Left-aligned | Center-aligned | Right-aligned |
| :---         |     :---:      |          ---: |
| git status   | git status     | git status    |
| git diff     | git diff       | git diff      |
Left-aligned Center-aligned Right-aligned
git status git status git status
git diff git diff git diff

Notes:

  • Typora has a nice table editor.

Do not use:

  • strikethrough is not universally accepted.

Tiddlywiki vs Jekyll for PKB

Due to increasing browser security and it having become abandonware, I’m going to move away from Tiddlywiki Classic. I tried using it in a .hta file, but IE has some problems with its JavaScript and I’m unwilling to fix the source myself.

I need two distinct personal knowledge bases: work-related and personal. I’d like to be able to edit each from my work laptop and my personal laptop, at the office and at home.

For a variety of (undocumented) reasons, I’ve narrowed my options to Tidddlywiki 5 (node.js edition) and a Jekyll-generated web site.

Some features I want:

  TW Support Jekyll Support
Inter-wiki linking Y Y
GFM Markdown Y Y
MathJax * 1 * 2
Images Y * 3 Y * 3
Send my wife a URL Y Y
Usable at work and home Y Y
Need not store my personal data in the cloud Y Y
Can search with my native OS search (e.g. Spotlight) Y Y
Export/migrate if support vanishes Y Y
Maintains a history of changes N * 4 N * 4
Dual-master support Y * 5 Y * 5
Easy up and running when I rebuild my machine N N
Edit/view from Mac, Windows, Linux Y Y
Reduced tool count (I’m using Jekyll for other sites). N Y
This page referenced by… Y N
Edit this page Y N * 6
  • 1 Tiddlywiki: http://mathjax-tw5.kantorsite.net/ renders in text/x-marked, but throws an error. This one fails too: https://gist.github.com/kpe/cc0547b318e6f8d4ddaa. Some debugging required.
  • 2 Jekyll: https://alan97.github.io/random/mathjax/ has a tutorial for MathJax.
  • 3: May have to manually put images into a local folder and link to them from the Markdown.
  • 4: Neither product maintains a change history. You’d have to use something like git to version your data.
  • 5: I have a Mac laptop and a Linux server at home. I want to be able to edit and view data when either is getting rebuilt. I can do this with either by using my Linux server as a git server.
  • 6: I think I could write something to do this for Jekyll with an edit button to link to the corresponding admin interface edit page.

=====

If I put them only on my linux server, I can access them from anywhere EXCEPT offline, and I can’t index them on my Mac. I can’t share with my wife if it is only on my Macbook. I can’t put my work PKB on my Macbook because I have no network connection between the two. I could use git to sync laptops with Linux server, and edit on either side. Need to make this low-friction.

Use Jekyll on as my PKB. That reduces my tool count, but when I’m looking at a page in Jekyll, navigating to EDIT it is a bother. Could I add an “Edit Me” button that is visible only locally? (Asked this on StackOverflow.) I’d use git-with-github for the public sites and git-with-mac-and-boxtop for the local sites.

Tagging is better in TW than Jekyll, but it exists in Jekyll.

Spotlight will find two copies of every page in Jekyll - one for the markdown and one for the HTML, unless I tell it not to index one of the folders.

If I use Tiddlywiki, it is very easy to mess it up or break part of it. I’ll need to use git agressively, so I can roll back changes. Sometimes rolling back a change seems to require stopping/starting the server (on my Mac):

{{{ launchctl unload /Users/kevin/Library/LaunchAgents/com.kleinfelter.tiddlywiki.plist launchctl load /Users/kevin/Library/LaunchAgents/com.kleinfelter.tiddlywiki.plist }}}

Reset Prius Oil Maintenance Required Warning

At some point, Toyota changed the oil-change interval on my 2010 Prius from 5,000 miles to 10,000 miles, but they didn’t update the firmware, so it still shows “Oil Maintenance Required” after 5000. Here’s how to reset the warning:

  • Power-on the car.
  • Press the “Trip” button until “TRIP A” is displayed.
  • Power-off the car.
  • Hold the Kilometers/MPH button down (like a keyboard Shift button).
  • Hold the brake pedal down.
  • Hold the power-on button down until it resets.
  • Release everything.