Tiny freeware apps from Sector Seven #

Jonathan Gallant kindly informs us of Sector Seven's tiny freeware offerings:

/windows | Dec 23, 2014

SSL: Getting to A+ #

My apologies for the delay; the promised guide to migrating nginx from HTTP to HTTPS is finally live. Thanks to Iain Cheyne for his encouragement ;-)

/nix | Dec 23, 2014

Change to downloads directory #

For the past several years, the downloads directory has been fenced off via basic access authentication due to legitimate sysadmin tools like Atomic Web Server and X-Pass being flagged as malware (a quick scan of the downloads directory shows that the false positives have only increased in the interim).

Kristof kindly wrote in with a compelling argument for encrypting the archives instead:
archive.org cannot archive your great site this way. I think it is so much worth preserving.

I suggest use zip password instead. Imagine this:

as it is now:

* 20 years from now, in 2034, a user finds the archive of your site and finds a great tiny tool with open source, all backed up on your site!
* the tool has no homepage as of 2014 anymore. your site is the only backup!
* web.archive.org cannot archive the page because of the http auth. the backup is NOT archived
* the user in 2034 is sad because this gem of history is lost

if you switch to a zip-password way:

* in 2014 user finds the archive of tinyapps.org at web.archive.org
* the tool has no homepage archived. it was down in 2005.
* (the archive of) your site has the only backup
* the user downloads the zip. archive.org could archive it automatically
* the user cannot open the zip because it is password protected
* the user finds the archived faq of your site, obtains the password
* the user in 2034 can still reach the glow of the great tiny tool!

TinyApps.Org is of such great value that I think it should really be preserved to further generations. For many tools this site is the only source now, because the original is already lost.

Best regards,
Kristof (Nacsa)
Convinced by this sound logic (and being rather weak on the side of flattery), basic access authentication has been removed from the downloads directory and all files therein have been encrypted and compressed using the 7z format; the password can be found in the FAQ. So long as this method is equally effective at keeping misguided virus scanners at bay, it seems to strike a better balance between access and appeasement.

