Welcome to the lab.

Why you should have Macstock on your calendar

[Tweet : nvALT]

Just so I don’t bury the lede, here’s a coupon code for $30 off Macstock tickets: MACSTOCK30OFF

Macstock is a relatively new conference that takes place in July near Chicago. After the demise of the Macworld conference, I was happy to see something starting up that would help satisfy my love of seeing all the people I follow and communicate with in the Mac world. So I went last year.

I loved it. While not nearly as well-attended as Macworld had become, the people who showed up were exactly the kind of people I wanted to connect with. The speaker lineup was fun, I learned a lot of new tricks, and got to talk with some of my favorite writers and podcasters. So this year I pitched a talk and guess what? I’ll be presenting!

I’m presenting on Spotlight. All the things you don’t know about Spotlight and how it can make your workflow and everyday life on your Mac smarter, faster, and more fun. There’s a great lineup of speakers, including Kirschen Seah of Free Range Coder, Mike Schmitz from Asian Efficiency and ScreenCastsOnline, Melissa Davis (TheMacMommy), Wally Cherwinski (whose presentation last year sparked my renewed interest in iPhone photography/videography), and Dave Hamilton, Bryan Chaffin, and Jeff Gamet from The Mac Observer.

Macstock is happening July 15th and 16th this year. You can attend one day for $89, both days for $169, and get the Premium ticket for $199, which includes Barry’s Midwest Mac Mingle and a complementary Macstock 2017 pint glass. And here’s a special deal… use MACSTOCK30OFF when registering for $30 off the 2-day or premium tickets.

Killing the iTunes Affiliate

[Tweet : nvALT]

I got an email from the iTunes Affiliate program at Apple today. It announced a great new website for ease of creating affiliate links. It closed out with the unapologetic statement that, by the way, the standard 7% earnings on app sales will be 2.5% starting May 1st.

First off, if you’re not familiar with affiliate linking, it’s when you add a code to a link to a product that gives you a commission on the sale. It cost nothing for the user who clicks it, and it serves as a way to encourage people to send others to buy the product. In most cases (and in the case of iTunes), the user doesn’t have to purchase the product they clicked into; anything they purchase from the company within a set timeframe will earn you a commission.

I use affiliate links on everything. I’ve built many tools, including SearchLink to make this easy, and it generates a small portion of my monthly income. Not a lot, but it’s enough to notice. On an average month, I’ll make about $200. With this cut, that same amount of traffic will bring me about $75 dollars. A popular post written for MacStories can earn me $200 in affiliate sales on its own. Again, that’s now $75. And the average post, even with MacStories traffic, earns $20 to $30… which is now $10 or less. It’s a drastic cut to mention in passing just one week before it takes effect.

Most people don’t make significant income off affiliate linking, but it doesn’t cost the writer anything and it earns something. But there are many sites whose business model is built on affiliate linking, in part or in whole. And it works. Well, it used to.

Talking with John Voorhees, an active MacStories contributor and creator of Blink, an iOS app specifically for creating iTunes affiliate links, we pondered possible reasons for this cut and its potential fallout. My best guess is this: Apple hosts a lot of free apps. They don’t make much of a cut on things that don’t cost money. But, if someone clicks in for a free app from an affiliate link, they still have to pay a commission on everything else that user buys before the link’s timeframe runs out. The link still brought them sales, though, and they’re only paying out on things they make money on. It’s a bit mysterious to me.

I can only assume that the investment isn’t paying off enough to continue at the 7% level. Plus, people using affiliate links aren’t spending anything to do so, so even a huge cut like this probably won’t cause any of us to stop doing it. Apple really doesn’t stand to lose traffic on this, only save money. I don’t love the idea, but it’s a winning proposition for Apple.

I doubt there’s a real lack of traffic to the App Stores in general, or that affiliate links count for a significant portion of traffic that otherwise wouldn’t be going to the App Store. What’s curious to me is that the cut applies only to apps, not to Music or Books, or anything else you can purchase through iTunes. It’s possible that this announcement is indicative of a further shift in the App Store business model, but I’m not going to speculate further without more information.

I’m guessing some sites you read are going to be showing you a few more ads. Some may shut down completely. I won’t be one of them, but I’ll be going out to eat less often until I replace the revenue.

Find your iOS text editor: iTextEditors updates

[Tweet : nvALT]

iTextEditors Logo

