Welcome to the lab.

Marked 2.5.4: Updates, fixes, and improvements

[Tweet : ADN : nvALT]

I tweeted about the 2.5.3 release of Marked 2 a couple of months ago. Overall, it’s been a popular update, but a mysterious crash for a non-trivial portion of users consumed some time. I’ve finally solved it1, and pushed out the 2.5.4 update to direct customers. A note for MAS customers in a bit.

**Update: Marked 2.5.4 is now approved in the MAS as well. (Feb 13, 2016)*

New stuff

In addition to the major features of Marked 2.5, the latest version adds a few new ones:

  • An option to include/exclude image captions from word count
  • Error navigation (next/previous) for spelling/grammar add-on
  • Shows the text zoom level in title bar when not at 100%
  • A MARKED_CSS_PATH environment variable for custom processors
  • Option to detect and style RTL text per-paragraph in document

That last one is handy, as it allows a document to contain both Arabic and Latin sections in the same document. RTL paragraphs have some default styling applied to them, but also receive a class of .rtl which can be used in custom styles and global CSS to adjust them per theme.

Fixed stuff

There are also some fixes/improvements to note:

The new spelling/grammar checker (In App Purchase) handles language detection per-paragraph — a feature that was well-received — but UK users were getting shafted because it would default to US spelling (e.g. “colour” would show up as a spelling error). This is fixed! The default language now properly recognizes the system region settings.

For advanced users writing their own pre-processors, there was an issue where the preprocessor would run before included files were compiled. This is fixed now, so a multi-file document can be pre-processed in its entirety.

There are some improvements to Outline Mode, primarily the ability to export an outline to HTML and PDF properly.

I had also caused some slowdown in link validation (yes, Marked can check all urls in your document to make sure they’re valid) when I worked on improving its flexibility with edge cases. The latest update restores the speed and alleviates blocking, so long checks run in the background without freezing the scroll or beachballing.

For security, all update-related endpoints in the direct version are now secure HTTPS connections.

MAS Users

Version 2.5.4 has been submitted for review. Apple had approved 2.5.3, but after discovering the crash in the direct version, I pulled it from release. It took me longer than I thought to fix the issue, but the versions should reach parity soon.

The first 2.5.4 build I submitted was immediately rejected (well, once it moved out of a 3-day “Waiting for Review” period) for having a “temporary exception that we’ve deemed unnecessary.” It was something that I’d added multiple versions ago and that had always been approved without issue. I’ve had a few builds rejected over the years, and they’re almost always for inconsistent reasons. That’s another post.

System Integrity Protection and Custom Processors

The main issue that the App Store version has developed – as of El Capitain – is that binary custom processors such as Pandoc and MultiMarkdown cannot be executed by Marked without disabling System Integrity Protection. Because I absolutely do not want to require users to remove security features system-wide, I’m offering a free cross-grade to the direct version, which doesn’t face this issue. Script-based custom processors and Ruby/Python libraries still work2, but if you’re using a binary, feel free to contact me about moving your license to the non-Sandboxed version.

Thanks to all the Marked users who offer feedback and suggestions, and especially to those who were so helpful in tracking down the cause of the crashing bug.

Next Up

When I’m not working on the successor to nvALT (which will be called BitWriter, and there will be a beta list available for signup soon), I’m dedicated to finishing the rewrite of Marked 2’s RTF export capabilities. Hopefully I’ll be able to juggle both and get them out sooner than later…

Marked is currently on sale for $9.99, and if you purchase on the MAS now, you’ll get the above feature updates for free as soon as it’s approved!

  1. In fixing recognition of en_GB settings, I had changed a CFStringRef to a bridged release without removing the following CFRelease on the pointer, all in a background thread that made crash logs less than helpful.

  2. Just set your custom processor to a system interpreter (e.g. /usr/bin/ruby) and set the path to your script in the argument field (with spaces escaped).

Web Excursions for February 12, 2016

[Tweet : ADN : nvALT]

Quartz - News in a whole new way
An interesting take on the news as a text-based conversation.
A Day at the Stupid Hackathon 2016
A piece from Popular Mechanics about the Stupid Hackathon, which might be the first hackathon I’ve ever wished I’d attended.

[Instead] of self-seriously creating nothing out of something, these hackers are flipping the recipe on its head—they celebrate the nothing, creating a something that is stupidly brilliant.

