The Swift 5.0 Migration

I started updating my apps to Swift 5.0 today. It has been a pretty easy migration for me, so far, but it has reminded me how much I dislike dependencies and CocoaPods. I think I’m going to ditch all CocoaPods eventually and just take over, for myself, whatever open source code I use.

I will be submitting the new build of Simple Call Blocker, my free anti-neighbor spam app, soon. I don’t plan to release the update to my other iOS app, SwiftoDo, for another week or so.

My thoughts on Apple Card, written in the Apple style of trying not to say “the" before the product name.

Apple Card

Apple announced Apple Card at its event on Monday. Details are incomplete, but its announcement excited me more than the media-related services Apple announced at the same event. Perhaps that is because I pay for things every day, but don’t watch much TV, and my wife and I are happy with our New Yorker subscription (she reads the physical magazine; I read it online) and our New York Times subscription (which we both read via its iOS app).

Apple Card interests me because I use Apple Pay all the time, and Apple Card’s Apple Pay-specific cash back rewards are a 33% better than what I get from either of my two current credit cards on the things I purchase most. From a pure spending and getting rewards perspective, Apple Card seems like a winner to me.

I am a somewhat baffled, however, at the Apple commentators’ many takes on how Apple Card’s rewards are mediocre. I suppose that may be the case for people who want travel rewards, but if you want cash back and can use Apple Pay at your local supermarkets and restaurants, Apple Card is a winner.

I base my opinion on lots of research into the best cash back cards. For the past twenty years, I have been a cash-back-rewards seeker who researches credit cards on NerdWallet and BankRate at least once a year, and occasionally jumps from one card to another. Based on my research, I already have the best credit cards for me, from a rewards perspective. Apple’s credit card’s cash back rewards system is better than all of them, again, for me. Two percent cash back on all Apple Pay purchases would increase the cash back I get from my largest non-mortgage monthly expense category, supermarket spending, from 1.5% to 2%.

I heard on TWIT this week that Apple Card does not have certain protections most credit cards come from, like purchase price protection and extended warranties. That doesn’t matter to me, though, as I have not used those benefits in the 20+ years I have had a credit card.

Apple Card’s announced interest rates fall within what I think is a normal range. Each customer’s interest rate will depend on their credit rating, so it is technically unknown until each person applies for it. Apple has not made it clear whether there is a monthly billing cycle with an interest-free grace period, which is common. This leads to more uncertainty about it, as better cash back rewards are not helpful if you have to pay interest on every purchase. I almost never carry a credit card balance, though, so whatever Apple’s interest rate is for me, and provided there is a normal grace period for purchases, it does not matter.

All in all, Apple Card sounds like a good deal for a lot of Apple’s customers.

Today I learned that you can delete files older than 30 days from the Recycle Bin in Windows 10.

I am a little baffled that the most exciting announcement from Apple’s event today is a credit card.

Unlike most iPad users, I can write apps for the platform, and know an awful lot about iOS APIs. Like most iPad users (I imagine), I had to search online for instructions on how to restore it from an iCloud backup.

I brought my iPad Pro with the LCD backlight bleeding problem to the Genius Bar tonight, and they kindly swapped it (out of warranty) with a brand new one for only $100. Not bad for a $1,000 iPad!

📺 I am super late to it, but I may just like “Brooklyn Nine-Nine” even more than “The Good Place”. (I don’t even know myself any more!)

Journal 2019-03-20

Journal 2019-03-20

I have been working pretty steadily on finishing version 4.0 of SwiftoDo Desktop. I feel pretty good about the app, in general. It is coded in Swift now, as opposed to Objective C, and has a much more mature, and hopefully easy to support, architecture.

It will be a massive upgrade from version 3. While I would like to charge for it, even for my current customers, I feel bad enough about drastically changing an app I sold, even if it is for the better, that I am strongly considering just releasing it as a free upgrade. That’s basically my plan for the next version of SwiftoDo on iOS, which will be based on this codebase as much as possible.

My day job has been super interesting lately. I have hundreds of data analysis work papers to write, and I coded some pretty sophisticated scripts to generate all the data analytics I need to run, review, and report on. If only the software I was using made it easier to generate my work papers. I still have days and days of work ahead of me writing all the work papers that document the process. I also re-learned today about VBA’s superannuated support for interfaces, polymorphism, and delegation, for another project I am working on.

My wife has been baking cookies for Purim this week, which is a lot of fun, but incredibly tempting to me, as I have been on a low-carb diet the past few weeks. I have to loose all the weight I gained over the past 14 months, due to stress- and grief-related overeating. I am using MyFitnessPal, once again, to track my eating. I have also been doing low-paced treadmill workouts in the evenings, though not every night. So far, my diet and exercise regime has gone really well, but sweets can still be tempting.

One new wrinkle in parenting that my family is dealing with is that my two-year-old son has recently developed separation anxiety, which is normal at his age. It has lead to a good deal of interrupted sleep late at night, when he wakes up and screams “Mommy!” My wife bears the brunt of it, though. He cries for her, but not for me. I am definitely second banana during these intermittent nighttime terrors.