I created the iTextEditors comparison chart (for iOS text editors, obviously) back in 2012. I’ve made some improvements over the years, and kept it up to date thanks to help from readers. I made a change to the chart today that (as a side effect) made it really easy for me to see what apps were no longer available. So I’ve edited it down to only 78 apps to choose from… Oh, and I finally updated the logo, no more iOS 7 keyboard on it.

There have also been many submissions over the last 5 years; new apps, feature updates, and corrections. I don’t mention it frequently, but I do update the chart every time someone submits a form.

If you’re an app developer, make sure your iOS text editor is listed and that the information is correct. If not, let me know! The page gets an impressive thousands of visits every month, so it’s worth it to make sure you’re getting the exposure.

If you’re a user and notice a mistake or omission on your favorite editor, let me know that as well! You can submit a form with just a note, no need to fill out the whole thing for an app that already exists.

I intend to keep this running, and it’s being updated regularly (there’s a date stamp under the chart showing last update). I also hope to finally get around to making a mobile version of it, adding additional criteria/columns, and possibly expanding the idea to categories other than just text editors.

Check out the chart, and help keep it up to date!

Web Excursions for April 18, 2017

[Tweet : nvALT]

Web excursions brought to you by MindMeister, the best collaborative mind mapping software out there.

Found via a post from Jason Snell about podcast transcription, I’ve been trying out this automatic audio post production service. I set it up with transcription via the Google Cloud Speech platform and am actually very impressed with the results. Good enough for fuzy full-text search, anyway. And the audio processing is surprisingly good.
This is a very interesting Sublime Text package that actually creates a split view Markdown editor with live preview right in Sublime. I hadn’t previously even realized this was feasible.
Best VPN Services
A thorough comparison of currently available VPN services, covering speed, encryption level, usability and cost. The site isn’t affiliated with any particular VPN, and the ranking/scoring is fair (and useful).
From Christopher Hannah: a little CLI written in Swift that uses my TitleCase API to convert input to a properly title-cased string from the command line or as part of a script pipeline.
Apparix augmenting the command-line with directory bookmarks
Apparix is a CLI that augments directory navigation with bookmarks, distant listing, and distant editing. I need to dig deeper on this one, but thus far it’s bashmarks on steroids.
Typ.io Fonts that go together
Web font inspiration and pairing ideas.

Check out MindMeister and start brainstorming, collaborating, and boosting productivity.

A Bolognese from The Lab

[Tweet : nvALT]

I may have mentioned my recent deep dive into cooking before. It’s been a fun journey, I’ve learned a lot, and actually lost a lot of weight on the way (but mostly because of exercise…). I most enjoy complex, time-consuming recipes as they have room for experimentation and a little room for error followed by a great feeling of satisfaction when it actually goes right. Oh, and an amazing meal.

This bolognese sauce is the result of many hours of all-out experimentation. It started when I decided to make my own pasta. I got good at it, but wanted a sauce worthy of the time and effort that takes. So why not spend an extra six hours making one, right? After seven major variations and a few failures, I’ve got it down to a four hour process (most of which is a slow simmer) that I’ve replicated a few times now. It’s best served with a wide noodle pasta like pappardelle or fettuccine, but if you’re making your own an inch-wide noodle cut from a pasta sheet is amazing with it.

Bolognese is a meat-based sauce originating from Bologna, Italy. It’s a lot of meat. If you’re vegetarian, don’t try to replicate this with TVP or anything else. The whole point of it is the meat and the fat. I was vegetarian for 17 years, and I’m pretty sure the effort is better spent making actually good vegetarian food.

Since we’re on the topic, we’ll talk about health for a moment. This recipe involves a decadent amount of salt and fat. I’ve had high blood pressure and cholesterol since my late teens, and it got worse when I gained a lot of weight. I tried controlling salt and fat intake, but it didn’t make any difference. Since I’ve lost the weight and started regular exercise, my blood pressure and cholesterol are perfectly within normal range. I’m eating drastically higher amounts of fat and salt (and way less sugar) and doing better than ever. I’m absolutely not a doctor and am offering no nutritional advice, I’m just saying that avoiding fat and salt caused more boredom than it provided better health for me.

Ok, back to the recipe.

I moved away from the traditional base of celery, carrots, and onion for a few permutations and learned a lot in the process, but I’ve gone back to it for this “final1” variation. So this is almost traditional.

A few notes

The beef: I don’t eat a lot of beef, but when I do I source all of my meat locally. If you can find a good provider of grass-fed beef in your area, it’s worth it. This recipe uses only beef, but you can substitute in pork up to 50% of the meat content without changing the directions. I’ve also seen it with chicken livers, but I really can’t get into the taste of liver.

