tinyapps.org / blog

Intelligently resize landscape & portrait photos #

along their long edge with the cross-platform XnView MP: Tools > Batch convert... > Actions > Add action > Image > Resize > Mode > Longest side. (In Lightroom: File > Export > Image Sizing > Resize to Fit: > Long Edge.)

/misc | May 10, 2019

Scan local Mac for known vulnerabilities #

Scouring the web for a macOS analog of Windows Exploit Suggester - Next Generation (WES-NG) (mentioned recently), I stumbled onto Howard Oakley's Scanning your Macs for security problems with Nessus.

Agreeing wholeheartedly with his assessment ("Installation is a bit fiddly and left me with a feeling of discomfort. The installer which you download is but the start of the process: this eventually takes you through to the Nessus web interface, which then downloads further and unspecified packages and installs them somewhere. For a security tool this is worryingly opaque and obfuscated, and I cannot see any convincing reason for having to do it that way."), I opted to install Nessus in a virtualized instance of the target Mac and run it against just to find known vulnerabilities.

As Howard observes, the Basic Network Scan is anything but:

Nessus scan results

/mac | May 09, 2019

"Is nothing sacred?!" #

Do You Capitalize 'God'?

The name or title of any specific deity is capitalized just like any other name, so when "God" is used to refer to "the one God" (in other words, in any monotheistic religion), it is capitalized.

For example, you'd capitalize "God" in these sentences:

When referring to gods in general, though, or when using the word "god" descriptively, keep it lowercase:

The same rule holds true for Yahweh, Allah, Zeus, and the names of gods in other religions. They're capitalized.

I get it – you're an atheist. You should still capitalize "God"

You've said it a thousand times, and I get it: You don't believe in capital-G God any more than I believe in Tinkerbell. That doesn't change anything. (See what I did there? I don’t believe in an entity named "Tinkerbell." But since it is the proper name of a, yes, fictional character, I capitalized it.)


When you don't capitalize a proper name like God's, you're violating a fundamental principle of grammar.

You heard me right: grammar! You don't want to violate the laws of grammar, do you? I mean, seriously: Is nothing sacred?

/misc | Apr 30, 2019

iPhone's Phone app frozen? Respring. #

iPhone's Phone app freezing frequently? Rather than restarting (tedious and time consuming), respring by toggling bold text:

  1. Settings > Display & Brightness
  2. Toggle Bold Text
  3. Tap Continue when "Applying this setting will restart your iPhone" appears

iOS does not actually restart; only SpringBoard.app is restarted (similar to relaunching Finder.app in macOS), which generally unfreezes Phone.app as well (in some cases, toggling Airplane Mode may also be necessary).

/misc | Apr 30, 2019

Random harvest #

/misc | Mar 26, 2019

Generate an HTML table of files with their sizes and SHA-256 hashes #

The downloads index was previously generated with QuickHash GUI. I decided to cobble something together in Bash that better suited my needs:

$ gfind . -name "[!.]*" -type f -printf '%f %s ' -exec shasum -a 256 {} \; | awk -F ' ' '{ print $1, "| " $2, "| " $3 }' | sort -f | sed 's/_/\\_/g' | (printf "Filename | Bytes| SHA-256\n--- | --- | ---\n" && cat) | markdown2.py --extras tables > output.html
  1. gfind . -name "[!.]*" -type f
    Find non-hidden files,

  2. -printf '%f %s '
    print their filenames and sizes,

  3. -exec shasum -a 256 {} \;
    and generate SHA-256 hashes for them.

  4. awk '{ print $1, "| " $2, "| " $3 }'
    Print the first 3 fields from find's output, separating them with vertical bars (necessary for the markdown table).

  5. sort -f
    Sort the resultant list alphabetically, ignoring case.

  6. sed 's/_/\\_/g'
    Find underscores and prepend backslashes to them so that they are not interpreted as italics when converting markdown to HTML.

  7. (printf "Filename | Bytes| SHA-256\n--- | --- | ---\n" && cat)
    Prepend header row (with the minimum number of dashes and vertical bars for the markdown table) to output.

  8. markdown2.py --extras tables
    Convert the markdown table to HTML

  9. > table.html
    and save as "output.html" in the current directory.


/nix | Mar 24, 2019

Changes #

After 12 years at the same IP address with Slicehost/Rackspace VPS hosting, it's time to move on; a long-standing lack of hard billing limits (and the attendant unlimited exposure) coupled with the clear change in course finally forced the move.

The site has been migrated to Netlify, with the exception of the downloads directory, which is now hosted at Neocities. The list of SHA-256 hashes, however, remain at Netlify (a forthcoming post will cover how the list is generated).

Thanks to Netlify's redirect & rewrite rules, the move should be fairly seamless, but please let me know if you find any broken links or other anomalies (the fault of which are entirely my own).

/misc | Mar 23, 2019

Quickly scan a Windows host for known vulnerabilities #

with Windows Exploit Suggester - Next Generation (WES-NG):
WES-NG is a tool which based on the output of Windows' systeminfo utility provides you with the list of vulnerabilities the OS is vulnerable to, including any exploits for these vulnerabilities. Every Windows OS between Windows XP and Windows 10, including their Windows Server counterparts, is supported.
  1. wes.py --update
  2. systeminfo.exe > systeminfo.txt
  3. wes.py systeminfo.txt

/windows | Mar 03, 2019

Creating HTML or PDF contact sheets in macOS #

Automator's "New PDF Contact Sheet" action hung on a simple job, but it led to finding MakePDF.app hiding in "/System/Library/Image Capture/Automatic Tasks/" along with "Build Web Page.app":

/mac | Feb 20, 2019

Replace or recover domain cached credentials #

posted to the docs section.

/windows | Jan 29, 2019

Subscribe or visit the archives