Author's Posts

In my app ScreenFloat, I use the command line tool screencapture via NSTask to create screenshots. On OS X El Capitan and earlier versions of Apple’s operating system, this worked perfectly fine. Now, on macOS Sierra, I’ve been getting reports that screenshot creation didn’t work anymore, so I investigated.

At first I thought it might be the keyboard shortcut API that has undergone some changes, but that doesn’t seem to be the case, as I saw something actually occurred when I pressed the keyboard shortcut – Xcode’s console printed:

screencapture: cannot run two interactive screen captures at a time

Since I was absolutely sure I’m not launching screencapture via NSTasktwice, I took to Console.app to see if anything unusual was reported there. And there it was:

Sandbox Violation of ScreenFloat on macOS SierraThe output in Console.app when trying to launch an interactive screencapture with NSTask.

deny mach-register

So registering a global Mach service is denied on macOS Sierra. In the back of my mind, I remembered a temporary exception entitlement, but it wasn’t quite the same – com.apple.security.temporary-exception.mach-lookup.global-name. I tried adding it to ScreenFloat’s entitlements file, with com.apple.screencapture.interactive as its value (this temporary entitlement expects an array of string values), but that didn’t help – the same denial and console output occurred. On a hunch, I tried using …mach-register.global-name instead of …mach-lookup.global-name and – tada – it worked!

So I’m all set, right? Well…

Temporary Exception Entitlements

Apple offers a couple of temporary exception entitlements. They may or may not be granted to your app during Apple’s review process. But going through the list, it’s clear that …mach-register.global-name is nowhere to be found, so it’s kind of a private entitlement – which makes it even less likely for it to be granted to your app.

Digging Further

Seeing as the sandbox denial points explicitly to com.apple.screencapture.interactive, not just com.apple.screencapture generally, I tried creating a non-interactive screencapture session with NSTask. To my surprise, it worked – without the entitlement.

So I tried a different command line utility – which. (which will return the executable path to the given command line utility, for example, which screencapture would return /usr/sbin/screencapture). Again, it worked. And again, without the entitlement.

It makes me believe (and hope) that the behavior we see for com.apple.screencapture.interactive is not desired, so I’ve filed a bug report with Apple in the hopes that they can set the record straight soon.

For now, I hope ScreenFloat will be granted the temporary entitlement just so it is functional again on macOS Sierra for the time being. However, if this is in fact the desired behavior, I will have to write my own screencapture utility so ScreenFloat can remain on the Mac App Store.

Bug Reporting

For anyone who’s interested or in a position to view it, here’s the bug report I’ve filed with Apple: rdar://27610157. I do hope to get an answer soon.

Update August 2nd, 2016

As I stated above, com.apple.security.temporary-exception.mach-register.global-name isn’t documented anywhere. Which is also the reason you get an error when trying to submit an app with such an entitlement to iTunes Connect:

ERROR ITMS-90285

So, no dice on the temporary exception. Having to write my own screenshot utility seems more and more likely. I hope I can make it in time for macOS Sierra.

Update September 9th, 2016

The temporary exception is now valid and will go through to Apple’s App Review without a hitch. My own solution is not necessary at this time, but I’m still going to be working on it – you never know.

 

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most). Thank you 🙂

Read more

… Did

Yoink Bugfix Update (website)
Of all the versions of Yoink I released over the past several years, 3.2 probably has been one of the most stable and bug-free so far. The closed beta might have made the difference here, perhaps I’ll do it again with future updates (for feature-releases, that is).
All stability aside, there were a couple of minor issues which I’m going to be addressing with the v3.2.1.
Currently, Yoink’s XPC process essForceTouchListener (which is used to see if any Force Touch-capable devices are available) looks for all kinds of devices, not just mice. That’s definitely an oversight on my part and will be fixed. There’s no need to look for graphics cards when all I’m interested in is a trackpad.
Also related to Force Touch, when a file was dragged out with a physical press of the Trackpad, there would be a slight delay which threw off some users. Also fixed with the next release.

