Welcome to the lab.

CriticMarkup in Marked 1.4

[Tweet : ADN : nvALT]

CriticMarkup was unveiled a little bit ago, and it was intriguing but not immediately useful to me at the time. Since then I’ve been playing with the MultiMarkdown Composer beta (available to owners of version 2), which includes a basic “change tracking” feature supporting full CriticMarkup syntax as you type. I’m sold.

The initial release of CriticMarkup included a preprocessor for Marked 1.5+, but given the uncertain release date of the next incarnation of Marked, I wanted to make it work with the standard custom processor feature of Marked 1.4. A few adjustments to the existing script and one dependency later it’s good to go.

First, go and explore the CriticMarkup syntax. When you have a document marked up and ready to preview, grab the custom processor script and put it anywhere in your user folder or subfolder. This version of the script requires that you have the MultiMarkdown binary (available via brew) installed at /usr/local/bin/multimarkdown. You can, of course, edit the script to use any external processor you like after CriticMarkup has done its thing.

Then, just enter the path to the critic.py script in Marked’s custom processor field under Behavior preferences. If you get the path wrong, the text will turn red to let you know. Enable the custom processor checkbox and hit “Save” at the bottom of that box.

Now, when you load a CriticMarkup document in Marked, you should see three tabs: Markup, Original and Edited. These let you see a view with changes inline, or see the document’s original state and how it looks with all changes accepted.

I really hope to see a time in the future when this system (or something similar) takes off for editorial work. I think it’s an excellent way of tracking changes and edits between two people. Properly used, it could handle quite a few sources of feedback. Combined with a system like Draft, it could kill Word. Someday…

Systematic 44 with Carla White

[Tweet : ADN : nvALT]

"Systematic logo"

I’m late posting this. The episode went up on time (Tuesday), but the post about the episode is… behind schedule. Carla White was a great guest, and we had a high-energy talk about how a non-developer can take an app idea from start to finish and put quality apps out on the app store.

For anyone who listens through to the end, my hand is still numb and the doctor has me in a brace, thinking carpal tunnel. I’m not convinced, given that at various points this numbness has spread across my entire right side, from waist to neck and even into my face. It’s currently only in my hands, up part of my forearm and my armpit, but it seems like something other than carpal tunnel at this point. I’ll be seeing a specialist as I’m able to make appointments.

Nobody seems willing to entertain an infection-related cause, but the ear infection I’ve had for two months seems suspicious. I will leave diagnosis in the hands of qualified professionals, though, assuming I can find some…

In the meantime, check out Systematic #44 at 5by5.

Web Excursions for May 14, 2013

[Tweet : ADN : nvALT]

FatURL
FatURL takes a text block of urls and captions and turns them into a “bunched” URL for easy sharing. A potential replacement for linkbun.ch for me, and potentially an easier-to-setup replacement for the bit.ly bundle tool I built.
Together 3
I was, at one point, a hardcore user of this app as my central “bucket” for notes, PDFs and, well, everything. I’m really glad to see it making a version leap and am testing it out right now to see if I might be headed back to it.
Curio 8.6 with Panic Status Board support
I don’t use Curio for project management, but if you do, this could be awesome.
Poetreat
Poets are going to dig this, I think. It gives you syllable counts, rhyming dictionary and other tools for writing structured prose. I’m looking forward to trying it out for lyric writing. See also: Verses.
GistBox: The Beautiful Way to Organize Code Snippets
Pretty awesome, web-based snippet storage using Github’s Gist functionality. I still want a good native app for doing the same, but the Github package for Sublime is doing a pretty good job for me.

EventScripts and reliable Bluetooth proximity detection

[Tweet : ADN : nvALT]

I’ve mentioned EventScripts before, but I’m finding it awesome enough lately to mention again. I use it in tandem with BetterTouchTool, but for different purposes.

Using BTT Remote with BetterTouchTool and Indigo with my X10 system, I can tap a button in the Dock of my iPhone, then press the volume down hardware button and turn my office lights off at night from anywhere in the house. Well, anywhere in the world, really, if I have internet access. However, with EventScripts my lights turn off automatically when I leave the room. That’s priceless.

