May 1, 2009

Interesting possibility for Windows-to-Mac Remote Desktop

I had recently revisited my search for a better windows-to-mac remote desktop story, and while searching I stumbled across Aqua Connect.  They have a product with no release date yet called “Remote Desktop Agent”, which according to their site, “allows users to remotely connect to their Mac desktop through any Microsoft compatible remote desktop client such as…Remote Desktop Client…”  Exciting, right?

I stumbled across this in the Wikipedia Remote Desktop Protocol article, where they note that Aqua Connect became the first company to license and implement RDP server for the Mac OS X platform.  I was looking for information on RDP out of desperation, considering what it might take to start a project.

There has to be a better solution than the pile of free VNC implementations, none of which work anything half as well as RDP, and Timbuktu Pro for $199, which hasn’t been updated in forever, makes you pay for updates, and still doesn’t like Win2k8 or Vista.  Maybe Aqua Connect is it?

February 26, 2008

The elusive quest for fast remote desktop to my Mac laptop

I desperately didn’t want to pay the $199 for Timbuktu, but I finally gave in.  The quest was simple: find a reliable, fast way to remote into my MacBook laptop running Leopard from my desktop running Windows 2008, over a gigabit LAN.  The laptop sits next to me–I just want to use one keyboard.  The simplest features will do: I’m not looking for clipboard access across sessions, or file copying, or anything other than pure speed.  One keyboard, one mouse, 54" of screen real-estate, two OS’s and 12G of RAM between them.  Should be heaven, right?  It isn’t.

VNC is the first tool that pops up when starting on this quest.  As I’ve written before, VNC is a dog: it might feel great for people who are used to 56k modems, but I have watched movies from my Dell M90 across RDP on my desktop.  I want fast.

How do I define fast?  Well, I don’t need to watch movies, but when I run my mouse across the dock bar the icons should just…move.  No flickering, no stuttering.  Timbuktu manages to pull that off.

So I tried the canon of remote services: LogMeIn, GoToMyPC, and a handful of others.  LogMeIn, while free, took roughly 7 seconds to redraw my 17" laptop screen in a browser window.  GoToMyPC was the best after that, but still horridly chunky.

I then found Symantec’s PCAnywhere works with OS X.  The latest version (12.1) was priced just a little less than the Timbuktu solution.  I found a free trial of 12.0, downloaded, and failed on install in Win2k8.  I checked the usual suspects (Admin privileges, directory access), without success.

