Reading Material What I’m Up To

How I know I’ve made it as an author

Screenshot of the pirate site page featuring “iOS Apprentice, Eighth Edition.”
A screenshot of the pirate site’s page for the book I co-wrote, iOS Apprentice, Eighth Edition.
Cover of “iOS Apprentice, 8th edition”
iOS Apprentice, Eighth Edition, written by me, Eli Ganim, and Matthijs Hollemans.

Years ago, I used to joke that if I ever wrote a book, I’d know that it was well-received if it ever got pirated. I’d forgotten about that joke until today. I was Googling for an image of the cover of the book I co-wrote — iOS Apprentice, Eighth Edition (and the first edition to cover SwiftUI) — when I found it available for download on a pirate ebook, er, I mean extralegal evaluation site! I’ve made it as an author — the free-as-in-piracy market has declared it so!

It would be a violation of my agreement with the publisher (and also in very poor taste) to link to the site, so I’ve simply posted a screenshot of the page that features the book.

Here’s what their summary says. They seem to like it:

If you’re new to Swift or programming in general, learning how to write apps can seem like an incredibly difficult task. In that case, you may need this book. It is divided into five parts, each of which describes a separate project. By the end of the book, you will have enough information to be able to implement your ideas in code.


➕ Absence of errors and typos;
➕ Quality Exercises.


➖ Not Noticed.

The book has been liked by 58 registered users and shared by 74 registered users on the pirate site. I’m left wondering who registers on a pirate site that doesn’t require registration to download.

“Anchorman” meme: “Actually, I’m not even mad. That’s amazing!”

The payment model at (the publisher’s name at the time; they’re now Kodeco) isn’t royalty-based, and the edition is pretty out of date now, so I’m not mad at all. In fact, I’m pleased — it means my work was good enough that people wanted to pirate it!

Programming Reading Material

My tutorial on iOS authentication using SwiftUI and Auth0

Banner: Get Started with iOS Authentication using SwiftUI

Hey, iOS developers! My latest tutorial article on the Auth0 blog shows you how to easily add authentication (that is, login and logout) to SwiftUI apps and display information from their user profile.

The article demonstrates the most basic use of the Auth0.swift SDK, the Auth0 SDK for all Apple platforms — not just iOS, but macOS, iPadOS, watchOS, and tvOS. It’s Auth0’s third most-used SDKs, accounting for more than one in ten API requests to Auth0 systems!

It’s a two-part tutorial. Part 1 of the tutorial starts with File → New Project…, adds some basic interactivity, adds the Auth0.swift package, walks you through setup on the Auth0 side, and finally enables login and logout:

iOS Simulator screen shot: Screen with title “SwiftUI Login Demo” and “Log in” button.
The app’s “logged out” screen.
iOS Simulator screen shot: Auth0 Universal Login screen.
Auth0’s Universal Login.
iOS Simulator screen shot: Screen with title “Logged in” and “Log out” button.
The app’s “logged in” screen.

Part 2 of the tutorial takes your basic login/logout app and gives it the ability to read user information from the user profile and display it onscreen:

iOS Simulator screen shot: Screen with title “Logged in”, photo of user, user]s name and email address, and “Log out” button.
The revised “logged in” screen.
Programming Reading Material

Two Kotlin/data science articles from Yours Truly!

Kotlin developers who want to get into data science: these articles are for you! They’re about using Jupyter Notebook, but with Kotlin instead of Python. Why should Pythonistas make all the big bucks?

Read the articles, which appear on (the premier mobile development site, and it’s where I learned iOS and Android dev) in this order:

  1. Create Your Own Kotlin Playground (and Get a Data Science Head Start) with Jupyter Notebook: Learn about Jupyter Notebook, get it set up on your computer, and get familiar with krangl, the Kotlin library for data wrangling.
  2. Beginning Data Science with Jupyter Notebook and Kotlin: Once you’re familiar with krangl, it’s time to get familiar with data frames and working with datasets. This article will help you get started by exploring real data, crunching it, and even getting some insights from it.

Reading Material

Arguments for staying away from crypto, NFTs, and “Web3” in general

If you have doubts about cryptocurrencies, NFTs, and web3 in general and need some more convincing, you might find these arguments helpful. If you’re a true believer, these are the arguments you’ll have to counter. Either way, enjoy!

The “You’ll be running with a crowd of terrible human beings” argument

Tap to view the original tweet

The article Bitcoin Goes to War in The New Republic has a subtitle that explains its thesis a little better: “For some crypto holders, Russia’s invasion of Ukraine is an opportunity⁠—and a validation of their increasingly radical beliefs.”

However, I feel that the best summary comes from a sentence in the middle of the article, which reads “For some right-wing libertarian-minded coiners, the right to freely trade crypto takes precedence over opposing a Russian invasion of a sovereign nation.”

Nothing drives this point home better than investor Mike Alfred’s Twitter response to Mykhailo Fedorov, Vice Prime Minister of Ukraine and Minister of Digital Transformation of Ukraine, who asked:

Alfred’s response? This gem, which will someday be cited regularly in ethics courses under the “don’t be this guy” category:

The computer science argument

UC Berkeley professor Nicholas Weaver dedicated one lecture of the Computer Security 161 course to material that would not be on the exam, but simply to help “immunize you from crap”. The topic is cryptocurrency, and luckily for us, he posted it on YouTube!

Here’s Weaver’s opening slide:

He points out that the blockchain data structure isn’t anything revolutionary, but instead is based on decades-old, well-documented structures: hash chains and hash trees (a.k.a. Merkle trees):

He also talks about the excuses that crypto-fans make for its massive power consumption…

…how easy it is to steal or grift from other people…

…that it just created a new business model for VCs…

…the dubious economics…

…and the incredible inefficiency:

It’s an amazing lecture that’s well worth viewing, even if you’re a crypto believer — just so you know the arguments against your thing.

The layperson’s argument

If you (or someone you know) has heard of cryptocurrency and NFTs but doesn’t know much about them or why they’re getting a lot of hype, Dan Olson’s Line Goes Up — The Problem with NFTs explains everything quite well.

Don’t let the 2-hour 18-minute runtime scare you off — it’s broken into chapters and presents its material so well that you won’t even notice the time passing.

Here’s its table of contents:

  • 00:00:00 Preface
  • 00:01:12 0. In 2008 The Economy Collapsed
  • 00:07:09 1. Bitcoin
  • 00:18:18 2. Ethereum
  • 00:24:34 3. The Machine
  • 00:39:07 4. NFTs Exist To Get You To Buy Crypto
  • 00:57:54 5. The Unbearable Cringe Of Crypto
  • 01:11:46 6. A Self-Organizing High Control Group
  • 01:16:57 7. Crypto Reality
  • 01:25:36 8. There Is No Privacy On The Chain
  • 01:32:52 9. If This “Looks Like Scam” Then Every NFT Room I’m In Looks Like Scam LOL
  • 01:38:29 10. Play To Earn Exists To Get You To Buy Crypto
  • 01:46:39 11. We’re All Gonna Make It And By “We” I Mean “Us” Not You
  • 01:56:08 12. DAOs Exist To Get You To Buy Crypto
  • 02:13:21 13. I Know It’s Rigged, But It’s The Only Game In Town

The artsy English-accented argument

English Youtuber and musician Georgina “munecat” Taylor does a wonderful takedown of the entire Web 3.0 scene, and while the video clock in at over an hour and forty minutes, it’s a very entertaining and informative watch.

The “Fucked Company” argument

If you were around during the dot-com bubble’s burst, you might remember a website called Fucked Company (whose name s a pardoy of Fast Company) that chronicled the ongoing failures of dot-coms with maximum snark.

There’s now a Web3 version: Web3 is going just great, and it’s part of my daily cautionary reading. Check it out.

Programming Reading Material’s free programmer’s notes for all sorts of platforms

I mentioned these FREE ebooks back on Programmer’s Day, but I feel that they merit their own post: has a great collection of FREE ebooks featuring programming recipes for all sorts of platforms, from Angular to Android, C to C++ to C#, Java to Kotlin, MongoDB to MySQL, Perl to PHP to Python, Ruby on Rails to React, Swift to Xamarin Forms and more!

You can download them for free here, but if you’re feeling really grateful and generous, you can buy them one or more coffees!

Deals Programming Reading Material

Happy Programmer’s Day 2021!

Once again, it’s September 13th — the 256th day of the year (on non-leap years)! As the number of values that can be expressed in a single byte, 256 means something to programmers, and as the largest power of 2 that will fit into 365, the 256th day of the year is a perfect excuse to declare it as Day of the Programmer.

Here are some things that you might find useful on this special day…

Want a free programming book? How about a whole lot of free programming books? has a series of notes for professionals for a wide array of programming languages and platforms. You can download them for free, but if you’re feeling really grateful and generous, you can buy them one or more coffees!

There’s Humble Bundle’s Python Superpowers bundle, which provides a lot of goodies for $25, including some really good Python video courses, ebooks, and a 6-month free license of PyCharm Professional Edition!

All work and no play makes Jack/Jackie a dull programmer, so why not play some programming games, like Shenzhen I/O, pictured above? Here’s a list of nine coding games that could sharpen your skills.

And finally, if you’re a new programmer or just need a Git refresher, you’ll want to check out Get Gud with Git.

Reading Material

Everything terrible about Medium, captured in a single post.

I stumbled across the headline I really hate the Medium experience, which resonated with me because — well, I really hate the Medium experience. When I tried to follow the link to read the article, I was presented with this:

Tap the image to view the terribleness at full size.

And that perfectly (and self-referentially too!) sums up the Medium experience.

If you’re writing developer articles, don’t write on Medium.

It won’t grow your audience or your reputation, the knowledge you’re trying to share will remain hidden as developers look elsewhere for answers, and you won’t be in control of your own content. Medium promises monetization, but speaking as someone who used to be able to pay the rent on Adsense revenues, articles don’t monetize that well anymore, and Medium pays worse.

Get a domain, set up whatever publishing system works for you, and post your articles there.

Don’t believe me? Listen to these people instead.