Welcome to the lab.

Web Excursions for June 24, 2016

[Tweet : ADN : nvALT]

This week’s web excursions brought to you in partnership with Udemy. Learn Anything.

BusyCal 3
BusyMac has released BusyCal 3 for Mac and iOS. It’s a calendar app with an excellent month view with integrated info panel, integrated weather info and travel time estimates, a menu bar mini-calendar, calendar sets you can switch between, and much more.
Bear - Notes for iPhone, iPad and Mac
I’m a little jealous that Bear from Shiny Frog is ahead of BitWriter on its beta release, but I’ve been testing it for a while and it’s a gorgeous note-taking app with sync across macOS and iOS. Elegant editing with a Markdown-esque syntax, and solid export options.
Marvel - Design Apps On Your Phone on the App Store
An intetesting app for mocking up iPhone, iPad, and Apple Watch apps starting with pen and paper and working up to clickable prototypes you can share.
Apple doesn’t understand photography
All true.
A tiny Bootstrap alternative for web designers who just want grid and typography features. Pure CSS (with Sass), including tools for easily creating and adjusting vertical rhythm, consistent form fields and grid layouts.
A CLI-based window and pane manager for iTerm 2 and 3.
I’ve been having fun with Pablo from Buffer. This new web app is about the same thing (making quick social media images with text), but offers a little more flexibility in design. Great for making demotivational posters as a rebellion against trite quotes on zen backgrounds.

Udemy Banner

Quickie bookmarklet for Product Hunt

[Tweet : ADN : nvALT]

This is a very quick post of a bookmarklet I whipped up and have found handy on a daily basis.

I love Product Hunt, and find new things there daily. I just get annoyed that when I open a bunch of products in tabs, each tab then creates a new tab when you try to go to the product’s homepage.

This bookmarklet just finds the “Get it” button on a product page and opens the target url in the same tab. Simple, effective. (Only tested in Chrome, but should work anywhere.)

Just drag the button below to your bookmarks bar and click it when you’re on a Product Hunt product page.

A new email trick with SaneBox, Spark, and OmniFocus

[Tweet : ADN : nvALT]

I’ve used SaneBox happily for a couple of years now. It’s a tool that automatically sorts your inbox, filtering out things you can read later, newsletters, bulk emails, and more, leaving your inbox with only the emails that actually matter. You can train it by moving emails from your inbox to special folders, and after a couple of weeks it will have your inbox neat and tidy.

I’ve also been using Spark on iOS as my email client. I love its configurability, and it works perfectly with my existing system, providing parity with my email habits on my Mac.

A new feature that SaneBox added recently, SaneFwd, lets you set up custom folders that automatically forward emails to one or more addresses. I was excited because now I could use a “move to folder” shortcut to send emails to my OmniFocus mail drop. When the SaneFwd feature first launched it lacked the OmniFocus domain, so I requested it and was just informed that it’s been added.

This makes it easy for me to add OmniFocus capabilities to Spark, which it’s currently lacking. I created a folder called @OmniFocus that forwards to my sync.omnifocus.com address. By customizing a swipe gesture in Spark settings, I can now do a long swipe to the left to move an email to my custom SaneFwd folder, automatically creating a task for it in OmniFocus.

I highly recommend SaneBox, so here’s my affiliate link if you want to check it out. I also think Spark is the best iOS email client, having tried them all (I think). Here’s Macworld’s review, and you can get Spark on the App Store.

My current blogging workflow

[Tweet : ADN : nvALT]

Admittedly, my publishing pace has been down for a while, but I’m working to get it back to its former levels. This reboot has been a good chance to re-evaluate my workflow. I thought it was also a good time to share my current list of tools and tricks for blogging.


The trick I’ve found to always having something to write about is simply to write down everything I think of writing about. I keep a single list of quick ideas in nvALT titled “Blogging Ideas”. I use a TaskPaper formatted1 list to make it easy to clean up as I mark things @done.

As a large part of my blogging is about projects I work on, I keep a separate list of “Project Ideas.” When a project moves from development to release and I want to write about it, it moves to the writing list.


I use wiki links in these lists to create a “starter note” for brainstorming. In nvALT this means surrounding the subject with double square brackets, e.g. [[Blogging workflow]]. This is recognized as a wiki link, and clicking the link opens a search for a note with the same name, and hitting enter will create that note if it doesn’t exist.

In the starter note I’ll begin with an exposition paragraph. I usually write it as if it were the first paragraph of a final piece, covering the reason for the post and summarizing the concepts. This little graf makes it much easier for me to come back to an idea, remember what I was thinking more clearly, and avoid the “blank page syndrome.”

