Archive for the ‘software’ Category

Sharing a Printer from Mavericks to Windows

January 14, 2015

Every few years I have to figure out a new way to share a Mac’s printer with Windows PCs. The printer is connected to a Mac with USB and shared using System Preferences>Sharing>Printer Sharing.

Apple provides Bonjour Print Services for Windows as a free download. It starts a service that discovers printers using the Zeroconf protocol, of which Apple’s implementation is called Bonjour (formerly Rendezvous before they lost a trademark dispute). It works great on Windows XP. But on Windows 7, Apple’s Bonjour service (as of version 2.0.2, which hasn’t been updated in years) is flaky, spewing tons of error messages to the event log and frequently losing the connection to the printer. I had to give up on it (and that’s without a Windows firewall getting involved).

When the Mac with the printer was running Snow Leopard (10.6), I could add the printer on Windows 7 using Control Panel>Hardware and Sound>Devices and Printers>Add a printer>Add a local printer>Create a new port>LPR Port and then entering the hostname or IP address of the Mac and the CUPS printer queue name (which the lpq command in Terminal shows). Snow Leopard shares the printer using the Unix LPD (also called LPR) protocol, among others.

When I upgraded the Mac to Mavericks (10.9), I found that it wasn’t listening on the LPD port. After a lot of research, I discovered that support for LPD printer sharing is included in Mavericks but disabled by default. Here is how to enable it.

Open a Terminal window.

sudo launchctl load -w /System/Library/LaunchDaemons/org.cups.cups-lpd.plist

Type your password. Your Mac should now be listening on the LPD port. If you have its firewall enabled in System Preferences, you might need to open the LPD printer port (TCP port 515) in the firewall. Now printing to it from Windows should work.

The load -w option forces the service to be enabled. If you want to more clearly mark it as enabled, you can:

sudo bash

Edit /System/Library/LaunchDaemons/org.cups.cups-lpd.plist using a text editor like vi or nano.

Under the Disabled key, change the “true” to “false”, then save the file and exit the editor.

All of this probably applies to Yosemite (10.10) too, but I haven’t tested that, or Windows 8 or Vista.


From Novice to Master, and Back Again

January 14, 2013

In 1985, I was a freshman at St. Olaf College in Minnesota. The college had a VAX 11/780 running 4.2BSD and a PDP-11/70 running v7 with some Berkeley and local code hacked in. It was my first experience with multi-user systems other than dialing into an MS-DOS BBS or two.

The college’s Academic Computing Center had printouts of the 4.2BSD manuals, plus some home-grown documentation, available for sale so students could learn how to use UNIX. One week I sat in the Science Center terminal room and started going through the alphabetical list of the commands available on the VAX, trying each one and reading its man page to learn what it did.

Eventually I got to “su”. “Become the super-user”? What’s that? Does it involve wearing a cape? Sounds interesting, so I tried it. To my disappointment, it just asked for a password, and wouldn’t do anything.

Shortly thereafter, someone came running into the room and asked, “Are you David MacKenzie? Did you just run ‘su’?” “Yeah… what does it do?” “Uh, don’t do that.” My failed “su” attempt had been logged on the system console and one of the sysadmins was worried about an attempted breakin.

Within a year, I did have root access on the VAX, as I learned enough to be hired as a student system programmer. I contributed to upgrading the machine to 4.3BSD when that was released.

Recently I was working on a CentOS Linux virtual machine and needed to look up the command-line options to “su”. I had worked for the past several years mostly on Macs where “sudo” is preferred, so my “su” skills were rusty. I ran “man su” and got the information I needed. Then at the bottom of the screen I sheepishly read “Written by David MacKenzie.”

In the 1990s, while filling in gaps in the GNU toolset, I wrote the GNU “su”, and I had forgotten about it. It’s still what Red Hat and other distributions are shipping.

At least I know what it does now.

Migrating Firefox

June 18, 2012

This is the procedure I use when migrating someone who uses Firefox to a new computer or rebuilding their computer. This works on both Windows and Mac. There is now an alternative, to create a Firefox account and set it to sync what you want.

  1. Backup their bookmarks. There used to be a bookmarks.html file you could copy from the Firefox profile, but now they’re in a database so you need to export them.
    1. From the Bookmarks menu, select Show All Bookmarks. This pops up a Library window.
    2. In the Library window, from the rightmost pulldown menu (with a star on it), select Backup and put the file on a network drive or removable drive. This backs up the bookmarks to a “JSON” file.
  2. Backup their saved login/passwords.
    1. From the Tools menu, select Add-ons.
    2. On the left, click Get Add-ons. In the “Search all add-ons” box in the upper-right, type “password exporter”.
    3. Find Password Exporter in the list of search results and click the Install button next to it.
    4. Go to Preferences (Mac) or Tools>Options (Windows), Security tab.
    5. Click the “Import/Export Passwords” button added by the Password Exporter add-on.
    6. Click the “Export Passwords” button and put the file on a network drive or removable drive. This backs up their logins and passwords to an XML file.
  3. Then, on their new computer, use similar procedures, except select Restore in the Library window menu and “Import Passwords” in the Import/Export window.