The Walking Dead S06E12: "No Tomorrow Yet" Review

Spoilers ahead. This episode was one of the darkest ever. In a way, the undead are to The Walking Dead what stormtroopers are to Star Wars: they’re dangerous, but also cannon-fodder. I found the last few episodes at times deeply unsettling because of how scary they were and the violence, but it was obvious who the bad guys were: the zombies and the Wolves. Even when Rick and the gang murdered the Termites, I felt they kind of deserved it because they ate people. But this episode turns that upside down, and gives Rick, his plan, and the Alexandrians an anti-hero edge: where first Daryl kills “Negan’s” people with a rocket launcher (though admittedly they were threatning his friends) and next Rick kills more of “Negan’s” people for food.

The argument over striking first

One of the best parts of The Walking Dead is the moral conflict: Shane and Herschel and Dale, all with their own morality, all in conflict with Rick. This plot device re-surfaces this season, where the perfectly pacifist Morgan is the only detractor at striking first at the Saviors. While the storytelling has set Morgan up to be on the opposite side of the viewer’s feelings, it remains to be seen whether he’s right. In fact, a point that was not addressed in Rick’s town hall was: how do we know Negan and his Saviors are bad? In fact, quite to the contrary, it’s Jesus and the Hilltop that’s supplied all information regarding Negan and the Saviors, and how do we know they’re not framing the situation in their own favor?

Sure, there are some fairly damning signs: Negan seems to have evidently killed a teenager to prove a point, the Saviors seem to pit Hilltop against itself and kidnap people, and finally his name is Negan, as if it couldn’t be any more Dickensianly evil. But I hope that The Walking Dead plays on (to bring back the Star Wars analogy) the notion of  “the Empire did nothing wrong”, where sure, Negan’s henchman threatened Daryl, and extorted Hilltop, but perhaps they never intended to harm Daryl and co. And in the end, it was Daryl that struck first, and with a rocket launcher.  Even given this, Morgan’s plea for non-violence was ineffective, and at least in part because it was so weak. Morgan should have appealed to practical reasons that the gang shouldn’t murder an entire compound of people. Here’s Nick Statt from the Verge on this point:

There should be a counter-argument to Rick’s belligerent and hawkish approach to diplomacy, but Morgan is more often than not making nonsensical appeals to non-violence. He doesn’t articulate why characters shouldn’t kill, so viewers are tempted to show him the same disdain as Carol does. At least he’s building a jail — Warden Morgan would at least have a purpose.

In any case, there are plenty of reasons that Rick and the gang might be in the wrong here. If I were Rick, I’d have wanted more information before needing to commit to his plan, but I’d probably also have been eaten in season 1. I look forward to seeing this moral debate continue, I imagine Negan will be sure to bring it up when we meet him.

The pre-emptive strike

The invasion on Negan’s compound was all-around well-executed: on a meta-level, the direction and acting were exciting and believable, with regards to the story, the plan was ambitious and ruthless. Here’s Brian Bishop of the Verge on this point:

… [I]t’s all brilliantly executed both in front of and behind the camera, and as the second guard is taken out and the team pours into the compound it’s clear that director Greg Nicotero has been doing his action movie homework.

But this comes at a terrible cost, because as entertaining and wild as this scene was, Rick, Glenn, and the gang that are so known to have a moral compass in an evil world, murder people in their sleep. It was unsettling to watch Glenn slide a knife through (even a henchman’s) eye. Here’s Zack Handlen of A.V. Club on this point:

Some sort of line is being crossed here, albeit one that will inevitably become less important once we get first hand proof of just how vile Negan actually is. (I’m guessing.) But it’s chilling to watch Rick and Glenn murder dudes in their sleep, even as we’re offered ample proof that those dudes weren’t very nice at all.

Clearly the emotion we were meant to feel when we saw those Polaroids was that what Rick was doing was right, but for me, it did little to help. Again, it’s a very bad sign, but it’s no evidence that can’t be reasonably doubted. Clearly, at least Glenn feels this. Matt Fowler of IGN:

