Easier archive extraction #

with dtrx ("Do The Right Extraction"): Works out of the box with Python 2.4 or greater. Python 2.3 requires the subprocess module. Commonly-installed tools like tar and 7z are also required. Test for any missing dependencies with the included compare.py script (which requires PyPAML).

(via MyLinuxBook)

/nix | Dec 31, 2013

Extend cmd.exe #

with clink:

/windows | Dec 31, 2013

Ichikawa Danzo VIII #

There is one last story of Shōdo to tell, and it is appropriate to save it for now, for it was on a night like this, on a ferry departing Shōdo for the mainland, that an eighty-four-year-old man—a pilgrim—walked out onto the deck and, quietly, unobtrusively, slipped away. His name was Ichikawa Danzo VIII, a Kabuki actor of note, and in his death he gave his last and greatest performance, a performance that would assure him immortality.

Ichikawa first appeared onstage as a child in arms. When he retired in April 1965, it was celebrated as eighty-two years onstage. After the fetes and final farewell performance, he travelled to Shikoku and set off, alone, to follow the Eighty-Eight Temple Route of Kōbō Daishi. It was a remarkable undertaking for a man in his late years, and there are suggestions that he never expected to finish the pilgrimage, that he expected to die on the road. But Ichikawa finished his trek at the end of May, after the sakura had fallen and the circle had closed. He was at a loss over what to do. He sailed for Shōdo, apparently to complete that islands pilgrimage as well—but something changed his mind.

Why he chose to leave the final circle unfinished remains a mystery. Perhaps he was simply tired. He spent the last days of his life alone in a small inn on Shōdo before boarding a midnight ferry for Osaka. Rain was washing across the deck as Ichikawa made his way to the stern and stepped over the guardrail into a dark sea. He was never seen again. It was as though his body had vanished. He had chosen the moment of his exit carefully; the ferry was crossing the strong eastern currents of the Inland Sea and he was swept away into the whirlpool of Naruto—and the endless circles it spins.

Ichikawa's death became legend, the ultimate act of autonomy, the pilgrim deciding for himself how the journey would end. In Japanese Pilgrimage, Oliver Statler writes, "His was not an act of desperation but of resolution. He walked out of life as he had walked on the stage, with composure."
From Hitching Rides with Buddha by Will Ferguson

/misc | Dec 17, 2013

Merely tied on #

Are you, then, free, says someone?—By the gods I wish to be, and pray to be, but I am not yet able to look into the face of my masters, I still honour my paltry body, I take great pains to keep it sound, although it is not sound in any case.   But I can show you a free man, so that you will never again have to look for an example.   Diogenes was free.   How did that come?   It was not because he was born of free parents, for he was not, but because he himself was free, because he had cast off all the handles of slavery, and there was no way in which a person could get close and lay hold of him to enslave him.   Everything he had was easily loosed, everything was merely tied on.   If you had laid hold of his property, he would have let it go rather than followed you for its sake ; if you had laid hold of his leg, he would have let his leg go ; if of his whole paltry body, his whole paltry body ; and so also his kindred, friends, and country.   He knew the source from which he had received them, and from whom, and upon what conditions.   His true ancestors, indeed, the gods, and his real Country he would never have abandoned, nor would he have suffered another to yield them more obedience and submission, nor could any other man have died more cheerfully for his Country.   For it was never his wont to seek to appear to do anything in behalf of the Universe, but he bore in mind that everything which has come into being has its source there, and is done on behalf of that Country, and is entrusted to us by Him who governs it.
From Chapter 1, Of freedom, in Book IV of Epictetus' Discourses

/misc | Dec 15, 2013

... and we LIKED it! #

vinterm is an open source vintage-style terminal emulator similar to the shareware Cathode and based on the IBM 5151.
vinterm

/nix | Dec 08, 2013

Recover lost data with ShadowExplorer #

Since Vista, Windows has maintained a daily backup repository with versioning (similar to local snapshots in Time Machine) as part of System Protection / System Restore. Strangely, Microsoft buried access to this data away (and in some cases hid it completely); even where available, Previous Versions is hardly straightforward, especially during a desperate search for missing files.

Thankfully, ShadowExplorer provides a simple, intuitive interface for accessing this treasure trove. The portable version is a mere 135K download, and though the .NET Framework is required, it comes preinstalled on supported Windows versions.

/windows | Oct 07, 2013

Set backup destination based on drive label #

instead of drive letter within a batch file:
   @ECHO OFF

   REM change your_label to your backup drive label

   Set DSTV=your_label
   Set DST=

   For %%a IN (D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) ^
   DO (vol %%a 2> nul|Find /i "%DSTV%" > nul && Set DST=%%a)

   REM if drive label not found, abort

   If "%DST%"=="" Goto END

   REM use %DST%\desired_subdir as destination

   "C:\Program Files\fc\FastCopy.exe" /CMD=diff /force_close "c:\impt" /to="%DST%\impt"

   :END

   Exit

Notes:

/windows | Oct 03, 2013

Compare two text files and extract lines unique to one of them #

Given two files, e.g.,
$ tail file1 file2
==> file1 <==
Oahu
Maui
Hawaii
Kauai
Molokai
Lanai

==> file2 <==
Hawaii
Kahoolawe
Kauai
Lanai
Maui
Molokai
Niihau
Oahu
here are a couple of methods, courtesy of SiegeX and ghostdog74, for extracting lines unique to the second file:
$ awk 'FNR==NR{a[$0]++}FNR!=NR && !a[$0]{print}' file1 file2
Kahoolawe
Niihau
$ awk 'FNR==NR{a[$0]++;next}(!($0 in a))' file1 file2
Kahoolawe
Niihau
$ comm -13 <(sort file1) <(sort file2)
Kahoolawe
Niihau