I found Bomgar (, but I didn’t have the heart in me to try a product that "starts at $1,988".  I’d rather just turn to my left and type on the MacBook keyboard…

It was my hope after reading some of the hurlyburly around RDP that I might find an alternative to Timbuktu, but nothing showed significant promise, not yet at least.  For now, Timbuktu will have to do, even though it hurts to pay for something I’ve used for free for years!

February 9, 2008

Not Happy with Mozy

header-mozy-logoAfter reading this post, I had to check my Mozy install on my desktop–sure  enough, it reported that it hadn’t run successfully in 5 days, and the error message was a "required update".  No other clues would have alerted me to failed backups (it doesn’t show any kind of visual indicator until 7 days have gone by).  I would have been extremely upset to discover that in a recovery effort. 

So, I downloaded and installed (it requires a reboot–seriously?  Aren’t we past that?), and now my hourly backup option is gone; it is at most 12 times a day, and on low CPU impact.  Not happy with Mozy.  I decided to look back at Carbonite–my first impressions two years ago (I backed up 30G in about a week) was that it was clunky, but it sounds like it has gotten better.  I participated in the Beta back in early 2006, but my beta account is no longer active (schucks!)

The install was pretty painless on Vista x64, which is great.  I now have to wait for quite some time before all my content is backed up.  For the time being, I’m still running Mozy, but the whole point of automated backups is to not have to worry–and I worry about Mozy.

February 9, 2008

Remoting into your Mac from a PC

I’ve been on a quest to find software that would make my MacBook even remotely usable from a PC.  Using VNC on my gigabit LAN can be compared with using RDP over a 1200 baud modem.  I’ve tried every conceivable configuration without getting any faster than "agonizingly-torpid".

I finally stumbled across Timbuktu.  It’s not free, and I think I vaguely remember this company from a decade ago for Windows/Unix remote access.  I signed up for the 14-day trial, and after a couple of weeks of dithering, finally installed.  It’s not perfect (it’s got an awfully aged UI), but it is definitely the best I’ve used so far in terms of responsiveness–running my mouse across the icon bar at the bottom is relatively smooth.  For the first time, I’ve considered my MacBook usable from my desktop.

But there’s a problem–it’s priced at $199!  I am having a VERY hard time seeing how I’d be willing to pay $199 for something that’s out of the box on Windows.  You have to buy a "two-pack" multi-platform license, and there’s just no way I could justify that.  Does anyone know of alternatives?  And before anyone suggests another flavor of VNC, I’ve tried them all.

January 17, 2008

How to save money on Microsoft Office 2008 for Mac

I haven’t found a site to download a demo of Office 2008, and I can’t seem to get answers from anyone at MacBU or in blogs, so I decided to buy it. I’m really interested in seeing what the development opportunities are (if there are any), and I wanted to see what the new Entourage had to offer. The retail price of $399.95 seemed a bit steep: I’m looking for development options, not to use it full time (not yet at least). The upgrade price of $239.95 is far more palatable, and sure enough, the upgrade policy (from the bottom of the retail box, or here at the “upgrade eligibility” link) is:

The software will install only if you are a licensed user of one of the following products: … Any Microsoft Office for Mac 2001-2004 suite or application.

Well guess what. I’ve got Entourage 2004–it came free as part of my 1& hosted Exchange account (which is $3.99 a month, and it also comes with Outlook 2007 for free). I’m sure other Exchange hosting companies provide the same deal.

I bought the upgrade, and it installed just fine! So–sign up for Exchange email, get Entourage for free, and save $160 on Microsoft Office 2008 for Mac.

January 17, 2008

Autonomy Search Developer Starter

So you’ve got an Autonomy IDOL in hand, and you’ve been asked to build a search application around it.  Here are some thoughts on getting started.

Let’s assume you’ve got the content in.  In a later post I’ll cover some of the fetches/connectors that you have access to, and what you can do with them.  For now, let’s start with a simple query.  Assume that the IDOL is installed on the server search, on port 9000.  Open your browser to:


An installed IDOL listens on many ports: the default port of 9000 is where the IDOL Proxy Service sits and listens.  The response for an “action=query” is to return results that match the “text=” query.  By default, the response will contain up to 6 records, showing the default fields for each records (usually that includes a small subset of the metadata, and none of the content for each record), and will look something like this:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<autnresponse xmlns:autn="">

Lesson #1: All meaningful Autonomy interaction is through URLs, and the response is typically in XML.  Some simple C# code to handle the response above would look like:

   1: XmlDocument xml = new XmlDocument();
   2: xml.Load("http://search:9000/?action=query&text=*");
   4: XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
   5: nsmgr.AddNamespace("autn", "");
   7: XmlNode node = xml.SelectSingleNode("/responsedata/autn:hit[1]/autn:reference", nsmgr);

The next step is to figure out how to issue queries that are more meaningful than text=*.  For that, we turn to Autonomy’s built-in help page.  You access it by–you got it–going to a URL:


Lesson #2: Always have the help URL open on a monitor.  The HTML help that is displayed is the single best resource for questions; and ironically, it isimage not searchable.  Non-searchable help?  From a search company?  Yes.  Perhaps that was left intentionally as a challenge to the buyer to set up their first source…  In any case, your first friend will be the Query node, where you can find all sorts of helpful information on how to build the specific query you’re looking for.  Remember, unless your users are technical, it will most likely be your responsibility to “query cook”, accepting simplified input from your users and creating the complex URL that Autonomy needs.

In future posts, I’ll look at some of the specifics of the query URL, and how to see the impact in the logs.

January 15, 2008

Using LogParser to quantize Autonomy search logs

I explained in a previous post how you can use the Microsoft Log Parser to dice up Autonomy IDOL search logs.  If you’ve exhausted the typical checks for performance problems in your IDOL installation, it might help to narrow down when the problems occur, and look for cluster periods of slow performance.  That’s a great opportunity to use the Log Parser again.

The first step is to level the playing field on timing information; the content GRL and the DAH GRL show duration information in milliseconds mixed with seconds.  I’m sure there is a clever way to correct that in-stream, but I took the brute-force approach: create separate files from first the rows with seconds, then those with milliseconds, and finally produce a single file from the results.

logparser -i:xml -o:csv “select *, mul(to_real(extract_prefix([autn:duration], 0, ‘ s’)), 1000) as milliseconds into over_1_second.csv from http://server:port/?action=grl&format=xml&tail=10000 where [autn:duration] like ‘% s'”

Then the rows under 1 second:

logparser -i:xml -o:csv “select *, to_real(extract_prefix([autn:duration], 0, ‘ ms’)) as milliseconds into under_1_second.csv from http://server:port/?action=grl&format=xml&tail=10000 where [autn:duration] like ‘% ms'”

Then merge the two files into a single file:

logparser -i:csv -o:csv “select milliseconds, [autn:time], [autn:thread], [autn:status], [autn:action], [autn:request], [autn:client] into merged.csv from *.csv”

These three basic steps serve as the basis for most log analysis I do, so I’ve added them into a script.  The result, merge.csv is a flattened file that contains the data we need.  If you are going to script this, don’t forget to escape the percents, i.e. like ‘%% s’.

Next, we run a quant operation on the logs.  I’ve found that a half-hour period makes for a good range to view the average query performance:

logparser -i:csv -o:csv “select quantize(to_timestamp([autn:time], ‘dd MMM yy hh:mm:ss’), 1800) as period, avg(milliseconds) from merged.csv group by period order by period”

The 1800 constant there is seconds, i.e. half an hour.  The result is a list, here’s a short snippet:

Period Duration (ms)
2008-01-02 22:00:00 624.828913
2008-01-02 22:30:00 415.648974
2008-01-02 23:00:00 2410.331818

This report shows clearly that around 11pm, we see a sharp decline in performance.  You might also want to add a count(*) clause to the query to highlight the system activity.

January 15, 2008

Microsoft Office 2008 for Mac is here…but not on MSDN

Not yet, not in my download list, at least.  I can’t find any authoritative statement indicating whether it will ever be available as an MSDN download, and if going off of previous versions is any indication, it never will be.  I’m interested to see what development options exist; I haven’t been able to find anything yet.  There’s a definite paucity of information and a lack of responsiveness on the MacBU side of things.  I’m hoping that changes over time.

January 13, 2008

Using the Microsoft Log Parser to parse Autonomy Logs

Much has been written about the free Microsoft Log Parser, a simple command-line tool that can access and parse log files from a number of sources, execute SQL-like queries against that data, and present results.  Did I mention it’s free?

Autonomy services will drop log files everywhere (literally all over the place), in different formats, and the challenge is to merge all that log data into a single store in order to get a handle on the big picture.  For instance, a single query against the IDOL server shows up in several logs:

  1. the GetRequestLog
  2. content_index.log
  3. possibly the OGS query log (if you have securityinfo)
  4. possibly a DAH log (if you’re distributing/mirroring)

How can you aggregate all that information to get a single picture for performance analysis and forensics?  And what about aggregating in other trace information, like application trace logs and IIS logs?  Use the Log Parser.  The first example I’ll give here is a simple query against the GRL–that should provide a view of the current queries that the IDOL is servicing.  I am using the latest version of the Log Parser (2.2, from Jan 2005)–download and install, then either copy to your %SYSTEM32% path, or simply add the install directory to your path, and run the following from a command-line:

logparser.exe -i:XML -o:DATAGRID “select [autn:action], [autn:request], [autn:client], [autn:time], [autn:duration], [autn:status], [autn:thread] from http://server:port/?action=grl&format=xml&#8221;

That opens a pretty little window for you to scroll through.  You can modify the url with “&tail=[somenumber]” to return a different count of rows (the default is 100).  There are a couple of parameters for the output type (DATAGRID), one is the autoScroll, which is on by default.  This scrolls whenever new data shows up, but does not work with URLs, so you will have to re-run the command-line to get an update.

Let’s look at a slightly more complicated query.  I’m working with a client on query performance, and we’re studying why certain queries take longer than others.  Most queries take under a second, but every once in a while, they take longer.  With a simple query, we can look at exactly the information we need:

    mul(to_real(extract_prefix([autn:duration], 0, ' s')), 1000),
    [autn:duration] like '% s'

We limit this to rows with a duration in the format ‘1.62 s’, then turn the value into milliseconds.  Removing the [autn:request] column from the select, and surrounding the mul() operation with an AVG() gives you a handy number on average query time over 1 second.  Make sure to add a more meaningful depth, with something like &tail=10000 to your URL.

I’ll look at more complicated queries next.

January 4, 2008

Microsoft Office 2008 and Entourage

One of the tools I cannot work without is Outlook.  Over the years I’ve tried everything from Thunderbird with Sunbird to some really weird products like Chandler and Omea, that never really found the sweet spot that Outlook hits.  I wanted to be free of the Exchange lock, which while powerful, is a real pain to share outside of the corporate environment (share a view of your calendar with friends and family?  Not a chance…)

Naturally then, Outlook is one of the driving reasons behind maintaining a VM/Boot Camp partition for day-to-day work (obviously, the anchor is Visual Studio/.NET).  I looked at Entourage from Office 2004, but was not entirely impressed it–I have grown dependent on RPC/HTTP (can’t stand the thought of VPN any longer just to check email), and that’s flat out not supported by Entourage (not in any of the versions I tried, at least).

So I have high hopes for Office 2008 due out this Jan 15.  I’m hoping for closer feature parity between Entourage and Outlook 2007 (where will I find something like ClearContext?), especially with respect to RPC/HTTP.  And finally, I’m hoping it shows up on MSDN–does anyone know if it will?


Get every new post delivered to your Inbox.