Elm Workshop

I am hosting a two-day workshop in Boston on May 10 and 11 for the Elm programming language.

It has been almost one year since I started producing Elmseeds. I’ve really enjoyed putting them together to try to teach people the power of Elm. The way I see it, the more people who write Elm, the more likely I am to write Elm for a living. I’ve been doing what I can to speed up that process, but I want to take it to the next level, so I’m hosting a workshop.

It is a two-day workshop, hosted in downtown Boston with free lunch, snacks, and coffee. On the first day, we will walk through basic and intermediate topics including Elm the language, the architecture, navigation and http requests. The second day is advanced topics that help you get Elm into production: animations, testing, native modules, deployment, and more. By the end of the workshop, you will be prepared to return to work and embed Elm in an existing product seamlessly.

Sound interesting? See details on Eventbrite.

WWDC Swag

It’s an inside joke for multi-time WWDC attendees to watch the first-timers show up to registration in shorts and a t-shirt. The newcomers are thinking “California in the summer. No need for jeans and layers.” They quickly learn the value of a jacket, thanks in large part to Apple who hands out a free one to each attendee during registration. If you forgot to pack one, you can join the thousands of other look-a-likes on Market Street proudly sporting the current year on their backs.

With the move to San Jose, which does actually participate in California summers, one has to wonder if jackets will still be the swag of WWDC. Apple has handed out laptop bags in previous years, so they are a strong contender. On the other hand, air-conditioned convention halls are always frigid, and San Jose nights are cool enough for jackets, so it still might make sense to hand out jackets.

My money is on the laptop bags.

10 Year Update - Part 2

My semiannual update on the Marco Arment 10-Year Challenge. See Part 1 in the series.

The Red Ace

The Red Ace got a significant update in October: insurance and surrender support, both of which are a major part of counting cards. I also added split view support for iPad, hoping it might boost my search rankings or increase the odds of getting featured in the App Store.

Biggest disappointment from updating the app was the inevitable decline in sales. Starting around 27 December 2016, the current version finally had enough reviews for the App Store to display and sales resumed.

Elmseeds

In 10 months, I’ve produced 20 screencasts. An okay number, but I really need to stick to a once a week schedule. The past two months have been much closer to that with six screencasts produced, only missing weeks around holidays.

I’d love to eventually run sponsorships à la Railscasts. Need to keep producing content on a consistent basis to get there.

One stat I want to track between these updates is number of followers on my @seedsofelm account. Currently at 211. I have other analytics to help gauge the number of video plays, but at this point, I’m more interested in the number of people who opt-in to updates.

Secret

My Elixir and Elm app is nearing launch. I have a lot of eggs in this basket, so a strong launch will go a long way toward keeping up my enthusiasm and monetary ability to pursue it.

User-testing has gone well so far. Every test is still revealing some pretty great insights. I’m looking forward to having some beta customers onboard within a week. They should drive the final changes necessary before the public announcement.

The Update Slump

I am certainly not the first to experience it, but if you were looking for hard data on the update slump, look no further. Below are two iTunes Connect App Analytics charts from before and after I released an update in the App Store.

Several things could be happening here.

  1. Lack of reviews turns buyers away.
  2. Latest version crashes a lot and is getting negative reviews.
  3. Updated keywords/description with new version destroys SEO.

I can’t prove number 1, but judging by these charts, I don’t think it’s number 2 or 3. Product page views and crashes are pretty consistent, implying people are finding the app, but not pulling the trigger on purchasing it.

"App Analytics, 9 September 2016 through 9 October 2016"

"App Analytics, 10 October 2016 through 14 November 2016"

Because I’m not the first to see this trend, I think it’s safe to say this is because of my lack of reviews. Five stars to no stars is a rough way to go.

If you’ve purchased the app and would like to help out, please write a review.

Convincing Myself

To buy a new MacBook Pro. Apple is unlikely to drop the price of this MacBook Pro or update its specs for at least 12 months, if not 18 or 24. Given that, right now is the best possible time to buy one. Every month I wait, I’ll get less value for the same price. If I buy it now, I can start getting some value from it rather than suffer through another several months of slow MacBook usage.

Exploit Prices

Zerodium’s Exploit Acquisition Program:

Product / Exploit Type New Price Previous Price
Apple iOS 10 (Remote Jailbreak) $1,500,000 $500,000
Android 7.x/6.x (Remote Jailbreak) $200,000 $100,000

An iOS remote jailbreak exploit is worth 7.5 times as much as an Android jailbreak exploit.

We know prices get set by supply and demand, so what drives up the prices for iOS? A greater demand or a lower supply?

I’ve never been interested in remotely exploiting someone’s phone, but I can muster a few guesses as to why someone would: to steal credit card data, distribute ransomeware, or form a botnet, to name a few. Are any of those worth more on iOS than Android? I don’t see how given Android’s greater market share. I expect the demand for Android jailbreak exploits to be greater, and thus drive the price up.

If we’re conservative and say the demand is equal for iOS and Android exploits, then the supply for iOS jailbreak exploits must be lower, implying they are more difficult to produce. I don’t know if any Apple engineers are patting themselves on the back, but this is a major testament to the iOS security team.

Ceramic Jet Black

Brian Roemmele via Quora:

Why is Apple moving to Zirconia Ceramics?

  1. Strength
  2. Radio Transparency
  3. Heat Conducton[sic]/Dissipation - with Alumina / Aluminum Nitride
  4. Scratch resistance
  5. Ease of manufacturing

The Apple Watch Edition Series 2 only comes in white, but it stands to reason a ceramic iPhone would come in both black and white. I’m a little surprised Apple would release the Jet Black iPhone this year rather than surprise us with a brand new color along with the ceramic housing.

Headphone = VGA?

Apple may wield significant sway in the industry, but is it enough to get other phone vendors to remove headphone jacks? In an apples to oranges comparison, HP and Lenovo still make laptops with VGA output. They may not be phone vendors, but I think it’s safe to say, if you really like headphone jacks, you’ll be able to buy a phone with one for a very long time.

Swift Subclassing

I’ve enjoyed watching the debates, but haven’t sided with one team yet. It’s hard to believe that you can be productive with subclassing unavailable by default, but looking at the Swift I’ve written the past couple of years, subclassing has not been my tool to solve problems.  Other than classes like NSManagedObject and UIView, I have hardly any subclasses, and each instance could use protocol extensions and remove the need for subclasses.

Even though I’m not convinced final by default is the best option, the evidence is pointing to it. I love Swift and am looking forward to spending more time in Swift 3 over the next year. Only real experience in the hands of developers will tell us if this is the right decision.

2FA Backups

Read the reviews for Google Authenticator. Here are a few good ones:

If you have saved codes don’t update.

23 Mar 2016

Lost all my codes in a backup/restore

9 May 2016

Lost all sign-in data upon upgrading.

7 July 2016

Losing your two-factor authentication codes is a very serious problem, whether it’s from losing your phone or an app update gone bad. See Github’s answer on what to do if you lose your 2FA code:

If you’ve lost access to your account after enabling two-factor authentication, GitHub can’t help you gain access again.

After reading these reviews, I realized a bad update could lock me out of Gmail, Github, Dropbox, AWS, and many other services. I save recovery codes in 1Password, but if I need to regain access away from my computer, I’ll be SOL.

Rather than rely on luck and recovery codes, I’m changing how I use 2FA. From now on, all 2FA codes will go in Google Authenticator and 1Password. This combination gives me the speed of Google Authenticator and the peace of mind knowing my codes are backed up in a second app.

Archive