UPDATE: In a similar vein, find lines common to two unsorted files like so: comm <( sort file1 ) <( sort file2 )

Additional keywords: uniq, sort, diff, regex

/nix | Sep 27, 2013

Wherever I go, there are sun, moon, stars, dreams, omens, my converse with gods #

[Y]ou must make your governing principle pure, and you must make the following your plan of life: "From now on my mind is the material with which I have to work, as the carpenter has his timbers, the shoemaker his hides; my business is to make the right use of my impressions. My paltry body is nothing to me; the parts of it are nothing to me. Death? Let it come when it will, whether it be the death of the whole or some part. Exile? And to what place can anyone thrust me out? Outside the universe he cannot. But wherever I go, there are sun, moon, stars, dreams, omens, my converse with gods."
From Chapter 22, On the calling of a Cynic, in Book III of Epictetus' Discourses

/misc | Sep 14, 2013

'Marked' markdown app free for Snow Leopard users #

Some rare (and welcome!) love for us 10.6 zealots from Brett Terpstra, developer of Marked:
As an individual dev with a day job, I just ran out of resources to develop for both Snow Leopard and Lion as many of the features I wanted to add required Lion capabilities. As a peace offering, I've generated a build of version 1.3 that has all possible functionality and is stable even on 32-bit systems running 10.6. This build will not run on Lion (or Mountain Lion), but it's free to Snow Leopard users. People who have purchased Marked through the App Store will still own it and, should they ever update their operating system or get a new machine which can run a newer operating system, it will be waiting for them. The SL build can be downloaded here.

/mac | Sep 13, 2013

OS X: Batch convert and concatenate HTML files to a single PDF file #

with this Bash one-liner:
for i in *.html; do /System/Library/Printers/Libraries/convert -m application/pdf -f "$i" -o $(basename -s ".html" "$i").pdf; done && "/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o combined.pdf *.pdf
(via cybercape and Fritz)

UPDATE: /System/Library/Printers/Libraries/convert last appeared in OS X 10.7 Lion; even back then, it was a symlink to /usr/sbin/cupsfilter:

$ ls -lah /System/Library/Printers/Libraries/convert
lrwxr-xr-x  1 root  wheel    20B May 14  2012 /System/Library/Printers/Libraries/convert -> /usr/sbin/cupsfilter

$ test -L /System/Library/Printers/Libraries/convert && echo $?
0

though their options differed somewhat:

$ /System/Library/Printers/Libraries/convert
Usage: convert [ options ]
Options:
  -D                      Remove the input file when finished.
  -J title                Set title.
  -P filename.ppd         Set PPD file.
  -U username             Set username for job.
  -a 'name=value ...'     Set option(s).
  -c copies               Set number of copies.
  -d printer              Use the named printer.
  -e                      Use every filter from the PPD file.
  -f filename             Set file to be converted (otherwise stdin).
  -i mime/type            Set input MIME type (otherwise auto-typed).
  -j mime/type            Set output MIME type (otherwise application/pdf).
  -o filename             Set file to be generated (otherwise stdout).
  -u                      Remove the PPD file when finished.

$ /usr/sbin/cupsfilter
Usage: cupsfilter [ options ] filename
Options:
  -D                      Remove the input file when finished.
  -P filename.ppd         Set PPD file.
  -U username             Set username for job.
  -c cupsd.conf           Set cupsd.conf file to use.
  -d printer              Use the named printer.
  -e                      Use every filter from the PPD file.
  -i mime/type            Set input MIME type (otherwise auto-typed).
  -j job-id[,N]           Filter file N from the specified job (default is file 1).
  -m mime/type            Set output MIME type (otherwise application/pdf).
  -n copies               Set number of copies.
  -o name=value           Set option(s).
  -p filename.ppd         Set PPD file.
  -t title                Set title.
  -u                      Remove the PPD file when finished.

So a modern equivalent of the above one-liner would be:

$ for i in *.html ; do cupsfilter "$i" > "$i".pdf ; done && "/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o combined.pdf *.pdf

See also the open source, cross-platform wkhtmltopdf for rendering HTML into PDF.

/mac | Sep 07, 2013

iCal: Delete all events before or after a certain date via AppleScript #

(*
This script deletes all events before (or after - see below) a given date in a specified calendar.
Backup your calendar(s) before running this script!!!
*)
tell application "iCal" -- "iCal" will automatically change to "Calendar" when compiled under Mountain Lion
    activate
    tell calendar "foo" -- Change this to the name of the calendar you want to modify
        set x to events whose start date < date "Friday, January 1, 1971 00:00:00"
        (* Replace < with > to get events after the specified date instead of before *)
        (* Replace "Friday, January 1, 1971 00:00:00" with desired date in m/d/year format (e.g., "1/1/2010") - it will automatically expand when the script is compiled. *)
        repeat with i in x
            delete i
        end repeat
    end tell
end tell

See also: iCal cleaning and iCal: Highlight & delete all events or events within a date range.

/mac | Aug 28, 2013

Online image optimizing service #

Kraken.io is a web-based image optimizing service that supports JPEG, PNG, GIF and SVG files. Use for free via web interface or pay for API access. Highly recommended.

/misc | Aug 11, 2013

A lightweight Linux distro for netbook users #

or anyone else who prefers less cruft and more speed, CrunchBang is based on Debian and rocks the snappy Openbox window manager:

CrunchBang screenshot