If I have a clear enough idea at this point, I’ll start outlining the sections ideas. Just the major points, things that would become level 2 headers if I split the post up. A Markdown format bullet list does the trick.

If an idea gets a starter page and outline, it moves up on the main list. At this point I can leave it until I’m ready to take it to the next stage.


When I’m ready to start working on a post, it can go one of two directions. If it’s a simple (and short) post, I can just copy the topic outline into MultiMarkdown Composer and start writing. If I want to work on iOS, I have a plethora of tools I enjoy writing in (and I do have an iOS writing app comparison post/series on that Blogging Ideas list). I generally do my best writing on my laptop, though, so MultiMarkdown Composer is where I head most often.

If a post is longer—whether it’s a tutorial, project description, or a review—it goes into a mind map for further brainstorming. I love iThoughtsX (and iThoughts HD on iOS) for this. I can just paste the Markdown bullet list from my notes into a map and it converts it to a new map (with delimiters cleaned up). iThoughts isn’t alone in this capability, but for writing/Markdown work in general I’ve found it the most ideal.

The topic nodes then get child nodes with more paragraph-level notes. In the mind map format, I can just start spitting out all of the concepts and worry about ordering them as they collect. The format also makes it easy for me to take an idea further, branching it out as far and as fast as my brain wants to. If a node develops far enough, it may become clear it should be its own topic, which is a simple matter of dragging the root of the idea to a higher level.

Mind map topics might seem random, but they are sorted clockwise, starting at the top and working around. When you export to another format, this sort order is what will define the final outline. Within a major topic node, child nodes are sorted top to bottom. iThoughts (and most mind mapping apps) offer simple keyboard shortcuts for sorting the nodes without having to drag.

While I’m brainstorming, I preview the map as an outline in Marked 2. Marked works with both iThoughts X and MindNode files. Simply drag the proxy icon (the little icon next to the document title at the top of the window) to Marked and it will begin showing the outline view of the map, updating on every save. In iThoughts you can modify the levels where headers become list items in the Export->Markdown settings panel. In Marked, you can switch between APA or decimal outline formats in the Gear menu at the lower right, or switch Outline Mode to “None” to just see the headers and subtopics as lists.

Once the ideas are out, I sometimes start writing paragraphs out right in iThoughts using notes on the related node. This can be handy, especially for getting started on very long pieces. In the same way that writing the exposition paragraph in the starter note makes getting started easier, these initial paragraphs get my brain moving on each section. It’s important for me to have the outline almost completely solidified and ordered before I start these paragraphs. Otherwise there’s a high probability that what I write there won’t make sense in the grand scheme of the post, and will be scrapped and rewritten anyway.


The whole development process above can take anywhere from 5 minutes to multiple sessions, depending on how many ideas I have and how complex the whole piece ends up being. Once I’m at a point where it’s time to start writing, I just export the mind map as Markdown (or copy straight from nvALT if it’s a simple one). In iThoughts, you can just select all (⌘A) and use Edit->Copy As->Markdown to get the outline ready to paste without going through a whole export-and-open process.

The topics are already there, broken into manageable pieces. I can work out one section at a time, or even individual paragraphs if my ADHD is especially crippling at the time. Aside from the built-in capabilities of MultiMarkdown Composer, I’ve developed a few other tools to make the whole blogging process easier. These include:

Marked 2
My app Marked contains myriad tools I’ve built for improving my own writing. It offers me a live Markdown preview as I write. I use it even in apps that offer a built-in preview (which MultiMarkdown Composer does) because of its immense flexibility. I can preview posts exactly as they’ll look on my blog, as well as see word count, reading level analysis, and more. It can highlight words and phrases that I want to avoid, indicate overuse of a word or phrase, and even help me check spelling and grammar.
My tool for easily creating Markdown links while writing. Using a simple syntax it can search iTunes, Amazon, Google, and more, automatically creating and inserting links from the best match without ever having to switch away from the editor. My Preview URL extension makes it easy to verify the results without leaving the editor as well.
TextExpander Tools
I have quite a few useful TextExpander snippets for blogging, handling everything from adding Jekyll metadata (with fill-ins for variables) to properly capitalizing company names.
Jay Dixit, a recent guest on Systematic, shared some of his own writing shortcuts with me, and I’ve started developing a whole shorthand system in TextExpander. I’ve always used it for handling more complex things than I wanted to type, but with the new “Suggested Snippets” feature and some basic rules, I’ve found it’s great for typing out even my most common words2.
Markdown Service Tools
The set of OS X (macOS, sorry) System Services I’ve developed have long come in handy for everything from basic Markdown syntax to copying groups of links from my browser or other places. I also have an extensive set of key bindings that probably aren’t of interest to anyone who doesn’t obsess over keystroke efficiency.