For the beef, the 4/1 meat-to-fat ratio is vital. Get 80% lean/20% fat ground beef. Don’t screw around with that.

The pot: this recipe (aside from roasting the spices) is all be done in a single pan/pot, so it needs to be pretty large. I’ve found a 5-quart sauté pan or a dutch oven to be ideal.

The wine: this recipe also calls for a significant amount of wine. Use a good, bold red wine, and one that you’d be happy to drink. “Cooking wine” seems like a valid idea until you try it with good wine. I recommend a Zinfandel or Cabernet for this. My last version of this was made with Bogle Old Vine Zinfandel.

Salt: one thing I’ve learned in the last year is that the line between the perfect amount of salt and way too much salt is thinner than you think. One of my favorite chefs is Yotam Ottolenghi, who shared his quest to find the perfect amount of salt in an interview that I can’t find now. But the ratio of salt in his recipe demonstrates the concept nicely. Try the Black Pepper Tofu, you’ll see.

Roasted spices: you can use dried spices if you want to, but you absolutely can’t beat the results of roasting the whole seeds along with the bay leaves and red pepper flakes, then grinding it down. Get a spice mill if you don’t have one.

Thyme and nutmeg: I’m actually not a huge fan of thyme in most dishes, but this one is better with it. Take 4 or 5 sprigs of time and fashion them into a bundle tied well with string. If not properly secured, you will end up with stems in your sauce.

The nutmeg absolutely has to be ground from whole nutmeg. You only need a few scrapes with a zester to do the trick. This $10 zester has more than made up for it’s cost, as it gets used for grating harder ingredients as well as zesting citrus (lemon is an amazing ingredient in unexpected places).

Spiciness: This recipe calls for red pepper flakes and whole pickled peppers. The same-day result is warm but not unbearable to anyone who likes a little heat. Refrigerating overnight increases the spiciness, though, so be aware and moderate the spicy elements as needed for your or your guests’ tastes.

Simmer vs braise: I’ve tried cooking this by simmering for 3-4 hours as well as braising in an oven at low temp (250°) for 6-8 hours. I definitely prefer the simmered version. It takes a little more manual effort, but it’s worth it. If you want something you can put 45m into and then leave overnight, though, braising instead of simmering is an option.

Texture: Multiple recipes I’ve tried have called for using an immersion blender to smooth out the sauce. I hated the resulting texture. I like it chunky. Feel free to make your own choice there.

Brett’s Bolognese

  • Serves: 6
  • Prep time: 45 minutes
  • Cook time: 4 hours



  • 2 bay leaves
  • 3 whole cloves
  • 2 teaspoons fennel seeds
  • 1 1/2 teaspoons crushed red pepper flakes
  • 1/2 teaspoon black peppercorns
  • 1 tablespoon olive oil
  • 1 1/2 teaspoons coarse sea salt, plus more for seasoning
  • 1/2 cup roughly chopped onion
  • 2/3 cup roughly chopped celery
  • 2/3 cup roughly chopped carrot
  • 1/2 small bunch thyme
  • 1/4 cup pickled peppers
  • 6 garlic cloves, finely chopped
  • Whole nutmeg
  • 1 1/2 cups canned whole tomatoes, cut up, with their juice
  • 2 Tbsp tomato paste (optional)
  • 2 cups red wine
  • 1 1/2 pounds ground beef chuck (20% fat)
  • 1 1/2 cups whole milk
  • 2 tablespoons red wine vinegar
  • 2 Tbsp Fresh Basil, chopped
  • 1/4 cup Fresh Mint, chopped
  • A spice mill or a mortar and pestle

For serving:

  • 3 ounces Parmesan, finely grated (about ¾ cup)
  • Freshly ground black pepper


Start with the spice mix. Dry roast the bay leaves, cloves, fennel seeds, red pepper flakes, and black peppercorns in a small pan until it becomes very aromatic. Don’t burn them. Remove from heat and cool for a few minutes before using a spice mill or mortar and pestle to grind them into a powder. (This is way easier with a spice mill than a pestle, totally worth a few bucks to have one around.)

Use a food processor to purée the garlic, celery, onions, and carrots. Heat 1 Tbsp of olive oil in your pot over medium heat until it glimmers and then add the purée to it. Cook until it softens and starts to brown, then add the pickled peppers (whole), the spice mixture from the first step, and 1 1/2 tsp of sea salt. Cook at medium heat until it’s browned and all water has evaporated. This can take about 15 minutes.

