so, it's come to this...

by Michael

May 21, 2013

A man who saved the life of a little boy who was being attacked by 3 pit bulls is being fined $1000 by the D.C.:

When the three dogs attacked an 11-year-old boy riding the dirt bike he had gotten for Christmas, neighbor Benjamin Srigley jumped in to help. He retrieved his 9mm Ruger P-90 handgun from his house and fatally shot one the animals. A D.C. police officer shot and killed the other two.

But the 39-year-old’s actions — deemed heroic by the boy’s relatives — quickly became complicated. Authorities say Srigley had legally bought the handgun and two other firearms in Virginia, but he had failed to register them in the District.

Police confirmed that Srigley has no criminal record in the District or elsewhere.

Shameful.

May 21, 2013

I recently changed my blog domain, which also resulted in a change to my RSS feed. As you may or may not know, while amazingly useful, RSS feeds are also the black magic of the internet, truly understood by few, controlled by none, erratic at best, and dangerous at the worst.

As best as I can tell there are three current feeds to my site. One from the original site, one from feedburner on of the original site, and the current one. If I've done things correctly, those subscribed to the original feed and the feedburner feed should both be redirected to the new one. How this will play with various readers, I have no idea. Even if it works, you may still not like the idea of the inefficiency of redirection and the inelegance of the wrong url being in your subscribed list.

The new feed is: soitscometothis.net/feed or you can click here.

May 21, 2013

I'm a big fan of Keyboard Maestro and use it both daily for my workflow as well as occasionally for projects as they arise.

Version 6.0 was released today and is a major upgrade over version 5. There are many improvements both major, minor, and cosmetic. It was well worth the $25 upgrade price.

Macdrifter has a nice write up and I'm sure that Macstories will have a very detailed review within a few weeks.

Today I'm just going to share two small items made possible with the new version.

Shorter macros with browser text tokens

First, some types of macros are more easy to create and are smaller due to the new web browser text tokens. I had previously created a macro that would take an URL that was currently open in Safari and open it in Chrome instead, and vice versa.

The macro in version 5 is fairly long:

Switching browsers in KM5 macro

The same macro in version 6 is much smaller:

Switching browsers in KM6 macro

This is all directly or indirectly because there is a text token for the current URL in both web browsers. This gets rid of the AppleScript for getting the URL. It also indirectly allows me to get rid of commands to open the opposite web browser as well as to wait for that browser to be open. In the version 5 macro, I had a command to switch to the new browser since that was necessary in order to enter the URL into the address bar. Since in my situation, I may not want to immediately switch over to the other browser, I was able to leave that off too.

Easy creation of Markdown links from current webpage

Seeing how easy it was to change the above macro, I decided to make a quick macro to make a Markdown link using the current Safari URL as the link URL and the current Safari window title as the link text. I also used the new text token %|% to place the cursor in position to quickly change the link text in case the window title isn't appropriate.

I'm looking forward to upgrading my old macros and kicking the tires a bit more. I can't wait for my next project so I have a chance to create something new.

May 21, 2013

I'm a big fan of Keyboard Maestro and use it both daily for my workflow as well as occasionally for projects as they arise.

Version 6.0 was released today and is a major upgrade over version 5. There are many improvements both major, minor, and cosmetic. It was well worth the $25 upgrade price.

Macdrifter has a nice write up and I'm sure that Macstories will have a very detailed review within a few weeks.

Today I'm just going to share two small items made possible with the new version.

Shorter macros with browser text tokens

First, some types of macros are more easy to create and are smaller due to the new web browser text tokens. I had previously created a macro that would take an URL that was currently open in Safari and open it in Chrome instead, and vice versa.

The macro in version 5 is fairly long:

Switching browsers in KM5 macro

The same macro in version 6 is much smaller:

Switching browsers in KM6 macro

This is all directly or indirectly because there is a text token for the current URL in both web browsers. This gets rid of the AppleScript for getting the URL. It also indirectly allows me to get rid of commands to open the opposite web browser as well as to wait for that browser to be open. In the version 5 macro, I had a command to switch to the new browser since that was necessary in order to enter the URL into the address bar. Since in my situation, I may not want to immediately switch over to the other browser, I was able to leave that off too.

Easy creation of Markdown links from current webpage

Seeing how easy it was to change the above macro, I decided to make a quick macro to make a Markdown link using the current Safari URL as the link URL and the current Safari window title as the link text. I also used the new text token %|% to place the cursor in position to quickly change the link text in case the window title isn't appropriate.

I'm looking forward to upgrading my old macros and kicking the tires a bit more. I can't wait for my next project so I have a chance to create something new.

May 21, 2013

Google Glass is a new1, wearable technology that incorporates a screen, microphone, and camera into a glasses-like form factor. Most2 of what I've read about it so far as been fairly negative with comments ranging from how bad you'll look wearing them to how much of an invasion of privacy it is when people can take your picture at any time without them noticing. In his typically outrageous manner, Ben Brooks has even suggested outlawing them.