The fight, though, was really intense. First a walker head (complete with busted nose) to stand in for Gregory’s melon. Then some stealth kills. Then the rescue. Then…the sweep inside to collect guns and kill everyone on site. And sure, you’re not going to mourn much a guy who keeps polaroids of bashed in faces taped above his bed, but offing a stranger in their slumber is stilla heavy deal. So much so that Heath couldn’t do it. Glenn had to take over. And even he had severe qualms.

I think we’re going to see this plan horribly backfire: I don’t yet fully trust Hilltop to be telling the truth, it’s clear that this wasn’t Negan’s only lair (nice try, “I wonder which one was Negan?”), and Rick and co. are so clearly in the wrong.

And now they have Maggie

Matters have already taken a turn for the worse, where the unarguably unneeded Maggie was captured becaused Carol didn’t want the future mother to get her hands dirty. The gang already seem outgunned, and I look forward to finding out how they get out of this one.

Custom fonts with Dynamic Type in Interface Builder

Managing custom font text styles in Interface Builder and in code has always been a pain point for me when developing for iOS. For instance, what’s the best place to define text styles? Is it in the Interface Builder document? This grants you a great WYSIWYG experience, allows you to quickly change and iterate, and maybe even lets non-developers modify appearance. Or should it be in code? This makes changes to the appearance more explicit and easier to merge, as well as being an easier target for large-scale refactoring when an app-wide design change inevitably happens. I thought there must be a better way, and here’s my proposal. If you aren’t one for rhetoric, here’s some working code.

In both of the above scenarios, the text style is static: it’s defined either in the nib file or in the source file, and barring some runtime changes, it is constant. On the contrary, if your app uses the default iOS font, which is the beautifully utilitarian San Fransisco font since iOS 9, your app can take advantage of a system-level feature known as Dynamic Type. Dynamic Type allows the user to set the base font size used by the operating system on a scale from extra small to extra large. Apps that use system text styles can scale their fonts’ sizes up or down to account for the user’s preferences. But not all of us live in an all-white room where beauty can meet form and function: sometimes an app needs a custom font to express its own personality. It would be a shame if this requirement came at the cost of adjusting type size to a user’s preference, and fortunately, I have some code which lets you have the best of all these worlds:

  1. Define text styles in Interface Builder to take advantage of the WYSIWYG editor and great user experience;
  2. Change custom fonts quickly and easily by modifying source code;
  3. Adjust your custom font to user text style preferences using Dynamic Type.

The way that I accomplished this is two-fold: first you need to define your custom font’s various text styles, and secondly you need to override your Label’s and Text View’s font with your own with a custom subclass which overrides the font descriptor for text style method, as we’ll see.

I found out how to define custom sizes and font styles from this Stack Overflow post. The Stack Overflow answer isn’t quite right for me, because I wanted an all-Swift solution with all text styles, but it lays out the methodology for an implementation which I’ve used. Here’s the definition for UIFontTextStyleBody:

extension UIFontDescriptor {
    class func preferredAvenirNextFontDescriptorWithTextStyle(style: String) -> UIFontDescriptor {
        var onceToken: dispatch_once_t = 0
        var fontSizeTable: [String: Dictionary] = Dictionary()
        dispatch_once(&onceToken, { fontSizeTable = [
            UIFontTextStyleBody: [
                UIContentSizeCategoryAccessibilityExtraExtraExtraLarge: 21,
                UIContentSizeCategoryAccessibilityExtraExtraLarge: 20,
                UIContentSizeCategoryAccessibilityExtraLarge: 19,
                UIContentSizeCategoryAccessibilityLarge: 19,
                UIContentSizeCategoryAccessibilityMedium: 18,
                UIContentSizeCategoryExtraExtraExtraLarge: 18,
                UIContentSizeCategoryExtraExtraLarge: 17,
                UIContentSizeCategoryExtraLarge: 16,
                UIContentSizeCategoryLarge: 15,
                UIContentSizeCategoryMedium: 14,
                UIContentSizeCategorySmall: 13,
                UIContentSizeCategoryExtraSmall: 12
            ], ...
        ]})
        let contentSize = UIApplication.sharedApplication().preferredContentSizeCategory
        let sizes = fontSizeTable[style]!
        let size = sizes[contentSize]!
        return UIFontDescriptor(name:self.preferredFontName(), size: CGFloat(size))
    }
}