Break the ground beef up with a fork and add it to the pot. Season it with some more salt (but not excessively, you’ll be adding more salt as this goes). Mix to coat and then continue cooking over medium heat until browned. I don’t just mean the pink has disappeared, I mean browned almost to the point where you think it’s burning. Trust me, browned meat tastes great in a sauce like this.

With a wooden spoon, scrape up any burnt bits from the pot and mix in the tomatoes. You can add a couple of tablespoons of tomato paste here for thickness, but it’s not required. Lower the heat to medium-low and add a cup of whole milk and a grating of nutmeg. Cook this, stirring occasionally, until the milk has completely evaporated, 5-10 minutes.

Add the wine and the bundle of thyme and continue cooking to reduce by half. (Take note of where on the side of the pan the liquid comes up to and watch for the level to drop. I usually raise the temperature up just a little for this part.) When the wine is reduced, add 2 cups of water and bring it to a rapid simmer. Then lower the temperature to a very, very slow simmer and set a timer for 3.5 hours. Leave it to simmer, uncovered.

You don’t need to stir very often. Check it at 30 minute intervals and give it a thorough stir. After the first hour, start taste testing and add salt as desired. Throughout the cook time, as the water evaporates, add more by 1/4–1/2 cup at a time. The repeated reduction is what will give you the most flavorful and melt-in-your-mouth meat. When the time is up, though, you want the liquid to be evaporated and the fat separated from the sauce.

Remove from heat and stir in fresh basil. After it’s cooled for 5-6 minutes, stir in the fresh mint. This sounds weird, I know, but it’s awesome and works well in just about any tomato-based soup/sauce I’ve tried it with.

Serve with a wide pasta (pappardelle or fettuccine), buttered, and top with parmesan and black pepper. Enjoy the looks of ecstasy on your friends and family’s faces. The sauce will keep refrigerated for 5 days, and up to a month in the freezer. Note that the spiciness will increase over a few days in refrigeration.

  1. We both know that’s not true.

SearchLink and Markdown Service Tools updates

[Tweet : nvALT]

I’ve just updated the SearchLink macOS Service to fix a recent issue with plain text not being run through a default search. Version 2.2.5 is up, please contact me if you have any issues.

I’ve also added a new Service to the Markdown Service Tools called “Clean Up Smart Quotes.” It’s rather self-explanatory, but if you’ve ever been bitten by invalid, non-ascii characters when moving documents from one place to another, it will be useful. It will straighten all smart (curly) quotes as well as convert ellipsis (…) to triple dots.

SearchLink v2.2.5

Generate Markdown links from web searches without leaving your editor.

Updated Mon Apr 03 2017.

DonateMore info…

Markdown Service Tools v2.15

The Markdown Service Tools are a collection of OS X Services designed to make creating Markdown-formatted text that much easier. Services work in any OS X Cocoa based application.

Updated Mon Apr 03 2017.

DonateMore info…

Web Excursions for March 24, 2017

[Tweet : nvALT]

Web excursions brought to you by MindMeister, the best collaborative mind mapping software out there.

MultiMarkdown Converter Pro
MultiMarkdown 6 is complete and progress is moving forward on a new version of MultiMarkdown Composer. You can read about changes/improvements and get the CLI version of MMD 6 on GitHub, and Fletcher has also released a GUI converter for drag-and-drop conversion on the Mac App Store.
Spark for Mac
Spark from Readdle is my favorite email client on iOS, and the Mac version is making some exciting improvements. This latest update includes labels, improved sidebar management, more options for folder management (Color Tags, Recents, Favorites and Smart Folders), and improved Smart Search with boolean operators.
An open source wiki app built on NodeJS, Git and Markdown. It will run on Linux, Windows, or macOS servers, saves all content to Markdown files, and automatically syncs with a Git repository. Comes complete with a nice editor with Markdown highlighting, access control and authentication options, and a built-in search engine.
Videoloupe for Mac - The Video Player for Videographers
From the creator of Fileloupe, Videoloupe is the “video player for videographers.” It offers extensive playback controls, editing and adjustment tools, and a wide range of export/conversion options. Great for pros, but just about all of it is useful to anyone who works with videos regularly.
48 Incredibly Short, Clean Jokes That Are Actually Funny.
I can’t help it. These are so bad/good that I’m making an effort to memorize them all. This is one of the ways I avoid being invited to too many dinners and parties.

Check out MindMeister and start brainstorming, collaborating, and boosting productivity.