Graham Lee has a post titled If Object-Oriented Programming were announced today:
Here’s an idea: the current backlash against OOP is actually because people aren’t doing OOP, they’re doing whatever they were doing before OOP. But they’re calling it OOP, because the people who were promoting OOP wanted them to believe that they were already doing OOP.
Basically, Graham argues that a lot of the “newer” paradigms are just OOP by a different name, and that none of us were really doing pure OOP to begin with. You should also check out his talk at UlKonf 2015 — Object Oriented Programming in Objective-C — where he talks about a lot of the same things in greater detail.
This week on The Run Loop I was lucky enough to be joined by Manton Reece, creator of Micro.blog and long time Mac and iOS developer. We talk about working on independent projects, building communities, creating a social network that’s resistant to harassment, tabs vs spaces, and more! Please check out the show on it’s website and if you haven’t subscribed in your podcast player of choice, please do.
Also, if you’re enjoying The Run Loop, please tell a friend, review the show on iTunes, and recommend it in Overcast.
Manton Reece has four days to go on his “Indie Microblogging” Kickstarter, and he still needs our help. He’s trying to create an ad-free open platform for microblogging where people own their own data and can take it where they please. Right now he’s at $68,620 of his original $10,000 goal — which is fantastic. Manton has built safety into the platform with a feature he calls “Safe Replies” to fight abuse, but if he reaches his stretch goal of $80,000 he can hire community manager to make the service even better:
If the Kickstarter reaches $80,000, I will use some of the money to make my very first part-time hire for Micro.blog: a community manager. The community manager will help set the tone for the service, work on documentation and best practices, and be responsible for curation when Safe Replies fails to automatically catch emerging problems.
I’m going to up the amount that I’m in for. If you haven’t already pledged to help — and you can — you should.
Managing third party code on iOS has always been a pain. In the past 9 years or so I’ve done everything from dragging source directly into projects, to Git submodules, to CocoaPods, to Carthage, to Git submodules again. Right now I’m using CocoaPods.
I’ve had three problems with CocoaPods from the beginning:
- It messes with my Xcode project files.
- It stops working for me all the time.
- I don’t want to mess around with Ruby gems.
While the first issue seems pretty much intractable, the CocoaPods app seems to (potentially) fix the second two by bundling its own Ruby environment in the app. Because it’s from the people who make CocoaPods, I assume it’ll keep updated to match the command line tool.
The app itself is pretty barebones. I’d love to see a future version let me see what updates are available for my pods from within the app and abstract away me having to edit the podfile by hand. Either way, I’m going to give it a shot. You can check it out on the CocoaPods website.
I found this post called “How to reduce the cognitive load of your code” through Gus Mueller’s blog, and I wanted to endorse it as well.
A good set of guidelines are: don’t be cute, don’t use weird formatting, keep it simple, and really, really, don’t be cute.
Brent is harping on limitations you hit when trying to use protocol oriented programming in Swift:
But these days we’re smarter: we use protocols. There’s no reason Folder and File should descend from the same class — they’re almost entirely different, and inheritance is a pain to deal with, so we use protocols instead.
And we’re happy. It works great.
Until you realize that, in Swift, you can’t do this.
I hit something like this yesterday. So no, it’s not just him.
This post on Medium by John Zeratsky echoes a lot of what I’ve felt, and what I’m trying to get to. This part describes how I’ve been my entire life:
It didn’t come naturally to me. When I had to wake up early—for a meeting, an event, or class—it was like the vignette above. I struggled to get out of bed. Often I barely made it to my engagement on time. And that rushed, zombie-like morning loomed over my day like a hangover.
John also was motivated by the same thing I am though; the promise of how much more you can get done by being a morning person. Whether I like it or not, the world isn’t likely to adjust to my natural schedule, so if I want to get by in it, I need to figure out a way to change this about myself. Missing mornings — or being awake but useless for them — means I’m missing a couple hours every day I could be participating in the world, or doing something good for myself. The best part is that it worked for John, and he’s kept it up:
It worked. I traded a typical night-owl schedule—up ’til midnight or later, staring at a screen, writing, doing design work, coding—for an uncommon routine where I go to sleep early, wake up early, and get a lot of work done in those quiet morning hours.
If he did it, maybe I’m not hopeless.
This post by eevee is specifically talking about video games, but I think a lot of it is a good characterization of discriminating behaviors, why they persist, and what people who don’t get it (saying “other side” feels wrong), don’t get. This part kind of jumped out at me:
There are, of course, also cultural biases that tip the scales towards people who are white or male or cis or whatever. But even if you don’t buy that, it shouldn’t be a stretch to think that there really are overt cartoon sexists out there in the world who are just not vocal about it. Some of them might be judges or managers or politicians. Some of them might even make video games.
You might think of them as weighted coins that always come up heads. And therein lies the problem.
You have 100 coins. You flip all of them. 60 come up heads. How many are weighted?
10, you might think. And you’d be wrong, because 60 heads is entirely possible, so you can’t actually be sure any of them are weighted! But there’s a much bigger problem: which 10?
I pretty much refuse to believe there is any such thing as a “meritocracy”, because even people with good intentions have unconscious biases. Good intentions (we just want to hire the most qualified candidate) aren’t enough to do the right thing. You need to actively and conscientiously work against unconscious feelings that you may have never even been aware exist. It’s really hard and it takes a lot of practice.
A list of what the title says from Mark Dalrymple. I’m sure he created this years ago, but it’s new to me. I’m considering putting this in my favorites bar. As an aside; it’s sort of amazing 8 years in how often I find myself reading the docs for NSString.