Unfortunately, these complaints, while at least partially valid, are also myopic.3 Fashion is fickle and their design can change; cellphones, spy cameras, and digital SLRs with telephoto lenses got rid of privacy long ago; and, Ben, taking photos of people without their permission in public is perfectly legal. Yeah, even if it's of your kid.4 They also seem to overlook or have no image about how useful they could be.

What interests me about Google Glass is not how it might be used in social situations5, and the accompanying norms it may violate, but how this could be used as a tool, an extension of one's self.

  • I imagine a rescue worker being able to view and tag dangerous situations in some wreckage, while leaving their hands free or perhaps easily and quickly taking images of an injured survivor that could be uploaded and reviewed at the central medical center so that preparations could be made before the patient even arrives.
  • I imagine a doctor doing a procedure being able to monitor an ultrasound image or telemetry while not taking his eyes off the patient.
  • I imagine being about to keep a menu or manual right in my field of vision while cooking or fixing the car, without awkwardly perching it somewhere not quite easy to see and not quite out of the danger zone.
  • I imagine that every time I looked at a document containing the words of some diagnosis, Glass would automatically search for the ICD-10 code and if I happened to need it, I could quickly glance up at the screen.
  • I imagine seeing a patient and when I start talking about the treatment, Glass connects to my electronic chart to look up their insurance coverage and list in my field of vision which medication is covered so I can continue explaining the treatment uninterrupted.

My first thought when hearing about Glass was how useful this would be for parents of infants. One mother already wrote about how useful it is6.

Sure, I can't imaging people wearing these all the time in every social situation7, but who said you had to?8 I may never wear it while at a restaurant or a party, but who cares if I look dorky while walking around my own house? I don't wear my pajamas outside either. While most agree that bluetooth headsets are dorky, it's not the same when wearer is the receptionist sitting at the desk of your local law office or clinic answering phones all day. In that same situation, I can imagine the practice management software being able to identify the person checking in, pull up her chart, take a picture of the patient's new insurance card and upload it to the billing software, while leaving the receptionist's hands free for other things.

Social norms may have to adapt or may have to be more strongly reiterated to put those who would abuse this, or any, technology9, but if we can get past the idea of this being a social device and start to look at it more as a tool, suddenly, this technology seems a lot more interesting.

I have no prediction as to the business success of Glass and the functionality will greatly depend on how good the software is. Google has already let me down enough times that I'm cautious. But I am curious.


  1. Not even publicly purchasable. 

  2. Scoble doesn't count. 

  3. No pun intended. 

  4. Not to mention, if someone really wants to get inappropriate photos of people, it's a lot easier and cheaper to just Google it. 

  5. From the technocrati's reaction to GG, it seems all anyone does in Silicon Valley is go to parties and the bathroom. 

  6. Apologies, but I can't find the link now. 

  7. Except for a few, strange outliers, but isn't this always the case? 

  8. At least for now. Who knows how social norms will change in the future. Maybe like bluetooth headsets it will always be gauche, or maybe it will come to be the norm. 

  9. Scoble is never invited to my house. 

May 18, 2013

The title is a bit misleading, but I figured that's what people would be searching for if they had the problem I'm intending to solve.

Technically, this article is about installing virtual Windows machines for free on your Mac so you can use PACS rather than about how to use PACS on a Mac, because, as far as I know, you can't.

A colleague uses a Macbook Air at work except the hospitals imaging system uses PACS with some unfortunate software requirements:

  1. Internet Explorer 6.0, 7.0, or 8.0
  2. Windows XP (Service Pack 3) or Windows Vista Home Premium or Windows Vista Business 64 bit or Windows 7 32 and 64 bit
  3. Windows 3.1 Installer
  4. Microsoft .NET Framework 3.5 (Service Pack 1)
  5. Windows Media Player 11.0

This made him sad because he also had to carry around a crappy Windows machine.

Thankfully, we were able to easily solve his problem today.1

The technique we used came from a 2 year old article from OSXDaily. It uses VirtualBox from Oracle to create a virtual machine and then load a free version of Windows XP for the purposes of testing IE.

The technique is really pretty simple, although you need to not fear the terminal.

First, download and install Virtual Box.

Second, go to the terminal2 and paste one of the following depending on the version of Internet Explorer you need:

  • Internet Explorer 7

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="7" bash

  • Internet Explorer 8

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="8" bash

  • Internet Explorer 9

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash

In everything goes well, this will install the Windows operating system needed and the version of IE as well.

Finally, run the application VirtualBox and you'll be able to boot up the Windows virtual machine.

If you have trouble doing that there are several more resources that can help:

Let me know if this works for your and allows you to use PACS on your Mac. I'd be interested to know how much this is effecting physicians.


  1. Actually, it took forever to figure it out. While this technique worked perfectly on my Macbook Air 13 inch, for some reason it would immediately fail on his machine. For some reason, the installer couldn't make the hidden directory .revms in his User folder. Once we figured that out, un-hide the hidden files, and created it manually, it worked fine. Took forever to figure that part out though. 

  2. Terminal.app or ⌘-space, terminal

May 15, 2013

I created a Keyboard Maestro macro to quickly create a link-blog post to Scriptogram without even needing to open a text editor.

The workflow is straight forward and assumes that you are reading a website in Safari and have already copied the quote you want to the clipboard:

  1. You are prompted for an attribution (either the author or the website you're quoting), the title of your post which will also be used as the url of your post and part of the file name, tags (optional), and comments (optional).
  2. The url of the frontmost tab in Safari is saved as a variable.
  3. Text is written to a file.

Only three steps. The real power is in what text is written to a file and the name of the file.

The text is just the boilerplate of a Scriptogram blog post with variables to fill in the data.

Title: %Variable%Post Title%
Date: %ICUDateTime%yyyy-M-d HH:mm%
Link: %Variable%currentURL%
Tags: %Variable%Tags%

[%Variable%Attribution%](%Variable%currentURL%):

> %CurrentClipboard%

%Variable%Comments%

The text is written to a new file each time as long as the date and post title are unique. I like my file name to consist of the date and the post title as follows:

/Users/michael/Dropbox/Apps/scriptogram/posts/%ICUDateTime%yyyy-M-d% %Variable%Post Title%.md

Took me all of 5-10 minutes. I surprised myself getting the whole thing correct on the first try. Typically it takes me half an hour to get the format of the macro set up and another 2 hours debugging it.

May 15, 2013

John Gruber:

Google is the company that built Android after the iPhone, Google Plus after Facebook, and now a subscription music service after Spotify. They entered the RSS reader market, wiped it out, and are now just walking away from it.

It is the "walking away" part I need to remember so I don't end up relying too heavily on their services or sink too much time and data into their silos.

May 14, 2013

The website Uptodate, a common medical reference site for physicians, appears to disable copying text on the iPhone. This makes it very difficult to copy snippets of text into the notes I'm taking as I read. It also prevents using iOS's text-to-speech functionality when my eyes get tired.

Thankfully, it's not very difficult to restore this functionality.

  1. On your iPhone, create a bookmark of this page.
  2. Copy the following text to your clipboard:
javascript:(function(){

function allowTextSelection(){
  var styles='*,p,div{user-select:text !important;-moz-user-select:text !important;-webkit-user-select:text !important;}';
  jQuery('head').append(jQuery('<style />').html(styles));
  
  window.console&&console.log('allowTextSelection');
  var allowNormal = function(){
    return true;
  };
  window.console&&console.log('Elements unbound: '+
    jQuery('*[onselectstart], *[ondragstart], *[oncontextmenu], #songLyricsDiv'
    ).unbind('contextmenu').unbind('selectstart').unbind('dragstart'
    ).unbind('mousedown').unbind('mouseup').unbind('click'
    ).attr('onselectstart',allowNormal).attr('oncontextmenu',allowNormal
    ).attr('ondragstart',allowNormal).size());
}

function allowTextSelectionWhenPossible() {
  window.console&&console.log('allowTextSelectionWhenPossible');
  if(window.jQuery){
    window.console&&console.log('jQuery has now loaded');
    allowTextSelection();
  } else {
    window.console&&console.log('jQuery still not loaded.');
    window.setTimeout(allowTextSelectionWhenPossible, 100);
  }
}

if(window.jQuery) {
    window.console&&console.log('jQuery exists; will use');
  allowTextSelection();
}else{
  window.console&&console.log('jQuery not loaded; will include.');
  var s=document.createElement('script');
  s.setAttribute('src','http://code.jquery.com/jquery-1.9.1.min.js');
  document.getElementsByTagName('body')[0].appendChild(s);
  allowTextSelectionWhenPossible();
}


})();  
  1. Go to the bookmark menu in Safari, find the bookmark you just created, and hit edit.
  2. Replace the URL with the clipboard contents.
  3. Go to Uptodate or any website that blocks copying.
  4. While on that page, hit the bookmark, and functionality should return.

Credit: I got the JavaScript above from Alan Hogan.

Apr 23, 2013

The Mac is my Shepherd; I shall not defrag.
He maketh me not change my system fonts.
He leadeth me to easy back ups.
He installs no bloatware.
He leadeth me in the paths a Unix core for stability's sake.

Yea, though I walk through the valley of crappy medical forms,
I will fear no .docx: For PDFpen Pro art with me;
Thy "create form fields" command, it comforts me.
Thou preparest a Dropbox folder before me in the presence of all my devices;
Thou annointest my terminal with bash; My stack doesn't overflow.

Surely TextExpander and Keyboard Maestro shall power all the shortcuts of my workflow,
and I will compute in the House of the Mac forever.