(For the few who might be interested in how the change was made:
  1. Used the aforementioned PeaZip to batch convert and encrypt all existing files in /downloads
  2. Used the following regex to find all instances of href="/downloads/.exentsion"> and replace extension with 7z:
    Search: (href="/downloads/.*?)\..*?">
    Replace: \1.7z">
  3. Uploaded archives and HTML to server
  4. Disabled ngx_http_auth_basic_module in nginx.conf and reloaded (nginx -s reload))

/misc | Nov 29, 2014

Move from HTTP to HTTPS #

Finally migrated the site from HTTP to HTTPS. At the moment, HTTP requests are being redirected to HTTPS to avoid the duplicate content problem. However, since this breaks compatibility with older browsers (e.g., IE6/XP and Blazer/Palm OS) and moderately impacts performance, I may be forced to enable both HTTP and HTTPS, working around the duplicate content issue with canonical links or something. In the meantime, please let me know (miles at tinyapps dot org) if you run into any trouble as a result of the migration.

More to follow later this week, including a walk-through of the SSL setup process and an end to the password-protected downloads directory. (On a related note, the RSS 2.0 feed has been renamed and redirected from index.rss20 to index.rss - please pardon the slight (=~ 3 year) wait Seth!)

/misc | Nov 23, 2014

OS X: disable sleep from the Terminal #

Especially handy when booted from an OS X install disc and running lengthy terminal commands like diskutil zeroDisk /dev/rdiskx:
$ caffeinate
That's it! Introduced in OS X 10.8, caffeinate can also timeout after x seconds with the -t switch, or stay active only for the duration of a given command (e.g., $ caffeinate diskutil zeroDisk /dev/rdiskx).

(Thanks to patrix for digging this up)

/mac | Nov 22, 2014

Losslessly split MP3, OGG, and FLAC files #

"Mp3Splt-project is a utility to split MP3, Ogg Vorbis and native FLAC files without decoding. If you want to split an album, you can select split points and filenames manually or you can get them automatically from CDDB (via the Internet or a local file) or from .cue files." Open source software with binaries available for *nix, OS X, Windows, and BeOS (yay!) among others.

(via Kristof - thank you!)

/misc | Nov 22, 2014

Batch encrypt existing ZIP files #

zipcloak encrypts all unencrypted entries in a ZIP file, but it does not support wildcards in filenames (e.g., *.zip) for batch processing, nor does it allow passing the password in an argument; one must enter and reenter the password manually:
C:\>zipcloak.exe foo.zip
Enter password:
Verify password:
encrypting: baz.txt
encrypting: bar.txt
or jury-rig something like expect.

Happily, T. Furukawa crafted a patch for zipcloak that adds a password option, so batch processing is much easier:
C:\>for %f in (*.zip) do zipcloak -p password %f
Download the patch and/or binary from the above link or this local cache.

Batch password-protecting existing ZIP files can also be done with WinRAR (Select ZIP files > Tools > Convert archives > Compression... > Set password...) or PeaZip (Select ZIP files > Convert > Enter password / keyfile (optionally set algorithm to ZipCrypto under the Advanced tab for compatibility with Windows' built-in ZIP handling)). Note that filenames within ZIP archives are not encrypted; see Filenames display without entering the password when an encrypted Zip file is opened for more information and a workaround. Further note that the encryption algorithm used by zipcloak and ZipCrypto is very weak.

/windows | Nov 22, 2014

Find and optionally rename very long file names and paths #

🌱 Cut Long Names 1.9 [322k] + Find and optionally shorten / rename filepaths exceeding 255, 260, or any number of characters. 📺

/windows | Nov 15, 2014

Two quick LXDE tips: enable automatic login and edit the Main Menu #

Tested under Debian 7.7 (wheezy):

/nix | Nov 14, 2014

E Ink word processor #

A few years ago, we shared how to turn your Kindle DX into an E Ink computer monitor. For those who prefer a simpler, all-in-one device, the Hemingwrite will offer: 6" E Ink screen, aluminum case, mechanical keyboard with customizable Cherry MX switches, and WiFi/Bluetooth connectivity.


Somewhat similar concept as the AlphaSmart, though E Ink and Cherry switches will be a huge upgrade. It would be nice to see more screen and less case in the top half of the device.

/eink | Oct 28, 2014

Download emcopy.exe directly from EMC (rather than some random FTP site) #

I just learned about emcopy.exe, a file copy utility from EMC similar (and superior in some ways) to xcopy, robocopy, xxcopy, etc. Finding and downloading it is not as straightforward as it should be; here's what worked for me:
  1. Signup for a free account at https://support.emc.com.
  2. Click link in activation email to complete signup process and then sign in.
  3. (Before continuing to step 4, I clicked "Download Center Registration" on the https://support.emc.com/downloads page and registered; not sure if that was required, as the form output was rather ambiguous.)
  4. The direct download link for the archive containing emcopy.exe (https://download.emc.com/downloads/DL32449_CIFS-Tools.zip.zip (yes, there are two .zip file extensions), which I originally found mentioned here, did not initially work for me even after signing in (though a bit later it did start working - not sure if this had anything to do with the Download Center Registration). I had to go to https://support.emc.com/downloads/82_Celerra, click the Title column, search the page for "CIFS Tools.zip", and click the link there to download (MD5: c5e480a84e6dd7d8d3b2f2186a549d0c | October 30, 2013 | 8.5 MB).
  5. Once unzipped, you'll find 32 and 64 bit versions of emcopy.exe 04.14 in disk3/apps_7.1.72.1/CifsTools/emcopy/nt/ as well as a readme.txt file in the directory just above.

UPDATE: Robocopy replacement (covers another interesting tool, strarc.exe)

/windows | Oct 26, 2014

Ad Muncher #

Great story from developer Murray Hurps: Ad Muncher's 15 Year History. Here are a few excerpts:
"I loved low-level code, doing a lot of x86 assembly coding on a 386DX-40. When Windows 95 came along, I stayed at the low level and loved finding ways to do novel things on the new platform ... Our first installer was 29kb in size, which included the filter list ... Popups started to become more common around this time (X10's popunder ads were a notable source of complaints from users, wonder why?), so I implemented a rudimentary JavaScript processor, which traced script execution paths and tried to determine which paths to popup functions were automatic (bad popups) and which needed user input (good ones). Ad Muncher was still 100% x86 assembly at this point."

After 15 years as shareware, Murray is generously releasing Ad Muncher for free.

/windows | Oct 19, 2014

Remove metadata from JPGs with jhead #

Strip potentially revealing EXIF data (camera model, GPS coordinates, etc) with jhead (mentioned recently):

jhead -purejpg file.jpg

Batch processing works to:

jhead -purejpg /path/to/pics/*.jpg

EXIF metadata can be displayed by simply pointing jhead to a file or folder, e.g.,

jhead /path/to/pics/*.jpg

/nix | Oct 19, 2014

Microsoft Virtual Machine Converter adds P2V support #

Microsoft® Virtual Machine Converter (MVMC) 3.0 is a Microsoft-supported, stand-alone solution for the information technology (IT) pro or solution provider who wants to convert virtual machines and disks from VMware hosts to Hyper-V® hosts and Windows Azure™ or alternatively convert a physical computer running Windows Server 2008 or above server operating systems or Windows Vista or above client operating systems to a virtual machine running on Hyper-V host.

(via The Deployment Bunny)

/windows | Oct 15, 2014

Test your web browser for the SSL3 POODLE vulnerability #

POODLE Test checks your web browser for the SSL3 POODLE vulnerability. A poodle picture will appear if the vulnerability is found, otherwise a photo of a terrier will be displayed. A quick sampling under OS X 10.9.5 found Safari 7.1 (9537. and Chrome 37.0.2062.124 to be vulnerable, while Firefox 33.0 and Opera 12.16 were reportedly safe.

(via The Safe Mac)

/misc | Oct 15, 2014

Blocking BadUSB #

USB KEYBOARD GUARD from G DATA attempts to block BadUSB attacks by requiring users to approve newly-detected USB keyboards.

(via Robert Penz, who also points to Christian Vogel's Linux instructions for blocking BadUSB)

UPDATE: Claus Valca has more information on BadUSB and USB KEYBOARD GUARD.

/windows | Oct 12, 2014

The shortcut to serenity #

"If it is not right do not do it; if it is not true do not say it." -- Marcus Aurelius

/misc | Oct 08, 2014

VirtualObjectives #

offers a number of free utilities, including:

/windows | Oct 05, 2014

Windows 10 Technical Preview #

Windows 10 Technical Preview ISOs are out. A few thoughts (billg: I carp because I care):
  1. Setup screens during install are the same as those from Windows 8
  2. Same annoying "Sign in to your Microsoft account" after install with no apparent way to bypass. As before, disconnecting from the network, clicking the back arrow, then clicking next allows creation of a local account instead. Microsoft: Please fix this - give users an obvious way to avoid having to setup or sign in to yet another online account (as OS X does).
  3. Strange popup (for feedback, I suppose): "How hard was it to use Start?" Seriously? How hard was it to add Start?
  4. The power button ("Power Options") is now at the top of the Start menu - please put it back at the bottom where it belongs.
  5. Put all of the "Windows Store apps" in a folder instead of having to scroll endlessly through them. And while you're at it, please re-add the ability to easily create, delete, and rename folders on the Start menu (the only options from the context menu are "Expand" or "Collapse").

So far, as near as I can tell, Windows 10 is basically Windows 8.1 with a garish Start menu; calling it 8.2 or even 8.1.1 would seem closer to the truth.


/windows | Oct 01, 2014

Portable TrueCrypt for Windows and OS X #

/misc | Sep 29, 2014

TrueCrypt and Mavericks #

/mac | Sep 29, 2014

TrueCrypt and exFAT #

These steps outline how to encrypt an entire external USB hard drive with TrueCrypt 7.1a and setup the filesystem as exFAT (for large file and read/write support under modern versions of Windows, OS X, and Linux). ANY EXISTING DATA ON THE USB DRIVE WILL BE DELETED!! Use at your own risk (and joy). Tested under Windows 8.1.
  1. Run diskmgmt.msc
  2. Delete any volumes on the USB drive so that the entire disk is shown as "Unallocated"
  3. TrueCrypt > Tools > Volume Creation Wizard > Encrypt a non-system partition/drive > follow the wizard through setting up desired password/keyfile
  4. Set Filesystem to none
  5. Click Format (after moving the mouse as instructed to increase entropy)
  6. Read warning and click Yes if you agree
  7. Wait for the encryption process to complete
  8. Mount the device in TrueCrypt (Select Device... > click on your encrypted drive > OK > click desired drive letter > click Mount > enter credentials > OK)
  9. From an elevated command prompt, run: format <drive letter>: /fs:exfat /q

Thanks to Rowan's blog post and Cal's attached comment.

/windows | Sep 29, 2014

Bash terminal: change color of directories #

and the current working directory path. Because blue on black is hard to read.

Change the color of directories in bash:

  1. If you don't already have an /etc/DIR_COLORS file, create one: $ sudo dircolors -p > /etc/DIR_COLORS
    (See Configuring LS_COLORS for information on multi-user options)
  2. Open /etc/DIR_COLORS in a text editor and change DIR 01;34 to DIR 01;33 to change the default blue to yellow. More color codes.
  3. In ~/.bashrc, change eval "`dircolors -b`" to eval "$(dircolors /etc/DIR_COLORS)"
  4. Reload .bashrc to see the result: $ source ~/.bashrc

Change the bash prompt's current working directory path color:

  1. In ~/.bashrc, comment out every line between:
    # set a fancy prompt (non-color, unless we know we "want" color)
    # Comment in the above and uncomment this below for a color prompt
  2. Uncomment the next line and change 01;34m to 01;33m. It should look something like this:
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;33m\]\w\[\033[00m\]\$ '
  3. Reload .bashrc to see the result: $ source ~/.bashrc


/nix | Sep 28, 2014

MacBook: Disable the internal keyboard #

in order to clean it or cover it with another keyboard like the Matias Mini Tactile Pro or KBParadise V60. (With Shortcat and Spectacle installed, you'll rarely need to touch a mouse or trackpad.)

Disable built-in keyboard:
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext

Reenable built-in keyboard:
sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext

(via XnavxeMiyyep)

/mac | Sep 27, 2014

Batch download and embed album cover art #

If you have a huge MP3 collection and just want to batch download and embed cover art without verifying each cover individually (and iTunes' "Get Album Artwork" is insufficient*):
  1. Download and install Mp3tag
  2. Download DisCoverArt and unzip contents to the Mp3tag program directory (e.g., C:\Program Files (x86)\Mp3tag)
  3. Open an elevated command prompt and cd to the Mp3tag program directory
  4. Run regsvr32 custommsgbox.dll and click OK when the success dialog appears
  5. Open Mp3tag
  6. File > Add directory... > navigate to your music folder > Select Folder
  7. Create a new tool:
    1. Tools > Options > Tools
    2. Click the New (yellow star) button
    3. Name: DisCoverArt Google 300x300 Artist+Title NoQuotes
    4. Path: Browse to the Mp3tag program directory and select DisCoverArt.exe
    5. Parameter: "%artist%" "%title%" -discomusic.com 0 1 300 300 jpg 1 1
    6. Check "for all selected files" > OK > OK
  8. Create a new action:
    1. Actions > Actions (you need to select at least one song in the main interface for this menu item to be available)
    2. Click the New (yellow star) button
    3. Name of action group: Save Coverart
    4. Click OK > click the New button again
    5. Select action type: Import Cover From File > OK
    6. Format string for image filename: %artist% - %title%.jpg
    7. Import cover as: Front Cover
    8. Check "Delete existing cover art" > OK > OK > Close
  9. Right click on column header > Customize columns... > check "Cover" > click "Move up" until it is at or near the top of the list
  10. Click the Cover column to sort
  11. Select all files without an entry in the Cover column (the author recommends selecting no more than 300 at a time to avoid problems)
  12. Right click on highlighted files and click Tools > DisCoverArt Google 300x300 Artist+Title NoQuotes
  13. Wait for all console windows to close
  14. Actions > Actions (Quick) > "Import cover from file" > OK
  15. Format string for image filename: %artist% - %title%.jpg
  16. Import cover as: Front Cover
  17. Check "Delete existing cover art" > OK > OK
  18. File > Save tag > OK
  19. Close Mp3tag
  20. Getting the artwork to show up in iTunes:
    1. Open iTunes and click "Albums"
    2. Edit > Select All > Right click > click "Uncheck Selection" (album covers will appear)
    3. Edit > Select All > Right click > "Check Selection"
Another option is to download cover art with Album Art Downloader and embed with Mp3tag:
  1. Download and run Album Art Downloader
  2. File > New > File Browser...
  3. Enter path to music directory under "Search for audio files in:"
  4. Click Search
  5. Click Options...
  6. Click "Automatically download and save the first result that meets set criteria"
  7. Click "Select all albums with missing artwork"
  8. Click "Get Artwork for Selection..."
  9. Click "Download and save results automatically"
  10. If desired, change minimum required image size to 300 px and allowed cover types to Front
  11. Click Start
  12. When the process is complete, embed the album art with Mp3tag by starting with step 14 above. The only change is in step 15, where you'll need to use Folder.jpg as the format string.

* On a related note, cover art obtained through iTunes' "Get Album Artwork" is not embedded within files by default. To quickly embed all such artwork, the fastest and simplest tool I've found is the $5 iCoverArt (via the "Embed Downloaded Artwork" function). The free and open source iTSfv looked promising, but kept crashing in a clean Windows 7 32 bit virtual machine, even after installing the required .Net Framework.

/windows | Sep 10, 2014

Hard keyboard carrying cases #

for 60%, 75%, or tenkeyless mechanical keyboards are back in stock today at KeyChatter (thanks Aaron!). Options include various pockets, handles, closures, and colors. Made in the USA. See also this recent discussion on /r/MechanicalKeyboards.


UPDATE: New thread in /r/MechanicalKeyboards, including a coupon code.

/misc | Sep 07, 2014

Mount floppy images as drive A: #

with ImDisk Virtual Disk Driver (thanks again for the tip four years ago, Claus!). Even if A: is assigned to another device, ImDisk VDD can force reassignment (no need for the aforementioned ReMount).

(Virtual Floppy Drive 2.1 looked promising, but even with ReMount I was unable to force the drive letter assignment ("Source volume mount point 'letter' is invalid - abort").)

/windows | Sep 07, 2014

Create an image file from floppy disk #

or write an image file to floppy disk with RawWrite: * dd can of course be used instead of RawWrite for creating and writing floppy images (among other tasks); here are a few examples from the author's site:

/windows | Sep 07, 2014

Map a USB floppy drive to A: in Windows XP Mode #

  1. Connect USB floppy drive to Windows 7 host
  2. In XP Mode, click "USB" in toolbar at top and then click the entry for your USB floppy drive. It will be connected as B: by default.
  3. Download and run Uwe Sieber's ReMount from the command line:
    C:\>ReMount.exe -s b: a:
  4. Your USB floppy drive is now assigned to A:. This assignment appears to be permanent (unless changed with ReMount)
See also:

/windows | Sep 07, 2014

Batch script notes: set system date, launch an application, run as admin #

/windows | Sep 07, 2014

Dis-ease #

"The idea of the accumulation of private property beyond your needs was considered a mental illness."

Thom Hartmann in I Am, discussing Peter Farb's Man's Rise to Civilization As Shown by the Indians of North America from Primeval Times to the Coming of the Industrial State

/misc | Sep 03, 2014

OS X: Blank authentication dialog #

A Mac running OS X 10.9.4 would only display a blank authentication dialog when admin privileges were requested:


Text could not be typed or pasted into the text fields.

The issue was ultimately resolved by replacing the entire /System/Library/Fonts folder with a fresh copy from the Mavericks installer (restoring from Time Machine was another option), but not before these potential fixes had been tried:
  1. "Look for Enabled Duplicates..." in Font Book (see Resolve duplicate fonts)
  2. Clear the font caches $ sudo atsutil databases -remove and reboot. (This command did fix the issue for a single launch of the authentication dialog, but the problem returned immediately afterwards.) Others suggest simply running $ atsutil server -shutdown && atsutil server -ping afterwards, but a reboot is recommended.
  3. $ sudo fontrestore default (Restore the available system fonts to a pristine state, if possible.)
  4. Create and login as a new user to see if issue is associated with user profile (needed to create the new user from the Terminal since the authentication dialog was not working).
  5. A thread about A's with boxes around them in authentication dialogs (Mysterious authentication dialogue font error) pointed to Lucida Grande as the likely culprit, but replacing /System/Library/Fonts/LucidaGrande.ttc with a clean copy did not resolve the issue.
  6. Deleting (in desperation) ~/Library/Fonts/ and ~/Library/FontCollections/ did not help, but did render the user account unusable until those folders were restored with fresh copies from the new user account (folder permissions fixed with BatChmod, though Mavericks now offers a "Paste Item Exactly" option (via Alt+Shift+Command+V) which preserves permissions (but not ACLs)).

Microsoft fonts were restored by running the Microsoft Office 2011 installer and selecting only "Office Fonts" (there was no need to reenter the product key).

/mac | Aug 31, 2014

Working with CSV files from the command line #

csvkit is a suite of utilities for converting to and working with CSV. Tools include:



Output (and Analysis)

(via author's comment on a blog post about parsing CSV files with the standard *nix tools: "Just a heads up that most of these commands will fail with non-trivial data because CSV files can contain rows that span multiple lines. I wrote csvkit to solve exactly this problem: http://csvkit.readthedocs.org/en/0.8.0/ Similar commands, but it handles CSV format correctly.")

/nix | Aug 27, 2014

Beautiful new software firewall and network monitor #

GlassWire is a network monitor and firewall for Windows with a lickable UI:


Only downside appears to be that outbound connections from new apps are not automatically blocked.

On a related note, I recently tested a number of firewalls with Comodo's HIPS and Firewall Leak Test Suite; the only product to pass all tests with virtually no setup or configuration was SpyShelter Firewall (though I didn't test Comodo's own fireall product; the download was over 230MB, compared to SpyShelter's 10MB).

(via Hacker News)

/windows | Aug 25, 2014

The Five Principles of Liberty #

from Men Like Gods by H.G. Wells:
Every young Utopian had to learn the Five Principles of Liberty, without which civilization is impossible. The first was the Principle of Privacy. This is that all individual personal facts are private between the citizen and the public organization to which he entrusts them, and can be used only for his convenience and with his sanction. Of course all such facts are available for statistical uses, but not as individual personal facts. And the second principle is the Principle of Free Movement. A citizen, subject to the due discharge of his public obligations, may go without permission or explanation to any part of the Utopian planet. All the means of transport are freely at his service. Every Utopian may change his surroundings, his climate and his social atmosphere as he will. The third principle is the Principle of Unlimited Knowledge. All that is known in Utopia, except individual personal facts about living people, is on record and as easily available as a perfected series of indices, libraries, museums and inquiry offices can make it. Whatever the Utopian desires to know he may know with the utmost clearness, exactness and facility so far as his powers of knowing and his industry go. Nothing is kept from him and nothing is misrepresented to him. And that brought Mr. Barnstaple to the fourth Principle of Liberty, which was that Lying is the Blackest Crime.

Crystal's definition of Lying was a sweeping one; the inexact statement of facts, even the suppression of a material fact, was lying.

"Where there are lies there cannot be freedom."

Mr. Barnstaple was mightily taken by this idea. It seemed at once quite fresh to him and one that he had always unconsciously entertained. Half the difference between Utopia and our world he asserted lay in this, that our atmosphere was dense and poisonous with lies and shams.


[T]he Fifth Principle of Liberty in Utopia was Free Discussion and Criticism.

Any Utopian was free to criticize and discuss anything in the whole universe provided he told no lies about it directly or indirectly; he could be as respectful or disrespectful as he pleased; he could propose anything however subversive. He could break into poetry or fiction as he chose. He could express himself in any literary form he liked or by sketch or caricature as the mood took him. Only he must refrain from lying; that was the one rigid rule of controversy. He could get what he had to say printed and distributed to the news rooms. There it was read or neglected as the visitors chanced to approve of it or not. Often if they liked what they read they would carry off a copy with them. Crystal had some new fantastic fiction about the exploration of space among his books; imaginative stories that boys were reading very eagerly; they were pamphlets of thirty or forty pages printed on a beautiful paper that he said was made directly from flax and certain reeds. The librarians noted what books and papers were read and taken away, and these they replaced with fresh copies. The piles that went unread were presently reduced to one or two copies and the rest went back to the pulping mills. But many of the poets and philosophers, and story-tellers whose imaginations found no wide popularity were nevertheless treasured and their memories kept alive by a few devoted admirers.

/misc | Aug 09, 2014

Japanese study tools #

/windows | Aug 04, 2014

Restore correct JPG file creation date from EXIF data #

File creation dates get mangled all too often, as when clicking and dragging images out of iPhoto. Here's a simple way to restore the correct dates using the embedded EXIF data and the venerable jhead (first mentioned in this space back in 2005):

jhead -ft /path/to/borked/images/*.jpg

/misc | Jul 28, 2014

Excel: Delete/remove blank/empty columns #

Or rather, delete columns that are blank or have data in the first/header row only. Tested in Excel 2003 (Windows) and 2011 (Mac).


  1. Open spreadsheet in Excel
  2. Tools > Macro > Visual Basic Editor
  3. Paste the macro shown below (created by AnitaPita with a hand from jbeaucaire)
  4. File > Save
  5. File > Close and Return to Microsoft Excel
  6. Tools > Macro > Macros
  7. Click Run (if you have other macros in the spreadsheet, you'll need to select "DeleteROPBlanks" first)


  1. If your copy of Office 2011 does not have VBA installed, you can add it by running the installer again, choosing Customize, and then checking only "Visual Basic for Applications"
  2. Open spreadsheet in Excel
  3. Excel > Preferences > Ribbon > check Developer > OK
  4. On the ribbon menu, click Developer > Editor
  5. Insert > Module
  6. Paste VBA code shown above and then close Module window
  7. Macros > Run (if you have other macros in the spreadsheet, you'll need to select "DeleteROPBlanks" first)

/windows | Jul 24, 2014

An ergonomic, mouse-free Mac setup #

Until one of the aforementioned split keyboard/mouse devices becomes available, Shortcat and the Freestyle2 keyboard make a great ergonomic team.

/mac | Jul 13, 2014

Split keyboards that also function as mice #

Hopefully one of these (or something similar) will be available soon:

combimouse - Combination keyboard and mouse:

KeMice - Split keyboard that also acts as a mouse:

/misc | Jul 13, 2014

Portable Thunderbolt to USB 3.0 adapter #

Kanex delivered on their promise to ship a Thunderbolt to USB 3.0 / eSATA adapter by late June. I received one the other day and ran some benchmarks on a Late 2011 MacBook Pro (2 USB 2.0 ports and 1 Thunderbolt port) running OS X 10.9.4:

USB 3.0 Hard Drive
Interface Read Write
Onboard USB 2.0 port 33 MB/s 26 MB/s
Thunderbolt-USB 3.0 adapter 101 MB/s 100 MB/s

USB 3.0 Solid State Drive
Interface Read Write
Onboard USB 2.0 port 35 MB/s 29 MB/s
Thunderbolt-USB 3.0 adapter 238 MB/s 225 MB/s


/mac | Jul 05, 2014

Sitting quietly, doing nothing #

Blaise Pascal, 17th century:
All of humanity's problems stem from man's inability to sit quietly in a room alone.1

Researchers, 21st century:

Most men would rather shock themselves than be alone with their thoughts.2
  1. From his collection Pensées (Thoughts): "J'ai dit souvent que tout le malheur des hommes vient d'une seule chose, qui est de ne savoir pas demeurer en repos dans une chambre." Another translation from Pascal's Pensées: "I have discovered that all the unhappiness of men arises from one single fact, that they cannot stay quietly in their own chamber."
  2. One way to find more joy in silence than in shocks: 10-day Vipassana Meditation retreat

/misc | Jul 04, 2014

Vintage typewriter-inspired USB mechanical keyboard #

The Qwerkywriter is an 84-key, USB, vintage typewriter-inspired mechanical keyboard. About two days left in its Kickstarter campaign; Bluetooth slated to be added if the stretch goal is reached.

USB typewriter

/misc | Jul 01, 2014

Blocking Facebook, et al. #

Cold Turkey blocks access to undesirable sites and applications based on a schedule you set. Here is a list of what it adds to the hosts file by default:

I dimly recall an issue from long ago with the hosts file not filtering https sites (my memory may be faulty), but the above list blocked access to both the http and https versions of Facebook, etc under Windows 7 even without installing Cold Turkey.

/windows | Jun 30, 2014

Newbie audiophile setup for small spaces #


The whole thing (well, everything but the laptop) fits perfectly in the Sennheiser box with the foam removed.



  1. The last Mac laptop or desktop to include a built-in optical drive. Also the last Mac to be readily accessible and serviceable. The late 2011 model can run Mac OS X 10.6 - 10.9. Includes an Ethernet port.
  2. Review of the Schiit Audio Vali/Modi Stack
  3. Despite claims to the contrary, the Modi (along with all Schiit DACs) does support integer mode according to Nick at Schiit Audio.
  4. Mac OS X 10.6 and 10.9 support integer mode (which takes hog mode/exclusive access a step further by sending audio in the DAC's native format) while OS X 10.7 and 10.8 do not. See Integer Mode Is Back!! and Beyond bit-perfect: The importance of the Player Software And MAC OS X Playback Integer Mode for more information.
  5. Reviews at Headfonia and 6moons.

2020 Update

/mac | Jun 17, 2014

The debug menu in Mavericks' Calendar #

can be restored via "defaults write com.apple.iCal CDB 1". Sadly, the hidden options don't fix the UI much; here's what you get:

Conspicuously absent: "Restore Snow Leopard iCal Interface"

/mac | Jun 16, 2014

Browser plugin to highlight and copy text from any image #

"Project Naptha automatically applies state-of-the-art computer vision algorithms on every image you see while browsing the web. The result is a seamless and intuitive experience, where you can highlight as well as copy and paste and even edit and translate the text formerly trapped within an image."

/misc | Jun 09, 2014

Command line backup tool with versioning #

VBackup is a free (for personal or commercial use) command line backup program similar to XCOPY or Robocopy, but with support for file versioning. Versions are stored within a hidden directory (.VBackups) on the destination. While VBackup does not natively support shadow copies, you can pair it with the open source ShadowSpawn (among others) to backup in-use files.

/windows | Jun 08, 2014

TINY - a story about living small #

TINY is a documentary about home, and how we find it.

The film follows one couple’s attempt to build a "tiny house" from scratch, and profiles other families who have downsized their lives into homes smaller than the average parking space.

Through homes stripped down to their essentials, the film raises questions about good design, the nature of home, and the changing American Dream.

/misc | Jun 04, 2014

Twitter feed grudgingly added #

New blog entries are now automatically posted to @tinyapps on Twitter via IFTTT. There will be no plaintive entreaties to "Follow me on Twitter!" or other such nonsense. But if you prefer Twitter over RSS (I can't imagine why), updates will be available there.

Why the curmudgeonly acquiescence after all these years? The @tinyapps handle (which was secured many years ago, then lost to a squatter through disuse, and finally reclaimed several years ago before being promptly and purposely ignored again), was mentioned by @bvckup. I had also recently read a comment on Hacker News about the evils of Twitter handle squatting. Given that I generally take a rather dim view of domain name squatting, it was clearly time to use the handle or loose it.

UPDATE: Twitter feed shutting down

/misc | Jun 02, 2014

Batch create contact sheets from videos #

A rare update to the app pages: Skreenics 1.0.1 [332k] {S} Automatically generate contact sheets (thumbnails) of videos. 📺

/mac | Jun 01, 2014

If you do file backups, you need to check out Bvckup 2 #

Alex Pankratov (the original developer of Hamachi) has been crafting, honing, testing, and polishing Bvckup for years. The latest version, Bvckup 2, was beta tested for 12 months on over 10,000 installations. Here's what makes it exceptional:

Full disclosure: Along with around 120 other beta testers, I received a surprise gift from Alex when beta testing completed: a 5-install professional license.

UPDATE: Promo code for 15% off personal licenses: TINYAPPS-2958.

/windows | May 31, 2014

Prosperity and happiness #

"If you are wise, you will dread a prosperity which only loads you with more." - Ralph Waldo Emerson

"He who would travel happily must travel light." - Antoine de Saint-Exupéry

"I leave my span of days for Heaven to determine, neither clinging to life nor begrudging its end. My body is like a drifting cloud--I ask for nothing, I want nothing. My greatest joy is a quiet nap; my only desire for this life is to see the beauties of the seasons." - Kamo no Choumei

/misc | May 30, 2014

Lossless audio extraction from VOB file #

DVD audio tracks can be uncompressed (PCM) or compressed (AC3, MP2, DTS). Here's how to extract the audio losslessly (aka demuxing):
  1. Open VOB file in MPEG Streamclip
  2. Edit or crop as desired
  3. File > Save Track > Save Audio Track...
More info:

/misc | May 15, 2014

MUCH faster access to Dell drivers #

can be had at http://ftp.dell.com/Pages/index.html. No JavaScript, drop-down menus, or other cruft; just plain HTML pages that load instantly.

UPDATE: John Rothlisberger kindly informs us that the FTP archive appears to have been abandoned:

I suspect the Dell FTP driver repository you linked to may no longer be maintained. I checked a couple of models that I own, and for example, for a Precision T3600 there are no 2014 drivers at all on the FTP site, but plenty on the normal (bloated) support site. The latest BIOS from the normal site is A12 from 12-Nov-2013, but on the FTP site only A08 from 22-Feb-2013.

/windows | May 11, 2014

Google Chrome wants to use the "foo" keychain #

Over. And over. And over. Suggestions found online did not avail. Deleting the "Chrome Safe Storage" entry from Keychain Access did.

/mac | May 11, 2014

Perian for Mavericks #

MaddTheSane has kindly forked and updated Perian to run under Mavericks. This new version restored playback for a number of AVI files in iPhoto that the old official version could not display. Lots of discussion around the core problem facing Perian (hint: it's Apple).

/mac | May 06, 2014

2D Dock for Mavericks #

Until Mavericks, changing the Dock to 2D was as simple as:
    defaults write com.apple.dock no-glass -boolean YES; killall Dock

In its infinite wisdom, Apple removed that hidden preference in 10.9 (though positioning the Dock on the left or right still forces it to 2D). Many, many thanks to Wolfgang Baird for crafting cDock to correct this egregious eyeball assault.

/mac | May 06, 2014

"Be kind, #

for everyone you meet is fighting a hard battle."

Often misattributed to Plato, I first encountered this sage advice in Patrick Farley's online graphic novel, The Spiders, as:
Show kindness to every person you meet. No matter how ill-tempered a man may seem, you have no idea what private agony he may secretly be struggling with.

/misc | Apr 25, 2014

iPhoto - Delete thumbnails of missing images #

(i.e., those that appear as exclamation points when opened) with Thomas Tempelmann's Tag Missing Files AppleScript:
Checks if the original (or master) images are still accessible (you might have deleted the originals, or maybe they're just on another media or network volume that's currently not present). If these files are missing, they're tagged with the keyword "missing-file". You can then select those and delete them or handle them in other ways. To use, simply open iPhoto, then open this script. It will then check all your images in your library. You can also change it to check only select items in your library. To do that, open the .app file with Script Editor (inside /Applications/Utilities/) and change the setting for appliesToEntireLibrary from true to false, then save and re-run it.
Also included in the archive are "Tag non-RAW and RAW+ images" as well as "iPhoto Remove Duplicates" (which is reportedly not yet reliable).

/mac | Apr 15, 2014

Obtaining previous versions of Mac OS X #

To their credit, Apple still offers Snow Leopard, Lion, and Mountain Lion for sale (though the delivery channels seem rather quaint and antiquated):

Glad to see 10.6 is still available (albeit unmaintained).

Apparently, joining the Mac Developer Program ($99/year) is another way to obtain previous versions:

/mac | Apr 08, 2014

Installing the Savin 816 (aka Ricoh Aficio MP 161) under Mavericks #

Don't waste time with any of these - they don't work: Simply add a new printer by IP address, select "Line Printer Daemon" as the protocol and "Generic PCL Printer" (not "Generic PostScript Printer") for the driver.

/mac | Apr 07, 2014

Freeware reboot-to-restore apps #

have been covered before; here's another from Horizon Data Sys:

/windows | Mar 10, 2014

If Deep Freeze and Drive SnapShot had a love-child, #

it might look a lot like:
Reuschtools 3.07 [973k] $ Reboot-to-restore + bare-metal recovery (via WinPE disc that is created using base system - no need for WAIK or Windows install media) + adaptive restore to dissimilar hardware (including UEFI systems to BIOS and vice versa) + insanely fast, system image backup and restore (even to/from single system partition) + multiple, simultaneous destinations + 32 and 64 bit versions in a single installer under 1MB + support for Windows XP through 8.1 (including Server 2003, 2008, and 2012) + a slew of other features (encryption, compression, folder backups, scheduling, single click restores, etc) - activation scheme tied to hardware - incomplete English documentation 📺

Don't miss CopyCd by the same author, a tiny app for copying and burning CDs, DVDs, BDs, and ISO files.

/windows | Mar 10, 2014

Kindle: Opening PRC files #

PSA: Some Kindle devices and app versions open PRC files just fine, but others require that the extension be changed from PRC to MOBI. More: .prc vs. .mobi | Are PRC and MOBI files identical?

/eink | Mar 09, 2014

Really tiny hosting #

onekb.net offers one kilobyte of free (for 1024 minutes) web hosting. After the first 17 hours, it's one satoshi per hour = 0.0000876 XBT per year =~ five cents at the current exchange rate. For that tidy tiny sum, you get a subdomain (whatever.onekb.net) and an HTML form into which you can enter 1024 bytes.

/misc | Mar 07, 2014

Optiplex 755: SM Bus Controller and PCI Serial Port not recognized #

To resolve, chipset drivers need to be installed. But you won't find them if you enter your Service Tag into Dell's support page. Drill down to your model beginning with "Select a product" instead to unearth the necessary drivers (Intel AMT HECI, Intel AMT SOL/LMS, and Intel Chipset Driver).

/windows | Mar 06, 2014

Remove Chromium Notifications in OS X Menu Bar #

Open chrome://flags and set "Enable Rich Notifications Mac, Windows" to "Disabled". (The standard Command + click and drag does not work to remove the icon.)

/misc | Mar 05, 2014

Terminal-based calendar and to-do list #

calcurse "helps keep track of events, appointments and everyday tasks. A configurable notification system reminds user of upcoming deadlines, and the curses based interface can be customized to suit user needs." Import from ICS and export to ICS or PCAL.

Terminal-based calendar

Note: Had to install ncursesw (sudo apt-get install libncursesw5-dev) under Ubuntu before calcurse would install (./configure && make && sudo make install).

/nix | Mar 04, 2014

Enable Unicode in lynx #

While testing the new site design in lynx, it was found that Japanese characters and other Unicode symbols were not displayed. This was resolved by changing the line #CHARACTER_SET:iso-8859-1 to CHARACTER_SET:UNICODE (UTF-8) within /opt/local/etc/lynx.cfg .

/nix | Feb 25, 2014

Site redesign #

I've been sporadically planning a site redesign that better accommodates portable devices (like iOS and Android phones) for a long time. (Ironically, Blazer/Palm OS rendered the old site more readably than Safari/iOS.) I also wanted to: The result is a site even simpler (some might say "duller") than the original. It will be rolling out over the next few days, beginning with the root directory. The blog and docs sections will be updated in short order. Please pardon any inconvenience.

/misc | Feb 23, 2014

Fixing Japanese characters in vCards with bash #

After importing an Outlook Express address book (WAB) into Windows 7 Contacts and exporting as vCards (VCF), the name fields which contained kanji or kana characters showed only question marks:


However, since the filenames were correct (e.g., 山田太郎.vcf), the name fields were restored with a little bash magic:


# change the line endings from DOS to Unix:
gsed -i $'s/\r$//' *.vcf

# add "FN;CHARSET=UTF-8:" followed by the filename to the last line of each file
# then move the last line ($) up to the third (2): for x in *.vcf do echo "FN;CHARSET=UTF-8:$x" >> "$x" ed -s "$x" <<< $'$m2\nw' done # remove lines beginning with "N" or "FN:" as well as the characters ".vcf" gsed -i '/^N/d; /^FN:/d; s/\.vcf//g' *.vcf

Now the vCards were ready for import into OS X's Contacts:


/nix | Feb 21, 2014

"Your forms were not sent because QuickBooks could not create the necessary PDF files" #

The above error may appear in QuickBooks 2011 or 2012 under Windows 8 x64 when attempting to email or print to PDF. According to Intuit, "Only QuickBooks 2013 R4 and later is supported on Windows 8. Do you use Windows 8 64-bit and QuickBooks 2011 or 2012? They weren't designed for Windows 8..." However, they kindly link to Arvind's instructions on how to resolve the issue. Here's a condensed version:
  1. Download Microsoft-XPS-Document-Writer.zip (local cache)
  2. Unzip and copy "Microsoft XPS Document Writer" directory to %windir%\System32\
  3. Open Devices and Printers
  4. Remove "Microsoft XPS Document Writer" if present
  5. Click "Add a printer" > "The printer that I want isn't listed"
  6. Click "Add a local printer or network printer with manual settings" > Next
  7. Select "Create a new port:" > set "Type of port:" to "Local Port" > Next
  8. For "Enter a port name:" enter "XPS" > OK
  9. Click "Have Disk..." > "Browse..." > double click %windir%\System32\Microsoft XPS Document Writer\prnms001.inf > OK
  10. Click Next > Next > Yes to UAC prompt > Do not share this printer > Next > uncheck "Set as the default printer" > Finish

/windows | Feb 21, 2014

Resolving BSOD (STOP: 0x0000007B) after a motherboard swap #

or hard drive migration:
  1. Download cdob's fix_7hdc.vbs (local cache) and save to removable media
  2. Boot to the Recovery Console (F8 > Repair Your Computer) or from a system repair/Windows 7 disc
  3. Insert media containing fix_7hdc.vbs
  4. Run cscript fix_7hdc.vbs /enable /search from the Command Prompt
  5. Reboot

/windows | Feb 17, 2014

The shortcut to open Command Prompt (cmd.exe) during Windows install #

is Shift+F10. Handy for erasing an HFS+ GPT drive when the Windows install routine chokes with "Windows cannot be installed to this disk. The selected disk of the GPT partition style." among other things. (Speaking of which, if you receive "This computer's hardware may not support booting to this disk. Ensure that the disk's controller is enabled in the computer's BIOS menu." following such a procedure, simply reboot to resolve.)

/windows | Feb 17, 2014

Fujitsu ScanSnap fi-5110EOXM and OS X 10.9 (Mavericks) #

Despite Fujitsu's claim that the ScanSnap fi-5110EOXM is "not supported" under OS X 10.9 "due to the end of support", it turns out that it works just fine with ScanSnap Manager for the S1300. As Jeff the Bakerman suggests, simply install ScanSnap Manager for Mac (V3.2L31) followed by ScanSnap Manager for Mac Update (V3.2L63). Reports like this one make me think many folks could've benefited from this information. C'mon, Fujistu - you'll gain greater customer loyalty and support by not forcing users to buy new hardware when it's not necessary.

/mac | Jan 28, 2014

Improve OS X's Finder #

with these two freeware apps for 10.6 - 10.9:

/mac | Jan 26, 2014

Verifying a zeroed disk with zerocheck.sh #

UPDATE: While this was obviously never meant as a thorough check, I have now seen too many instances of partially-erased drives (like this one) to rely on it at all. Please see Verify disk wipe instead.

While you can verify a zero-filled disk with hexdump (among other tools), it takes many hours on large-capacity drives. I cobbled together a bash script to quickly check a user-defined number of megabytes from the beginning, middle, and end of a disk for zeros. Here's what it looks like when run under OS X (disk 0 and 1 details have been truncated):

    $ sudo zerocheck.sh

    zerocheck.sh - check disk for zeros

       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:                                                   *500.1 GB   disk2

    Enter disk to check (e.g., /dev/disk2)

    How many megabytes to check from the beginning, middle, and end of the disk?

    /dev/disk2 has 500107862016 bytes.

    The first 1048576 bytes:
    0000000    000000  000000  000000  000000  000000  000000  000000  000000

    1048576 bytes from the middle:
    250053931008    000000  000000  000000  000000  000000  000000  000000  000000

    And the final 1048576 bytes:
    500106813440    000000  000000  000000  000000  000000  000000  000000  000000

There are two versions of the script. One for OS X:


# zerocheck.sh - check the beginning, middle, and end of a drive for zeros.
# "when you don't have the time or interest for a full hexdump"

# tested under:
# mac os x 10.6 - 10.10

echo -e "\nzerocheck.sh - check disk for zeros\n"

# check os, display block devices, assign user's choice to variable "DISK2CHK"
if [ "$(uname)" == "Darwin" ]; then
    diskutil list
    echo "Enter disk to check (e.g., /dev/disk2)"
    read DISK2CHK
    echo "This script has only been tested under OS X."
    exit 1

# ask for MBs to check, accepting only 1 or greater as valid input, and assign to variable "MB"
until [ $MB -ge 1 2>/dev/null ]; do
    echo -e "\nHow many megabytes to check from the beginning, middle, and end of the disk?"
    read MB

# convert MBs to bytes and assign to variable "BYTES2CHK"
BYTES2CHK=$((MB * 1048576))

# get the number of bytes via diskutil, stripping leading "(", and assign to variable "BYTES"
BYTES=`diskutil info $DISK2CHK | awk '/Total\ Size/ {sub(/\(/, x); print $5}'`

# let the user know how many bytes the disk has
echo -e "\n$DISK2CHK has" $BYTES "bytes.\n"

# check beginning of disk. (-Ad = decimal; Nx = dump at most x bytes)
echo "The first $BYTES2CHK bytes:"

# check middle of disk. (-jx = skip x bytes)
echo -e "\n$BYTES2CHK bytes from the middle:"
# divide $BYTES by 2 and assign result to variable "MIDDLEOFDISK"

# check end of disk:
echo -e "\nAnd the final $BYTES2CHK bytes:"
# subtract BYTES2CHK from BYTES and assign to variable "ENDOFDISK"

And the other for Linux:


# zerocheck.sh - check the beginning, middle, and end of a drive for zeros.
# "when you don't have the time or interest for a full hexdump"

# tested under:
# lubuntu 12.10 (though any distro with util-linux 2.19 or higher should work)

echo -e "\nzerocheck.sh - check disk for zeros\n"

# check os, display block devices, assign user's choice to variable "DISK2CHK"
if [ "$(uname)" == "Linux" ]; then
    echo "Enter disk to check (e.g., /dev/sdc)"
    read DISK2CHK
    echo "This script has only been tested under Linux."
    exit 1

# ask for MBs to check, accepting only 1 or greater as valid input, and assign to variable "MB"
until [ $MB -ge 1 2>/dev/null ]; do
    echo -e "\nHow many megabytes to check from the beginning, middle, and end of the disk?"
    read MB

# convert MBs to bytes and assign to variable "BYTES2CHK"
BYTES2CHK=$((MB * 1048576))

# get the number of bytes via lsblk and assign to variable "BYTES"
BYTES=`lsblk -b $DISK2CHK | awk 'NR==2 {print $4}'`

# let the user know how many bytes the disk has
echo -e "\n$DISK2CHK has" $BYTES "bytes.\n"

# check beginning of disk. (-Ad = decimal; Nx = dump at most x bytes)
echo "The first $BYTES2CHK bytes:"

# check middle of disk. (-jx = skip x bytes)
echo -e "\n$BYTES2CHK bytes from the middle:"
# divide $BYTES by 2 and assign result to variable "MIDDLEOFDISK"

# check end of disk:
echo -e "\nAnd the final $BYTES2CHK bytes:"
# subtract BYTES2CHK from BYTES and assign to variable "ENDOFDISK"

The script can be tested on an image file:

  1. Create a file filled with zeros:
    $ dd if=/dev/zero of=/path/to/zeros.img count=16384
  2. Assign it to a loopback device:
  3. Test the script:
    $ zerocheck.sh
  4. Don't forget to remove the device when done:

/nix | Jan 26, 2014

OPML sharing service #

Share OPML files and browse the blog feeds of others at feedshare.net, the spiritual successor of Dave Winer's all-too-fleeting share.opml.org.

/misc | Jan 08, 2014

Recovering software licenses and product keys #

SterJo Key Finder joins Magical Jelly Bean Keyfinder and ProduKey as an indispensable tool for recovering licenses from online or offline Windows installations. Supported products include Windows XP - 8, Microsoft Office 2002 - 2013, AutoCAD 2005 - 2013, and many, many others.

/windows | Jan 04, 2014

Block apps from making network connections #

without having to install an outbound firewall:

/windows | Jan 04, 2014

Find files fast on NTFS volumes #

with apps that leverage the Master File Table (admin rights required):

/windows | Jan 04, 2014

Subscribe or visit the archives.