This code will first key on your text style name, then key on your users content size, which will yield a font size that you or your designers define. Next, we’ll get an example nib going with some labels with all of the text styles we want to support. I added a label for each text style and placed them in a Stack View:

Screen Shot 2016-03-07 at 10.14.43 PM

Interface Builder is going to show the system font with Apple’s font sizes. While we cannot change this about Interface Builder, we can change how our labels will interpret their text styles at runtime, and we can do that with a short and sweet label subclass, which we’ll set all our labels to. This way of getting a Label’s font description comes from this Stack Overflow post. Check it out:

class CFDTLabel: UILabel {
    override func awakeFromNib() {
        super.awakeFromNib()
        if let textStyle = self.font.fontDescriptor().objectForKey(UIFontDescriptorTextStyleAttribute) as? String {
            let font = UIFont(descriptor: UIFontDescriptor.preferredAvenirNextFontDescriptorWithTextStyle(textStyle), size: 0)
            self.font = font
        }
    }
}

Now, each time we have a label and set its text style, it’ll ask out custom method for the text style we defined in our UIFont extension. And that’s it, when we run our app we see our beautiful custom font which adjusts wit Dynamic Type.

Simulator Screen Shot Mar 7, 2016, 10.30.42 PMThis approach will be well-suited to you if you need a solution which lets define text styles in Interface Builder, adjust text styles quickly across your whole application, and scales up or down to meet your user’s font preferences. This last point is an important feature for people with different eyesight than the average: I’ve seen people use smaller text to fit more on the screen and larger text to make it easier to see.

LinkedIn and the network effect

Finding new professional contacts and keeping existing ones used to be a lot more difficult before the Internet, and now it’s becoming more difficult because of the Internet, or well, they way the Internet is monetized.

LinkedIn doesn’t cost anything to sign up and put your information on, and it would have a hard time convincing job-seekers or the employed if it wasn’t gratis. It’s kind of like free beer at other professional events, where the gratis stuff attracts people that might not otherwise bother. But unlike the free beer at that glorified sales info sessions, LinkedIn sticks to you, it becomes your online business card and professional directory. Furthermore, and like the free beer, LinkedIn has got to recoup the cost of the beer and more, as it must feed Wall Street’s insatiable thirst for growth. The conflict between being good at being your online professional network and being good at making money is the core of what’s wrong with LinkedIn: their interests aren’t the same as their users’ interests.

You may reasonably decide to do a quick query for “Paul Jones” on LinkedIn to see if I’m a hypocrite, and you would likely be slowed down by how many entries there are, so I’ll save you the trouble: I’m still on LinkedIn. Why? Evert Pot has a great way of putting it:

My only issue is that I feel, as an independent contractor, I’m obligated to maximize my potential in acquiring new customers. I don’t yet have the luxury to shut down an entire channel for new leads, despite the fact that LinkedIn has actually done very little for me in that regard. On top of that LinkedIn has become so ubiquitous that it’s actually become a standard question during some interview processes to ask for my profile. I feel that “I don’t have one” because of “principles” is never a great opener when you just made a new connection with someone.

Richard Stallman is often mocked on these grounds, of being unreasonable because of principles. A business person might deem this the “network effect” while a 5 year old might identify it more cogently as “peer pressure.” But it’s true. Everyone (in the professional scene) seems to be on LinkedIn, which means I have many reasons to be on there too. Then, because I’m now on it, LinkedIn as a service is more (even if only ever so slightly) valuable to a potential user. This compounds across millions of users until it’s inescapable. Facebook and Twitter have this same property as networks, and at least Facebook has found a pretty good way of monetizing without harming users too much: displaying engaging content from advertisers for a price. It isn’t perfect because advertising is annoying and has privacy concerns, but these are by no means insurmountable for users or for Facebook.

