Getting Out of My Technical Rut

I’ve spent about six months in a technical rut. Not really learning anything new iOS/tvOS/Swift-wise. I got a little complacent with the skills that I had.

Recently, I’ve started breaking out of that rut. At least I hope.

Over the past week and a half, I’ve made my way through Core Data by Tutorials from the Ray Wenderlich team. The Core Data book is currently on sale (50% off). It’s a really good book.

I’ve used Core Data quite a bit over the years, but I haven’t used it heavily since 2016. Since 2016, most of my professional work has been using Realm which is an alternative to Core Data.

Core Data by Tutorials was a really nice refresher on Core Data. I also learned a few new tidbits here. Most interesting chapters to me were “Unit Testing” & “Core Data & CloudKit”.

The unit testing chapter gave me some great ideas on how to improve my unit testing in various areas. I’ve been trying to get better with unit testing in both professional and personal projects. This chapter sparked some interest in that area that I’ve been able to progress with, so far.

The Core Data and CloudKit chapter was entirely new to me. I’ve had multiple false starts on getting cloud syncing working in projects. These attempts include a failed blog series called Data Sync Series. I had also made multiple attempts to get syncing into my retired app MyCntdwn.

This book has got me thinking about data syncing again. I’ve even thought about doing a few things. First, adding sync to MyCntdwn (finally) and shipping it again. Second, revamping my data sync series and actually finishing it. I’m not sure if any of this will happen. But this book has got me started down that path mentally. Who knows, maybe it will be a nice Summer project.

I’ve got my next book lined up. It’s Combine: Asynchronous Programming with Swift also from the Ray Wenderlich team. I’ve been dabbling in Combine here and there since it was announced by Apple at least year’s WWDC. It’s not something I can really use professionally, yet. Combine requires iOS 13+ to work and we support iOS 11+ at work. But Combine is something that I can use in personal projects.

Beer Style Guidelines 2020.5 Released

My latest release of Beer Style Guidelines has just gone out.

This version of Beer Style Guidelines (finally) includes a new beer style guideline. I’ve just added the Brewers Association 2020 Beer Style Guidelines. This is the first guide update I’ve done since the 2017 version of this same guide.

The other (included) guides from the Brewers Association are so old (2016 & 2017), I’ve removed them from the app. I’m not aware of many people who like to compare the guidelines from year to year. To me, it only makes sense to have the latest version included in the app.

I’ve also fixed a few bugs within the app. But the largest change is the new guide being added.

Full list of release notes: https://beerstyleguidelines.app/release-notes/2020.5.txt

Please enjoy the update.

Hearthstone: Knights of the Frozen Throne

This is another post about Hearthstone and beating another Solo Adventure. I’ve done these sort of posts before for various solo adventures (One Night in Karazhan, Blackrock Mountain, The League of Explorers & Curse of Naxxramas). This isn’t the most recent adventure, I’m really behind on completing these.

Knights of the Frozen Throne was a little different than other adventures. Instead of beating the entire adventure on Heroic, you need to beat the final boss (The Lich King) with every class in the game.

It took me a while to find the right decks for all of these classes. All of the guides out there, are very outdated and I’m more of a netdecker (finding capable decks online) than able to create my own. Some of these decks may also be outdated now. I’ve been sitting on this list for about 3 months now. I believe some of the cards in these decks have been nerfed by Blizzard since I used them. I’ve been generally lazy about blogging, otherwise I would have posted this sooner.

My reward for beating this adventure is a Prince Arthas hero skin for the Paladin class (seen below).

Knights of the Frozen Throne Reward Skin

Below are the decks that I used to beat the Lich King with each class in the game (except Demon Hunter).

The Lich King

I went through these classes in order above. You can see from this list (specifically near the bottom) where I started to lean heavily on the Mecha’thun card and mechanic.

The Mecha’thun mechanic states that when this card dies “If you have no cards in your deck, hand, and battlefield, destroy the enemy hero.” This just means you need to burn through your cards, get Mecha’thun out onto the battlefield and then kill him. If you can set it up, it’s a very easy win.

There are a few more solo adventures available since The Lich King. They are mostly dungeon run style adventures. I think I am going to jump forward to take care of the latest adventure (Galakrond’s Awakening) before going back to these. I’ve heard that the adventure is fairly easy to get through. I’m planning on going through that and documenting the decks I’ve used.

Stay tuned…

Beer Style Guidelines 2019.1 Released

This past week, I released a new version of Beer Style Guidelines. It’s the first update to the app in almost two years (Nov 6, 2017). Talk about a neglected app!

What’s since the last version

Here’s a full list of the things I’ve changed in the app since the last release. Most of it happening in the last month or so.

  • Tore out Fabric/Crashlytics (good riddance)
  • Set the deployment target for iOS 13+.
  • Added Light/Dark mode support.
  • Fixed the search bar (it was broken in iOS 13).
  • Fixed a slew of compiler warnings (but not all 😔).
  • Fixed a stupid iOS 13 Navigation (title) bar issue.
  • Changed the versioning scheme from major.minor to year.release.

Fabric/Crashlytics

This was one of the first things I did in this release. I actually tore it out in March of this year.

I tore out Fabric/Crashlytics for several reasons. It always made me feel a little gross using it. It’s not owned by me (it’s now owned by Google). I don’t really know what they do with the data. And what they do with the data can change at any moment. They are also shutting Fabric/Crashlytics down early next year, so it’s going away anyway.

I have written my own analytics reporting engine. I think it’s mostly ready to go. But I’m not certain about it yet and I didn’t want to hold up an already two-year old release for this. For this release (at least), I rely on Apple’s App Analytics. I’m still not certain if/when my own analytics reporting engine will be put in place. For now, I’m focusing on other things.

