Google is in a panic about ChatGPT as a threat to its business. But were they ever really good enough to compete?
Read MoreWhat happens after the crossovers win?
A few years ago (with COVID-related time-dilation, 5 years is now ‘a few’) I wrote a blog post about the then-imminent iMac Pro comparing it to the first crossover. Back then, I wrote:
The iMac Pro […] is the AMC Eagle. It’s the first Mac to be car-first, run by the A-series processor which then boots the legacy Intel hardware. For now, it will (like the Eagle) only provide a few benefits to security. Eventually, this will become the way all mainstream computers are built…
It was the first mainstream computer to use a mobile chip in a primary role — taking the A10 processor out of the iPhone 7. Most computers at the time were descended from the proverbial ‘truck’ — even the lightest laptops were using processors for heavy-duty computing evolved to work in a smaller computer. That iMac in 2017 heralded an era when computers would be based primarily on chips originally designed for phones and then scaled up to power laptops and desktops.
Over the past 2.5 years, Apple has replaced most of their lineup — you can still buy the Mac Pro — with computers that are solely powered by silicon identical to that found in an iPhone. These computers — based on a cell phone! — are orders of magnitude more capable than the most expensive workstations of even a decade ago. We’re about 25-30 years in to the great democratization of compute, and a seismic shift has occurred over the last 10% of it.
Meanwhile, we’re 115 years into the ‘affordable’ mass produced car, never mind that the average transaction price in the US is dangerously close to the median income. The average car is now a heavy, relatively inefficient, boring, midsized, wagon that looks like an SUV but then massaged back into a car-like visage. We’re clearly on the cusp of major changes in the way we build cars, between electrification, increasing urbanization, and the depletion of natural resources; a major change is coming regardless of what form it takes.
Just as the iMac Pro spawned a half decade of ‘car-based trucks,’ the AMC Eagle gave us 40 years of crossovers — but what comes next? Computers and cars have been following the same evolutionary path, just at different speeds, so computers today can offer us a look at the cars of tomorrow. A decreasing proportion of ‘computers’ are the heavy-duty trucks of the world and they’re increasingly difficult to afford for the average person. Even the heaviest-duty computers of today — like the Mac Pro — have a similar architecture to the iMac of 2017, and are heavily based on a mobile-phone-like architecture. If you’ve been on an American road in 2022, you’ve seen the Rivian pickup — a truly truck-like truck that is built like a normal car.
Everyone reading this blog post thinks of a computer as something in a second category — a still-expensive, but not nearly as expensive ‘car’ that covers 80-90% of most people’s needs. The MacBook Air fits perfectly into this niche — it’s pricey, but nearly everyone could use it as their sole, everyday computer and be content. Most people will assume that some generic, electric, mid-size crossover fits all their needs, but those are something more akin to an Alienware laptop — packing everything a truck can do into a car-shaped body.
The MacBook Air is closer to a quadricycle than a Hyundai Ioniq 5 — and the majority of cars will look more like a tiny little appliance with minimal features than a big, luxurious crossover with every gadget imaginable. The cities of the future won’t have room — and their residents won’t have the inclination — for big, bulky vehicles that are impossible to park easily. Most round-trip car commutes in the US are less than 50 miles per day, the kilometerage(?) is generally lower throughout Europe. In the next half-decade, microcars will easily exceed 100 miles in range making them more than able to handle most driving. And they have an added benefit, since smaller cars mean less weight which means smaller batteries resulting in smaller cars — a virtuous cycle that reduces overall transportation costs, energy needs, and maintenance ♻.
Over 95% of the computers in the world pretend that they’re not computers. They’re called ‘phones’ — fifteen years ago, we were pitched a “revolutionary mobile phone” that has turned out to be everything but a revolution in phone calls. Most humans use a very cheap method of computing that claimed to be something else entirely. It shouldn’t take much of a leap to recognize how the ‘electric bicycle’ is in the same category.
Of course, the electric ‘bicycles’ of the future will look about as similar to a bicycle as an iPhone does to a Motorola Razr. With delivery drivers suffering heatstroke on a regular basis, it just makes sense to remove the biggest source of heat in their trucks — the giant internal combustion engine under the driver’s feet. The shape of transportation is going to change as much over the next two decades as computing did over the past two, and it’s likely to have the same level of impact on the way everyone lives their lives.
If you liked this article and think I’d be an interesting person to work with — reach out! I’m looking for senior product roles in New York City and remotely. Want to comment? Get in touch.
With thanks to Michael Banovsky, Andrew Unger, and Max Finkel for various inspirations and encouragements.
Thanks for reading.
Downloading iCloud Photo Library to your Synology for Backup
Thanks to Tom Insam for the inspiration
What are we attempting?
This takes all the photos out of your iCloud Photo Library and syncs them to your Synology. You end up with exactly the same photos on your synology volume as you do in iCloud. It’s important to note that this is a sync — if you delete a photo from iCloud, it’ll also delete from your Synology. This is done by watching the ‘deleted’ folder in iCloud, so if a photo goes missing without appearing in your deleted folder it will remain.
Updated August 11, 2023: I’ve modified this guide to use a virtual environment instead of installing as root. It should run much more reliably and be less likely to break with DSM updates now. You also no longer need sudo.
Why would I do this?
Having your entire photo library in iCloud is a mild risk. It means your photos aren’t stored in a recognizable, hierarchical folder format and your access to the library depends on Apple continuing to offer a reliable service. Any cloud storage that syncs comes with a risk that all your photos could disappear suddenly — this prevents that from happening. If you’re a digital pack rat with every photo you’ve ever taken, this is for you.
Other notes from me:
For even more absurd redundancy, you can use Synology’s Glacier backup to copy your entire photo library up to AWS Glacier for cheap, offsite replication.
These instructions assume you’re using a Mac, but Windows users should be able to accomplish this with WSL (Windows Systems for Linux) terminal commands.
You probably shouldn’t empty the deleted photos folder more frequently than you run this script or it will leave photos on your Synology that you’ve removed from iCloud
Ingredients
iCloud Photo Library
Synology with plenty of extra storage space
Recommended: Not a slow CPU
DSM 7.0 or later
Your Synology’s local IP or domain (something like
<synologyname>.local
)Your Synology username and password
Familiarity with
ssh
, the terminal in general, and other computer inner workings
Instructions
0) Before you Begin
Allow SSH through your Synology firewall (only if your firewall is on)
Open the Control Panel
Go to Security > Firewall > Edit Rules
Make sure ‘Encrypted Terminal Service’ appears on one of the entries with an action of ‘allow’
Turn on SSH
Open the Control Panel
Go to Terminal & SNMP
Check ‘Enable SSH Service’
Click ‘Apply’
SSH to Synology from your local machine
Open Terminal on your computer
Enter the command `ssh <synologyusername>@<synology domain or IP>’ as in ‘ssh sam@harddrive.local'
Enter your synology password when prompted
You’ll see a slightly different command prompt
1) Install and set up Python
It’s probably already done for you!
Check that it is by typing
python -V
into your terminal and pressing enterThe result needs to be at least 3.6 (Mine was 3.8.8 which I believe is included with DSM 7.1)
Create a virtual environment in which to do all of the further work. This effectively sections off the python configuration being used for this project from anything else on your Synology, making sure different work you (or DSM) does won’t impact the iCloud Photos work. It’s recommended
Change to your user’s home directory by running
cd ~
Create a temp directory for use later by running
mkdir $HOME/tmp
Create the virtual environment using
python3 -m venv icloudpd
Navigate into that folder with
cd icloudpd
Activate the virtual environment by
source bin/activate
Note: If you experience any disconnections after this point, re-activate your virtual environment using
cd ~/icloudpd;source bin/activate
In order to install more Python packages, we need to install an up-to-date version of
pip
, the Python package managerI followed this great guide to enable pip
Run the following commands in your terminal
python -m ensurepip
python3 -m pip install --upgrade pip
The order of this step is very important — we need to install WHEEL first
Run the following commands in your terminal
pip install wheel
pip install --upgrade wheel
2) Install the iCloud Photo Downloader
icloudpd
is available on GitHubRun
pip install icloudpd
3) Set up iCloud authentication
Run
icloud —username <youremailaddress>
Enter your real iCloud password when prompted — app-specific passwords do NOT work because it is the API
Two factor users will get prompted for your code. For some reason this defaults to the SMS fallback (if you’re still not using MFA on iCloud, you really should be)
4) Get your Synology ready
Return to the DSM web user interface but do not disconnect your terminal yet
Create a dedicated folder for your photos
Copy the path to your folder out to a note somewhere and save it for the next step
Remember that you need to add
/volume1
(or a different number if you have more than one volume) to the beginning of your path
5) Run some tests
Return to your terminal. If your computer went to sleep at any point, you may have to
ssh
to your Synology again. Remember to reactivate your virtualenvTell your subsequent work to use that temp directory we created earlier. If you don’t do this, everything will break.
export TMPDIR=$HOME/tmp
Run
icloudpd -d <path_to_your_folder> -u <iCloud_username> --recent 10 --only-print-filenames --threads-num 2
If it fails — if you have spaces in your path, you’ll need to enclose in single quotes
See if it succeeds (it should print 10 filenames)
Try downloading a few dozen photos
Run
icloudpd -d <path_to_your_folder> -u <iCloud_username> --recent 50 --set-exif-datetime --auto-delete --threads-num 2
Check your folder using the Synology file browser to see if the photos are there and whether they open correctly
6) Set up scheduling
In the Synology web UI, open Synology > Control Panel > Task Scheduler
Create an upgrade script to keep the iCloud Photos Downloader up to date
Click Create > Scheduled Task > User-defined Script
Fill out each tab as follows:
General: Give it a name, run as your user
Schedule: your preference, I chose once a month
Task Settings
Notification: Your email here, only if abnormal termination (if you want)
Command:
cd icloudpd; source bin/activate; python -m pip install --upgrade icloudpd
Note: This is actually three commands in one — it changes to the icloudpd folder that we installed the python package in, activates the virtual environment, then does the upgrade
Highlight the resulting entry and click ‘run’
Click ‘Action’ > ‘View Result’ and ensure that the Current Status is
Normal (0) or Requirement already satisfied…
Set up the script itself
Click Create > Scheduled Task > User-defined script again
Fill out each tab as follows:
General: Give it a name, run as your user
Schedule: Your preference, I chose daily at 4am
Note that this may occasionally take a long time to run, frequencies <1 day aren’t recommended
Because of the way this script tracks (and removes) deleted photos, it must be run at a frequency less than 30 days — deleted photos are pruned from iCloud after 30 days.
Task Settings
Notification: Same as above
Command:
export TMPDIR=$HOME/tmp; cd icloudpd; source bin/activate; icloudpd -d /volume1/'Media Storage'/Pictures/'iCloud Photo Library' -u samgross144@gmail.com --set-exif-datetime --no-progress-bar --auto-delete --threads-num 2 --log-level error --recent 10 --only-print-filenames --dry-run
7) (Optional) Save logs which is helpful
Open Synology > Control Panel > Task Scheduler > Settings
Check ‘save output results’ and give it a folder that you are ok with filling up
Click ok
8) Final Test
Highlight the upgrade task by clicking on it and then click Run
Select Action > View Result to see terminal output
Make sure that the current status says ‘Normal (0)’
Highlight the download task and then click Run
This will download your entire iCloud Photo Library don’t do this when you need your bandwidth. My Synology maxed out at about 10Mbps download, a fraction of my available speed
Select Action > View Result to see terminal output
You should see ‘current status: running’ with
no data
as the output
9) Clean Up
Quit your terminal app
Turn off SSH on the Synology (remember to hit ‘apply’)
Change log level if desired in the task settings by editing your scheduled task and replacing the last word (
info
) witherror
Limit the comparisons to recent photos only if you’d like by adding
—-recent 1000
to the end of your configuration (you can change the number if desired)
The Car-Based Truck
A few weeks ago, Steve Troughton-Smith and Guilherme Rambo found a software update that contained the code for Apple’s upcoming iMac Pro. Confirming some earlier rumors, it appears that the iMac will have both an Intel processor, as previously announced, and an A10 — the Apple-designed processor powering the iPhone 7. Inevitably, someone will soon bring up the famous quote from Steve Jobs about how traditional desktop computing is a truck, and iOS devices are the cars that everyone will use from now on. In this case, it seems even more appropriate than most.
In 1979, AMC introduced the Eagle. It was ungainly, slow, and ugly — yet was a popular car for most of its eight-year production run. Essentially, it was a compact car with four wheel drive and a 3” lift — ordinarily not enough to cover up the underlying flaws inevitable in a car built cheaply by a dying company. But the Eagle itself started a revolution in transportation — it was the first car-based truck.
Until the Eagle’s introduction, the only way to get a family car that could also handle heavy snows, dirt tracks, and withstand the rigors of even moderate abuse was a heavy, slow, noisy, and crude truck-based ‘wagon.’ Suddenly, it was possible to take your family car to the grocery store, and make it home even when the weather had turned completely sour. This was a revelation at a time when trucks (and their family-wagon derivatives) had barely advanced in the previous thirty years — one of the headlining features of the 1973 Chevrolet Suburban was a fourth door. By taking advantage of the advances that had happened in the car sector, the Eagle provided creature comforts with an acceptable compromise to its off-road abilities.
A few years later, Jeep (then a sister brand to AMC) introduced the XJ Cherokee which — rather than being based on a previous car body — was purpose-built as a car-truck hybrid. It was built for over 30 years, selling more than 2.1 million units, and created an entire segment of the automotive market that hadn’t existed. Today, a plurality of vehicles sold are crossovers, the name that was coined to represent these blends of heavy-duty and approachable transportation.
The iMac Pro, operating under this somewhat-tortured analogy, is the AMC Eagle. It’s the first Mac to be car-first, run by the A-series processor which then boots the legacy Intel hardware. For now, it will (like the Eagle) only provide a few benefits to security. Eventually, this will become the way all mainstream computers are built, providing the power of a truck with the ease of use and simplicity of maintenance of a car.
This iMac, along the Touch Bar-equipped MacBook Pro, may not be a lasting design. Like the Eagle, they might turn out to be a mere hint of the future; with time, they’ll fade into history as the awkward predecessors of a new kind of computer. Like the automotive industry, the line between light-duty, everyday tools and powerful special-purpose machines will begin to blur. Today, you can buy an eighty-thousand-dollar Ford SuperDuty pickup truck with more features than the most luxurious cars from the’90s. Similarly, desktop computing will begin to take on some of the characteristics of mobile devices until it is difficult to tell where one ends and the other begins.
Some Personal News
I'm thrilled to share that I've accepted a position with Oscar Health here in New York, working on their internal product team. Here's to helping build the future of health insurance (sorry, Mom & Dad!)