More:
The primary aim of the CrunchBang project is to produce a stable distribution offering the best possible out-of-the-box Openbox experience. To achieve this goal, CrunchBang pulls many base packages directly from Debian's repositories, which are well-known for providing stable and secure software. Packages from CrunchBang's own repositories are then customised and pinned to the system to produce what is known as the CrunchBang distro.

Put simply; CrunchBang could be thought of as a layer built on top of Debian, specifically to provide a great Openbox experience.

/nix | Aug 11, 2013

Drive SnapShot batch file with auto-pruning #

Drive SnapShot is a truly remarkable tool. It is a noninvasive, standalone EXE that can image live or offline systems quickly and easily. Here is a simple batch file for daily backups and automatic pruning:
@echo off

REM This batch file calls Drive SnapShot to backup all partitions on HD1 to the
REM "backups" directory on the drive from which it was launched. As a result, there
REM is no need to worry about external drive letter assignments.

REM Filenames begin with the day of the week, allowing for easy auto-pruning of the
REM backup from last week.

REM Save this batch file (e.g., "backup.bat") along with the Drive SnapShot executable
REM ("snapshot.exe") to the root directory of your external backup storage device(s).
REM Be sure to create a folder called "backups" in the root directory as well - that's
REM where the backups will be stored.

REM Recommended: Set AutoPlay to open Explorer window when external backup devices
REM are plugged in so that you can simply double click "backup.bat" to start the backup.

REM Set "today" variable to 3 letter abbreviation for today

for /f %%x in ('date /t') do set today=%%x

REM Even though "date /t" output looks like "Sun 12/16/2012", the for command extracts
REM just the first word from each line of text it reads. The definition of "word" is text
REM delimited by one or more spaces or tabs.

REM Delete last week's backup

if '%today%=='Mon del .\backups\mo*.*
if '%today%=='Tue del .\backups\tu*.*
if '%today%=='Wed del .\backups\we*.*
if '%today%=='Thu del .\backups\th*.*
if '%today%=='Fri del .\backups\fr*.*
if '%today%=='Sat del .\backups\sa*.*
if '%today%=='Sun del .\backups\su*.*

REM Call Drive SnapShot to image all partitions on HD1

.\snapshot.exe HD1:* .\backups\$weekday-$date-$disk-$computername.sna -L0 --usevss

REM The -L0 option prevents Drive SnapShot from splitting partition backups into 650MB
REM chunks. Be sure backup storage device(s) filesystem(s) can handle large file sizes
REM (NTFS, exFAT, etc - *not* FAT32!).

REM Drive SnapShot homepage:
REM http://www.drivesnapshot.de/en/index.htm
REM Auto-pruning routine from AlanCulshaw:
REM http://www.wilderssecurity.com/showpost.php?p=722654&postcount=19
REM This blog post:
REM http://tinyapps.org/blog/windows/201308070700_drive_snapshot_batch_file.html

/windows | Aug 07, 2013

Two newly-added Windows apps #

Though the app pages are rarely updated anymore, these two gems just had to be inserted:

/windows | Jul 29, 2013

Split/trim/cut/crop VOB files without reencoding #

using either of these free tools:

See also Lossless video editing for OS X and Windows.

/misc | Jul 29, 2013

iPhone: Auto reply to SMS, MMS, and iMessage text messages #

UPDATE: Autoreply to SMS, MMS, and iMessage text messages without jailbreaking or driving

Verizon Messages offers Android users an auto reply feature, though it currently does not support business accounts ("Sorry, Integrated Messaging service is currently available only to consumer mobile numbers." Settings > Integrated Messaging Features > Subscribe > "Sorry Your Account is not eligible for this Service"). AT&T DriveMode "automatically sends a customizable reply to incoming texts" for Android or BlackBerry devices.

/misc | Jul 21, 2013

Newly added to the OS X page #

Flip Through Images 1.2 [54k] Simple and fast image browser.  📺

/mac | Jul 14, 2013

"Access is denied" when attempting to copy green files #

While copying a large number of files with via FastCopy (which, BTW, is great for resuming interrupted file transfers or uni-directional syncing, as it is crazy fast and can be set to skip files that exist in the destination), a number of "Access is denied" messages appeared. Closer inspection revealed these errors to be on green colored filenames, indicating that they were encrypted with EFS (blue colored filenames indicate compressed files). The user never intentionally encrypted any files; one source states this issue may be caused by unzipping compressed files in Windows that had been generated on a Mac. I've never seen this in practice or in testing, though the normally hidden (and useless) __MACOSX does appear as encrypted.

Rather than manually unencrypting each file (Properties > Advanced > uncheck "Encrypt contents to secure data" > OK > OK), I used:

cipher /D /S:C:\Users\user\Documents

then copied just the newly-unencrypted files like so (filelist.txt being the list of uncopied files from FastCopy):

for /f "delims=" %i in (filelist.txt) do copy %i E:\target

/windows | Jul 14, 2013

Silence #

"Among all nations, there should be vast temples raised where the people might worship Silence and listen to it, for it is the voice of God."

—Jerome K. Jerome in Diary of a Pilgrimage

"It is not necessary for you to leave your house. Stay at your table and listen. Don't even listen, just wait. Don't even wait, be completely still and alone. The world will offer itself to you to be unmasked, it has no choice, it will writhe in ecstasy at your feet."

—Franz Kafka in The Zürau Aphorisms, #109

"In the attitude of silence the soul finds the path in a clearer light, and what is elusive and deceptive resolves itself into crystal clearness."

—M.K. Gandhi

"Silence is not an absence of sound but rather a shifting of attention toward sounds that speak to the soul."

—Thomas Moore

/misc | Jul 13, 2013

