Squarespace now supports HTTP over TLS! Great news! I run this site on Squarespace and all I needed to do, was to go to the Security/SSL section and select "Secure". Voilá!

And if I remember it correctly, Google promotes secured sites over non-secured.

Thanks a bunch! :-)

Announcing ZiadaTime 2.0

As iOS 10 has recently come out, I decided to give ZiadaTime a makeover. Shifting navigation over to tab-based and giving the buttons an overhaul. The one big new feature is that you can now select stopwatches among the active ones, and then start, stop and reset them simultaneously. You can also do the same individually. Convenient for instance, when starting a group of runners, of which all finish individually. Here's a sample of the active stopwatches tab:

Pokémon GO or GONE?

I was surprised by my own enthusiasm, as I learned to play Pokémon GO when it was released in Sweden. As I also had bad back pains at the time, so it was a true blessing to my daily rehab-walks, helping me get better by walking even more, on some days even too much!
Before to that, the walks had turned boring. You can only vary your routes so much when starting off from home.

Luckily my two eldest were pretty Pokémon savvy. Myself being an age-old gamer, especially Role-Playing games (with all their evolution rules etc), I picked the rules up and started catching and evolving.

But then, something happened, I learned about Pokevision, a web based map where you could see where Pokémons had spawned and for how long they would stay. At the time, I was still finding new Pokémons by taking different routes and going to different places at random.

Niantic then asked Pokevision to shut down service and started blocking other related services as well. My sons were getting bored by the game, as they didn't want to go out and "stumble over non-pidgeys on random for hours at end", as they expressed it. I soon discovered the same, no chance to "Catch'Em All" without travelling farther than I could walk.

Niantic released a blog entry, blaming third-party services to overload their servers and the unfairness that some (in reality probably most) players gained benefits by using them ets etc. They even published a doodled graph (hand-drawn and scanned) showing the difference in load after shutting 3rd parties out. The graph had no scale on the y-axis, leaving no hint on overall capacity.

In this day and age, scaling servers and providing increasing tolerance to load, is a commodity. We would have no Netflix without services like Amazon AWS. There would be no live TV streams from the olympics etc without the now industry-standard highly scalable cloud services.

Sure, anyone can be caught off guard by a phenomenon like Pokémon GO. Honestly, who wouldn't? But, this is where Niantic started to do things wrong:

  1. The community was outraged and Niantic left no response to the most common question: When will the tracker be restored / improved in the mobile app. And there is still no news on that.
  2. For more than 10 days, they only tweet addressing active players was "Which starter Pokémon did you choose in Pokemon GO?", further annoying players who now had all the common an semi-rare little critters, but caught nothing new.
  3. A gameplay-impeding bug emerged, the Pokémons started to escape for no reason, causing players to waste Pokéballs en masse. Some were even filing refund requests on in-app purchases, claiming the bug caused balls to go to waste. The nice, great and excellent bonuses upon catching a Pokémon, had also disappeared.
  4. An app update came, restoring the bonus, but now the "Nearby" feature had changed to "Sightings", where no clue of the distance to a Pokémon was revealed. The community was again outraged.. and met with complete silence.
  5. 8-10 days later, some players started tweeting about their fear of battling in gyms. The reason? Uncalled-for reports and accusations of cheating, some even reported their accounts had being terminated and receiving a mail from Niantic, containing a link to an Appeal Form. Some even published screenshots of their top Pokémons, claiming they had been caught/evolved fair and square. Niantic did not give anyone a specific reason for the ban.
  6. Now, even days later, a new blog entry from Niantic was finally posted, stating they had started terminating accounts which "their system had determined" being used when cheating.

And so, here we are, Niantic prioritizing hunting down alleged cheaters (more than a few of them reported by jealous competitors and many of those now waiting for a response to their appeal). Negativity instead of fixing the tracker and close to complete silence in social media. Personally, I've noticed a slight increase in the Pokémon escape rate as well.

A common view, another annoyance. Courtesy of GameDots

A common view, another annoyance. Courtesy of GameDots

We don't play Pokémon GO in my family anymore. We're not the only ones having abandoned it after a couple of weeks of true joy and anticipation. I guess there's been too much of a blame game on Niantic's part. Too many impeding bugs and quite frankly, as it is now, the game is boring. Who knows, maybe we'll start again, once it's worthwhile spending time tracking and catching those illusive Dratinis etc again.

X Puzzle is here!

Nearly a month and no other entries in the Zone. Well, my back's been crap and I've spent some time resting between the exercises to rebuild back muscles. Damn lumbago, haven't been able to sit for longer than 10 minutes without ache. Well, enough of that.

So lying on my back, again, I put my head into SpriteKit, AudioKit, GameKit etc. This time, the App Store submission work was much easier. Practice makes perfect.

One day my daughter complained about one of her puzzle games being impossible to solve, a physical version of the classic 15-puzzle. I immediately caught on the idea of creating an iOS game to learn more about SpriteKit. So, why not the 15-puzzle? With several boards to choose from. And with Game Center leaderboards!

