HOWTOlabs  
 Services     Software     Commentary     Design     Astral Musings   
Apple OS X
Setup and basic uses

Elsewhere [edit]

 Related

Here's a collection of helpful tips for dealing with some of the lesser used and rougher edges of Apple's OS X.

Tips start with general utility then progess to more developer oriented.

Installation and Use FAQ [edit]

Scroll bars disappearing

Elsewhere
   
 

Around OS 10.7 Apple changed the default behavior for window scroll bars, making them disappear unless one is actively moving the cursor around.  While this may be comforting for new users coming from mostly mobile experience, it undermines the powerful desktop workstation metaphor by removing important presentation context.  So much so that certain applications like remote desktops become strange and unusable.  Turns out there is a general preferences settings to restore the classic time tested scrollbar behavior.

Making Free OS X Install Media

 Elsewhere
   
 

As of at least OS X 10.9 (Mavericks), and as well with OS X 10.10 (Yosemite), Apple no longer offers DVD or other commercially available install media.  However, they do provide a free download and tools for preparing install media.  Key to this is to have either a larger than 16 GByte writable USB device, or a DVD burning and blank DVD media able to hold 8+ GByte install images files.

Missing Admin Account

 Elsewhere

To be able to install software (e.g. updated Adobe Flash player), add users, change administrative settings, and more at least one user account needs to have administrator capabilities.  Sometimes the password of the administrator user is lost for some reason.  There are quite a few ways to re-establish an account with administrator capabilities. 

Time Machine - Targeting a Remote External Disk
2018-04 rickatech

It can be very convenient to have a desktop Mac allow time machine backups to external disks attached to it.  The computer trying to connect to the remote disk will need to target the disk in the Time Machine Preferences control panel, but there may be a setting to allow it to see the remote external drive.  The computer with the external disk directly attached needs to enable File Sharing, then double click to open advanced settings and make sure Share as a Time Machine backup destination is checked.

Time Machine - File System Format

Most people just accept the default settings when setting up OS X, if so Time Machine should work as expected.  However, if for some reason you decide to format OS X disk using Case-sensitive (Case-insensitive is default), Time Machine then becomes very picky.  Time Machine must be used with a primary and backup disk that use the same Case-sensitibity setting.  Otherwise it will adroitly alert you that it will not work.  Even just trying to copy Time Machine files to a different disk where the Case-sensitivity is different won't work.

Allow root access

Elsewhere
   
 

Default OS install disables access to root shell.  With 10.6.X, the System Preferences > Account panel offers a way to access controls that enable root login access.

Postfix

For scripts and other direct email generation to work, need to configurate some obscure OS X settings to specify what host to use to send email so that it reaches the Internet. Be careful, spam protection measures on many networks discourage sending email directly from a host - so your mileage may vary.

# scutil --set HostName mini.local.zaptech.org

  ...

# scutil --get HostName

  mini.local.zaptech.org
# diff -r1.1 /etc/postfix/main.cf

  306a307
  > relayhost = smtp.sonic.net
Web Server

Hey! If you already know how to configure Apache there is nothing more you need to know about! You may need to toggle Web Sharing On using System Prefs - Sharing. Here's a diff showing the changes made to use /public as default web server directory
$ diff httpd.orig httpd.conf

  361c361,362
  < DocumentRoot "/Library/WebServer/Documents"
  ---
  > # DocumentRoot "/Library/WebServer/Documents"
  > DocumentRoot "/public"
  386c387,388
  < < Directory "/Library/WebServer/Documents">
  ---
  > # <Directory "/Library/WebServer/Documents">
  > <Directory "/public">
# apachectl

  usage: /usr/sbin/apachectl (start|...|help)

  start      - start httpd
  stop       - stop httpd
  restart    - restart httpd if running by sending a SIGHUP or start if
               not running
  fullstatus - dump a full status screen; requires lynx and mod_status enabled
  status     - dump a short status screen; requires lynx and mod_status enabled
  graceful   - do a graceful restart by sending a SIGUSR1 or start if not running
  configtest - do a configuration syntax test
  help       - this screen
Allow remote login

Default OS install does not allow remote login. Also there is no telnet services, only secure shell (ssh). To enable remote login, change setting within System Preferences, Sharing

Terminal / Command Line Tips

Elsewhere

Many Unix/Linux commands co-exist with OS X nicely.  However the deep internals of OS X differ somewhat from its operating systems brethren.&nbps; For example creating and managing users and groups from the command line uses OS X specific commands not found elsewhere, but file operations otherwise closely adhere to common commands.

Code Development Tips [edit]

Related

Elsewhere

Apple built their legacy on top of MacOS desktop operating system (AKA OSX), but more recently have become the dominant player in the mobile device market with their mobile phone, tablets, and AppleTV products that are built on top of iOS.  Developing application for either MacOS or iOS is best done using Apple's Xcode development tools, which are free and run on MacOs.