The biggest place that I see LinkedIn getting paid is for the “InMail” they sell to recruiters for the privilege of contacting people on platform. Unfortunately, just like every member of my trade which joins LinkedIn adds value, every sham recruiter and message they send me removes value from the network. Here’s Henrick Warne on the problem with recruiters:

Plenty of times, I have received messages from recruiters asking if I am interested in an “amazing opportunity”. Even if I am happy at my current job, I am always a little bit curious. You never know whether it is a great job or not. But before I can say if I am even remotely interested, I need to know some details. “OK, please send us your CV”. What? LinkedIn is my CV, you have already seen it. Next, they want to schedule a phone call. Why? Just mail me the details. If I agree to talk to them, they will act as if I contacted them, and they are now “helping me with my career” by jumping into interview mode. No, I don’t need your help. Just tell me about the “amazing opportunity”, and I will say if I am interested or not. If I am, we can take the next step.

The positive network effect that LinkedIn gets is increasingly stifled by the negative network effect of recruiters. Which is a problem, because the recruiters are the ones that are, in part, keeping the lights on. These misaligned interests are more than just some fuzzy notion I’m using to criticize LinkedIn, this conflict actually manifests itself in the product. As many people have embarrassingly realized, LinkedIn is terrible for contacting people and taking information that it tricks the user into. Here’s Dan Schlosser describing “dark patterns”:

In UX design, a dark pattern is design that works against users. It might trick them into doing the wrong thing, or just confuse them to the point where they can’t figure out how to do something that the designers don’t want them to do. This could be making it hard to delete a user account, or in LinkedIn’s case, making it really hard to use the service without importing your entire address book.

Unfortunately for LinkedIn, I’m of the opinion that the way forward is to decentralize the web from Silicon Valley unicorns, and I envision a utopia where everyone cares enough to host their own website. Perhaps it’s a pipe dream, but as technical skills are disseminated and the barrier to entry becomes lower thanks to improved tools, I have hope that people will come to desire control of their own Internet presence. Until then, I’ve un-connected with all the people I don’t know on LinkedIn and removed much of the information from my profile, and I advise everyone do the same.

"Untitled 022816" with David Knutson and Philip Thompson

“Untitled 022816” is a recording that my friends and I did in my basement last week. Philip Thompson owns the drums on this snippet from a much larger jam session, David Knutson plays the lead guitar, and I provide the rhythm guitar. Steven Quinn and I split the work of being the audio technician and production, and Steve did the mastering. The track is what I imagine very, very, very early jam sessions of Explosions in the Sky might have been like, with ethereal leads that crescendo into heavy rhythmic chords.

 

France wants to fine encryption

France’s lower house of parliament yesterday passed an amendment that would levy penalties against technology companies that do not provide access to encrypted data during terrorism investigations. The amendment, which has the support of right-wing politicians but is opposed by the socialist government of President François Hollande, was approved as part of a broader bill aimed at combatting terrorism and organized crime. – The Verge

If I were a French citizen I would be outraged that the government would use a national tragedy as emotional leverage to attempt to expand surveillance. I don’t think France’s problem is security, it’s economic inequality and racism.

Florida congressman wants to ban government iPhones

A Florida congressman has introduced a new bill that would forbid federal agencies from purchasing Apple products until the company cooperates with the federal court order to assist the unlocking of a seized iPhone 5C associated with the San Bernardino terrorist attack. – ArsTechnica

How childish. To propose that the government shouldn’t use a company’s products because that company refuses to compromise the product’s security is short-sighted and dumb. If anything, the uncompromising security should be a selling point to government agencies lacking transparency.

Apple won't bid for NFL streaming

Apple has decided it will not bid on the digital rights to stream the NFL’s “Thursday Night Football” package next season, according to Re/code.

The streaming rights to the NFL’s Thursday evening games could have helped set the Apple TV apart from competing streaming boxes, but Apple reportedly felt the package “isn’t enough to pull that off.” – MacRumors