Curiously, there are two bugs which are out of my hands:

  • Microsoft Outlook Crash: Sometimes, when dragging a file to a new message as an attachment from Yoink, Outlook would crash. After some testing, I found out not Yoink is causing this, but Outlook itself – the crash happens when dragging from Finder, as well. For some reason, Outlook doesn’t like files that have a ridiculously long file path (like, a file inside a twenty-folder-hierarchy). I believe it has to do with the file path’s string’s entire length. Filed a bug report with Microsoft.
  • QuickLook not working for weblocs: For weblocs, all you get is an icon of the webloc file, although Finder would load and display the website the webloc points to. For all I know, it’s a sandbox issue. Just to test things out, I tried giving Yoink access to the internet (as a client and as a server, just to be sure), and it got rid of an error message related to the issue (something about com.apple.nsurlstorage-cache), but it didn’t fix the issue at hand. Bug report filed with Apple.
More Contract Work
It’s an interesting, Austrian startup I’m doing work for (an iOS app).
I didn’t anticipate how different working for somebody would feel, as far as having to show your work is concerned.
You’d think that, as an indie developer, releasing your app into the wild, right into the hands of thousands, possibly millions of people at once would make you the most anxious you could possibly get. However, showing your work to just a handful of people in a startup is just as nerve-wrecking, if not more so. Especially when you’re given (more or less) carte blanche in terms of how the app feels and looks.
I don’t know what exactly makes those two so different. Perhaps it’s the direct feedback you get in a meeting. Or maybe it’s the dread of having to watch your opposite’s facial expression turn from a smile to a frown.
Anyway, we’ve passed the prototype / proof-of-concept stage recently and are now talking about where to go from here. I have not been fired yet, so I take that as a good sign 😉
I’m also learning a good deal about new APIs working on it: NSURLSession is amazing and I’m becoming more and more a devoted fan of AutoLayout with each and every new Storyboard or XIB I create.

… Downloaded

LEGO Indiana Jones 2: The Adventure Continues IconLEGO Indiana Jones 2: The Adventure Continues (mac app store)
I prefer the first part, “The Original Trilogy”, but running it on OS X El Capitan doesn’t work, and patching it isn’t one of publisher Feral‘s top priority, according to a support mail I received from them.
So I made do with the second part instead. Besides the fourth movie, the first three are also covered (albeit, they’re “silier” than in the first game, which is kind of a pity). Overall, it’s a pretty fun game.
On the Mac, I usually only play with mouse and keyboard. Lately, I’ve been playing some games with a PS 3 controller and I must say, it makes a world of difference – and I used to be a die-hard mouse-and-keyboard player.
The only console I ever possessed was an SNES way, way back, so I never had the chance to really get used to the PlayStation or N64 controllers, which is why I prefer playing with a keyboard and mouse. But I see that changing now.

Mimpi Dreams IconMimpi Dreams (app store)
My girlfriend played the first part and loved it, and she had nothing less to say about the second installment.
“Mimpi Dreams” was a little easier than the first part, though.

Grandpa and the Zombies IconGrandpa and the Zombies (app store)
Downloaded it because it vaguely reminded me of an all-time favorite of mine: Harry – The Handsome Executive (website – not available anymore) and it is pretty fun for a short break.

Procreate Pocket IconProcreate Pocket (app store)
A powerful and feature-rich painting app. It says so in their description – and they aren’t lying.

… Read

On Subscription Fatigue (macsparky)
“I think, in general, it’s easier to pay $12 once then the thought of paying one dollar every month going forward. Now multiply that times the 20 or 30 apps that you really love and things just get crazy.”
That about sums up my thoughts on this as well. It’s interesting for one app, but since you have more than one app installed on your phone, this just becomes a hassle and unmanageable.

