moving on

Funny:  I’m publishing this on December 18th, the same date I posted about the first few months of my new life in San Francisco.  I indeed made it to Laguna Seca and Infineon (now Sonoma Raceway);  CA-35 and CA-84 are still my second home.  The fact that Caltrain is still - still – diesel and not electric still bothers me.  The IKEA furniture I bought at the start of the decade is still with me.  I’m still in SoMa not far from Townsend Street.

I’m about to move on from the last part.  2020 will take me to a new address and it won’t be in San Francisco.

When Ashley wrote about her year in New York, I felt like ten years in San Francisco probably deserves some words. On the other hand, “Why I’m Leaving San Francisco” posts are already in vast oversupply. I don’t have anything unique to add there. Instead, I’m trying to think of this as “Not Why I’m Leaving San Francisco.” So, take a look.

It’s Not Money

I’m lucky that I get to choose to live pretty much wherever I want. I have no rent control, but I’m okay spending money to live in a place I like. My rent doubled since I moved here, but I am fortunate to have few obligations in my life – no kids being the operative one in this situation, but also no debt and no need to work in an office every day. Not everyone is so lucky, and I wish the city could be more affordable to the folks who have families to take care of or debts to pay, among other obligations, if they want to live here.

It’s Not The Streets

I don’t see any reason to re-hash what’s happening on the sidewalks. It’s a complete failure of politics at several levels. That’s maybe the only exception to the next topic:

It’s Not The Politics

I have long since learned that I can’t agree with everyone around me on everything. It’s hard because I naturally seek consensus. I hate to watch the city shoot itself in the foot at every available opportunity, but I also am at peace with the fact that I have done what I can.

okay so what is it then kiel

It’s The Scarcity – Real and Manufactured

I thought about saying “it’s the people.” Considering how many friends I’ve made here, I was shocked by this conclusion and eventually walked it back. The language here betrays the meaning: it’s _some_ of the people. Just as it only takes a small number of toxic people to bring down a team in sports, or at work, or in anything, it only takes a few truly repugnant folks to ruin a city.

I can’t find any one persona that sums it up, either, which is maybe why it’s so hard to deal with. The common thread is instead an attribute found – pretty randomly distributed, to my perception – across a plethora of San Francisco archetypes: scarcity.

And that attribute can be related back to each of the typical reasons folks are bailing out: money, the condition of the streets, the voraciousness and ultimate ineptitude of the politics. The way people act when the things they need are scarce is very different and very unpleasant.

All of that leads to a lot of selfishness. It’s sort of amazing that a place that prides itself on being the origin, and to some the ongoing home, of counterculture can manage to distill and concentrate the attribute that makes our nation, and perhaps mankind, a bit of a disappointment.

Competition can be sporting and make us all better. But when the winner takes all, competition can show that darkness is inside all of us. So, then, that seems to be what I’m after: a healthy balance of competition and cooperation that highlights the best in people.

I’m not sure where I’ll find that, but I’m going to start looking.

One More Thing

I would, in the light of all evidence that this place is less than moldable, encourage everyone to remember that Good Things Can Happen In Other Places too. There’s no reason, to my eyes, that requires all other cities to fail in order for San Francisco to succeed, and the same goes for the reverse.

San Francisco Will Be Fine

I know a lot of folks are leaving.  I don’t see that as a permanent problem.  This is not a cataclysm. Certainly, it feels like this iteration has peaked. Some dark clouds will move in. It will be probably get tough for a while. Summer has come and gone; winter is coming. But rest assured, this will be the sixth time we have rebuilt San Francisco, and we have become exceedingly efficient at it.

What I Thank This City (well, its people) For

  • My first job out of college: Eventbrite. Ten years well-spent.
  • Caring about preserving great things
  • Showing me that there’s more than one right way to do just about everything
  • Letting me be your guest for a decade

WWDC 2015: Session Video Guide

(UPDATED: 14:05 PDT, 12 June 2015)

If you’re looking for a starting point to traverse the immense number of session videos now available from WWDC 2015, I’ve listed my favorites below in an order I think makes most sense if you have no ordering constraints and you’re starting fresh. I’ll be adding notes throughout the weekend, but I wanted to get a quick list up for anyone who wants to get started right away. (Scroll to the bottom for more info on the underlying rationale.)