Perhaps they’re not doing it because it doesn’t make business sense, but I hope they’re not doing it at least in part because it isn’t moral. Until the NFL change the rules surrounding collision and contact, any money earned from professional football is blood money.

Mitt Romney on Donald Trump

In a surprisingly honest speech delivered to the University of Utah, Mitt Romney muses on the present presidential candidate race. The whole thing warrants reading, here’s a particularly prescient snippet:

For the last three decades, the Clintons have lived at the intersection of money and politics, trading their political influence to enrich their personal finances. They embody the term “crony capitalism.” It disgusts the American people and causes them to lose faith in our political process.

A person so untrustworthy and dishonest as Hillary Clinton must not become president. But a Trump nomination enables her victory. The audio and video of the infamous Tapper-Trump exchange on the Ku Klux Klan will play a hundred thousand times on cable and who knows how many million times on social media.

I’m glad the Republican establishment knows that Trump stands no real chance in the general election against a vetted careerist like Clinton. When Romney ran, I supported and voted for Obama, but given the present political circus, a Romney candidacy would be a welcome sanity.

The reason that the current crop of candidates besides Trump are so weak is that they’re playing his game, on his terms. No one can “out Donald the Donald”, because he’s been slinging insults and schmoozing audiences his whole life. Even with Romney’s speech, all it takes for The Donald to deflect it is to say something to the effect of, “Who? Romney? What that loser is telling me how to win?”

The Republican establishment has fallen prey to Rule 19 of the Internet:

The more you hate it, the stronger it gets.

NFL to sell streaming rights

This month, the pro football league intends to sell digital rights to the same games, and it should be nearing a decision shortly on which company will buy them. The NFL’s annual owners meeting starts in Florida on March 20, and sources say the league would like to have deals wrapped up by then. – The Verge

With the current rules and culture, considering the risk of injury to the players, this is blood money.

Fiat to Apple: Wait until the feeling passes

“If [Apple] have any urges to make a car, I’d advise them to lie down and wait until the feeling passes,” Marchionne told journalists. “Illnesses like this come and go, you will recover from them, they’re not lethal.” – Reuters via John Gruber

The auto-industry establishment recommends that Apple do what they do: nothing. I imagine Fiat are worried about Silicon Valley competing with them, and have done plenty of lying down in hopes that the feeling will pass. We’ll have to wait and see if this is recoverable or lethal, but history tells us that Palm and Blackberry underestimated Cupertino and the results were not good.

The Walking Dead S06E11: "Knots Untie" Review

Spoilers ahead. I wholeheartedly enjoyed “Knots Untie” because, despite the show’s modus operandi, everyone was mostly okay this episode. I’ve come to terms with the fact that I don’t actually like watching it, as it’s the story of the end of the world where people get eaten or worse, but I do find it fascinating. The reason I liked this episode so much was it focused less on getting “eaten or worse” and more on the fascination of relationships, and more importantly, politics. Let’s go over a few plot points:

Abraham and Sasha and Rosita

Admittedly, I totally forgot that Abraham and Rosita were still an item, I assumed that it fizzled out when he started patrolling with Sasha (or something). I thought Abraham was going to die when he was getting all philosophical with Sasha before discovering the rocket launcher, yet he remains and continues to find out more about himself. I haven’t figured out the meaning of his necklace, in part because I don’t care too much. I worry that TWD is going to suffer in the later season for the same reason FRIENDS did: babies.

Jesus and Hilltop

On the whole ride to Hilltop, I couldn’t help but not trust Jesus. He seems too idealistic and care-free for what the world has become. This trepidation reached a climax when they encountered the wrecked car on the way there, and when he was handcuffed and left with Maggie, I was sure he was going to pull some stunt. But eventually trusting him paid off, at least in the sense that the gang made it to Hilltop. Here’s Nick Statt from the Verge describing this sequence:

“Your world is about to get a whole lot bigger,” says Jesus before this episode’s opening credits roll. I have to admit, the scene gave me goosebumps. This was a moment when the show finally acknowledged its own potential — there are more communities of survivors, and there may be a huge conflict threatening the rebuilding of a real and lasting society.