gabriel-john/utterson: A Jekyll web backend
A web interface for Jekyll blog management. It would take some hacking to work with my current incarnation of Jekyll, but it’s a good start.
Sparkle Updater Framework HTTP man-in-the-middle vulnerability
An obvious (in retrospect) vulnerability in apps that use Sparkle for automatic updates (most apps outside of the MAS). The fix is pretty easy for developers, and as of Marked 2.5.4 (which is available now) all of the updates and release notes are served over HTTPS.
You can find additional details on the issue at Vulnerable Security.
Bonsai - Best Freelance Tools
A nice compilation of tools for freelancers (and devs and designers in general). Project management, accounting, color tools, font collections, and more.

Better YouTube thumbnail images

[Tweet : ADN : nvALT]

This is an in-case-you-didn’t-already-know tip, and is probably common knowledge to anyone who started writing YouTube scripts after v3 of the YouTube API came out. The gist is that in addition to the tiny thumbnail images that have always been available at a url containing the video id, you can also get a range of qualities and sizes.

Here’s an example url that will grab the largest image size available for video id M5avz98UJXM:


The quality/size is specified in the name of the requested JPG. Other options include:

  • default.jpg (120x90 pixel default thumbnail)
  • mqdefault.jpg (320x180)
  • hqdefault.jpg (480x360, letterboxed)
  • sddefault.jpg (640x480, letterboxed)
  • 0, 1, 2, or 3.jpg (small start, middle, and end frame thumbnails)

The default thumbnail can be set on your own videos using the video dashboard in YouTube. For other people’s videos, all of the above options will return whatever they’ve set or YouTube has chosen automatically. I haven’t seen an option to get higher quality versions of the 0-3 frames.

Note that the maxresdefault.jpg and mqdefault.jpg options do not have letterboxing (black stripes at top and bottom) added, but hqdefault.jpg and sddefault.jpg do.

I updated the JavaScript portion of my Lazy YouTube plugin for Jekyll (details) to use maxresdefault.jpg a while ago. I’d love to find an option to load @1x and @2x sizes based on screen resolution detection, but for now it’s max quality or bad quality.

Web Excursions for February 05, 2016

[Tweet : ADN : nvALT]

This week’s web excursions brought to you by the January 2016 Mac Bundle from Creatable.

My Bathroom Mirror Is Smarter Than Yours — Medium
This is by far the best bathroom augmentation I’ve seen since installing my (inexpensive and quite wonderful) dual rainfall shower head.
I’m a fan of creative placeholder images when mocking up websites in the browser. This service offers a bit of control over content, overlay text (plus font and color), size, and even image effects.
A Beginner’s Guide to Kerning Like a Designer – Design School
For designers, a great guide to kerning basics.
A CLI interface for the Pinboard API. I built something similar but never published it. It was mostly for the purpose of easily renaming and merging tags from the command line. My old friend Elliott Cable made a more polished one with broader usage.
An easy system for building Git commits as you work and then running a commit without having to edit the commit notes. I’m also intrigued by the idea behind Commit Comments. (Via OneThingWell)

Check out the January 2016 Mac Bundle with 10 great Mac apps for $15.

Slogger with Day One 2

[Tweet : ADN : nvALT]

Day One 2 is out1, and I’m very happy to say that the team there has offered an easy way to keep Slogger working with it. If you’re not familiar with either, check out Day One on the App Store and Slogger in my projects.

Previously, Day One used a folder of XML files as the entries in a journal. It’s moved to a database format now, but there’s an “Auto Import” folder created for each journal. Because Slogger was built around the XML pile, some of the features that allow searching and modification of journals will stop working, but I doubt many people besides me used those much anyway.

To get Slogger working with the new version, you simply need to change your storage path directly to the auto import folder (stop using the “icloud” value as that won’t work anymore). Here’s an example:

storage: /Users/[username]/Library/Group Containers/5U8NS4GX82.dayoneapp2/Data/Auto Import/Default Journal.dayone/

The /Library/Group Containers/5U8NS4GX82.dayoneapp2/Data/Auto Import/Default Journal.dayone/ portion should remain constant, so only your system username needs editing.

Note that only the Default Journal is currently available for auto import. I’m hoping that a future version will be able to import to specific secondary journals using the same method.

I’ll look further into incorporating some of the newer features (such as multiple images, which are supported in both Tweets and Day One 2), but for now that one change will keep your current system running.

  1. Yes, I think they’re as conflicted about the naming convention as you are.

Recap: January

[Tweet : ADN : nvALT]

Some posts of interest from January:

First, thanks to the sponsors from January:

Workflows for animated GIFs (Jan 19th)
If you want to use animated GIFs on a blog, or already are, here are some tips for capturing, editing, and optimizing them. I updated the GIF tag plugin for Jekyll as well.
Quick reminders from Terminal (Jan 22nd)
A Bash script for creating quick, short-term alerts/reminders while working in Terminal.
HoudahSpot 4.1 (Jan 25th)
My very late review of the update to this excellent file searching tool for Mac.
Macstock 2016 (Jan 26th)
I’m going, are you?

Recaps are a quick, curated summary of each month’s posts on this site. You can keep up on the site with RSS, or subscribe specifically to the Recaps and get monthly summaries in digest format.

Macstock 2016

[Tweet : ADN : nvALT]

I always loved attending Macworld, and almost entirely because of the people I’d meet and friends I’d see. Until yesterday, I thought the days we could all get together for some Mac love with a ton of my favorite Mac people were over. Then I was informed that a new conference (this is the second year) called Macstock was running. I’m so out of the loop.

It’s close enough to me that I can drive (Chicago area), and the price for a 2-day pass and ticket for the BBQ is very reasonably priced at $150. Plus, there’s early bird pricing until February 29th, using the code macstock50off to save $50.

The speaker list is wonderful:

  • Victor Cajiao (Terratech Podcast)
  • Dr. Robert Carter (the Tech Doctor Blog And Podcast)
  • Wally Cherwinski (Magic 22)
  • Adam Christianson (The MacCast)
  • Melissa Davis (themacmommy)
  • Dave Ginsburg (Suburban Chicago Apple Users)
  • Allison Hartley (The Tech Doctor Blog And Podcast)
  • Matt Hillyer
  • Chuck Joiner (MacVoices)
  • Julie Kuehl
  • Don Mcallister (ScreencastsOnline)
  • Tim Robertson (TechFan)
  • Mike Schmitz
  • Kirschen Seah
  • Guy Serle (mymac.com Podcast)
  • Allison Sheridan (nosillacast)
  • Jodi Spangler (Lakeshore Mac)

The conference runs from July 16th–17th. I’ve already booked my ticket and reserved lodging. The more the merrier, so go grab a ticket and join me!

HoudahSpot 4.1

[Tweet : ADN : nvALT]

I’m months late in writing about HoudahSpot 4.1, which is odd because it adds the one feature I’d always wanted: the ability to save HoudahSpot searches as Finder Smart Folders. I’ll get to that in one second. Full disclosure, Houdah has sponsored this blog, but this review is 100% unpaid and prompted by love.

For people who haven’t used HoudahSpot before, it’s a spectacularly powerful way to locate, analyze, and work with all of the files on your Mac. It’s everything Spotlight can do, amplified by at least double.

I wrote about the 4.0 release when it came out, but here’s a short list of features I love:

  • Visual criteria builder similar to Finder search, but with more flexibility (hundreds of options)
  • Snippets: Individual search criteria (or groups of criteria) that you can save and then drag into new searches
  • Search multiple locations at once, and exclude folders within selected locations
  • Quickly create searches using familiar Spotlight syntax (e.g. “kind:PDF date:today”) and then extend them
  • Automation via AppleScript and integration with LaunchBar, Alfred, Butler, and more

I backhandedly requested the ability to save searches as Smart Folders a while back, and developer Pierre Bernard was gracious enough to include the feature in v4.1. Because HoudahSpot provides search capabilities beyond what Spotlight does by default, not all of the criteria can be exported as Smart Folders, but a majority of my common searches work wonderfully. It provides both an easy way to create Smart Folders, and easy access to the results right from within Finder.

Most of the other updates in 4.1 are refinements to some of the existing features. For me, the handiest of these is the ability to disable individual search criteria. In combination with HoudahSpot’s template features, it allows you to have a set of “potential” criteria in a template that you can enable as needed, rather than having to create multiple templates for efficient searching.

The built-in text preview can now jump through highlighted matches within the text, which makes HoudahSpot not only great for finding files, but also for drilling all the way down to the info you need within a file. 4.1 also brings additional options when searching by file extension or file type (“kind” Spotlight searches).

HoudahSpot has a feature that allows search results to be copied as Tab Delimited text, and that option now includes column headers for easy incorporation into spreadsheet documents or other parsing.

If you’re a HoudahSpot user, you’re probably already enjoying these refinements (as it’s a free upgrade for v4 owners). If you haven’t tried it, there’s a free trial available and I highly recommend it for anyone who’s accumulated enough data on their Mac to spend time in Spotlight tracking it down (which I think is anyone who’s had a Mac for more than 6 months, but I don’t know how “normal” people work…).

HoudahSpot 4.1 is $29 US for a single license. Find more info and grab the free trial at Houdah.com.