Dell Mobile Broadband 5620 driver #

  1. Transplanted a Dell Wireless 5620 EVDO-HSPA Mobile Broadband Mini-Card from a two year old Latitude E4310 to a new Latitude 6430U. Attempting to install the official driver returned "Unable to validate model".
  2. Dell ProSupport claimed that the 5620 was not compatible with the 6430U. But that sounded absurd: both laptops had dedicated mini PCIe slots and ran Windows 7 x64. Why should the card not work?
  3. Installed the Dell Mobile Broadband Utility for DW5630 from the 6430U's Windows 7 64-bit page. The client software worked just fine, but the 5620 was still not recognized.
  4. On the Dell forums, darthgeorge mentioned a 1.6GB CAB file that might contain a compatible driver. While that behemoth was downloading, a new ray of hope emerged: the Qualcomm Gobi 2000 Package for Dell shared by blingers: http://dl.dropbox.com/u/72473707/3068cc2.zip. Sure enough, the driver installed easily and the 5620 was recognized immediately by the Dell Mobile Broadband Utility. (Local archive for posterity)

/windows | Jul 13, 2013

Dell Latitude 6430U fan noise #

The Latitude 6430 Ultrabook is a beautiful laptop: thin (20.9mm), powerful (i7, 16GB RAM, SSD), and tough (tested to 14 MIL-STD-810G standards). However, there are two drawbacks:
  1. Internal storage is restricted to mSATA, which means the new 960GB SSD from Crucial won't fit. The largest capacity mSATA SSD available is Mushkin's 480GB Atlas (tested successfully in the 6430U). Sadly, the other mini PCIe slot (used for WWAN) won't recognize a second drive.
  2. Slightly more vexing is the incessant fan noise out of the box. Here are some tips:

/misc | Jul 13, 2013

Minimalist Google Reader replacement #

Miniflux is a minimalist and open source news reader. Host it yourself with a simple install process or subscribe to the hosted version for a one-time $10 fee. Features include:

/nix | Jul 02, 2013

Quis custodiet ipsos custodes? #

OpenWatch for Android and iOS empowers citizens to guard the guardians:
OpenWatch is a global citizen journalism project with the goal of building a more transparent and less corrupt society.

This app will allow you to stream video and photos directly to the web! It's the easiest possible way to get your media online. Use this application to record any events you witness, your encounters with the police, border agents, or other authority figures, or to just record anything you find interesting. Your recordings will appear online to be used in public interest investigations and news stories.

A low quality video stream is sent the OpenWatch.net web server while you're filming, in case your phone is deliberately or accidentally broken while you're filming, and then a high quality version is synced online once you're finished recording, giving you the advantages of a streaming service like uStream, but all of the high-quality video ability of your phone's local video camera.

OpenWatch can also send you alerts and special assignments, so you can become the top reporter for events in your local community. Top contributors may even be offered special missions and paid opportunities.

This is the first version of the application, so please let us know if you find any bugs or have any feedback to give us. OpenWatch is Free and Open Source software.

UPDATE: Bambuser (iOS | Android) streams and saves live video to a free online account (via Cop Block)

/misc | Jul 01, 2013

Windows 8.1 Preview - Start Menu still not fixed #

When Microsoft said they were bringing back the Start Menu in 8.1, there was much rejoicing. Sadly, the celebration was premature; unlike every Start Menu from Windows 95 to 7, this one doesn't work. Left clicking it merely takes you back to the infuriating "Start" page (formerly known as "Metro" or something). Right clicking it gives an array of choices that will confuse most users: Event Viewer, System, Disk Management, Windows PowerShell, Windows PowerShell (Admin), etc. (though blessedly there is a "Shut down" option now). The Start8 guys won't have much to worry about; they've released a beta version compatible with 8.1 Preview.

On a related note, to bypass the "Connect this PC to your Microsoft account" prompt during setup, either disconnect your network connection before installing or enter a fake address and password then click "create a local account now" when prompted. (via Infobyte)

/windows | Jun 28, 2013

Fix for HP Touchpad tinny sound issue #

The HP Touchpad suffers from an intermittent audio bug that turns the pleasing strains of your favorite music into a cacophony of scratchy, tinny sounds. Restarting the device restores normal audio, but also causes a major loss of groove during the intervening minute and a half. PulseAudio Restarter does not seem to address the issue.

However, it turns out that there is a magic key combination that fixes the issue instantly. As improbable as it may sound to long-suffering Touchpad owners, here is the process:
  1. Press Power button to turn off display
  2. Press and hold the Center button
  3. Press and hold both sides of the Volume button
  4. Press and hold the Power button
  5. After a few seconds, let go of all buttons
  6. Presto! Audio is restored

/misc | Jun 26, 2013

Bring the cafe to you #

Find ambient café sounds help you focus, but can't get to one? Just visit Coffitivity and bring the café to you. (via Inc.)

/misc | Jun 23, 2013

Carousel slide projector app for presentations #

Eschewing PowerPoint and Keynote, I started looking for an OS X app that would mimic an old-fashioned carousel slide projector, simply advancing through a directory of files displayed full screen. Turns out that the Finder's own Slideshow functionality is exactly what I was looking for:

Finder Slideshow

Here's a video of it in action. Features and keyboard shortcuts differ slightly between versions:

UPDATE: Some simple slide deck apps:

/mac | Jun 19, 2013

Free Windows virtual machines for Mac, Linux, or Windows #

Microsoft offers free Windows XP, Vista, 7, and 8 virtual machines for a variety of virtualization platforms, including: VirtualBox, VMWare Fusion, Parallels, Hyper-V, Virtual PC, and VMWare Player. Tested the XP VirtualBox version - Windows works normally, but activation is required within 30 days. (via Hacker News)