So that’s most of my current set of tools, with an obvious lack of full iOS workflow. That’s going to have to be another post. If you’ve read this far, it’s likely that you—like me—have an insatiable curiosity about how other people are doing the things you do. Feel free to add notes and feedback in the comments!

  1. Add “taskpaper” to the list of recognized extensions in nvALT->Preferences->Notes to see these in the list.

  2. I know, I know, that’s kind of what it was always intended for.

Web Excursions for June 14, 2016

[Tweet : ADN : nvALT]

Awesome Desktop Switcher
A Desktop switcher for Mac that allows you to have different folders and files on multiple Desktops. The cool part about this one is that it works with Spaces, so you can have different sets of files per space. A menu item makes it easy to drag files between desktops, and even search all desktops at once.
Warn Before Quitting Macro
A KeyboardMaestro macro that adds Chrome’s delayed quit feature to any apps on your Mac.
Introducing DeepText: Facebook’s text understanding engine
DeepText leverages several deep neural network architectures, including convolutional and recurrent neural nets, and can perform word-level and character-level based learning.
Black Screen
Black Screen is an Electron-based terminal emulator that provides amazing autocompletion menus and display options using HTML and CSS for the UI. It won’t replace iTerm2 for me, but I love the idea.
Lacona - Natural Language Commands for your Mac
Call up Lacona with a keyboard shortcut and type whatever you want to do. It gives intelligent suggestions as you type and then follows your orders. The developers have also open sourced the Elliptical JavaScript API used for language recognition, so you can use it in your own projects.

MultiMarkdown Composer and CriticMarkup

[Tweet : ADN : nvALT]

While it’s never really caught on with any of the larger publishers, CriticMarkup is a great tool when working on edits between collaborators using Markdown or other plain text formats. It lets you specify insertions, deletions, substitutions, and comments, all with the option to include attributions, timestamps, and other notes.

The syntax isn’t fast to type, though, and additional tools are needed to handle viewing it in any intuitive way. The CriticMarkup Toolkit offers a lot of integrations, but my favorite thus far has been the way that Fletcher Penney has built it into MultiMarkdown Composer.

As a side note, while MultiMarkdown Composer offers a CriticMarkup preview, I tend to use Marked 2. I’ve added quite a few CriticMarkup features to it, including the ability to automatically detect CriticMarkup syntax, process it for preview, and display a menu for switching between markup, edited, and original views. You can even set Marked as the default preview in MultiMarkdown Composer Preferences->Preview.

The first major feature in MultiMarkdown Composer of note is the Track Changes feature under the View menu. With this turned on, it will add the syntax for CriticMarkup automatically as you make changes. For example, if you delete some text it will surround it with {--deleted text--} instead of removing it, and it does a great job of deciding how to handle changes versus insertions. You can also define a default comment for changes in Preferences->CriticMarkup, so your changes can automatically be tagged (e.g. with your initials and a timestamp). This makes it easier for multiple people to offer input and have changes attributed.

Under View->CriticMarkup Preview, you can use Original Version or Changed Version to revert or accept all the changes in the document after reviewing. You can also see a panel with all of the changes in the document using Window->Show Change Panel (or using ⌘⇧V). This panel allows you to click a change to jump to and highlight it in the document, then click Accept or Reject in the panel to deal with each individual change.

Lastly, a feature I love despite that fact that I only need it on rare occasions: file comparison. You can take any open file and use File->Compare to Other File (⌘D) to create a new buffer containing a “diff” style comparison using CriticMarkup syntax. This makes it possible for someone who isn’t familiar with CriticMarkup to send you a revised file, and then easily see and handle the changes they made.

Another side note, if you want change tracking combined with version handling, Draft Control is a very capable and interesting option. Not so much for collaboration, but for your own work it’s pretty handy, and also works with Word, Pages, LibreOffice, Scrivener, LaTeX, PDF, and quite a few other filetypes.

All of these tools combined make it even easier to avoid using Word or Pages. For this and many other reasons (autocomplete link reference titles, easy footnotes, document navigation, and more), I highly recommend MultiMarkdown Composer as a primary Markdown editor on your Mac.

The Image2Icon winners

[Tweet : ADN : nvALT]

Thanks to everyone who participated in the Image2Icon giveaway! Here are the winners of the full unlock code:

  • Jacob McAbee
  • Don Blohowiak
  • Tom Stoeckel
  • Eric Beavers
  • Christian Hambly
  • B. Kim
  • Kunal Jha
  • Ornithologist Coder
  • Michael Leddy
  • Javed Aslam

The developers will be emailing the winners directly with their licenses. If you don’t hear from them, feel free to check in with me.

You can try out Image2Icon for free, and the In-App purchases will extend the functionality.