This is done by detecting the presence of various Bluetooth devices. In this case, I have it assigned to my iPhone, which always leaves the room when I do. The problem I’ve run into before has always been that the connection disappears even when the phone is sitting right by the computer.

I’ve hacked around with Proximity in the past, but never got it to a point where my lights didn’t accidentally turn off while I was still in the room. Even triple checking the Bluetooth signal with long delays couldn’t make up for flakiness in either the iPhone’s Bluetooth or the Mac’s receiver (I’ve never determined which). It’s not constant, but the troubles happened frequently enough to make me give up on Bluetooth proximity detection for a while1.

You can also build enough rules in an app like ControlPlane to add some reliability, but even that was requiring more work than I thought should be necessary.

When I saw that EventScripts had a Bluetooth trigger, I decided to give it a shot. It has a configuration setting for the number of retries before it considers you gone. I’ve found that three retries provides perfectly reliable proximity detection. My lights go off within a few minutes after I walk away from my computer, and turn on almost instantly when I get close again. I’ve been running it for a week and a half and haven’t had my lights shut off once on me while I was still there, even with my phone in my pocket (which seemed to be a constant issue previously).

Check out EventScripts and EventScripts Mobile on the App Stores. It can do much more than just Bluetooth detection, and you can accomplish some things you’ve probably never considered before. The developer also has some really useful tools available on his site, including a JSON Helper for AppleScript. That’s handy.

  1. I’m still considering an RFID system that lets lights and audio follow me around the house and customize behaviors per ID. If I did that, I’d chip my pets and make the house call their names from other rooms just to mess with them. Then I’ll have to pay for dog therapy for my therapy dogs.

Sidecar 1.5

[Tweet : ADN : nvALT]

Ok, this will be the last update to Sidecar for a little while (no promises). 1.5 seems like a nice number to hold at while I work on some other projects. I’ve put enough hours into a project with a very limited audience to feel mildly guilty, but I’m having a lot of fun with this. Hey, I respect your life choices.

To catch up newcomers, Sidecar is a theme (jacket) for Simplify, my favorite music controller for Spotify, iTunes, Rdio and most web-based players. Sidecar currently only works on 27” monitors, but that limitation will be lifted on an upcoming version of Simplify1. Your 11” Air will soon have a new option for decorative music control.

Sidecar 1.5 adds three new variations which feature soft lines, fades and a kind of “dripping” transition as the song progresses. The “Nightfall” one is guaranteed not to match any of your wallpapers, but I like it anyway. Kind of. You have to see it in the right light.

I renamed all of the variations in a manic moment. You’ll just have to live with that. I also added visual notifications on play and pause, and some JavaScript and CSS quirks have been smoothed out.

I restructured the source on Github to make it easy to play with, if you’re interested. Feel free to poke around and offer criticism/improvements.

Sidecar v1.5

A jacket for Simplify and 27-inch (2560x1440) monitors.

Updated Fri May 10 2013.

More info…

  1. Simplify 2.6 is being submitted, and it fixes click handling for play pause (so it responds on the first click), among other things. The version coming after that will allow jacket developers to scale to screen dimensions and define positioning for jackets like Sidecar.

Experiment: Send to nvALT links

[Tweet : ADN : nvALT]

I was considering adding a feature to Jekyll that would let me provide “.txt” links that return Markdown versions of posts the way that MacDrifter’s Pelican install does and I’m pretty sure Gruber used to. I got bored with the idea of writing a generator for it, so I hacked a workaround that turned into something quite different from the original objective. That happens a lot.

If you look under the little gear icon in the upper right of this site, you’ll now see an “Add to nvALT links” option. Clicking it will turn on “nvALT” links next to “[tweet : adn]” for every post, both on the index pages and on permalinks. Clicking this — assuming you have nvALT installed — will use Marky to generate the Markdown version as an nvALT url that will execute itself automatically and… long story short, it adds a Markdownified version of the post straight to nvALT.

You can, of course, just drag a url to the notes list and hold down Option to run Readability and Markdownify on any article, but I figured I’d make it really easy1. I made it opt-in on my site, but there are some bookmarklets on the Marky website for doing it anywhere.