/windows | Jun 13, 2013

3 open source audio apps for OS X #

UPDATE: Sergey kindly informs us of his open source music player, Nulloy. It includes a waveform progress bar and in addition to OS X, supports Linux and Windows as well.

/mac | Jun 09, 2013

Run any app under the NT Authority\Local System account #

with ETS (Elevate To System). Unlike psexec.exe -i -s, ETS can be redistributed and offers an optional GUI. Compatible with Windows XP through 8 (though it's easy to run as LSA in XP without relying on a third-party app).

/windows | Jun 08, 2013

Generate sparklines for data sets #

with spark, a neat Bash script by Zach Holman. Simple usage:
$ spark 0 30 55 80 33 150
▁▂▃▅▂▇
More usage examples.

/nix | Jun 01, 2013

Lookup kanji by stroke, #

handwriting, input code, radical, multiradical, SKIP, Four Corner System, and soft keyboard at sci.lang.japan's awe-inspiring kanji lookup page.

/misc | May 27, 2013

A tiny Linux virtual machine that requires no installation, #

Levinux runs under Windows, OS X, and Linux hosts. Described as a "portable Linux server and programming environment for mastering the short-stack: Python, vim & git", Levinux makes a great teaching tool, as students can run it without affecting their host operating systems. Login username is "tc" and password is "foo". Once logged in, "sudo su" gets you a root prompt.

/nix | May 25, 2013

DiamondCS console tools archive #

DiamondCS, makers of the fabled Process Guard and TDS, regrettably disappeared long ago. Here is an archive of their tiny command line tools for posterity, including:

The above descriptions are quoted from Wayne's original announcements, the archived homepage, and the help text (for Whois). The descriptions are virtually verbatim, with only minor changes to categories. Sadly, Htm2Txt (mentioned in the second announcement) could not be located for inclusion in the archive.

/windows | May 21, 2013

sed - convert regex pattern matches to lowercase #

In this example, we'll convert text within bold tags to lowercase. Let's have a look first to make sure our search pattern returns the desired results:
$ grep '<b>.*<\/b>' foo.html
<p><a href="/">tinyapps.org</a> / <b>Graphics</b></p>
<p><b>Viewing & Editing</b></p>
<p><b>Measuring</b></p>
<p><b>Optimizing</b></p>
<p><b>Screen Capture</b></p>
<p><b>Fonts</b></p>
<p><b>Other</b></p>
Next, a test run, sending output to stdout:
$ sed 's/<b>.*</b>/\L&/g' foo.html
As expected, all characters between bold tags were converted to lowercase. (In the replacement pattern, "&" corresponds to the pattern found, and "\L" converts the text to lowercase.) Now let's use -i to write the changes in place (apparently introduced around GNU sed version 4):
$ sed -i 's/<b>.*</b>/\L&/g' foo.html
For batch processing multiple files:
$ grep '<b>.*<\/b>' *.html
...
$ for i in '*.html'; do sed -i "s/<b>.*</b>/\L&/g" $i; done
Two related tips by Karoly: 1. Use double quotes so the shell can substitute variables. 2. If your search or replace string contains special characters you need to escape them.

/nix | May 19, 2013

13.3" E Ink tablet #

Sony is planning to release an A4-sized E Ink tablet later this year using E Ink's Mobius display. Until then, the Kindle DX makes a good computer monitor. (Note to hardware manufacturers: still waiting for a plug-and-play E Ink monitor for text-intensive tasks and perhaps even video/animation).

/eink | May 19, 2013

Download and combine F4F files into FLV #

"Chug a Bug" kindly details how to download and merge F4F files into a single FLV file with URL Snooper and AdobeHDS.php (PyURLSnooper offers a cross-platform alternative to the Windows-based URL Snooper, though any app that captures HTTP traffic will work, including Firefox's Web Console). The gist is to locate the F4M (Flash Media Manifest) file and feed it to AdobeHDS.php.

/misc | May 18, 2013

Windows 7 Firewall - Cannot disable or remove exceptions #

If attempting to disable or remove Windows Firewall exceptions using the standard method fails, try this: Control Panel > Administrative Tools > Windows Firewall with Advanced Security > select "Inbound Rules" or "Outbound Rules" > right click and delete or disable rule. (Thanks moogly!)

/windows | May 17, 2013

Rugged E Ink Android tablet for the backcountry #

Earl is an E Ink tablet built for outdoor use:

/eink | May 11, 2013

For fans of pixelated art and Hayao Miyazaki #

Russell Thomson has crafted two charming wallpaper collections of Studio Ghibli films, including:

Ghibli Pixel Wallpaper Pack

Ghibli Pixel Wallpaper Pack
  • Castle in the Sky 天空の城ラピュタ
  • Howl's Moving Castle ハウルの動く城
  • Kiki's Delivery Service 魔女の宅急便
  • My Neighbor Totoro となりのトトロ
  • Nausicaä of the Valley of the Wind 風の谷のナウシカ
  • Ponyo 崖の上のポニョ
  • Princess Mononoke もののけ姫
  • Spirited Away 千と千尋の神隠し
  • The Cat Returns 猫の恩返し
  • Whisper of the Heart 耳をすませば

Ghibli Pixel Wallpaper Collection 2

Ghibli Pixel Wallpaper Pack
  • Castle in the Sky 天空の城ラピュタ
  • Howl's Moving Castle ハウルの動く城
  • My Neighbor Totoro となりのトトロ
  • Princess Mononoke もののけ姫
  • The Cat Returns 猫の恩返し
  • The Secret World of Arrietty 借りぐらしのアリエッティ
  • Whisper of the Heart 耳をすませば

UPDATE: Richard J. Evans has drawn another collection of Ghibli pixel art.

/misc | May 08, 2013

Money #

"It does not require money to be neat, clean and dignified."

—M.K. Gandhi in the July 17, 1937 issue of Harijan

"Nothing that really helps towards perfection costs more than is within the means of every person who reads these pages. The expenses connected with daily meditation, with the building-up of mental habits, with the practice of self-control and of cheerfulness, with the enthronement of reason over the rabble of primeval instincts—these expenses are really, you know, trifling."

—Arnold Bennett in The Human Machine

"I am absolutely convinced that no wealth in the world can help humanity forward, even in the hands of the most devoted worker in this cause. The example of great and pure characters is the only thing that can produce fine ideas and noble deeds. Money only appeals to selfishness and always tempts its owners irresistibly to abuse it. Can anyone imagine Moses, Jesus, or Gandhi armed with the money-bags of Carnegie?"

—Albert Einstein in The World As I See It

/misc | May 07, 2013

"This may be the finest piece of word processing code ever written" #

🌱 VDE 1.96A [90k] + DOS/console text editor with an essential core of word processing features, including support for WordStar, WordPerfect, and Microsoft Word formats.  📺

Dvorak quote from 1990:
"This may be the finest piece of word processing code ever written. I have never been as impressed with anything as I have with VDE 1.5... writing software in 100 percent assembly language still pays off in performance and reduced code size. It's an astonishing product, believe me. It's more than the perfect laptop word processor... I cannot give a higher recommendation for any product that I have seen in ten years... Top recommendation."

/windows | May 05, 2013

Batch crop a stack of visually overlaid images like Briss #

Briss allows cropping a stack of visually overlaid PDF pages to remove extraneous space.Briss cropping a stack of visually overlaid pages

I searched high and low for an app that could do the same for images. The only thing I found was PixEdit, which does the job admirably, but at a cost of £1,250. ImageMagick's awesome command line tools were not well-suited to the task, as the images were highly variable.

I posted a plea for help on SuperUser that was promptly downvoted and closed, but not before ForeverWintr kindly pointed me in the right direction: ImageJ. Johannes Schindelin generously filled in the details that I was dark on. Here is the complete walkthru:

  1. Open desired images in ImageJ (To enable multiple selection in the open file dialog box: Edit > Options > Input/Output... > Use JFileChooser to open/save > OK. Alternatively, simply drag and drop multiple files onto ImageJ's toolbar.)
  2. Image > Stacks > Images to Stack > OK
  3. Image > Stacks > Z Project... > OK
  4. Click the rectangle icon in the toolbar
  5. Click and drag over desired area (called a "region of interest" in ImageJ) in the Z projection
  6. Click on the stack created in step 1 > Edit > Selection > Restore Selection
  7. Image > Crop
  8. File > Save As > Image Sequence... > choose desired image format and options > OK

UPDATE: See also Batch crop images in IrfanView.

/misc | May 03, 2013

Drag and drop network file transfer #

Similar to the previously mentioned Dukto, Mover Connect enables configureless drag and drop network file transfer between Macs (and optionally iOS devices). Tested under 10.5 through 10.8.  📺 💾

/mac | May 01, 2013

Where is the Microsoft Office 2011 update app? #

Normally, Microsoft AutoUpdate is launched from any Office app via Help > "Check for Updates". However, if Office won't launch, you'll need to run it from this (annoyingly non-indexed) location: /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app.

/mac | Apr 25, 2013

Securely wiping an SSD #

Guides like this one from CNET, How to securely erase an SSD drive, assure users that ATA Secure Erase can "quickly, easily, and securely erase your SSD drive." Sadly, research has shown that is simply untrue for many, if not most, current drives. Until ATA specifications catch up, encrypting the entire drive and then issuing a Secure Erase command is comparatively safer, though physical destruction remains the only reliable method.

/misc | Apr 25, 2013

Upgrading Quicken 2001 to 2013 #

or any ancient version of Quicken to a modern one requires using an intermediate version to convert the old data first. Intuit kindly offers these free Quicken downloads for that purpose:

Refreshingly, no registration is required; these are direct download links.

UPDATE: How To Disable the Quicken Registration Prompt in Quicken 2013 or Older:

You have the choice to not register your Quicken 2013 or older program. This option is not available in Quicken 2014 and newer.

Keep in mind if you do not register, you will not be able to synchronize your Quicken data with Quicken.com.
  1. Hold the CTRL + SHIFT key.
  2. Click on the Tools menu on the top menu bar, then select One Step Update.
  3. Click OK. You will no longer be prompted for registration.

In Quicken 2004, hold Ctrl + Shift while clicking Online > One Step Update instead. The following confirmation will appear:

You will no longer be prompted for registration.
You will no longer be prompted for registration.

/windows | Apr 24, 2013

Tiny database #

"KISSDB is about the simplest key/value store you'll ever see, anywhere. It's written in plain vanilla C using only the standard string and FILE I/O functions, and should port to just about anything with a disk or something that acts like one." Code generously released into the public domain.

/nix | Apr 23, 2013

Portable, folding whiteboard #

I love making large drawings when explaining new concepts to clients. As an itinerant tech, the main difficulty has been portability. But no longer: Robin Thomas's Noteboard is a pocket dry-erase board that folds down from 35" x 15" to 5" x 3". It fits into a small pouch (that doubles as an eraser) along with an included dry-erase marker. Neatest product I've seen all year. Even if you think you don't need one (you do!), check out Robin's site for an example of doing web sales right - from the heart.

/misc | Apr 21, 2013

Import a single EML file into Apple Mail #

We've looked at a few tools for batch importing EML files into Mail, but what about importing just a single EML file? Clicking and dragging an EML file into a mailbox within the Mail interface does not work, nor is there an option to import EML files under File > Import Mailboxes.

The solution is to double click the EML file to open it in Mail (assuming Mail is your default email handler) and then click Message > Move To > mailbox_name.

/mac | Apr 15, 2013

Newly added to Docs #

SCO OpenServer P2V; or, How to Virtualize a SCO Box. Virtualizing a physical SCO OpenServer 5 box turns out to be quite straightforward thanks to VirtualBox.

/nix | Apr 14, 2013

Dump cleartext passwords of logged in user(s) #

mimikatz displays passwords of logged in user(s):
mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full
...
Utilisateur principal       : user
Domaine d'authentification  : domain
        kerberos :
         * Utilisateur  : user
         * Domaine      : domain
         * Mot de passe : pass
...
Spotted on /r/sysadmin here and here.

Similar "exploit" for OS X: Recover passwords from current user's Login Keychain

/windows | Apr 11, 2013

View ddrescue log files graphically #

ddrescueview displays ddrescue log files as a colored grid of blocks. Pascal source code available, as well as binaries for Linux and Windows. See ddrescue binary for OS X and Imaging a corrupt drive for more on ddrescue.

ddrescueview

/nix | Apr 10, 2013

Delete all GMail contacts #

In the new GMail interface, only 250 contacts can be deleted at a time. Here's how to delete all of your contacts using the old version:
  1. Go to https://www.google.com/contacts_v1 and login if necessary
  2. Click "All Contacts"
  3. Click "All" to the right of "Select"
  4. Click "Delete contacts" button

Delete all GMail contacts

/misc | Apr 04, 2013

Changing text mode resolution in Knoppix #

For larger console text when booting Knoppix Linux into runlevel 2 (text mode), disable graphics acceleration modules:
boot: knoppix 2 nodrm
(Thank you don999!)

/nix | Apr 02, 2013

Emailing results from Windows XP Scheduled Tasks #

The Windows 7 Task Scheduler includes a built-in email option, something XP doesn't offer. A simple workaround is to use blat and a batch file. We'll use a SyncToy scheduled task in this example.

  1. Schedule a SyncToy backup job (see "Schedule SyncToy" in the included help file for details)
  2. Throw blat and grep into C:\Windows (or anywhere in your PATH)
  3. Create a batch file (e.g., C:\scripts\email.bat) which contains something like this:
    schtasks /query /fo list /v | findstr /i "Result: TaskName: Last" | grep SyncToy -A 2 | blat -f admin@example.org -to user@example.org -s "SyncToy task result" -serverSMTP mail.example.org
  4. Schedule email.bat to run daily. You'll start receiving emails that look something like this:
    TaskName:      SyncToy
    Last Run Time: 12:30:00, 4/2/2013
    Last Result:   0
On a related note, the Windows 7 version of schtasks supports the /TN parameter for queries:
C:\>schtasks /query /?
...
    /TN   taskname       Specifies the task name for which to
                         retrieve the information, else all of them.
...

Sadly, the help text is deceiving; you need to specify the full path, not just the task name (or rather (more accurately), the full path is the task name, though that is not at all clear from the Task Scheduler GUI).

C:\>schtasks /query /v /fo list /tn synctoy
ERROR: The system cannot find the path specified.

C:\>schtasks /query /v /fo list /tn "\Microsoft\Windows\SyncToy\synctoy"

Folder: \Microsoft\Windows\SyncToy
HostName:                             computername
TaskName:                             \Microsoft\Windows\SyncToy\synctoy
Next Run Time:                        4/3/2013 10:57:34 PM
Status:                               Ready
Logon Mode:                           Interactive only
Last Run Time:                        4/2/2013 11:01:39 PM
Last Result:                          0
Author:                               computername\user
Task To Run:                          "C:\Program Files\SyncToy 2.1\SyncToyCmd.exe" -R
...

/windows | Apr 02, 2013

Delete a directory with a trailing space in its name #

We've seen the confusion a trailing space in a filename can cause. The same problem in a directory name stored on a FAT32-formatted flash drive made it impossible to delete under OS X with the usual workarounds, but Windows managed it via:

C:\>rd "\\?\e:\dirname "

For more information, see Cause 5: The file name includes a reserved name in the Win32 name space in this KB article: You cannot delete a file or a folder on an NTFS file system volume.

/windows | Mar 31, 2013

Classic preference pane missing in Tiger #

Following a clean install of Tiger on an iMac G4, the Classic preference pane was missing. Copying the System Folder from a retail OS 9 CD to the hard drive made the Classic preference pane appear, but it would not load ("No startup volume: There is no volume with a system folder that supports starting Classic. Please install Mac OS 9.1 or later.").

Thankfully, Ken Watanabe outlined an excellent method for installing Classic in this thread: Mac OS 9.2.2 for direct startup (or Classic). Here is a condensed version:
  1. Download NetBoot for Mac OS 9
  2. Double click NetBoot9.dmg to mount
  3. Double click English folder
  4. Right click NetBoot.pkg and select "Show Package Contents"
  5. Double click Contents folder
  6. Double click Resources folder
  7. Drag NetBoot.pax.gz to Desktop
  8. Double click NetBoot.pax.gz
  9. Right click the newly-created NetBootInstallation folder and select "Get Info"
  10. Set "Ownership & Permissions" to "You can Read & Write"
  11. Double click NetBootInstallation folder
  12. Double click "NetBoot HD.img" to mount
  13. Double click "NetBoot HD" volume
  14. Drag "System Folder" and "Applications (Mac OS 9)" to the root of your Mac's hard drive
  15. Unmount NetBoot disk image volumes
  16. Open System Preferences, click Classic (which will have now appeared), and set the System Folder
Be sure to see Ken's version, which includes notes on optimizing Classic performance and booting into Mac OS 9 natively. Further down the thread, Peter explains that OS9General.dmg can be substituted for the NetBoot image.

/mac | Mar 26, 2013

Recent additions to File/Backup #

UPDATE:

/windows | Mar 24, 2013

Copy in-use files from the command line #

/windows | Mar 24, 2013

Error installing Windows 7 #

While attempting to install Windows 7 from a USB-connected Zalman ZM-VE200 (formerly iodd 2501), the following error appeared:
Setup was unable to create a new system partition or locate an existing system partition. See the Setup log files for more information.
The error would not appear when booting from a Windows 7 install DVD.

Resolved by making two changes in the BIOS:
  1. set target disk to be first in the hard drive boot order
  2. set target disk as the primary boot device
References:

/windows | Mar 24, 2013

Four chinese proverbs #

It is better to have a spacious mind than a spacious house.


house
spacious
not
like; equal
heart; mind
spacious

Do all that is possible within human limits and leave the rest to Heaven's will.


first
exert; exhaust
human
effort
afterward
listen (to); await
Heaven's
decree

One who is willing to restrain a moment's anger will avoid a hundred days' sorrow.


willing
(to) restrain
one
moment
of
anger
can
avoid
hundred
days
of
grief; sorrow

Man does not live to a hundred years but he worries enough for a thousand.


man
hasn't
hundred
years
body
(yet) always
embraces
thousand
years
worries

From ABC Dictionary of Chinese Proverbs, edited by John S. Rohsenow

/misc | Feb 17, 2013

"'Firefox' is an application downloaded from the Internet. #

Are you sure you want to open it?" kept appearing every time Firefox was launched. The quarantine bit was apparently stuck:
   $ xattr -l /Applications/Firefox.app
   ...
   com.apple.quarantine: 0000;51...|com.apple.Safari
Clearing it did the trick:
   $ xattr -d com.apple.quarantine /Applications/Firefox.app

UPDATE: Recently started receiving a similar error when opening a certain app:

You are opening the application "foo" for the first time. Are you sure you want to open this application?

Resolved using kopischke's advice:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -all local,system,user

/mac | Feb 11, 2013

Unpacking IPA files and converting CAF to M4R #

To explore an iOS app (IPA) file, simply change the extension to ZIP and double click to unzip. Right click the APP file inside of the Payload directory and select "Show Package Contents". CAF audio files can be converted to M4R (ringtones) via afconvert:
$ afconvert -v -f m4af input.caf output.m4r
If you attempt to import a ringtone longer than 30 seconds into your iPhone, this enigmatic error will appear:
The ringtone "foo" was not copied to the iPhone "bar" because its duration is too long.

/mac | Feb 11, 2013

Windows freezes shortly after booting into Normal Mode #

and even in Safe Mode under heavy I/O. Assuming crash dumps and event logs do not avail:
  1. Launch msconfig
  2. Click "General" > "Selective startup"
  3. Uncheck "Load system services" and "Load startup items" (screenshot)
  4. Restart in Normal Mode. If Windows is no longer freezing, begin adding back desired services and startup items until the culprit is found.

/windows | Feb 11, 2013

A lightweight IMAP email client #

that resembles OS X's Mail 5.x app, Geary integrates tightly with popular webmail services and IMAP servers like Dovecot. Features include desktop notifications, fast search, offline mode, and more.

/nix | Feb 04, 2013

Deleting Backups.backupdb #

In Lion and earlier: $ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass rm -rf /Volumes/volumename/Backups.backupdb
In Mountain Lion: $ sudo /System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass rm -rf /Volumes/volumename/Backups.backupdb

Thanks to Eric and Brad. More on Time Machine's Safety Net.

/mac | Jan 26, 2013

How to determine if a disk is MBR or GPT #

From the command prompt:
C:\>diskpart

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           59 GB      0 B
  Disk 1    Online          119 GB      0 B        *

From the GUI, open Computer Management (compmgmt.msc), right click desired disk, and click "Properties":

Click the "Volumes" tab. The partition table format can be found on the "Partition style" line:

/windows | Jan 26, 2013

Backing up IMAP email accounts #

NoPriv.py backs up IMAP email accounts to browsable HTML archives. Additional features include incremental backups, Maildir creation (for easy restoring), and more.

/nix | Jan 19, 2013

Removing the fan assembly from a Dell Optiplex 320 Mini Tower #

The Dell OptiPlex 320 User's Guide has loads of great info on removing and replacing parts, but sadly skips the fan assembly. Thankfully, the Dell Dimension 5100 Service Manual has the details; here's an abbreviated and slightly modified version:
  1. Loosen the two captive screws that attach the heat-sink assembly to the system board on either side of the assembly.
  2. Pivot the assembly toward the back of the computer. (This will lift the heat sink off the CPU, exposing the thermal compound. Probably a good time to clean it off and apply something better.)
    Removing the heatsink assembly
  3. Disconnect the fan cable connector from the motherboard.
  4. Simultaneously press the fan-release tab on one side of the fan assembly and pull the fan-release tab located on the bottom of the opposite side of the assembly upwards.
  5. Slide the fan assembly toward the back of the computer and lift to remove the assembly.
    Removing the heatsink assembly

/misc | Jan 07, 2013


Subscribe or visit the archives.