1Password is one of the best password managers available today. While the iOS, macOS, Windows, and Android clients are obviously the primary clients, they also have a command line tool.

You can automate the upload of files and other secrets to 1Password via the CLI. For instance, here’s a script to zip up a directory and upload the contents:

#!/usr/bin/env bash

set -euxo pipefail

FILENAME=secrets.zip
DIR_TO_ZIP=mydir
zip -r $FILENAME $DIR_TO_ZIP

op create document $FILENAME --title="My Secrets File" --vault="Personal"

rm $FILENAME

You can then download the latest secrets file via the CLI with a little help from jq:

#!/usr/bin/env bash

set -euxo pipefail

FILENAME=secrets.zip
DOCUMENT_UUID=$(op list documents --vault="Personal" | jq -r 'sort_by(.updatedAt | fromdateiso8601) | map(select(.overview.title == "My Secrets File" and .trashed == "N")) | [ .[].uuid ] | last')

op get document $DOCUMENT_UUID > $FILENAME

unzip $FILENAME

To setup Google Cloud for use with Terraform, create a Google Cloud project using the Google Console.

Then, I create a Google Cloud Service Account. After creating the account with the appropriate role, I create the service account key and download and save the private key data in JSON format.

Once you have the service account key, then you can export an environment variable like GOOGLE_CREDENTIALS with the path to the JSON file. See the Google Cloud Provider Terraform documentation for more information.

Finally, you can create and run your terraform commands which will use the service account to create your Google Cloud resources.

WWDC is tomorrow! For the first time in a while, the rumor mill is pretty quiet. However, it has led to even more wishful thinking and speculation.

The general theme and expectation is Apple will focus on reliability. Bug fixes will be prioritized which would be great. Another possible theme may be “Digital Health”, which can mean information about how you use your phone to better notification and Do Not Disturb management. After spending some time with health and meditation apps, I think it would be helpful to have features that make more efficient usage of your device and make you acknowledge that it is your responsibility to monitor and manage your time.

watchOS needs more independence from iOS whether that be apps that can operate more independently (when there’s Wi-Fi, use it instead of the Bluetooth connection) to more capabilities (e.g. able to streaming podcasts) for third party apps. There needs to be some justification for investing energy into watchOS apps considering most developers are abandoning the platform.

It would be wonderful if tvOS gained user profiles and some sort of acknowledgement that it is not meant for just a single user’s preferences. For instance, you can only log into one Game Center profile (even though Game Center might as well not exist itself). More intriguingly, I think it would be useful to detect the presence of multiple people (say some people had their iPhones or Apple Watches near the Apple TV), and then tvOS would give recommendations tailored to those people. It seems far-fetched at this point given Apple’s direction, but it would be interesting conceptually.

macOS stability and feature parity is a sore spot. There are many capabilities that are just not present (e.g. HomeKit, iMessage apps, TV app). If feature parity is not on the table, then slowly breaking apart iTunes must be on Apple’s priority list hopefully.

Perhaps the most important area of focus is Apple’s services. Siri is the poster child of an Apple service needing improvement. The speech recognition and feedback seem to be fine but actually interpreting the commands seems to be difficult with its open ended nature. Compared to Google Assistant and Amazon Echo, Siri might work slightly subpar but the constant embarrassing screenshots of incidents where Siri makes wild interpretations of questions is alarming.

Personally, I would prefer if Apple makes a few acknowledgements in their process more than anything. A public announcement that they will deliver iOS 12 over the course of a few months instead of a 12.0 release with everything in it. Whether intentional or not, iOS 11 just got the last of its announced features a week before WWDC 2018 (Messages in the Cloud and AirPlay 2). It would be even better if all of their services like Siri were continuously publicly improved every week/month/quarter so that customers feel things are getting better constantly at a sustainable pace.

The other major change I would like to see happen is a “service” mentality for every one of their introduced features. Instead of features being tied to an OS, the APIs should be made available on as many platforms as possible with the ability for apps to integrate with the service. iMessage, Photos, HomeKit, Siri, Apple Music and in general iCloud should become independent platforms themselves without needing to build apps to use OS APIs to integrate with them. Building ecosystems for these systems without requiring an iOS device would be a huge change in strategy but if Apple is focusing on service revenue, building great independent services would drive them forward. Instead of catching up to WeChat, Dropbox, Amazon Echo, Spotify, Apple could independently move forward without being tied to iOS.