Goodbye Walled Cult Garden, Hello (Again) Beloved Muddy Farmyard

End of an Era The great experiment is over: After almost a decade of OSX, I have now returned to Linux: My foray into the world of OSX/macOS was good for most of its run, and, at its height, it was simply brilliant. When I first adopted OSX (after half a decade of running Linux), it was the ultimate developer experience. Not just the perfect balance between developer power/functionality and user bell-and-whistles, but actually as good as the best at both.

Read more

Building GCC From Scratch Natively on OSX 10.11 (El Capitan) and Above

With every iteration of their desktop operating system, Apple seems more and more determined to try new and novel ways to irritate me. The rootless security model that prevents anyone from writing to ‘/usr‘ (except for ‘/usr/local’; though there is no way for you to re-create this directory if you wipe it). The big problem is that the build process of GCC requires that ‘/usr/include’ exists, and the OSX 10.11 security model does not allow you to create it.

Read more

Taking it to a 11: Dramatically Speeding Up Keyboard/Typing Responsiveness in OSX

If you use a Mac/OSX, then enter the following commands in your shell and reboot: $ defaults write -g KeyRepeat -int 0 $ defaults write -g InitialKeyRepeat -int 15 If you live in a text editor or the shell, or otherwise spend most of your typing hammering away at the keyboard like I do, then this makes an absolutely wonderful difference in the responsiveness of any typing activity. It will make your previous typing feel like you were pecking away in slow motion at the bottom of a pit of cold tar!

Read more

Building MacVim Natively on OS X 10.7 and Higher

You might want to do this if you want to install the latest snapshot and no pre-built release is available. OR you might want MacVim to use a custom Python installation instead of the default one on the system path. This latter was my motivation. Once you have downloaded and unpacked the code base that you want to build, step into the `src/` subdirectory: $ cd src Before proceeding, make sure that your Python installations have been built with the “``--enable-shared``”!

Read more

OS X Terminal Taking a Very Long Time to Start

For a week now, opening a new tab or window in OS X’s Terminal application has been major palaver, sometimes taking up to a minute. CPU usage would shoot up (mostly/usually by WindowServer, but sometimes by kernel_task). It was driving me nuts. I practically live in the Terminal (or the be more accurate, Terminal + Vim), and usually spawn a new Terminal window several times in an hour for everything from using R as a calculator to opening files for viewing to actual development work.

Read more

Locally Mounting a Remote Directory Through a Firewall Gateway on OS X

Download and install MacFUSE. Download the sshfs binary, renaming/moving to, for example, “/usr/local/bin/sshfs”. Create a wrapper tunneling script and save it to somewhere on your system path (e.g., “/usr/local/bin/ssh-tunnel-gateway.sh”), making sure to set the executable bit (”chmod a+x”): #! /bin/bash ssh -t GATEWAY.HOST.IP.ADDRESS ssh $@ Create the following script, and save it to somewhere on your system path (e.g., “/usr/local/bin/mount-remote.sh”), making sure to set the executable bit (”chmod a+x”):

Read more

Disable OS X Time Machine's Continuous Local Snapshot Backups

I recently emerged from a hard drive failure with minimal loss of data: between Git-mirrored project files and Apple’s built-in Time Machine backups and a little bit of luck (only a couple of hours had passed between my last Time Machine backup and the crash), almost everything was saved and restored. With the new system, I moved to OS X Lion 10.7. While for a long time now my plan has been to move to cloud-based backup (such as SpiderOak or CrashPlan), I decided to stick with Time Machine for now.

Read more