… Watched

Malcolm in the Middle DVD CoverMalcolm in the Middle (amazon)
I just had to start watching that show again – don’t ask me why.
To me, this is one of the best TV series ever produced. There is not a single episode I don’t like or don’t consider funny, and it makes me laugh from the beginning to the end. No downward spiral and endless carrying on just for the heck of it.
Take ‘The Big Bang Theory’ for example. The first two, maybe three (although it started there) seasons were really funny, and then “it was all downhill from there”, to quote Sheldon. Sad, but true for most of the comedy shows out there.

… Ate

Self-Made SamosasSamosas with Self-Made Tamarind- and Mango Chutney as a starter…

Rice… and Creamy Tomato-Eggplant-Rice as the main course.

… Went to See

Prater, ViennaA family trip to the Prater in Vienna. From left to right: My cousin Alex, his wife Victoria, my girlfriend Britta and me.

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more

… Did

Released SiriMote v1.2 (blog postwebsite)
The new version allows for putting the Mac or its displays to sleep using the Apple TV Siri Remote, is localized in German and has a few of minor improvements.

Tried a DSLR
For the birthday of my girlfriend’s mom, we bought her a DSLR (Canon EOS 1200D) and I can only say: I’m hooked.
I only ever take photos with my iPhone 5s – and I have been quite satisfied with it. But using a “real” camera again is something different entirely.
I didn’t even try too hard, and this is what came out:

Photo Shot with Canon EOS 1200D

I think I’ll have to get one myself now. It’ll probably be a Canon as well – it would just make sense since my girlfriend’s mom and I could exchange lenses then.

Contract Work
In March, I first considered doing contract work until I ultimately decided not to do it because of the project being too big (blog post).
A little while ago, though, I was contacted by a former colleague about a possible collaboration on an iOS app and I decided to take it.
There’s not much I can say about it yet, other than that the team is great and full of spirit. I’m quite happy to be on board.

… Didn’t Do That I Had Planned

Gestures in SiriMote v1.2
Using private APIs, I’ve been able to observe touches on the Apple TV Siri Remote’s trackpad.
However, I haven’t been able to turn those into gestures yet – simple gestures, which is all I’m planning to support with SiriMote. I wish I had been able to release it with version 1.2, but the lack of time was a severe hinderance.

… Downloaded

The Witcher IconThe Witcher: Enhanced Edition (gog)
Both The Witcher and its sequel, The Witcher 2, were (and currently still are) on sale 85% off on gog.com, so I purchased them. I’ve played about the first 30 minutes of the first game and I like it so far. I’m pretty much going into this blind as I haven’t been following The Witcher series at all. I’ve only played the board game with my brother and cousins. It’s confusing as heck due to its complexity. But it’s fun. So is the video game.

The Witcher 2 IconThe Witcher 2: Assassins of Kings Enhanced Edition (mac app store, gog)
Because I haven’t finished the first game, I have yet to play this sequel. But again, it was (and still is) on sale, so how could anyone go wrong 😉

Uncharted: Fortune Hunter IconUncharted: Fortune Hunter (app store)
Strongly reminds me of Lara Croft GO (app store). But that’s not at all a bad thing!

Ancient Aliens IconAncient Aliens (app store)
A “city-builder” game not without its flaws, but Giorgio A. Tsoukalos’ alter-ego’s grimaces alone make it worth your while.

… Read

Software solves the mystery of a 2,500 year-old poem by Sappho (arstechnica)
Using clues from the poem itself, they used astronomer’s software to find out when exactly it was written.

Hear AI play Beethoven like The Beatles (techcrunch)
What it sounds like when artificial intelligence learns to play “Ode to Joy” in the style of the Beatles’ “Penny Lane” (and more).

My App got Some Press And Here’s What I Learned (medium)
Some insight into how to pitch to blogs like TechCrunch.