Mac Ports

Elsewhere

Mac Ports is an alternative to brew for bringing over popular open source tools from Linux to MacOS.  It's much lighter weight, keeps all tools in /opt separate from Apple's tools, and can be operated completely from the command line.  Also, it seems to support a variety of common Linux tools recently dropped from Xcode as of Sierra (e.g. rcs).

$ which rcs

  /usr/local/bin/rcs

$ ls -lh /usr/local/bin/rcs

  lrwxr-xr-x rickatech admin 29B Feb 26 2018 /usr/local/bin/rcs -> ../Cellar/rcs/5.9.4_1/bin/rcs

  [ before High Sierra ] 

- - - - - - -

$ port version

  Version: 2.5.3

$ sudo port selfupdate

  --->  Updating MacPorts base sources using rsync
  MacPorts base version 2.5.3 installed,
  MacPorts base version 2.5.3 downloaded.
  --->  Updating the ports tree
  --->  MacPorts base is already the latest version

  The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated

$ sudo port upgrade outdated

  Nothing to upgrade.

$ port search rcs

  rcs @5.9.4_1 (devel)
  Revision Control System

$ sudo port install rcs

  ...

$ which rcs

  /opt/local/bin/rcs

$ rcsdiff notes.txt

  ===================================================================
  RCS file: RCS/notes.txt,v
  retrieving revision 1.1
  diff -r1.1 notes.txt 

brew

Elsewhere

MacOS remains a variant of the legacy UNIX operating system which has many open source equivalents in the Linux community.  MacOS includes by default many Unix/Linux comamnd line tools and packages, but not all.  Typically only developers may need to leverage certain Unix/Linux tools on MacOS that are not already provided by Apple.  In those rare cases several 'package managers' that augment Apple's own App Store can provide reasonably straight forward ways to pull in missing tools and services.  By far the most popular one as of 2018 is brew.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  ==> This script will install:
  /usr/local/bin/brew
  ...
  ==> The following existing directories will be made group writable:
  /usr/local/bin
  ==> The following existing directories will have their owner set to rickatech:
  /usr/local/bin
  ==> The following existing directories will have their group set to admin:
  /usr/local/bin
  ==> The following new directories will be created:
  /usr/local/Cellar
  ...
  ==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin
  Password:
  ...
  ==> Installation successful!

$ brew help

  ...

$ brew search 

  a2ps
  ...
  zzz

$ brew search rcs

  ==> Searching local taps...
  rcs

$ brew install rcs

$ which rcs

  /usr/local/bin/rcs

$ ls -lh /usr/local/bin

  brew -> /usr/local/Homebrew/bin/brew
  ci -> ../Cellar/rcs/5.9.4_1/bin/ci
  co -> ../Cellar/rcs/5.9.4_1/bin/co
  gpg -> /usr/local/MacGPG2/bin/gpg2
  ident -> ../Cellar/rcs/5.9.4_1/bin/ident
  merge -> ../Cellar/rcs/5.9.4_1/bin/merge
  rcs -> ../Cellar/rcs/5.9.4_1/bin/rcs
  rcsclean -> ../Cellar/rcs/5.9.4_1/bin/rcsclean
  rcsdiff -> ../Cellar/rcs/5.9.4_1/bin/rcsdiff
  rcsmerge -> ../Cellar/rcs/5.9.4_1/bin/rcsmerge
  rlog -> ../Cellar/rcs/5.9.4_1/bin/rlog 

Image Rotation

Command Line - sips (lossy)

$ sips -r 270 DSC00013.JPG --out DSC00013r.JPG 

  .../DSC00013.JPG
  <CGColor 0x10fff0> [<CGColorSpace 0xa01bddc0>
  (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )
  .../DSC00013r.JPG 

Freeware Cheese (lossless)

Command Line CVS / RCS

Apple includes command line CVS / RCS with Xcode from Apple.  Download the latest relevent Xcode installer for your version of OS X.  Do the bare minimum install.  This will place CVS and and RCS commands typically in the /Developer/usr/bin directory.  From a shell, attempt to run cvs, if it can't be found then create/modify .profile for you login accordingly.

$ cd ~

$ cat .profile

  export PATH=$PATH:/Developer/usr/bin 

Elsewhere

MacCvs

Alas, MacCvsX (based in part on the WinCvs GUI client), seems to no longer be supported natively by OS X 10.6 .  Instead a prompt to enable Roseta emulation occurs, which indicated old PowerPC code has been detected.  Still, if you don't mind running in emulation mode MacCvsX will launch but seems to be highly unstable.  Perhaps an updated MacCvsX version will surface soon that runs directly and is more stable.

Miscellaneous Command Line Tips

$ sw_vers

  ProductName: Mac OS X
  ProductVersion: 10.6.8
  BuildVersion: 10K549 
ARCHIVE
legacy notes
circa 2013

[ reveal section ]  
zap technologies
tablet | printable