iOS 13+

I think this is pretty self explanatory. I want to be able to support the latest and greatest that Apple has to offer. I will probably continue this every year by moving to the latest/greatest iOS version.

Light/Dark Mode

I’ve been wanting to add this for a long time. I’ve been tinkering with this off and on (mostly off) for three years. I have a really old branch in my GitHub repo called themes. I’ve been wanting to do this for a long time. It’s finally here.

Misc iOS 13 Issues/Warnings

This release also has bunch of iOS 13 specific fixes.

For example, when I upgraded to iOS 13, the search bar was acting silly. I think it was the way I had the list of Style Guide Chapters setup. I had to re-work a number of things to make this work correctly. But it’s all for the better now.

I also fixed a number of compiler warnings (deprecations mostly) that were introduced since I last worked on the project. I still have 4 or 5 warnings left. I plan on tackling these soon™.

Version Number Change

My last version was 1.9. This version is 2019.1. This makes sense to me. It’s the first release in 2019. The next version (if this year) will be 2019.2. I took cues from Curtis Herbert and Marco Arment. I think (a small) part of the reason I waited so long for a release was I knew I wanted to call it 2.0, but I wasn’t sure when was a good time to call it done. Now I just plan on adding a new feature or fixing some bugs and shipping it. No more fretting over what’s “enough” for a major release.

Website Re-Launch

There was a point in time when I had a website for Beer Style Guidelines. I just don’t know why I 1: let the domain lapse and 2: let it die.

So, I relaunched the site as https://beerstyleguidelines.app. I’m using the really old design for it. I have plans to update it. But I wanted to get something together for the launch of this version. I also needed to have a privacy policy page together for Apple and the App Store (which is a good thing).

What’s Next?

I’ve already started on the next version of the app.

In the app now, I’m using a UIWebView to display the guide chapter contents. UIWebView has been deprecated by Apple (as of iOS 12) and will eventually be removed from the OS.

Apple suggests moving to WKWebView instead which is currently supported by them. However, I’m not sure I want to do that. I was never a fan of using a web view to display the heart of the content to users. There is also a very slight delay in displaying the content for the first time. This slight delay also exists in WKWebView. I’ve been toying around with other ways of displaying the data and I think I have a pretty good solution. It currently has some drawbacks that I need to fix before I can even think about shipping this.

After a few more releases like this (modernizing the app in many places), I also want to start thinking about a macOS app. I also need to get new guides into the app. I currently have 3, but the last “new” guide was added in 2017. It’s almost 2020. Time to get more recent guides in place.

I already have a short mental list of what I want to change on the website. For starters, I need to add dark mode support. I hope to get that into place in the next week or two.

On Quitting Star Wars Galaxy of Heroes

I recently called it quits on Star Wars Galaxy of Heroes. I had been playing it for almost four years. I know I’ve posted about this game before.

This was a game that I had liked for the longest time. However, over the last year or so, they’ve started making some decisions that really didn’t sit well with me.

I mostly enjoyed the Player vs environment (PVE) content. Raids, combat missions, even Territory Battles. I enjoy playing against the game/environment (rather than other people). This is how I feel with most games. The latest content in Galaxy of Heroes felt like a re-skin of old content and they just cranked up the difficulty exponentially. It felt like more of a chore to play it without any sense of Pride or Accomplishment (a jab at this reddit comment from EA - who also makes Galaxy of Heroes).

What I really enjoy are new raids and there hasn’t been a new one in well over a year. And the last raid was just so-so.

I was a fairly competitive player. I usually stayed in the top 30 in Player vs player (PVP) squad and fleet arenas daily.

I was not a Free-to-play (FTP) player. I did spend money on the game. Not a ton. But enough to feel like I was helping show my support to the game. I know that sounds weird. But it’s technically a free game and I wanted to help support a game that I played every day. So I would purchase things here and there. I wasn’t a whale by any means.

Over the last year or so, the developers have made staying competitive really hard. They’ve essentially put these huge paywalls in front of getting the latest/greatest characters in the game. It’s been like that for a while now. Previously, you would only need certain characters unlocked at a very minimum “gear” level to obtain them. If you were smart and read the tea leaves, you could unlock the necessary characters needed. Now, you need the characters unlocked and at an almost maxed level to have them. That’s very unrealistic to do without spending a ton of money. The window to unlock these new super power characters has also shortened from week-long events to weekend-long events.

Now these new character events do come around again. So I could wait for the event to return. I did that with the first of these character events (a Darth Malak event). I didn’t have the necessary characters at a high enough gear level to even enter the event. I did manage to unlock him the second time around. But I came up with an even better idea for the latest of these new character events (a General Anakin event). Why not just stop playing altogether? That’s exactly what I did.

Two weeks ago, a friend and I decided to quit.

I am so happy that I did. It felt like a huge weight was lifted off of my shoulders. I’m no longer checking the game every few hours for new guild orders or free energy. My dinner time hours are no longer occupied by trying to climb in both PVP arenas for the daily payout.

I should have done this sooner. I’m not sure I was really ready to though. I’ve finally had enough.

I have no plans on going back to playing Star Wars Galaxy of Heroes. The game was fun while it lasted. But either I’ve fundamentally changed, or the game has. I feel that we are no longer compatible.

So. What am I doing now to occupy my time? Not a whole lot of new things. I’m just enjoying not having this extra weight on my shoulders. I’ve been reading a bit more, playing a bit more of Hearthstone (single player only) and working on my side project.

It’s really been a refreshing change now that I’ve quit. I am so glad that I did.