This is absolutely right: where TWD needs to go is beyond man-vs-himself (Rick in the first seasons), beyond man-vs-nature (the zombie after the first seasons), and beyond man-vs-man (the various villains we’ve encountered since the prison): it’s time for group-vs-group and the inevitable politics that ensues. I love the idea that trade and cooperation (or not) could occur between multiple groups, and I look forward to an expanded universe in TWD.

Maggie’s negotiation

The group from Alexandra and the Saviors aren’t so different: they’re both ruthless murderers and take whatever they want from Hilltop. In fact, Maggie used the promise of future violence from Negan to negotiate half of their stuff from them. Matt Fowler makes this point at IGN:

And let’s hear it for Maggie this week too. Her mostly offscreen job as leader/planner/stay-behinder wound up paying off this week during her back-and-forths with Gregory. He batted her around like a ball of yarn for most of the episode, but then she came back strong after he realized just how powerless he was against Negan’s ever-increasing greed. So good on her. And good on the show for giving her a powerful scene outside of worrying about Glenn.

The hunger of those 50 or so hungry people at Alexandria and the knowledge of Hilltop is going to make for some tense negotiation.

Negan and the future

I thought that the leader of Hilltop may actually have been Negan because I know nothing about the comics, but it looks like the truth is far more interesting. Here’s Zack Holden from A.V. Club:

This is going to be a disaster, if not now than by the end of the season at least. This a story, and stories where characters say, “Yeah, we totally have this under control,” and then they do, don’t tend to be all that interesting. But at least no one’s behaving stupidly so far—or if they’re being stupid, their stupidity makes sense.

Certainly, a bloodbath is on the horizon. The hungry and desperate group from Alexandria is set to face off with well-equipped and savage Saviors, and it seems that they think it’s totally going to be easy. Whoever Negan is, he’s going to be livid that six-or-so of his men were taken out by Daryl, and if Negan is willing to take out a 16 year-old to “prove a point”, there’s no doubt that what he does to exact revenge will be far worse. The food from Hilltop is going to come at a great cost. (Which could have been avoided if Jesus and Daryl and Rick hadn’t been so childish with the truck, but never mind.)

Eric Schmidt working with Pentagon

I prefer Apple to Google. My preferences side with Apple because their hardware is superb, their OS is a lovely shiny UI and ecosystem atop a solid UNIX foundation, and their interests align with mine: they make hardware, I buy hardware, we both win.

There’s no denying the centrality of Google to digital life, however. If you want to find more information something, see a video of something, or communicate with colleagues, chances are you’ll use a Google service. And for some weird reason to do with our perceived value of non-tangible objects, we refuse to pay for this central fact-of-life, and so Google has found ways to monetize that aren’t directly inline with my interests.

For instance, Andrea Shalal reporting for Reuters via John Gruber:

Eric Schmidt, the former chief executive officer of Google, will head a new Pentagon advisory board aimed at bringing Silicon Valley innovation and best practices to the U.S. military, Defense Secretary Ash Carter said on Wednesday. Carter unveiled the new Defense Innovation Advisory Board with Schmidt during the annual RSA cyber security conference in San Francisco, saying it would give the Pentagon access to “the brightest technical minds focused on innovation.”

Makes perfect sense: software is a munition, after all, so why shouldn’t Google be a defense contractor? I hope this relationship truly is about innovation within the military which ultimately brings good to world instead of increased spying on citizens, or worse, more effective destruction.

Slack planning voice and video

I strongly dislike Slack: it’s an overhyped and proprietary web wrapper around IRC with history. It works just fine, but it bills itself as a replacement for email, which it isn’t, and so it’s become just another thing I have to check. Having said that, TechCrunch report and iMore paraphrase:

Slack plans to roll out voice and video chat this year, making the popular messaging company even more competitive with incumbents like Microsoft’s Skype and Google’s Hangouts. That’s according to their 2016 product roadmap, presented to customers at a conference today in San Fransisco.

