835 words on Mac OS X
Yesterday I bitched about networking not being quite as simple as it should be these days – particularly when it comes to networking with Windows computers. Today, I’ll illustrate a frustrating example of connecting a Mac to a Windows shared printer that I ran into. Perhaps this can help other people who start to think that things ‘just won’t work’ and almost want to give up and go back to carrying their documents across the building on a memory stick instead of ‘just printing’ across the network.
I will not go into the problems on the Windows side of this problem – I am not using Windows and I saw that it took my flatmate quite a while to set up the printer sharing on his Windows machine in a way that the service is actually visible on the network and works. So that side of the equation with Windows, bad user interfaces and strange firewalls in it could be a problem as well.
The ‘challenge’ here is a simple one. We have:
All I want to do is print on that shared printer from my Mac running OS X.4 which is on the same network.
I have printed to many printers from many Macs. Admittedly most of them were what I like to call ‘proper’ printers, i.e. PostScript printers with network support. And thanks to the magic of AppleTalk/PAP, PostScript and Apple’s printing software, printing on those has been dead easy since the days of System 7 – no matter who actually made the printer in question. No troubles there!
Knowing that Windows printer sharing is involved here, I didn’t expect the same comfort here, but I still expected to do steps like these:
Not ideal, but not too bad. And not realistic either, unfortunately.
Reality looked a bit different: Opening Printer Setup Utility and clicking the Add button worked just fine. And it got me to this familiar window:
Usually I see a number of AppleTalk and Bonjour printers in that list. So the shared Windows printers could just appear there as well. But there’s nothing. Ah well…
But there’s still the ‘More Printers…’ button. Clicking it brings up a sheet which lets you select the network protocol you want from a menu:
and then ‘see’ all things related to that protocol:
As usual you first get to see numerous Windows ‘Workgroups’ for the three computers turned on at the time, two of which don’t contain any item in this case. But I knew which machine I was looking for, located it in the correct group, saw a password dialogue coming up and entered the password. Horray! Everything looking very good at this stage. Just one minor problem remaining – there’s no shared printer listed for that computer:
OK, perhaps Windows is to blame for that (although shared printers are listed just fine for a different printer sharing Windows computer I tried) – but Windows will at least offer people to manually enter the printer name in that situation and get things to work. No text field here, though… Yikes!
In total it looks like I was getting close. But that just doesn’t cut it if you need to go all the way.
After quite a bit of back and forth, trying things (like doing the setup from the ugly and laughably poorly localised CUPS web interface which doesn’t offer support for Brother printers for some reason) I luckily recalled the somewhat obscure trick of pressing the option key while clicking the ‘More Printers…’ button. Doing that will give you an extra option in the sheet’s popup menu:
That in itself is a fairly obscure feature. And it comes with an equally obscure interface. Basically you have to enter an URI for the printer you want. The UI will give you the hint that your URI should start with
smb:// if you want to print via SMB, but that’s about it. You’ll have to figure out / guess the rest of the syntax yourself. That’s not too hard if you know stuff about URIs. But I doubt that many people who ‘just want to print’ do. In addition this ‘Advanced’ feature requires that you enter the password for the printer you want to access in clear text which may not be desirable. So I ended up doing this…
… and could finally print some stuff on the printer next door.
I was actually surprised to see this work at all in the end and it’s not too hard to do if you know how this works. But I thought it was pretty bad UI that easily leads you to think what you want to do cannot be done at all.
Isn’t it weird ? This is such standard situation and still the solution is nowhere near reachable for the average Mac user. I don’t know how long it has been this way, but I’m tempted to call it a classic.
While Apple has done a truly amazing job on the printing subsystem, at its core there is still the smelly pile of crap that is CUPS: See http://www.catb.org/~esr/writings/cups-horror.html. In your case, it reared its ugly head…
Sure CUPS may have its ugly sides, but I’m inclined to put the blame on Apple here Hauke. CUPS is just giving the Mac its the under-the-hood printing architecture and it seems to me that this architecture works rather well. Apple may have created one of the more clueful GUIs to set up that architecture but experience shows that it’s still not good enough once you leave the safe road of AppleTalk or Bonjour.
(People may laugh at me for still favouring AppleTalk/PAP in 2006 but the fact is that it ‘just works’ even down to enabling the computer to automatically setting up the printer type and configuration for you - which I have seen none of the other connection methods do successfully.)
Received data seems to be invalid. The wanted file does probably not exist or the guys at last.fm changed something.