As discussed on recent episodes of ATP, I’ve had some issues with my iMac
lately. A trip to the Apple Store and new logic board later, I had functional
hardware but no software installed upon it. Finally, I had the opportunity to
try out something I’ve been preparing for a long while: my
Much in the spirit of Ruby’s Bundler, Homebrew has Bundle. For both Bundler and Bundle, you provide a file with a list of software/dependencies you want installed, and the apps will install them automatically. In the case of Bundler, it’s all Ruby gems; in the case of Bundle, it’s command line apps, Mac apps, and even fonts.
Last week, I loaded up my iMac from scratch using a
Brewfile I had been adding
to over the last couple years. Finally getting the opportunity to use it has
given me the opportunity to refine it.
These refinements ended up being extremely convenient, as just yesterday I decided to nuke my MacBook and reload it to try to get it operating properly. Thanks to Bundle, that took considerably less time than it would have in years past.
All it took was having
~/Brewfile, and then running
brew bundle install
Give it a bit of time — a lot if you’re installing Xcode — and just like that most/all of your favorite software is installed. All in one easy peasy command line incantation.
I can’t overstate how much time this has saved me. 🥳
Furthermore, as I add new items to my
Brewfile, I can feel free to run
brew bundle install again. It will automatically skip software that’s
already installed. In fact, the screen shot above was me re-running Bundle
long after it had worked its magic.
Brewfile is unique to you; it’s a distillation of your own particular
toolchains and requirements. There are many like it, but this one is mine.
UPDATED 2019-10-09 3:00 PM: Several people have asked “okay, but, how do I
Brewfile to begin with?”
For me, I went spelunking through
/Applications to see what I had and what I
knew I couldn’t live without. Generating my
Brewfile from scratch was, to no
small degree, the point.
If you’d like to take a shortcut to get yourself started, you can do:
brew bundle dump
This will create a
Brewfile of everything Bundle recognizes on your existing
system. At that point, you can go through and cull what you don’t think you
Finding a new podcast is a double-edged sword. I’m already living in a state of near-bankruptcy when it comes to my podcast queue. Adding something new is a decision I don’t take lightly.
Fun Fact is my most recent add, and I did so within the first couple of episodes. It’s a really fun and silly — yet serious — show about little nuggets of information you probably didn’t know.
Despite the dubious decision of putting Follow Up (©️ 2011 John Siracusa) at the end, Fun Fact is a great show that I’m glad I found.
On this fortnight’s episode, I stood in for new dad Arik. Allen and I discussed quiet places, odd ways to represent state geography, software asset management, jazz music, and took a trip down 90s memory lane.
I stressed out a lot over choosing good and fun facts to bring to Allen; hopefully I did at least a passable job. 😊
Last night I recorded a podcast with my pal Tyler Stalman on his show, The Stalman Podcast. Tyler received review units of the iPhone 11, iPhone 11 Pro, and Apple Watch Series 5. After a whirlwind day of him testing the phones, Tyler made some time to sit down with me to discuss them.
In this episode, I turned the tables on Tyler and interviewed him. As a professional photographer, Tyler naturally had a lot of thoughts about the new two-camera system on the 11 and the three-camera system on the 11 Pro.
I had a ton of fun recording this with Tyler, and for those of you waiting in line tomorrow, or debating buying a new iPhone, this episode is for you.
Just over five years ago, Myke and I announced Analog(ue). It doesn’t feel like it was that long ago, but here we are. Analog(ue) is older than both of my children; Myke and I have released 163 episodes of the show. Not bad for something we thought would peter out after ten or twenty episodes.
Analog(ue)'s Relay’s fifth anniversary, over twenty hosts
joined Myke and Stephen in San Francisco to record a live game of
Family Feud. It was a blast, and probably the zaniest podcast I’ve
ever been a part of.
The whole episode is up on the Connected feed, if you’d like to have a listen. There may be video in the future, but no guarantees. If there is, I’ll link it here.
One of the unsung heroes of iOS is CarPlay. It makes your phone far easier, and safer to use while driving. Today, in iOS 12, it’s good, but definitely not great.
I don’t get the chance to talk to John on a podcast often, so this was a lot of fun. And less than an hour!
On ATP, we do often nerd out, but we don’t often go deep on code-related things. That’s fine; ATP is a more general-audience show.
This week, John Sundell was kind enough to ask me to join him on his delightfully nerdy podcast, Swift by Sundell. On this episode, we discussed my investigation into Combine (and reactive programming in general), as well as unit testing, and answered some listener questions.
I had a ton of fun recording this with John; if you’re an iOS developer (or interested in what makes us tick), you should enjoy this too…
You have to be wired wrong if you don’t see the delight and humor in a holiday called World Emoji Day. That day was yesterday, and my buddy Jeremy Burge was kind enough to invite me onto his monthly podcast, Emoji Wrap.
On the episode, we discuss Apple’s new announcements that will be released in an upcoming update to iOS 13. It was a ton of fun to speak with Jeremy, as well as get a sneak preview of what Apple is working on. I’m already anxiously awaiting his call for me to join the show again.
Additionally, internet linguist Gretchen McCulloch joined Jeremy to discuss how emoji are replacing real life gestures.
As an emoji aficionado, this appearance was quite an honor.
For reference, here’s a list of links to my two series of posts on RxSwift and Combine. There’s nothing new today, but it occurred to me that I didn’t have a good summary page that others can link to.
In late 2016, I walked through how to write an extremely basic app using RxSwift. We start by writing the app traditionally/procedurally, and then migrate it to being written using RxSwift.
- RxSwift Primer: Part 1
An overview of what RxSwift is and what problems it’s trying to solve.
- RxSwift Primer: Part 2
Introducing the app we’ll be migrating, and some basic concepts of RxSwift.
- RxSwift Pimer: Part 3
Eliminating the state in our app by using
- RxSwift Pimer: Part 4
Tying data to the user interface using
- RxSwift Pimer: Part 5
Architectural changes and unit testing.
Combine vs. RxSwift
In June of this year, I did a deeper dive on how functional reactive programming came to be, why one would want to use it, and how RxSwift and Combine take slightly different approaches to solving the same problems.
- Building Up to Combine
Let’s create the idea of an
- RxSwift Quick Overview
Exploring the projects that exist in and around RxSwift.
- Combine: Where’s the Beef?
Where are the
UIKitbindings in Combine?
- Quick Notes on Yesterday’s Post
Does KVO make Combine easier to use?
- Error Handling Approaches
RxSwift and Combine take very different approaches to handling errors.
- Under Pressure
Combine handles the concept of backpressure, whereas RxSwift mostly doesn’t.
We discussed how Aleen and I are both in the market for new laptops. My beloved MacBook “Adorable” is getting a bit long in the tooth, and I’m really considering replacing it soon. Aleen is in a similar situation. Stepehen attempts to be our guide as we navigate these new waters.
Yesterady I joined Lory Gil, Dan Moren, and Mikah Sargent on Clockwise. On this episode, we discussed Jony Ive’s recent departure from Apple, unplugging on vacation, the stickiness of gamification, and outdoor tech that we enjoy and/or are lusting after.
Clockwise stuffs an incredible amount of content into a very short time; you really can’t go wrong. As always, this was a fun one.