I will forgive Microsoft pretty much anything. Their world domination attempts, their propensity for dominating markets, the way Office has far surpassed every definition of inflated bloatware, their amazingly draconian licensing policy, the through-the-nose pricing for Exchange CALs, I'll even forgive them for Entourage. And .NET - and I suspect forgiving that alone will spawn a whole new generation of saints.
I'm still on the fence regarding my coLinux troubles.
But I will never, ever forgive them for preventing iTunes for Windows from working properly with Rendezvous. All my music is an Ethernet hop away, and I have to copy it to my Toshiba/M100's hard disk.
And yes, I've opened the damn ports on Windows Firewall, added the executable exceptions, even turned off the damn thing. iTunes refuses to acknowledge the existence of my DAAP server.
Now, I'm a goddamn engineer (and more than a little cognizant about TCP/IP, UDP multicast, firewalls and whatnot) and, for chrissakes, it should just bloody work - never mind that I tried to tell it how.
Update: Apparently, the egregious assholes who coded Windows Firewall never thought of handling multicasts properly, or else have fundamentally broken portions of the multicast code used by iTunes. If I run a Rendezvous beacon locally to announce my DAAP server's address, it works (I'm using pyzeroconf):
from Rendezvous import * import socket import time r = Rendezvous() desc = {'reason':'sp2 is crap'} info = ServiceInfo( "_daap._tcp.local.", "Home Jukebox._daap._tcp.local.", socket.inet_aton("192.168.0.5"), 3689, 0, 0, desc) r.registerService(info)
And, as a nice bonus, I cannot see any Rendezvous announcements I make on the outside. No, not even changing the code above a bit and binding to a specific address. No, not even shutting down the firewall.