I’m glad, because then I can stop saying that Slack is just an web wrapper around IRC with history, and people can stop telling me that “No! It’s also got zany error messages and GIFs.” I hope that Slack can do a better job than Skype, Hangouts, FaceTime, and all those awful corporate conferencing applications, because it’s a market which could really use improvement.

However everyone should stop using Slack for open source projects. Because it’s proprietary and costs money and is just a web wrapper around IRC. So stop it.

John McAfee on Apple vs. FBI

In an interview given to RT, software legend John McAfee claims that unlocking the iPhone is a “half-hour job.” This part of the interview is just wrong: it may have been the case that passwords were stored in memory in the past, but I don’t believe that’s the case any more. For instance, if I were Apple and I was implementing the iPhone unlock system, I’d encrypt the disk without storing the password, and when the user enters the password I’d attempt to decrypt the disk with that key. I’d then check to see if some known (and non-sensitive) value in memory was correctly decrypted or gibberish.

He does raise an interesting dilemma, however, and that’s that either:

  1. The FBI does not know how to access the iPhone’s information, and they should because there a well-funded federal agency;
  2. The FBI does know how to access the iPhone’s information, and so they’re deceiving the American people.

I find (1) much more likely in this scenario, or rather, that they do not know how to access the iPhone’s information easily, and would prefer that they have a precedent to get Apple to do it in the future. I find this more likely because iPhone’s have zero day exploits: I don’t have one, I wouldn’t know one if I saw one, but it’s a massive user base with a large attack surface area, they undoubtedly exist and the FBI undoubtedly have access to people that can get them. But it’s hard, costly, and the best hackers smoke weed and don’t wear suits.

The first self-driving car accident

As artificial intelligence and machine learning is increasingly commercialized, it’s going to begin challenging our legal and moral notions of agency, blame, and responsibility.

Google’s self-driving car had a very minor accident with a bus, and Reuters had this to report about it:

Alphabet Inc’s (GOOGL.O) Google said on Monday it bears “some responsibility” after one of its self-driving cars struck a municipal bus in a minor crash earlier this month.

The crash may be the first case of one of its autonomous cars hitting another vehicle and the fault of the self-driving car. The Mountain View, California-based Internet search leader said it made changes to its software after the crash to avoid future incidents.

Some stray observations:

  • I’m surprised Google owned up to even “some responsibility”, as I would have thought they were eager to shed all responsibility early in the product’s existence, because while in the long run they’ll be less accidents with robot drivers, I’m uncertain that the first batch will always be so fortunate.
  • I imagine this is 100% the fault of the bus driver, and for purely an unfair reason: as an bike rider, I see how bus drivers in New York City act on the road, and it isn’t always friendly.

Playgrounds get video support

Playgrounds are such a wonderful feature of Xcode and the growing Swift ecosystem: they drastically lower the barrier for entry for learning the language and for experimenting. I have countless “experimental projects” that are just empty view controllers which have some interesting code snippet, and Playgrounds are a much better way of supporting this use case.

Erica Sadun has discovered an exciting new feature in Xcode Beta 5:

What you do is this, you add movie files to the playground’s resources. You can then add specialized playground rich text:

//: ![Alternate text](video width="width" height="height" poster="poster")

You won’t see the video until you render the rich text.

The markdown rendering and rich content embedded in Playgrounds is going to make them great for education. There’s nothing like running code to prove a point, and having educational content sit side-by-side with running code is a brilliant way to learn. I hope the project format for Playgrounds sees adoption on Linux and Windows so that more people can learn from them.

Proofreading software

When a company markets a product as perfect and constantly re-invents it, there will be growing pain. There are some issues that should almost never exist with even a modest QA process however, which includes proofreading, and here’s Stephen Hackett describing a grammar problem in Disk Utility:

  1. The first sentence should read “….destroy all of the data.” It currently transposes “all” and “of.”
  2. “Enter a name, choose a format” is a comma splice. Break it into two sentences or use a semicolon.

Even given Apple’s software woes, this is an unfortunate misstep for a core system utility.