Today I took a trip to the Pulgas Water Temple. It’s only open on weekdays, so I stopped by for a few minutes late in the day. I took these pictures on my Canon EOS 6D with my go-to 17-40 f/4 L lens.
This stone structure near Interstate 280 commemorates the completion of the Hetch Hetchy Water Project.
Water from the Sierra Nevada mountains can be heard rushing past a waterfall in the center of the temple. A reflection pool in front of the temple makes this a beautiful place to visit.
Inscribed on the frieze and above the waterfall is a wonderful reminder of God’s provision:
I give waters in the wilderness, and rivers in the desert, to give drink to my people.
Isaiah XLIII:XX.
Waters from the Wilderness was originally published on Reid Burke
I recently purchased a MacBook Pro. I was eagerly expecting a seamless setup experience.
The experience was not seamless. The good news is I have a working system. The bad news is it took a while to get here. I’m writing my experience to help others who may also be setting up a new Mac and trying to get things to work.
I use a Synology DS1815+ NAS as a home server. The NAS supports Time Machine which my venerable MacBook Air has been backing up to for years.
Network backups with Time Machine are only officially supported to an antiquated Time Capsule, an external drive connected to an antiquated AirPort Extreme, or macOS Server. I understand my Time Machine configuration is not officially supported by Apple. All the same, I believe most of my troubles were caused by faults in Apple software instead of my NAS.
I made sure to have a recent backup of my Air before getting started. It completed without issue.
Just follow the instructions
macOS helpfully asks if you would like to migrate during setup. I did so, found my NAS as a Time Machine backup, entered my credentials, and was presented with a list of computers.
Upon selecting my computer, macOS prompts for the encryption password. I typed my password and got an error:
Some backups cannot be opened. Make sure that all of your network devices are connected and turned on. It appears that some backups are already in use. If you don’t see the backup you need, make sure it is not currently mounted by another machine and try again.
OK, no problem. I shut down my old Air. Unfortunately, I cannot retry the operation, so I need to reboot the computer to try again.
Enter Wi-Fi password. Enter NAS credentials. Select. Same error.
I restart my NAS, believing I have a open connection somewhere. Same error.
Then I realize: I’m probably in the Sierra installer. This computer is a refurb from mid 2017. Perhaps it’s getting confused that my Air’s backup is on High Sierra? Perhaps that’s why it’s not working? After all, even the filesystem is new.
Reinstall from Internet Recovery
I use Internet Recovery to boot into High Sierra and install it.
I then try the same steps. I get the same errors.
I quickly realize this will not work.
I complete setup since I cannot restore from Time Machine. I create a user account and I’m in.
Migration Assistant
I decide to run Migration Assistant after setup to migrate directly from my Air.
This works until I get to migrating my user. The option to replace my existing user is grayed out. It turns out you cannot migrate a user with the same name. So, I create another admin account, log out, log in again, then delete the account with my name.
I try again. Everything works and the transfer begins. I leave for several hours.
When I come back, the wireless transfer is done. But it was not successful.
Some files in /Users/reid were not copied.
The assistant also informs me I should enable FileVault since it did not do so during the migration.
OK. When I’m back to my system, my Desktop and apps are working.
Silent failure
However, only about half of my home directory exists. OK, I was expecting this. I kick off a rsync from my old Air to bring in the rest of my files.
I launch the Aerial screensaver and my screen glitches out. Weird.
I try downloading a driver for my USB 3 Ethernet dongle and get another error.
“AXXX.zip” is damaged and cannot be opened. You should move it to the Trash.
Weird. Perhaps it’s not code signed. I download a utility for my LG monitor. Same error. I know that’s code signed.
I visit the Security preference pane and notice Gatekeeper is set only allow apps from the App Store. I typically also allow identified developers, so I reselect that and try again. Nothing.
I go back and visit System Preferences and notice the option is reset back to App Store only.
I look up the Gatekeeper command line tool, cpctl, and attempt to query the assessments list. I get an assertion error instead. What?
Start over
I decide to reinstall High Sierra and start over, again.
This time I am determined to restore from a Time Machine backup. I suspect my backup may need repair, so I run fsck on the sparsebundle and manually verify the Time Machine backup. I know it’s good now.
I boot the new computer and follow the same setup steps. I get the same “Some backups cannot be opened” error.
I am about to give up when I realize the password I’m using to decrypt the backups is a newer password. I created my Time Machine backup when I used a different password.
I restart, enter Wi-Fi, enter my NAS credentials (by this time, I have printed them out from 1Password) and finally enter my old password to decrypt the backups.
Loading backups…
Yes! I was very relived to see this message. I waited a few minutes for the backups to load.
And waited.
And waited.
I realized my backups were not loading after all.
I was going to try to back up a few steps in the Installer to see if I could retry loading when I noticed a new volume appeared next to my NAS in the previous step. It was a picture like an external Time Machine drive labeled “Time Machine Backups 1”. Perhaps macOS behind the scenes mounted this drive but did not get any further?
When I selected this option, I was able to select my backup and begin the restore. Finally.
Waiting
The restore of about 256 GB of content took about 8 hours over Wi-Fi.
This time, everything worked. FileVault was also helpfully on by the time setup was over. Everything was working. My files were all present, Aerial loaded correctly and Gatekeeper was setup correctly. Hooray.
Let’s enable my kexts
I noticed Keybase and my USB 3 Ethernet dongle kernel extensions (kexts) were not loaded. So, I told Gatekeeper in the Security preference pane to allow Keybase, Inc. and “LEI SU”, the Honest Achmed vendor of my network dongle.
When I restarted, the computer froze on boot. I waited a while and realized I now have yet another problem: I just loaded a bad kext.
It took me a while to figure out how to fix the problem. I tried booting into single-user mode, but I was unable to run mount without assertion errors. It’s also quite difficult to read single-user mode on a Retina display.
I booted into Recovery OS, mounted my drive with Disk Utility, then read the SQLite3 database at /var/db/SystemPolicyConfiguration/KextPolicy to understand which kexts belong to the vendors I allowed. I then edited the database to disallow them an moved the kexts from System/Library/Filesystems and System/Library/Extensions into /tmp.
I rebooted and thankfully everything was working again. I decided just to buy a newer USB-C Belkin dongle instead of trying to load drivers for my old one. (Why does Apple not make their own USB-C Ethernet dongle? Belkin is not a substitute. Alas.)
One more thing: Time Machine continuity
I wanted my Mac to inherit my old Mac’s backups. I could not get prompted for this, so I has to lookup and run tmutil inheritbackup on my old Mac’s sparsebundle. I was then prompted to use an existing backup in Time Machine which matched my new machine’s name.
I thought this was a mistake and possibly the old backup from my computer’s brief broken state, but realize inheritbackup renames my old computer’s sparsebundle to my new computer’s name.
I use per-user quotas on my NAS to ensure Time Machine doesn’t take over my entire volume. I noticed Time Machine thought I had several terabytes instead (no quota), so I used log to query for Time Machine logs to find out what user is in use.
I found it was using the credentials I used to mount Time Machine Backups when running tmutil, not the credentials I used when setting up Time Machine. Weird. I disabled the quota free user, was prompted to give my credentials again, then everything worked correctly.
This is not normal
I have a working computer. However, it took a lot more effort than I’d expect.
My computer comes with AppleCare phone support and I cannot imagine having AppleCare walk me through all of this, let alone someone else who would not have the patience.
I upgraded my Air to High Sierra a few months ago and the installation failed midway, leaving my computer failing to start up. I had to restore from a Time Machine backup, which worked without issue. It was just slow.
I am a bit disheartened to see so many rough edges in the Mac setup process. The biggest trouble was the vague error message about opening backups. Sure, the error was technically correct: I gave the wrong password so the Installer could not open the backup. But when I mistype my password in Time Machine preferences, I get a message saying I used the wrong password instead of a generic message.
My hope is for Apple to improve the experience here. I know a few folks who are working there and hope they continue to work on making the Mac experience great. Even for nerds like me, who can dig into the UNIX underpinnings of the OS, but would rather have things just work.
The good news is it’s a very nice setup. Once it’s working.
Postscript: Why the upgrade?
My venerable MacBook Air has been traveling in my backpack all over the place for over 3 years. Over the last several trips, my screen has developed a halo effect near the center of the screen which is brighter than everything else. This is because of a damaged diffuser and it’s very tricky to repair. This makes photo editing a bit more challenging and has been annoying me more and more lately.
I got a repair quote which came to $400. I decided to put this toward a new computer, even though my Air has been quite capable of occasional video editing and nearly everything else I’ve asked it to do. I’ll miss the Air.
The Joy of Migration was originally published on Reid Burke
Last Sunday was an unforgettable day riding through SF and across Golden Gate. We rode united to fight male suicide and prostate cancer and had a great time doing it.
Why I am asking for your support
Men are dying too young.
Prostate cancer kills more men than breast cancer in women.
I lost a male co-worker to suicide, which is the biggest killer of men aged 20-39.
This needs to change.
That’s why I have been partnering with these fine folks riding for a cause — the Distinguished Gentleman’s Ride — to raise funds that directly support the fight for men’s health worldwide.
Prostate cancer statistics
Prostate cancer is the most common cancer in men. It kills more men than breast cancer in women.
One in seven men will develop prostate cancer by the age of 75, and one in four men will be affected by the age of 85.
Close to 500,000 men will die from prostate cancer yearly.
Suicide prevention
Suicide is the biggest killer of men aged 20-39, with ¾ of all suicides being male.
510,000 men die from Suicide each year, one every minute.
These numbers need to drastically change.
Personal fundraising goal reached
I have had a few fine folks give generously before the ride: $522.40 contributed for men’s health. Thank you. You have personally contributed in funding worldwide medical research to find a cure for prostate cancer, as well as aiding to improve men’s mental health.
$1.5M to go worldwide
Fundraising is still open until October 31. If you haven’t yet donated, please consider registering your support.
Curious about what programs your donation will support? In partnership with the Movember Foundation, funds are allocated to important prostate cancer research programs as well as men’s mental health and suicide prevention programs.
All fundraising has only been made possible through the generosity of people like you who have answered the call to make the world a better place. DGR has a goal of $5M and $3.4M have been raised so far. Help us get to the end!
Donate now.
San Francisco ride
The ride was pretty incredible. Over 350 people turned out. Together we raised $55,511.
This short video gives you a taste of what it’s like:
After riding across the Golden Gate we stopped at Equator Coffee, where we all took some time to drink cold brew, recognize the top fundraisers, and even the best dressed gentleman and gentlelady along with best motorcycle. And, I took home an Iron & Resin t-shirt as a runner up for best beard. Tip of the hat to Riv at Paradox for keeping me looking sharp.
Yours truly on the 2017 Triumph Street Twin
Thanks
Thanks for hearing me out! Stay dapper out there.
Let’s stay in touch
Sign up to get notified when I share photos, video, or new articles about a life that lives by loving other folks. No spam ever.
Email
Thank you!
Gentleman’s Ride Recap was originally published on Reid Burke
Today is World Suicide Prevention Day. I lost a coworker to suicide a couple years ago. Half a million men will commit suicide this year.
Depression doesn’t discriminate. Guys, don’t “tough it out” in silence. Talk to somebody. You can always speak with somebody immediately at 1-800-273-TALK.
I am partnering with The Distinguished Gentleman’s Ride to support male suicide prevention. I am $450 away from my fundraising goal. Please consider making a donation.
This video form the Movember Foundation USA is a powerful reminder to all men to talk to somebody when in a time of crisis. If you or someone you know is in crisis, check out these resources and start a much needed conversation today.
Support male suicide prevention was originally published on Reid Burke
Buckminster Fuller was a world-renowned architect, math-obsessed designer, and affable weirdo. He died in 1983, but Fuller is still remembered fondly today for his geodesic domes and his three-wheeled cars. Despite extensive historical interest in the man, his FBI file has never been made public. Until now.
Turns out the FBI was interested in him because of his association with Soviets during the Cold War.
Pretty cool to see my hometown of Carbondale, Illinois all over his file. He lived there in a geodesic dome, which I remember from my childhood.
Buckminster Fuller’s FBI File was originally published on Reid Burke
The new Flickr will revolutionize the way you upload, organize, and share your photos. Find out more about the new Flickr and make it the home for all your photos.
Life is about relationships with people, not bits. What’s valued is availability, truly caring for those around you, and expecting nothing in return.
I’m being remembered for my love.
When I was a child, I spoke like a child, I thought like a child, I reasoned like a child. When I became a man, I gave up childish ways.
— 1 Corinthians 13:11 ESV
A year ago, someone great told me: “Do not love efficiently.”
Bob Goff said this during his talk at Catalyst West 2014. He wrote the book Love Does that’s full of examples of living love on a daily basis.'>1
What a thought! As an engineer, efficiency comes hardwired.
Loving inefficiently means caring for people when it feels like a waste of time, when it’s with someone outside of “my set”, when it’s someone I don’t understand and honestly don’t want to understand.
I recall this advice in places I’d typically keep to myself. Places like airplanes, coffee shops, and urban sidewalks. Neighbors, baristas, and solicitors.
My selfishness abrades at these attempts. But what is our legacy without love? What else is more important?
If I give away all I have, and if I deliver up my body to be burned, but have not love, I gain nothing.
— 1 Corinthians 13:3 ESV
These encounters are usually brief. Sometimes they’re awkward. But in engaging, I find myself challenged by the everyday opportunities to love others in this way:
Love is patient and kind; love does not envy or boast; it is not arrogant or rude. It does not insist on its own way; it is not irritable or resentful; it does not rejoice at wrongdoing, but rejoices with the truth. Love bears all things, believes all things, hopes all things, endures all things.
— 1 Corinthians 13:4-7 ESV
This is hard. It can come easy, but it’s usually difficult. There are cycles of generosity followed by self-serving deceit.
I can’t love like this. These cycles reveal it: human nature is at odds with acting this way. We love for a day, then we fall short. We try not to envy, then find ourselves coveting. We are nice to people until we feel justified to retaliate. And how do we endure all things when we’re broken in the midst of disappointment?
Instead of making adjustments to what’s broken, my old self is being replaced.
1 Corinthians 13 describes the result of radical transformation.
This chapter of the Bible was written to show the fruits of a new life in Jesus, when we’re committed to Him as our Savior and have the Holy Spirit working within us.
There are days where I progress in love and days where I miss the mark.
I don’t understand everything about the Bible. I’m learning, but I don’t know it all. I will always be learning. But I know a few things for sure. I have admitted to myself and God that I can’t love like this alone. That I cannot be close to God merely by being a good person doing good things. That I believe God’s only son Jesus is the perfect sacrifice that allows God to transform our entire soul if we ask Him.
By this, I am accepted before I did anything to deserve acceptance. Adopted. Beloved. Out of this new identity, I am able to share this unconditional love with others. It’s the heart of Christianity.
“Teacher, which command in God’s Law is the most important?” Jesus said, “‘Love the Lord your God with all your passion and prayer and intelligence.’ This is the most important, the first on any list. But there is a second to set alongside it: ‘Love others as well as you love yourself.’ These two commands are pegs; everything in God’s Law and the Prophets hangs from them.”
— Matthew 22:35-40 The Message
This scene is full of people who compared how they used to live compared to who they are becoming in Jesus.
I’m a work in progress and frequently mess up. We all do. I desire a new heart, a new mind, seen dimly and in part.
By the act of trusting Jesus, I surrender everything to the process of transformation. Every day I’m becoming a new person that can love the way I’m designed to love.
Radically and inefficiently.
The happy man is he who lives the life of love, not for the honors it may bring, but for the life itself.
— Raymond John Baughan (1946)
Finally, if you’d like to know more about what I started to share here, you’re invited to check out The Touch of God. It’s a video from my church about God’s love in a loud and busy world. Or maybe just visit a church near you. You can expect to find a bunch of folks who have been through some crap and are figuring this all out together. See you out there.
New Heart, New Mind was originally published on Reid Burke.
The secret of happiness is in knowing this: that we live by the law of expenditure. We find greatest joy, not in getting, but in expressing what we are. There are tides in the ocean of life, and what comes in depends on what goes out. The currents flow inward only where there is an outlet. Nature does not give to those who will not spend; her gifts are loaned to those who will use them. Empty your lungs and breathe. Run, climb, work, and laugh; the more you give out, the more you shall receive. Be exhausted, and you shall be fed. Men do not really live for honors or for pay; their gladness is not in the taking and holding, but in the doing, the striving, the building, the living. It is a higher joy to teach than to be taught. It is good to get justice, but better to do it; fun to have things, but more to make them. The happy man is he who lives the life of love, not for the honors it may bring, but for the life itself.
-- Raymond John Baughan, Undiscovered Country: Morning Thoughts to Brace the Spirit of the Common Man, 1946. Via.
I kicked off NodeSummit today with a short talk about where Yahoo uses Node, why we continue to use Node, and the practices that help us use Node effectively.
First talk of the day.
@reid kicking #nodesummit 2015 off w/ @Yahoo #nodejs knowledge pic.twitter.com/jbwButoghW
— Emily (@mle_tanaka) February 10, 2015
I spoke a bit about a project I’ve spent the last year on: using Node to handle data pushed out of Jenkins. Folks appreciated the honesty about Jenkins’ user interface.
First spontaneous clap of the day: “Jenkins is pretty terrible”. — @reid #NodeSummit
— Jenny (Phire) (@phirephoenix) February 10, 2015
Hilarious! @reid of @yahoo is honest of his feedback of Jenkins #nodesummit pic.twitter.com/8DWTGlv6tp
— Social AC (@SocialAC) February 10, 2015
Jenkins is the solution that we trust, but nobody loves using it. At Yahoo, we use Node to help us make Jenkins a bit better to use:
scripting job creation, editing, deletion
handling log messages
displaying information about builds with a web interface
@reid Hope you open source it all and rescue the rest of us who don’t have awesome teams dedicated to this
— Jeremiah Lee (@JeremiahLee) February 10, 2015
Noted.
During the talk I mentioned something called RDL.
Felt a little out of my element at #nodesummit this morning until #RDLs came up
— Heather Pujals (@heather_pujals) February 10, 2015
Nope, not the Romanian Deadlift. It’s something we call “Resource Description Language”, a machine-readable spec for web APIs. We started using it for some internal deployment APIs we worked on last month. This spec is transformed into hapi route configurations that contain detailed joi validators.
What’s great about this is that when you change the RDL, it changes the validators and comments which we present using the lout module. We do this by merging together existing hapi route objects using the RDL spec as the source of truth, so the hapi routes we have in code are validator-free and require the RDL as the source of truth. This has worked very well and our spec always matches the reality. This works a lot better than other systems that actually generate source code from RDL, which is not ideal because it cannot stay in sync as your code changes.
It’s been fun! I’ll also be on the “Scaling Business Critical Node.js Applications” and “v0.12 and Beyond” panels tomorrow, so check those out if you’re attending NodeSummit.
Node.js and Yahoo was originally published on Reid Burke.
Eran Hammer's Response to Netflix's "Node.js in Flames"
Eran Hammer on Node.js web framework design tradeoffs and why there is no “best” framework:
If you haven’t read Netflix’s Node.js in Flames blog post you should. It is a great deep dive into debugging a node performance problem. The post includes useful tips that can help you solve similar problems.
That said…
My feedback from the perspective of a framework developer is quite different. I found the tone and attitude towards express.js to be concerning and somewhat offensive. Here was a developer blaming the framework he chose for poor architecture when they never bothered to actually learn how the framework works in the first place.
Recommended for understanding why Express works the way it does, what other frameworks do differently, and why none are superior to the other without considering your own requirements.
Eran Hammer’s Response to Netflix’s “Node.js in Flames” was originally published on ®.
Marco Arment writes about coffee lovers who look down upon Keurig K-Cups:
We’re the ones who keep creating, replacing, Kickstarting, and spending top dollar on ever-more-specialized equipment, even when it differs from established products only in arbitrary or purely decorative ways that have no discernable effect on the actual coffee (except maybe prolonging the process of making it).
We’re the ones who obsess over every little detail of brewing technique as if they matter much more than they really do, making good coffee ever more alienating and confusing to casual coffee drinkers who don’t have time to study and fuss over it as much as we do. [...]
Maybe we’d get some of the Keurig fans to use our methods if we weren’t so pretentious, wasteful, expensive, and inaccessible ourselves. [...]
Our obsession with gear and “rituals” is only distracting them — and us — from the real problem: old, mediocre, or badly roasted beans.
“Sorry, your coffee isn’t an artisanal ritual.” was originally published on reidburke.com.
Zachary Crockett at Priceonomics brings us the story of Alen Alder’s company Aerobie and how a toy manufacturer started making coffee makers.
The AeroPress was conceived at Alan Adler’s dinner table. The company was having a team meal, when the wife of Aerobie’s sales manager posed a question: “What do you guys do when you just want one cup of coffee?”
A long-time coffee enthusiast and self-proclaimed “one cup kinda guy,” Adler had wondered this many times himself. He’d grown increasingly frustrated with his coffee maker, which yielded 6-8 cups per brew. In typical Adler fashion, he didn’t let the problem bother him long: he set out to invent a better way to brew single cup of coffee.
I love my AeroPress. It really does make a great cup.
The Invention of the AeroPress was originally published on Reid Burke.
If you want to repeatably manufacture an open source ecosystem, you need capital to do so. And a firm that’s progressive enough to understand the indirect payoffs of investing in infrastructure is poised to have a huge advantage.
npm’s CEO:
.@steveklabnik @pmarca This is one of the most insightful articles about VC or OSS ever.(Also: Check out the others in True's portfolio.)
— isaacsbot (@izs) February 13, 2014
Infrastructure as force multiplier was originally published on reidburke.com.
I’ve released a new version of Yeti, the test runner we use here on Yahoo’s YUI team. Since August 2013, Yeti has automated 33,661,505 tests in CI for us.
Today’s release prints useful feedback to stderr when Yeti is used in CI. It also includes a fix for issue #74 (Unable to serve error) and #68 (improve DOH support).
When using Yeti to in CI, e.g. to produce JUnit XML output, previous versions of Yeti would go silent after testing began as Yeti produced XML output on stdout. This made it difficult to determine if Yeti was doing anything while tests ran. When using Yeti with --junit, today’s release prints status after every test completion to stderr while XML prints to stdout.
Big thanks to @henryqdineen for contributing the fix for DOH support!
In addition to fixing bugs, we have made some improvements to Yeti’s own tests and to Yeti’s documentation. Yeti’s website now uses Pure for your viewing pleasure on desktop and mobile devices.
Expect more updates soon. Code coverage is next on my list.
Yeti 0.2.26 released was originally published on reidburke.com.