I even introduced Anitra to them, and she’s now a tech editor there, which is why we’re both on the team photo collage:
The name RayWenderlich.com made sense when it was just a blog that its namesake, Ray Wenderlich, started when he’d quit his job to become an indie mobile developer. At the time, he was simply blogging and sharing iOS development tips as part of his business. As I mentioned earlier, I learned iOS programming from the original edition of his first book, The iOS Apprentice, where you learn by building four applications.
The site kept growing and became that classic internet success story where the side business became the main business. The site grew to add Android development tutorials (around the time I joined the team), and since then has expanded to add Flutter, Unity, and other mobile development topics.
A decade and thousands of articles later, the name change makes sense. It’s no longer an indie mobile developer’s side project, but a full-fledged publishing company in the same spirit as O’Reilly and No Starch Press.
Congratulations, Kodeco, and I look forward to writing more mobile dev tutorials with you!
If you’re making an iOS app, the odds are pretty good that sooner or later, you’re going to have to integrate authentication — login and logout — into it. I show you how to do that with Auth0 in both a video…
…as well as a matching two-part article series that walks you through the process:
Maybe you’ve run into this Android Studio problem lately. You’ve created a brand new project, and when you run it — even if you haven’t made any changes — you get the dreaded Android Gradle plugin requires Java 11 to run error:
Here’s the “quick and dirty” fix. It assumes that you already have JDK 11 installed.
On Linux and Windows, open the File menu and select Settings… to get to the Settings window (you can also use the keyboard shortcut Ctrl + Alt + s).
On macOS, open the Android Studio menu and select Preferences… to get to the Preferences window (you can also use the keyboard shortcut ⌘ + , ).
Once the Settings or Preferences window is open, select Build, Execution, Deployment → Build Tools → Gradle from the menu on the left side.
You can change the JDK that Gradle uses in the Gradle projects section’s Gradle JDK menu. Changing the current selection from JDK 1.8 to JDK 11 works for me:
The Android Studio on my Windows machine already defaults Gradle to JDK 11, but on my Mac, it’s still insisting on JDK 1.8. I’m sure there’s some config file floating around somewhere that I need to edit — does anyone know which one? — but in the meantime, I’m using the quick and dirty fix.
While getting groceries, I saw this endcap for cotton candy-flavored energy drink. The “XBox controller as phone” pose is silly, but it also reminded me of a phone I’d wanted way back in the early 2000s: the Nokia N-Gage.
Released in 2003 (in the pre-smartphone era, back when mobile phones sported a lot of dedicated buttons), the N-Gage was a phone-meets-handheld gaming device.IGN summed it up best as “a bad console filled with bad games,” and it didn’t help that the speaker and microphone were mounted on its side. In order to use it as a phone, you’d have to hold it like this — a position that would come to be known as sidetalking:
Sidetalking looked silly, so soon there were sidetalking photos featuring people using the N-Gage while making silly faces…
…followed by people ditching the N-Gage altogether and opting to take sidetalking photos with any old electronic thing, turning it into a full-blown meme:
In case you’re wondering, I’m not really pining for the N-Gage anymore. My iPhone 13 Pro is a decent gaming phone, and on the Android side, I’ve got a Nubia Redmagic 6R that plays Genshin Impact rather nicely.
Russian agents came to the home of Google’s top executive in Moscow to deliver a frightening ultimatum last September: take down an app that had drawn the ire of Russian President Vladimir Putin within 24 hours or be taken to prison.
Google quickly moved the woman to a hotel where she checked in under an assumed name and might be protected by the presence of other guests and hotel security, according to people with knowledge of the matter. The same agents — believed by company officials to be from Russia’s FSB, a successor to the KGB intelligence service — then showed up at her room to tell her the clock was still ticking.
It turns out that the same demand was made to an Apple executive in the similarly threatening manner.
It’s one thing to feel pressure from a government official or a street-level thug in their employ, but it’s entirely something else to get an ultimatum delivered by a member of the world’s most notorious spy agency (or, more accurately, the agency that the world’s most notorious spy agency turned into), especially after they’ve bypassed the security arrangements of two of the world’s best-heeled companies and have been known to poison politicalenemies (including Alexei Navalny, after whom the app is named).
The Navalny app
As mentioned earlier, the app gets its name from Alexei Navalny, Russian opposition leader and general thorn in Vladimir Putin’s side. He’s also the leader of the Russia of the Future party, which is described as pro-reform, anti-Putin, anti-corruption, and pro-European. He also has the dubious distinction of being a survivor of a Putin poisoning attempt.
The Navalny app is a backup for a website that presented strategic voting options during the 2021 election in Russia. The idea was to prevent the election of Putin’s party, United Russia. If you went to the site and chose your electoral district, it would tell you which of your district’s candidate had the best chance of defeating the United Russia candidate. The Russian government could easily block the site, which is on the open internet, and could be blocked by forcing ISPs to filter it out, or possibly through ASN blocking.
The app had the similar functionality as the site, but since it was available only through the walled gardens of Apple’s App Store and Google’s Play Store, it can’t be directly censored by a state. It would take indirect — and, as we’ve seen, downright nasty — action to make an app unavailable.
The perspective from a few months ago
You may remember that back in September, there were a number of stories about Apple and Google “caving” and removing the app. Some of them were very critical of both companies for the move:
And there’s Rachel Maddow’s scathing piece on the matter (see above).
What this says about the limits of big tech’s power
Russia’s solution to the problem of the Navalny app was a variation on the crudely descriptive euphemism of rubber-hose cryptanalysis. In practical terms, it’s the extraction of the decoding key for an encrypted message through intimidation or torture, the latter of which can include beating the key holder with a rubber hose.
It’s probably why Russia passed a law last year requiring big U.S. tech companies to open offices in Russia by the start of 2022. By opening local offices, there would be local management, who could then be subjected to rubber-hosery. In light of this story, we can expect these offices to close soon, if they haven’t already.
In case you didn’t get the “hired goons” reference…
Every now and again, Facebook shows me an ad that I feel compelled to click, simply because I can’t believe what I’m seeing and need to know more. The latest of these ads is for the product pictured above: the AutoExec AECRATE-15, which retails at Home Depot for…
$300.
More precisely, it retails for $296.93, which rounds up to $300, but to my mind, that seems pretty exorbitant for a milk crate with a power inverter and stands for a tablet and smartphone. The manufacturer doesn’t even attempt to hide this fact: it’s listed as “Milk Crate Vehicle and Mobile Office Work Station with Phone Mount, Tablet Mount and Power Inverter”.
I’ve designed and developed mobile apps who primary users are people that work in their cars and trucks, so I understand the usefulness of the AECRATE-15, with its ability to support and charge your electronic office equipment and store your paperwork.
Surely this is something that you could put together for considerably less than three “Benjamins”.
Component
Price
Bestek 300W Power Inverter (Plugs into your car’s “cigarette lighter” outlet and provides two household-style electrical outlets and 2 USB electrical outlets)
Juggernaut storage milk crate (Assuming you don’t simply grab one from behind a convenience store, just like every university student building makeshift furnishings or any self-respecting DJ)