Save ​.ORG #

Help stop the sale of Public Interest Registry to a Private Equity Firm:

UPDATE: Success! Now, may the Cooperative Corporation of dot-org Registrants (CCOR) prevail!

/misc | Nov 22, 2019

Crack Mac user password #

Environment

Extract hash

sudo ./plist2hashcat.py /Volumes/Target/var/db/dslocal/nodes/Default/users/username.plist

user:$ml$28328$7215a1faa91e6196fb53884c4320970d9705ae6f19e5b50e0a24243708629a9b$8e0588decbdb347e0b909a7a1b1bc9470fe7dd37e09a64f9d02b82cfba91116b13d7c172b5a65683ac8d2c873324b8d82255a51ced0792656e766fa1a9c23994

Save the output without the leading "user:" (otherwise you'll need to specify --username when running hashcat) to hash.txt

Start cracking

hashcat -a 0 -m 7100 --status -o found.txt hash.txt wordlist.txt

More

Additional scripts and a program that accomplish the same goal as plist2hashcat.py (i.e., extracting hashcat-compatible hashes from binary plist shadow files generated by OS X 10.8 and up (SALTED-SHA512-PBKDF2)):

The process can also be done manually:

See also Recovering saved macOS user passwords and Cracking FileVault 2 (HFS+ or APFS).

/mac | Oct 30, 2019

Run Aperture, iPhoto, or iTunes on macOS Catalina #

Retroactive "is an app that lets you run Aperture, iPhoto, and iTunes on macOS Catalina." The author's exhaustive Technical Deep Dive: How does Retroactive work? answers the question in full, but also highlights a number of limitations:

The list differs somewhat in the readme:

/mac | Oct 30, 2019

Dedupe massive wordlists without changing order #

"The duplicut tool finds and removes duplicate entries from a wordlist, without changing the order, and without getting OOM on huge wordlists whose size exceeds available memory. ... [W]ritten in C, and optimized to be as fast and memory frugal as possible."

Refreshingly simple installation and syntax:

make release
./duplicut <WORDLIST_WITH_DUPLICATES> -o <NEW_CLEAN_WORDLIST>

UPDATE: Royce Williams kindly alerted me to possible issues around longer line lengths and non-ASCII characters, and the author of duplicut, nil0x42, was kind enough to set me straight: just needed to specify --line-max-size 254 to avoid truncation under that threshold.

/nix | Oct 30, 2019

Cracking hashes in the cloud with hashcat #

posted to the docs section.

/nix | Oct 29, 2019

Firefox: Enable Night Mode for desktop OSes #

Firefox for iOS offers an "Enable Night Mode" toggle which not only darkens the Firefox interface, but websites as well.

While not available for desktop OSes yet, you can achieve a similar result with ShadowFox (macOS users can install via Homebrew or MacPorts) and Dark Reader. ShadowFox correctly darkens every UI element, including ones that other themes can have trouble with, like the address bar, context menu, and history page.

/misc | Oct 23, 2019

Download webpage to .webarchive in Terminal #

Webarchiver "allows you to create Safari .webarchive files from the command line":

webarchiver -url https://tinyapps.org -output tinyapps.webarchive

With a bash function, we can automate creating the filename from the page's title tag and include the URL in the "Where from" metadata:

function dl() {
  ADDRESS="$1"
  TITLE=`curl -s "$ADDRESS" | grep -o "<title>[^<]*" -m 1 | tail -c+8`
  /Applications/network/webarchiver -url "$ADDRESS" -output "$TITLE.webarchive"
  xattr -w "com.apple.metadata:kMDItemWhereFroms" "$ADDRESS" "$TITLE.webarchive"
}

Add the above to your .bash_profile, reload with source ~/.bash_profile, and use like so:

$ dl https://tinyapps.org/docs/nvme-sanitize.html

Title tags can be tricky to parse correctly, here are some other approaches:

as well as another version wherein you manually supply the title/filename:

function dl() {
  ADDRESS="$1"
  FILENAME="$2"
  /Applications/network/webarchiver -url "$ADDRESS" -output "$FILENAME.webarchive"
  xattr -w "com.apple.metadata:kMDItemWhereFroms" "$ADDRESS" "$FILENAME.webarchive"
}

calling like so:

$ dl https://tinyapps.org/docs/nvme-sanitize.html "NVMe Sanitize"

Acquire webarchiver 0.9 via homebrew (brew install webarchiver) or MacPorts (sudo port install webarchiver), or build easily from source with Xcode.

Thanks to kenorb for his simple title regex; I only had to add -m 1 after running across a page containing multiple title tags (which apparently isn't that rare, in spite of the spec).

/mac | Oct 21, 2019

Catalina: Restore Classic Layout in Mail #

If you have the misfortune to be stuck on Catalina, you can restore Mail.app's classic layout via View > "Use Column Layout" and View > uncheck "Show Side Preview"; the previous option (Mail > Preferences > Viewing > Use classic layout) is gone.

/mac | Oct 21, 2019

Decrypt EFS-encytped files without a cert backup #

posted to the docs section.

/windows | Oct 18, 2019

Site design changes #

UDPATE: Now rocking Ebony Clay (#222B39) and Westar (#E1DFDC).

/misc | Oct 09, 2019

Google Drive File Stream cache bug fills up drive #

Despite the sunny promise of version 26.1's July 24, 2018 release note ("Drive File Stream now guarantees that it won't use more than 20% of the free local disk space when caching files."), Google Drive File Stream cache continues to fill up virtually all available space on many drives.

Heinzelmann's solution of setting ContentCacheMaxKbytes to 100MB is excellent but incomplete; these are the steps I needed to follow in order to resolve the issue:

  1. Uninstall:
    1. Sign out and quit Google Drive File Stream
    2. Uninstall Google Drive File Stream
    3. Delete %LOCALAPPDATA%\Google\DriveFS (which generally corresponds to \Users\username\AppData\Local\Google\DriveFS)
    4. Reboot
  2. Apply the registry patch:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Google\DriveFS]
    "ContentCacheMaxKbytes"=hex(b):a0,86,01,00,00,00,00,00
  3. Reinstall Google Drive File Stream and sign in

/misc | Sep 29, 2019

G Suite asks user for phone number when signing in #

When a G Suite user attempts to sign in to a new device, they may be greeted with:

Verify it's you

Verify it's you
This device isn't recognized. For your security, Google wants to make sure it's really you.
Enter a phone number to get a text message with a verification code.

This seems less like additional security and more like phone number harvesting, especially since the user has no preregistered number.

Clicking "Try another way" leads to:

Get a verification code sent to your phone.

Get a verification code sent to your phone.
Get help

Clicking "Get help" results in:

Account recovery

Account recovery
Enter the last password you remember using with this Google Account

which isn't very helpful, as this user has had the same password since creation.

Entering the password dumps to a dead end:

Contact your domain admin for help.

Couldn't sign you in
Contact your domain admin for help. Learn more

Clicking "Learn more" brings us to a singularly unhelpful page:

Signing in to your work, school, or other group account

Signing in to your work, school, or other group account

Happily, Mario R. linked to the actually relevant G Suite documentation.

In a nutshell, domain admins can disable the phone number requirement, but only for 10 minutes:

Google Admin Console > Users > click username > Security > Login challenge ("Turn off identity questions for 10 minutes after a suspicious attempt to sign in.") > TURN OFF FOR 10 MINS ("Turn off identity questions for 10 minutes after a suspicious attempt to sign in.")

/misc | Sep 26, 2019

Drive File Stream: Can't reach Google Drive #

Drive File Stream: Can't reach Google Drive

Solution to the vexing "Drive File Stream: Can't reach Google Drive" error when attempting to login:

In HKEY_LOCAL_MACHINE\Software\Google\DriveFS, create two new DWORD values, DisableCRLCheck and DirectConnection, assigning value data as 1.

Additional settings and details (including macOS instructions) can be found in Configure Drive File Stream.

(Mad props to Ashley Rowbury for her Job-like patience in securing this veritable Holy Grail.)

/windows | Sep 12, 2019

Yahoo! Pipes replacements #

Yahoo! Pipes "was a web application from Yahoo! that provided a graphical user interface for building data mashups that aggregate web feeds, web pages, and other services, creating Web-based apps from various sources, and publishing those apps."

Replacements:

/misc | Aug 15, 2019

Rare addition to the app catalog... #

searchfs 0.300000 [7k] {S} Command line tool to quickly search by filename on entire HFS+ and APFS volumes using the file system catalog. 📺

/mac | Aug 01, 2019

Microsoft Office: wrong default printer #

Microsoft Office apps like Word and Excel may suddenly stop defaulting to the user-specified default printer:

Its_Garth's lonely (and locked) November 29, 2018 post (Office 365 on Windows 10 not using Windows default printer) held the unlikely solution:

  1. Start > Settings > Devices > Printers & scanners > enable "Let Windows manage my default printer"
  2. Launch a Microsoft Office app (say, Word), print a file to the desired printer, then close Word.
  3. Disable "Let Windows manage my default printer"
  4. Reopen Word and open the print dialog; the desired default printer should be automatically selected.

/windows | Jul 30, 2019

iOS 'firewall' apps for non-jailbroken devices #

/misc | Jul 24, 2019

Hot cloning a live/running Windows 95 instance #

In a 2016 reddit thread entitled Clone a Win95 machine while still running?, the consensus was that it could not be done (though rasfert mentioned using xcopy).

Kan Yabumoto's XXCOPY includes a purpose-built clone operation (as described in his Cloning the Win9x system disk using XXCOPY) which can image a running Windows 95 system as simply as:

XXCOPY C:\ D:\ /CLONE

Before booting the clone, set its primary partition as active/bootable. The usual method (also outlined by Kan) is to start the computer via a bootable floppy or CD and run FDISK from there, as Microsoft's FDISK does not allow marking a partition active on any drive other than 1 ("Only partitions on Drive 1 can be made active."). However, Ranish Partition Manager does not suffer from this artificial limitation, and can thus be used to mark the primary partition as active from within Windows.

The last version of XXCOPY compatible with Windows 95, 2.96.7, can be downloaded from http://www.xxcopy.com/download/xxfw2967.zip.

/windows | Jul 21, 2019

Build a custom WinPE without third party tools like WinBuilder #

posted to the docs section.

/windows | Jul 16, 2019

Install Haiku on a Core Duo 2006 MacBook Pro (17-inch) #

posted to the docs section.

/mac | Jun 30, 2019

Sysinternals surrogates for macOS #

Jonathan Levin (the author of a trilogy on macOS and iOS internals) generously offers a plethora of tools (many of them with source code) for digging deeper into your system, including:

See also fseventer - FileMon for OS X.

/mac | Jun 05, 2019

macOS downloads and checksums/hashes #

UPDATE: See also Microsoft ISO checksums/hashes for Windows, Office, etc.

/mac | Jun 04, 2019

More haste, less speed #

良寛打毬の図

A martial arts student went to his teacher and said earnestly, "I am devoted to studying your martial system. How long will it take me to master it?" The teacher's reply was casual, "Ten years." Impatiently, the student answered, "But I want to master it faster than that. I will work very hard. I will practice everyday, ten or more hours a day if I have to. How long will it take then?" The teacher thought for a moment, "20 years."
Zen Kōans

Men fated to be happy need not haste.
Chinese proverbs from olden times, Peter Pauper Press

At the thought that it wouldn't be long before she saw Professor Hora again, Momo's courage revived. 'Please,' she said to Cassiopeia, 'couldn't we go a bit faster?' 'MORE HASTE LESS SPEED,' came the reply, and the tortoise crawled on even more slowly than before. Yet Momo noticed, as she had the first time, that they made better progress that way. It was as if the street beneath them glided past more quickly the slower they went. That, of course, was the secret ... the slower you went the better progress you made, and the more you hurried the slower your rate of advance.
Momo by Michael Ende, translated by J. Maxwell Brownjohn

/misc | Jun 02, 2019

Ignore HP's instructions for opening their Pavilion All-in-One - 24-b029c (Touch) #

HP generously provides an embarrassment of manuals for the 24-b029c, including a PDF entitled Hard Drive Replacement Instructions (cached copy) which is guaranteed to cause acute embarrassment and perhaps even irreparable harm as you and a friend struggle to follow them faithfully.

On page 2, we find:

To remove the rear cover, remove the two screw covers (1) and two Phillips screws (2) located in the bottom of the cover.

which sounds straightforward enough.

Any lingering doubt that the screws should be completely removed vanishes as we read on page 3:

Align the rear cover with the computer and press it down until it snaps into place (1). Replace the two Phillips screws (2), and then replace the screw covers (3).

However, you would be extremely ill-advised to follow those directions, as the screws are not designed to come out at all.

Mad props to the folks at Up & Running Technologies for sharing the correct technique, which is to simply turn the screws slightly counterclockwise until the screen pops up. You can then use a plastic pry tool to finish the job before slowly and gently lifting the back cover up, starting from the bottom (the manual did get something right: mind the ODD cable running along the top).

/misc | May 28, 2019

Cracking FileVault 2 (HFS+ or APFS) #

posted to the docs section.

/mac | May 27, 2019

Intelligently resize landscape & portrait photos #

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

UPDATE: I had completely forgotten about the tiny and handy Resize 2.6, which allows batch resizing by percentage, height, width, or maximum dimension while maintaining aspect ratio; it's been listed on the graphics page for ages.

/misc | May 10, 2019

Scan local Mac for known vulnerabilities #

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

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

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

Nessus scan results

UPDATE: While Nessus is focused on vulnerability scanning, Lynis offers a light-weight, installer-free option for system auditing and hardening:

  # git clone https://github.com/CISOfy/lynis
  # cd lynis
  # ./lynis audit system

though its results were quite disappointing compared with Nessus, which correctly reported a slew of crticial issues that Lynis missed, like:

/mac | May 09, 2019

"Is nothing sacred?!" #

Do You Capitalize 'God'?

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

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

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

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

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

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

...

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

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

/misc | Apr 30, 2019

iPhone's Phone app frozen? Respring. #

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

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

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

/misc | Apr 30, 2019

Random harvest #

/misc | Mar 26, 2019

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

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

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

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

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

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

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

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

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

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

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

Notes:

/nix | Mar 24, 2019

Changes #

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

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

Thanks to Netlify's redirect & rewrite rules, the move should be fairly seamless, but please let me know if you find any broken links or other anomalies.

Update

Migrating from Netlify to Cloudflare Pages

/misc | Mar 23, 2019

Quickly scan a Windows host for known vulnerabilities #

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

/windows | Mar 03, 2019

Creating HTML or PDF contact sheets in macOS #

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

/mac | Feb 20, 2019

Replace or recover domain cached credentials #

posted to the docs section.

/windows | Jan 29, 2019

Alternatives to dark mode extensions in Safari #

Unlike Content Blocker extensions like Wipr, dark mode extensions for Safari require extensive permissions (e.g., "Can read sensitive information from webpages, including passwords, phone numbers, and credit cards on all webpages" and "Can see when you visit all webpages").

Safer alternatives include:

/mac | Jan 24, 2019

Clone "Date modified" values without recopying files #

Problem: C:\A\ and C:\B\ contain the same files and folders, but the timestamps in C:\B\ are incorrect.

Solution: Mirror the file and folder timestamp values from C:\A\ to the same files and folders in C:\B\ (without having to recopy the files) via robocopy:

C:\>robocopy C:\A\ C:\B\ /E /DCOPY:T /COPY:T
...
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         3         0         3         0         0         0
   Files :        14        14         0         0         0         0
   Bytes :   3.339 g   3.339 g         0         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00


   Speed :           239063077333 Bytes/sec.
...

robocopy's log is incorrect; no directories were skipped (all their timestamps were updated), no files were copied (only their timestamp data was), and the hardware wasn't quite up to 239GB/sec.

/windows | Jan 16, 2019

tree: hide control characters and display Japanese properly #

After installing tree in macOS (brew install tree), running it did not produce the expected results:

$ tree
.
└── 宮?\216駿
    ├── 1\ 風?\201?谷?\201??\203\212?\202??\202??\202?.iso
    ├── 2\ 天空?\201??\237\216?\203??\203\222?\202\232?\203??\202?.iso
...

Specifying the character set sadly did not avail, and saving results to a file seemingly exacerbated the problem:

$ tree --charset utf-8 -o list.txt

Partial view of file as it appeared it Sublime Text:

<0x1b>[01;34m.<0x1b>[00m
├── list.txt
└── <0x1b>[01;34må®®å´\216駿<0x1b>[00m
...

The solution was to use the -N ("Print non-printable characters as is") and -n ("Turn colorization off always", which hides the color control characters / ANSI escape codes) options:

$ tree -Nn
.
└── 宮崎駿
    ├── 1 風の谷のナウシカ.iso
    ├── 2 天空の城ラピュタ.iso
    ├── 3 となりのトトロ.iso
    ├── 4 魔女の宅急便.iso
    ├── 5 もののけ姫.iso
    └── 6 千と千尋の神隠し.iso

1 directory, 6 files

/mac | Jan 15, 2019

FastCopy: exclude directories and delete files unique to destination #

/windows | Jan 15, 2019

Veganism for the rational #

Thanks to the generous CC BY-NC-SA licensing, Colorado Reed's succinct Veganism: An engineer's perspective. is reproduced here verbatim:

Why are you vegan?

I've heard this question quite a bit in the last year and a half of my veganism. And, well, it's a difficult question to answer since my veganism stems from a deep range of materials and experiences: books, research papers, and documentaries, as well as conversations and self-experimentation.

But as an engineer, I aim to both understand my rationale for going vegan and simplify it into a set of logical statements. So, by coalescing my research and experiences, I've created a set of three simple statements (with supporting references) that represent the fundamental arguments that brought me to veganism:

Logically, from the above three points, it follows that consuming animal products is unnecessary and causes destruction to the environment as well as billions of sentient animals. And while I initially didn't fully understand this logic, the research discussed in the "Further discussion" section below led me to understand that veganism was a logical conclusion that I couldn't overlook.

∴ I do not consume animal products

Of course, there was also a part of me that had a lot of subjective thoughts/questions about veganism, and resources such as http://yvfi.ca helped me navigate these channels.

Further discussion:

The first three references and discussions here address the point "Humans can thrive on a vegan diet", the second three references and discussions address the point "Consuming animal products is one of the largest individual contributions to climate change," and the final two references and discussions address "Consuming animal products results in slaughtering ~75 billion sentient farm animals each year — animals that want to live."

  1. Position of the American Dietetic Association: vegetarian diets, (2009): "It is the position of the American Dietetic Association that appropriately planned vegetarian diets, including total vegetarian or vegan diets, are healthful, nutritionally adequate, and may provide health benefits in the prevention and treatment of certain diseases. Well-planned vegetarian diets are appropriate for individuals during all stages of the life cycle, including pregnancy, lactation, infancy, childhood, and adolescence, and for athletes."
  2. Health effects of vegan diets, Craig, W., The American Journal of Clinical Nutrition, (2009) From the summary: "Vegans are thinner, have lower serum cholesterol and blood pressure, and enjoy a lower risk of CVD. BMD and the risk of bone fracture may be a concern when there is an inadequate intake of calcium and vitamin D. Where available, calcium- and vitamin D–fortified foods should be regularly consumed. … Vegans generally have an adequate iron intake and do not experience anemia more frequently than others. Typically, vegans can avoid nutritional problems if appropriate food choices are made. Their health status appears to be at least as good as other vegetarians, such as lactoovovegetarians."
  3. Plant foods have a complete amino acid composition. McDougall, J., Circulation, (2002). This concise note from Dr. John McDougall provides a number of important references regarding the nutritional completeness of a plant-based diet, e.g. "Therefore, a careful look at the founding scientific research and some simple math prove it is impossible to design an amino acid–deficient diet based on the amounts of unprocessed starches and vegetables sufficient to meet the calorie needs of humans. Furthermore, mixing foods to make a complementary amino acid composition is unnecessary."
  4. Reducing food's environmental impacts through producers and consumers. Poore J. and Nemecek T. Science, (2018). If you're going to read just one paper on the relationship between our food and impact it has on our environment, let it be this one. This meta-study created a dataset based on prior research that spanned ~40,000 farms in 100+ countries and analyzed food production of 40 food products that comprise ~90% of consumed calories. It assessed the environmental expense of the entire production cycle for these foods, taking into account green house gas emissions, land use, [fresh]water use/pollution and air pollution. Example conclusion: meat and dairy provide 18% of calories and 37% of protein, but uses 83% of farmland and produces 60% of agriculture's greenhouse gas emissions.
  5. Analysis and valuation of the health and climate change cobenefits of dietary change. Springmann M. et al. PNAS (2016) "The food system is responsible for more than a quarter of all greenhouse gas (GHG) emissions, of which up to 80% are associated with livestock production. Reductions in meat consumption and other dietary changes would ease pressure on land use and reduce GHG emissions. Transitioning toward more plant-based diets that are in line with standard dietary guidelines could reduce global mortality by 6–10% and food-related greenhouse gas emissions by 29–70% compared with a reference scenario in 2050."
  6. The Impacts of Dietary Change on Greenhouse Gas Emissions, Land Use, Water Use, and Health: A Systematic Review. PloS one, Aleksandrowicz, L. et al., (2016). "Agriculture is responsible for up to 30% of anthropogenic greenhouse gas (GHG) emissions, about 70% of freshwater use, and occupies more than one-third of all potentially cultivatable land, with animal-based foods being particularly major contributors to these environmental changes"
  7. Food and Agriculture Organization of the United Nations. FAOSTAT Statistics Database. Accessed 2 Oct 2018. Worldwide, over 75 billion farm animals each year are slaughtered. Note that this does not include the marine life slaughtered for seafood. Statistics on wild caught marine life are only tabulated by the tonnes and do not include bycatch (catching and killing the wrong type of fish, e.g. sharks in a tuna net), so it is difficult to count the amount of marine life slaughtered for seafood. Some extrapolation of FAO data leads to an estimate in the range of 1–2.75 trillion: http://fishcount.org.uk/published/std/fishcountstudy.pdf. From the FAO data, there are ~300 million worldwide dairy cows that must be forcibly impregnated in order to produce milk (cows, like all mammals, only produce milk when pregnant), and ~5 billion egg laying hens.
  8. The Cambridge Declaration on Consciousness 2012. A group of prominent neuroscientists created The Cambridge Declaration on Consciousness, in which they state their support for the idea that animals are conscious and aware in a similar way as humans. "The absence of a neocortex does not appear to preclude an organism from experiencing affective states. Convergent evidence indicates that non-human animals have the neuroanatomical, neurochemical, and neurophysiological substrates of conscious states along with the capacity to exhibit intentional behaviors. Consequently, the weight of evidence indicates that humans are not unique in possessing the neurological substrates that generate consciousness. Non-human animals, including all mammals and birds, and many other creatures, including octopuses, also possess these neurological substrates."

/misc | Jan 13, 2019

Opening and searching large text files in iOS #

is instantaneous with iVim (GitHub page):

/misc | Jan 08, 2019

"Your account has been disabled in the App Store and iTunes." #

Attempting to download or purchase items in the iOS App Store suddenly began returning:

Your account has been disabled in the App Store and iTunes.
Your account has been disabled in the App Store and iTunes.

Testing in iTunes under macOS returned the same message, though with a thoughtful addendum:

Your account has been disabled in the App Store and iTunes. For assistance, contact iTunes Support.
Your account has been disabled in the App Store and iTunes. For assistance, contact iTunes Support.

Logging in via iCloud.com still worked, so next tried changing payment info via https://appleid.apple.com/account/manage > Payment & Shipping > Edit, sadly to no avail:

Payment information could not be updated. This Apple ID has been disabled, and cannot redeem codes.
Payment information could not be updated. This Apple ID has been disabled, and cannot redeem codes.

Called 1-800-MY-IPHONE. Transferred to "iTunes Support" (for which a direct number was not available, I was told (later discovered that https://getsupport.apple.com offers email, phone callback, and chat support for iTunes)). Instructed to click "Generate PIN" at the bottom of the https://applied.apple.com page and share it with the customer service rep, who kindly resolved the issue (which she said had been caused by the credit card having been replaced following a fraud alert).

/mac | Jan 02, 2019

3 book recommendations from Public Domain Day 2019 #

Sources: Duke University and The Public Domain Review

/misc | Jan 01, 2019


Subscribe or visit the archives.