Uncharted 4: A Thief’s End Review (polygon)
I don’t own a PS 4, but this game makes me wish I did. I actually borrowed my girlfriend’s brother’s PS 3 so I could borrow the first three instalments from my cousin and play them. I’m halfway through the first game now and I’ve been enjoying every single second of it.

A Brain Dump of What I Worked on for Uncharted 4 (allenchou)
Interesting insights on some of the systems built for Uncharted 4.

How They Made Warcraft Into a Movie (polygon)
A short behind-the-scenes look into the upcoming Warcraft movie.

Eric Clapton Talks Making of “Slowhand” and his Spontaneous New LP (rollingstone)
Great interview.

SimCity 2013’s Creative Director Explains What Went Right and What Went So, So Wrong (polygon)
I read all the headlines and held back on buying it, purchasing it maybe half a year later and haven’t played it much since then. For me, SimCity 2000 has always been where it’s at. Maybe SimCity 4.

How big an Issue is the Nausea Problem for Virtual Reality Products? (quora)
“The US Navy believes that some people shouldn’t drive a car within one or two DAYS of being inside a VR environment!”

… Watched

PC vs. Mac for Video Editing (youtube)
Spoiler: The Mac (with Final Cut Pro X) does very well.

Apple Uses Spite to Force Planned Obsolescence. Watch $750 Tier 4 Repair Performed With $2 in Parts (youtube)
What a shame.

The Team Behind Siri Debuts its Next-Gen AI “Viv” at Disrupt NY 2016 (youtube)
Includes an interesting look into how it works.

Pre-Touch Sensing for Mobile Interaction (youtube)
Know how the user is gripping the device, as well as when and where fingers are approaching it.

… Ate

IMG 4859Spicy Mango-Chicken Rice

… Went to See

Donauturm ViennaMy cousin bungee-jumped off the Donauturm in Vienna, and we all went to see and cheer him on.
He survived. We all died, though.

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more

SiriMote App Icon

Today, I’ve updated SiriMote to version 1.2.

What Is SiriMote?

With SiriMote, you can control your Mac with your Apple TV Siri Remote:

  • Control your Mac’s volume
  • Control iTunes (play/pause, next or previous track, fast forward, rewind)
  • Control Keynote (next or previous slide)
  • Control QuickTime Player (play/pause, fast forward, rewind)
  • Control VLC Player (play/pause, next or previous track, fast forward, rewind)
  • Control Microsoft PowerPoint (start/stop slideshow, next or previous slide)
  • Control any Mac app that reacts to your Mac’s keyboard’s media keys

What’s New in SiriMote 1.2?

Most notably, SiriMote 1.2 lets you put your Mac (or its display) to sleep using your remote.
Press and hold the remote’s Home button for a second, and the following bezel will appear:

SiriMote's Sleep Options Bezel

It’s a little larger than usual, because I figured you’d like to be able to read it from afar. It then lets you choose between putting only your Mac’s display to sleep or the entire system.
You can wake your Mac’s display again with any button of the remote – waking from system sleep currently only works with a keyboard or mouse/trackpad, not the remote.

SiriMote is now localized in German, Sparkle (used for the update mechanism) has been updated to version 1.14.0.
I’ve also switched to Auto-Layout instead of NSView’s autoresizing mechanism, which you can read about in this  What I… blog post.

As you can see in the screenshot above, the Siri Remote is now not a graphic anymore, but drawn entirely in code, allowing for absolutely free resizing (which you can read about a bit here). The code for it will be open sourced soon.

Pricing and Availability

SiriMote is a freeware application, which means you can download and use it without limitations for free. If you like it, please consider taking a look at my other apps – thank you!
The app is available for download from SiriMote’s website (direct download).
SiriMote requires OS X El Capitan 10.11 or newer and an Apple TV Siri Remote.

If you’re interested in writing about SiriMote, you can download the press kit here, which contains screenshots and further information.

 

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – – 

Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more