Phase 1: Prepare yourself

  • Keynote – duh.
  • Platform State of the Union – Get the global view of what are thought to be the most important features of the new releases. (I found that this year it skewed pretty far from what I thought was important, but it’s good to know what’s on their mind.)
  • What’s New in Xcode – No matter what, you’ll be using Xcode 7 soon.
  • What’s New in Swift – If you’re going to be using Xcode 7 soon, and you use Swift, you must migrate your Swift code to Swift 2. Error handling and method availability APIs are all-new and very useful.
  • Introducing WatchKit for watchOS 2 – Big changes are afoot for watchOS 2. If you haven’t already built a WatchKit app, this is more compelling – WatchKit 1 apps will continue to work on watchOS 2, albeit with their characteristic slower UIs.
  • What’s New in Cocoa (Mac dev only)
  • What’s New in Cocoa Touch – Hope you read between the lines last year and migrated to size classes and Auto Layout! Multitasking relies on these features to make your app look good. I think this is also the start of a thematic thread for iOS this year: UIStackView.
  • What’s New in Storyboards – I’m a fan of Storyboards, and this year we got a few key feature updates, but one stands out to me: Storyboard References. You can break your massive MainStoryboard.storyboard into smaller functional segments but retain the benefits of other Storyboard features.
  • UI Testing in Xcode – MY PERSONAL FAVORITE NEW FEATURE. Similar to KIF, but with a VERY fancy test recorder. Writing new UI tests looks like a breeze with the recording feature. You can also take screenshots during UI tests – perhaps we can use this to automate taking App Store screenshots.
  • Continuous Integration and Code Coverage in Xcode – A close second for my personal favorite new feature. The code coverage is based on llvm-cov, which as been around for a while now. The combination of CI, Xcode’s new UI testing, XCTest unit testing, and code coverage data is going to be amazing.

Phase 2: Swift updates and depth

  • Swift and Objective-C Interoperability
  • Improving Your Existing Apps with Swift
  • Protocol-Oriented Programming in Swift – If you’re finding yourself force-casting and force-unwrapping everywhere in Swift, or just perplexed, this can reveal important features of the language that will explain your problems and even give you architectural enhancements. (Some found the pedagogy of this session confusing, but the underlying concepts are very important and useful.)
  • Swift in Practice
  • Optimizing Swift Performance

Phase 3: Important iOS 9 Features

  • App Thinning in Xcode
  • Getting Started with Multitasking on iPad in iOS 9
  • Introducing Search APIs
  • Seamless Linking to Your App – This is an extraordinarily important feature for anyone whose iOS app mirrors content on the web. You can now “hijack” http:// links to your site to open natively in your app, saving a ton of JavaScript and redirection hooey. The user experience will also be vastly improved.
  • Introducing On-Demand Resources (for apps with assets) – Very useful for the class of apps it targets like games and media; not so much for most utility-based apps.

Phase 4: Important WatchKit Features & Info

(incomplete)

  • WatchKit In-Depth, Part 1 – Covers migrating your watch extension from living on an iPhone under watchOS 1 to living on the watch under watchOS 2.
  • WatchKit In-Depth, Part 2
  • Creating Complications with ClockKit – A highly-anticipated feature for watchOS 2, but it’s best applicable to a relatively narrow set of apps.
  • Designing for Apple Watch – tl;dr: Do fewer things, and be careful about your presentation format.

Phase 5: Layout Improvements & Techniques

(incomplete)

  • Mysteries of Auto Layout, Part 1 – Here we continue the theme of “adopt UIStackView and stop being clever”.
  • Mysteries of Auto Layout, Part 2

Phase 6: Other iOS 9 Improvements

(incomplete)

  • What’s New in Core Data – A new batch deletion method is stunningly useful. Scott Perry gives us a great Core Data performance debugging example.

Everything Else

(incomplete)

  • Cocoa Touch Best Practices – Revisit core parts of UIKit.
  • Introducing the new System Fonts – San Francisco!

Rationale

We will be able to use Swift 2.0 features in shipping apps as soon as Xcode 7 is GM, but iOS 9-only features are almost… advisory… unless you’re going to a 9.0 deployment target. There are also a lot of high-detail talks that will be great references after implementing these new features, but that are less useful before then.

blog reincarnation exists – again