It also highlights the fact that Marky can return JSON (with a JSONP wrapper if called with callback=?). This makes it usable in any web application, in addition to the main website and its command line tool (see the API docs on one of the Marky pages). I know it still has some issues, especially with images within links, but it sure can come in handy.

  1. It was more an “I think I can do that” hack than anything terribly useful (I don’t really need to save my own articles to nvALT, most of them are already there). I once even built my own web-based version of Antique for my own use… it’s a disease.

Zenboxx anounces ZenDock for 11 and 13-inch Airs

[Tweet : ADN : nvALT]

The ZenDock kickstarter campaign has made quite a splash around the big Mac news sites. I was feeling a little left out, as it was designed for MacBook Pros and I had just shipped my last one off to my brother and moved everything to a 13” Air. Then, in the last 48 hours of the campaign, ZenBoxx announced a little brother to the ZenDock: ZenDock Air.

It’s available for both 11 and 13-inch MacBook Airs, and there are versions available for both types of Magsafe connectors. While not as capable as the Retina MacBook Pro version, they are suitably slimmed down for the MacBook Air.You can connect speakers — with both optical and standard hookups — a mic, your power adapter, Ethernet (adapter included), and three more USB devices with a simple docking connector that attaches at the power port/USB section.

It doesn’t use the Thunderbolt port available on newer Airs, which is understandable (it’s on the other side of the computer). However, it handles 90% of what you need plugged in to your Mac when you’re at your desktop, and keeps cable clutter down and hookup time low. The actual connectors are mountable under the desk, so it really does look like a good solution to desktop clutter.

I’m looking forward to trying one out as soon as I can. There’s still time to pledge, and you can check out details at their Kickstarter campaign.

Sidecar 1.4

[Tweet : ADN : nvALT]

Sidecar 1.4 is up. I really should save these changes up and make larger releases, but this is fun. I’m playing a little more with the controls and color variations, so this does add some fun stuff.

First, there’s a new variation called “Almost invisible.” It’s colorless and will work will on all but dark backgrounds. If you have a colorful desktop picture that doesn’t match any of the existing themes, this one should be perfect.

Next — and this is nifty — you can Command-Click on the jacket to seek to that point in the song. Double-click to skip to the next track. Play/Pause still works on a single click, but it’s a little flaky in Simplify right now. I know for a fact that this will be fixed by the devs pretty soon.

For any interested jacket-hackers: the source is now up on GitHub so you can easily play with it and make pull requests. You will, of course, need Simplify installed.

If you put the index.html and index.css files into into ~/Library/Containers/pixelmates.Simplify/Data/Library/Application Support/Simplify/sidecar/ and run /Applications/Simplify.app/Contents/MacOS/Simplify --watch-jackets, you’ll be able to edit the resulting folder and see live results as you work. Don’t clone the repository directly to that folder, git causes a refresh any time you do anything. Even an ls on the folder. Just copy them out for editing and back into the repo when you want to commit.

Please feel free to play with it, and all pull requests will be considered.

Sidecar v1.5

A jacket for Simplify and 27-inch (2560x1440) monitors.

Updated Fri May 10 2013.

More info…

Web Excursions for May 08, 2013

[Tweet : ADN : nvALT]

maxjacobson/alfred-workflows
The Alfred version of the iTunesIcon script. Thanks to Max Jacobson.
Fargo 0.55
I’ve previously mentioned Fargo, the web-based outliner. This release now supports Markdown, which opens some interesting possibilities, I think. Via Alan Sandercock.
wiredprairie/unofficial_nodejs_nest
An unofficial API for the Nest thermostat written in Node.js. Get status, set the temperature and more. You can find it in use in a Nest panel for Status Board by Bob VanderClay.
BugHub - For GitHub
This is a really nice way to handle Github issues in a native Mac app. Also available for iPad.
Red Sweater Blog - Fire & Forget Scripting
If you happen to use FastScripts, this new trick is awesome. Instead of long-running scripts pausing the app, they just fire off on separate processes. Handy, and just a terminal command away.