Microsoft’s Remote Desktop for Mac is a great piece of software (Remote Desktop on Windows is way ahead of the Mac, which is slow and based on VNC).
Because VNC is so slow, I often ssh into my work system when I work remotely. But I want to use Remote Desktop for my Windows work as well.
My Windows system has a dynamically-attributed IP address and no fixed name (it’s not “on the domain”). I also have a Remote Desktop session running on my work Mac.
lsof (list open files) not only lists open files by all processes, it also lists open ports. Once you know that the Windows Remote Desktop port is called
ms-wbt-server, all you need to do is:
% lsof | grep ms-wbt-server
-> Remote 220 philippec 9u IPv4 0x8977e64 0t0 TCP 220.127.116.11:49161->18.104.22.168:ms-wbt-server (ESTABLISHED)
Voilà! The address of the remote Windows system is
Parsing this through awk to extract the IP address for scripting purposes is left as an exercise to the reader…
What is it?
Around the time of c4 I was futzing around with making a proper UI for my Twitter Avatar Acorn script.
I also wanted to learn about Core Data and Image Kit.
So I wrote AvatarManager, which uses Core Data to store images in png, tiff or jpg format and displays them in an ImageKit view. People suggested that it should not be limited to Twitter (which is my main Social Network app), so I made a pop-up menu populated by scripts that are run as an NSTask by the app. The scripts provide the interface to the image-upload interface of your on-line service.
Unfortunately, the Twitter “API” got modified and my script broke, so I lost interest. I was using Ruby’s ‘mechanize’ module to essentially script my way in the web page, which is an interesting way of doing it.
It’s still a good project!
I think the app is a good starting point: it’s simple, robust and extensible. The source code is easy to understand, and it shows how to use the Keychain (to store your passwords) and NSTasks.
You can help!
Grab a copy of the code and hack away! Patches welcome. Especially if you have new and updated upload scripts.
hg clone http://bitbucket.org/philippec/avatarmanager
- MacOSX 10.5 (Leopard)
- Xcode 3