Archive for December 22, 2016

Thursday, December 22, 2016

App Transport Security Requirement Delayed

Apple (Slashdot):

At WWDC 2016 we announced that apps submitted to the App Store will be required to support ATS at the end of the year. To give you additional time to prepare, this deadline has been extended and we will provide another update when a new deadline is confirmed.

Previously: App Transport Security.

Update (2016-12-23): Nick Heer:

I hope a hard deadline comes soon and that Apple sticks to it. It’s easy to confirm that a connection is private on the web; it isn’t within an app.

Fixing AVPlayer Playback Transparency

Ashley Nelson-Hornstein:

To test this theory, I downloaded one of the videos made in the client’s app, dropped it into Apple’s example project, and made a couple of quick changes so that Apple’s project would use the video I added instead of one selected from Camera Roll. I ran the project and voilà, the same initial flash of transparency reproduced in the example project.


This “empty edit” sounded exactly like what was being inserted into the beginning of the client’s app-created videos. I looked at how the client’s app was appending buffers to AVAssetWriterInput and noticed that the code never ensured the first buffer appended to the file had the same time as the startTime of the video.

CwlSignal and Reactive Programming

Matt Gallagher:

The careful separation of “input” and “output” and the modelling of reactive programming as a channel is a distinguishing feature of CwlSignal. Other common implementations treat reactive programming as an implementation of the “Observer” pattern but this leads them to hide the input end of their channels or confusingly use types that are both input and output, when only an input interface is desired.


Unlike functional programming inspired transformation functions (e.g. map, flatMap), the fundamental transform in CwlSignal does not return its result but sends it into the SignalNext (interface equivalent to SignalInput for sending to the next Signal in the chain). This design allows you to emit any number of values or an error.

Matt Gallagher:

In this article, I’ll explain why I consider reactive programming to be one of the most important design patterns for application programming by looking at three scenarios that are common in application development, yet are a drain on development time, lead to frequent bugs and make design and refactoring hard. I’ll show how reactive programming addresses the verbosity, eliminates the unsafety and restructures the code to aid maintainability.


The biggest advantage comes when you realize that in applying a solution to just one of these problems, you’ve gained a solution to the other three for free.

What Y2K Was Like at Microsoft

Kareem Anderson (via Hacker News):

However, in 1999, a large intersection of people were clearly preparing for the worst in the following year as the Y2K scare ran rampant across the globe. As the Y2K scare or otherwise known as the Millennium Bug, grew in myth banks, software providers, computer OEMs, and other electronic device manufacturers prepared for an estimated issue programmers were not taking into account when applying the Gregorian calendar rule to software.


Fortunately, nothing ever actually became of the Y2K pandemonium, but longtime Microsoft developer and semi-official Windows historian Raymon Chen discusses how the company prepared for a potential electronic catastrophe.