I had no idea that MLB has to ship tons and tons of dirt to make “safe”, regulation baseball fields for its non-US games. That will definitely limit the number of overseas games each year!

Sign me up for these new AirPods. My AirPods' batteries are almost toast. They last about 30 minutes on a charge, which is too short for a typical trip through the supermarket or a treadmill workout.

I have one more feature to create for my huge SwiftoDo Desktop update. After coding that, plus testing the whole app, I will be ready to move onto release-related activities.

I’m trying something new on the big blog: occasional longform journal entries. Journal 2019-03-15

Journal 2019-03-15

I am going to try to post a journal entry now and then, because I have been neglecting my blog, and even my micro blog, for a long while now.

Today was a good day.

At work, I automated a data analysis process—and, just as importantly, the work paper creation process associated with it—that I will have to run about sixty times for one of my current projects. I am hopeful that all the effort will have been worth it when I can start using it next week.

I am stressing myself out a little bit while doing this work, though, because it would look like I spent the past day or two not moving forward on actual output at all, even though moving forward next week will be much more efficient. I always have to compare the time it will take me to automate parts of my work with the time it will take me to simply ground it out. Of course, both time estimates are usually just guesses for me, because most of my work is one-off project work, which is never repeated (at least not in the same way) on the next project. Luckily for me, I have the weekend off to forget about time and budget pressure for a couple days.

My daughter passed level 50 in Reading Eggs tonight, which she does at school and at home on her Chromebook. I am very proud of her. She has recently started working much harder at learning to read. My wife and I have been pushing her a little harder lately, too, and even hired her a reading tutor (who is super nice) to help her. The best thing to happen about it this week is that we are now all on the same page about, and saying aloud to each other, that increasing her reading skills is the top priority. It helps to be able to prioritize things.

My son probably will never need a reading tutor, but he will need to go to preschool in the fall, and my wife and I have to figure out how to pay for it. We have already started scaling back our expenses (mainly monthly subscriptions and dining out), but have not gone into full-on budget mode just yet. We have started talking about money again, which is good. We may start using YNAB again, but I don’t care for the price of their subscription.

I have been working on a huge update to one of my apps, SwiftoDo Desktop, which is a todo.txt task list manager for the Mac. The current version is super old now, and I re-wrote it from scratch, basing the model code on the iOS version I have been working on for a couple years now. At this point, the new Mac version is even better than the iOS version, but it is still not ready for release. Based on the brief time I can work on it, late at night, I imagine I have several weeks to go before I can release it.

Also, today, I released a bug fix update to one of my other apps, Simple Call Blocker. I fixed a bug that made its call blocking extension not load for a lot of people. It turns out the problem had to do with calling an Apple API incorrectly—and I think the rules changed since I initially released the app, because it used to work without a problem. I had thought the bug was related to the app’s Core Data stack, which I had no way to fix, but it turned out to be something different. It feels good to fix that bug, and hopefully put a stop to all the customer emails I get about it.

iPad Pro Backlight Bleed

As of today, my second 2017 iPad Pro has also developed backlight bleed on the bottom edge of the screen. (I have a charging stand, and use my iPad Pro almost like a desktop computer, so there is a definite “bottom” to it.) I got my first iPad Pro replaced for the same reason after about 11 months. The replacement’s screen has been perfect for about nine months since then, but just started to exhibit the same problem today.

I wonder what is causing it. I hope it is not due to charging, pretty much exclusively, by the Smart Connector, because that’s how I have it set up. Anyhow, I am stuck with it now for a good, long time, because it is out of warranty and was very, very expensive. Hopefully I can train myself to un-see it.

I don’t know anybody who objects to Daylight Savings Time, as a thing. Everybody I talk to objects to changing the clocks, which is an entirely different thing.

I’m coding and listening to Guster. I think about the one live Guster show I saw in Boston about ten years ago on a weekly basis. They completely blew me away.

I love Lin-Manuel Miranda, and am excited to see his guest spot on “Brooklyn 99" someday (I have to catch up), but I’d really like more songs like “Breathe” and “In the Heights” come from him in the future.

Friday evening now means homemade chicken soup and (not homemade) challah for dinner at my house!

I had thought that more Americans used LED light bulbs than this New York Times article reports. I’m mostly surprised that 37% of light bulbs installed are halogens.

One of my favorite podcast hosting teams is the Political Gabfest’s combo of Emily Bazelon, John Dickerson, and David Plotz. They have great chemistry and are all very, very smart. I am happy that Slate was able to keep them all together after they left the company, years ago.

I made a last-minute decision to go see Captain Marvel tonight. I hope I like it. 🤞

I miss listening to “Marketplace” on my commute home. Now that I work from home, I don’t do that any more. For some reason, listening to the “Marketplace” podcast, which I used to do, kind stresses me out. I don’t understand why; perhaps my relationship to money has changed.

I’m listening to Counting Crows after listening to an episode of the “Underwater Sunshine” podcast, which is hosted by Adam Duritz and James Campion. I’m plugging away at my day job, and thinking about why I can’t get myself to write a little journal entry every day for my blog.