Opportunity
Sometimes the train called Opportunity slows down just enough to let you hop on—if you want—before speeding away. I hopped on.
more ...Sometimes the train called Opportunity slows down just enough to let you hop on—if you want—before speeding away. I hopped on.
more ...After more than nine years on Twitter, I finally deactivated my account. I refuse to contribute to the success of any platform that promotes the hatred of the villainous Donald Trump. I hope Twitter CEO Jack Dorsey never has to face the persecution that the vile Trump is trying to inflict on people like me. However, if anyone deserves it for enabling hatred, it is him.
You can find me here, and on micro.blog.
Update 1/8/2018: After two weeks away from Twitter I came back when I learned that Twitter suspended the hateful account that was retweeted by Trump. There is a story about that here.
It was this action that prompted me to re-enable my account.
Those two weeks I wondered if I made the right decision. There are people I care about that I can only contact on Twitter. When I saw the news above, it was enough to change my mind. I would have been happier, of course, if they had removed Trump’s account.
more ...Last week I attended CocoaConf Chicago for the 6th year in a row. In this post I would like to share with you how I prepared as a speaker, and what I learned as an attendee.
more ...This is a guest article I wrote for the newsletter of a friend of mine who’s an Estate Planner.
Almost every digital or monetary asset you own is protected by a password. Some service providers, like investment brokers require multiple pieces of information, like your social security number, account number, date of birth, etc. These are all things that a provider assumes only you know. Once these secrets are known to others your asset is compromised. So in order to keep these secrets safe, you need to do two things: prevent others from being able to view these secrets, and prevent others from being able to guess them.
more ...Many iOS apps today are clients of some sort. They request data from a remote server. Typically this data is served over HTTP (with SSL) and formatted as JSON. At FastModel Sports our iOS app is constantly requesting large amounts of JSON data. While debugging the app I inevitably have to compare what I’m displaying in my views to what the server sent me.
This meant saving the server response into an NSString, printing it out to the console with NSLog, copying that output, switching to Terminal, pasting that output into a file and then running jq on that file. That’s a lot of steps. In this post I’ll show you how to do all of that directly from the LLDB command prompt.
Another in a series of posts documenting my process of updating an aging app.
For this rewrite of Qur’an Memorizer I’m using Auto Layout. This is the first time I’ve used Auto Layout for this app. You know when the Apple Engineers said Auto Layout makes things easy? They weren’t kidding. Even though Qur’an Memorizer has some unique behaviors for autorotation, I was able to implement this in a few hours with Auto Layout and about 25 lines of code. Read on to see what I did.
more ...Another in a series of posts documenting my process of updating an aging app.
I noticed that the code coverage reports from XCode 8 recently started showing me coverage for .m files that were in the CocoaPods that I’m using. In this post I document how I fixed that.
It’s been more than three years, but I’m finally updating my most popular app, Qur’an Memorizer. This is the first in a series of blog posts tagged with QMUpgrade, where I’ll write about the issues I faced updating an aging app.
more ...