It turned out to be much more work than I expected. First, it should look somewhat nice. The versions I found in the App Store... well they were ugly, in-app purchase driven or full of crappy ads. Or all of the above.

So, I set out to do it properly... which as I said, turned out to be a cumbersome task of doing graphics. But hey, Photoshop has a lot of support for exporting things to the @1x, @2x and @3x resolutions. I.e low res, retina and the special "iPhone Plus" point sizes which are 3-by-3 pixels per on-screen point. Hope Apple doesn't invent even more of those now. I think I spent as much time on creating graphics as I did writing code.

Second, there's the audio. Can't publish a game with some audio scores. And some sound FX. GarageBand to the rescue!

Here's a bold promise: Give me 50,000 downloads, and I'll Open Source the game code. :-)

Anyway, get it at the App Store. This is what you're up against: 

Gameplay with the 5-by-5 board grid.

iOS: How I got started, From Xcode To For Sale In App Store

Starting off with the wrong course

About a month ago, I got back pains that would not go away in just a few days, so I ended up staying at home for a prolonged time, recuperating by short walks and resting by lying on my back. The walks were entertaining enough, but lying down. It gets boring real fast. Even with Netflix and other available streaming services of today.

So, I decided to really make an effort on getting started with iOS development, now that I figured Swift and Xcode should be best buddies. Objective C is not an option for me.

However, I looked for some MOOCs (Massive Open Online Courses) to follow, in order to have a schedule to stick to and to learn the iOS platform stuff in a sensible order.

I turned to Coursera, since I took a Python course there a year ago, hosted by Rice University. Remembering that course being absolutely brilliant and tons of fun.

I searched using the keyword "swift". And sure enough, I found one course: iOS App Development with Swift Specialization. It is a four-part "specialization". The first three parts were somewhat useful, but the fourth and last part, where the Capstone Project was to be implemented... a complete disaster.

Nothing was right about the last part, not the course description, nor the irrelevant project contents. The instructors of the course were blatantly silent and did not respond to any of the students questions about assignment details, how to peer review and grade peers.

The capstone project part has only  25 minutes of video content! What a complete fiasco and a huge disappointment. If you want a good kickstart in iOS development.

Don't take this course hosted by the University of Toronto

"iOS App Development with Swift Specialization"
(Or in plain english: It's bullshit)

Anyway, I filed a complaint to Coursera about the course, but they could not help me with reimbursement, I had paid for the entire specialization at the beginning and had received the certification of the first Course already. Voiding all reimbursement. But at least they thanked me for the info. I especially hope Courser will look into the course provided by University of Toronto and realize its quality is too poor to suit any MOOC that has a rep to keep up. 

So, there I was, being disappointed, let down and discouraged. How hard should it be to get started in a proper way and having fun at the same time?


Everything changed from crap to awesome with Udemy, Devslopes and the brilliant Mark Price

After a quick search, I found They have this course,  iOS 9 and Swift 2: From Beginner to Paid Professional, developed and hosted by Mark Price, a humorous, rock'nroll-ish don't-take-yourself-too-seriously kind of guy, who apparently has a knack for teaching. The course costs something like $35, but hey, you get over 48hrs of video content, source code pre- and post excercise completion and all the tips and tricks other courses don't provide. I could probably go on about the details of coding best practices to how to storyboard your app (in all the ways you can do it), but I won't. Believe me, this course will get you hooked, jumpstarted and smiling.

So, I'd purchased the course, followed the video tutorials, occasionally setting my own Xcode project up, mimicking what Mark was doing in a video. Just to repeat the the practical stuff in Xcode.

Eventually, I got to the lecture section about getting your app into the App Store. Once I had seen it, I really felt I had to create a simple app and get it into the app store. So I did. ZiadaTime was born!

ZiadaTime is just a simple multi-stopwatch app, where each stopwatch occupies a cell in a table. All the usual stuff of a stopwatch is implemented: stop/stop/lap/reset. Each stopwatch also got a title and you could review the lap times as a popup, if there was too many laps to show on one row in the display. You can also reorder, hide and edit the stopwatches. Why am I telling you this? Well these things cover the basics of Swift, Xcode and the iOS UIKit framework. And you don't need much to finish a small app and deploy it on App Store. Actually, I'll retract some of that, the deployment steps in iTunes Connect, setting up provisioning profiles and setting properties in the Xcode project is something you need to do many times before you remember it by heart. But, this is all covered in the course! And yes, you go back and follow the steps, video by video to get it done.

So, is iOS 9 and Swift 2: From Beginner to Paid Professional by Udemy worth paying $35?

YES, YES and HELL YES! You get lifetime access to all the videos, the course is updated with new content, follows along as Swift and the iOS platform changes. So you can always go back, look at something you rememeber being addressed, and see how it was done. I've done so many times. 

$35 is nothing, considering what you get. So when Devslopes launched a Kickstarter project, called "Anyone Can Learn To Code", I decided to back it and boost it!