Categories
Current Events Mobile Programming

A mobile dev’s perspective on that old Vine code

Of the many ideas for Twitter that Elon Musk has been posting for public reaction since taking over, the best one — an easy choice, as most of the ones he’s tweeted run the gamut from dismal to disastrous — is resurrecting Vine, the proto-TikTok short video service where you could share incredibly short (six-second) looping videos:

Vine started as its own company in June 2012, Twitter acquired it in October 2012, and its first official release was in January 2013. Twitter announced that it would discontinue Vine in October 2016 and disabled all uploads.

If Vine could be turned into a TikTok competitor as YouTuber Jimmy “MrBeast” Donaldson suggests, it could help counter TikTok’s serious security issues and help give Twitter a much-needed image boost.

Here’s the problem:

Musk has asked engineers to look at the old code. This would be a sensible thing if we were dealing with a hardware, mechanical, or physical artifact, but Vine is software. Even more challenging is the fact that it’s mobile software. That was first released in 2012 and last updated in 2016.

As software developer and product manager Sara Beykpour put it (and on Twitter, no less!):

An actual book from the early Vine era.

I have no inside knowledge of Vine, but I’d be willing to bet that the Android and iOS Vine apps were probably written as native apps. React Native wasn’t out until 2015, and every other cross-platform solution at the time (including Xamarin) wouldn’t have been up to the task.

In 2012, when Vine began, that would mean:

  • On Android: writing the app in Java using Eclipse (the stable 1.0 version of Android Studio wouldn’t come out until December 2014).
  • On iOS: writing the app in Objective-C, quite possibly using NIBs instead of storyboards.

Simply put — ancient stuff, at least by the standards of mobile development. While there are still some Java-based Android and Objective-C-based iOS projects out there, the majority of the top apps in the stores are written in either Kotlin or Swift.

It would be a good idea to have a handful of developers look over the old Vine code for an audit. There’s a chance that there might be a few useful ideas in there, possibly in feature switches that never got turned on. However, that old code will probably be useless as a starting point to build on in the short timeframe that Musk suggests for the relaunch of Vine.

In case you were wondering…

…the flagship phones of 2016, when Vine was active, were the Samsung Galaxy S7 on the Android side, which came with Android 6 (a.k.a. “Marshmallow”, a.k.a. API 23)

…and on the iOS side, it was the iPhone 7, which came with iOS 10.

Categories
Mobile Programming Video What I’m Up To

How to add Auth0 authentication to a SwiftUI app

Joey deVilla in his home office, holding an “Einstein” rubber duck up to the camera.
C’mon, how many programming tutorial videos have a scene like this?

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:

Both the video and article present how the final app will look and work:

Tap to view at full size.

And then they’ll get you started with a starter project:

Joey deVilla appears in the corner of the screen showing the starter project of Auth0’s iOS/SwiftUI authentication video.
Tap to view at full size.

I’ll walk you through the processes of getting Auth0 set up to recognize your app and creating a user with which to log in:

Joey deVilla appears in the corner of the screen showing the Auth0 dashboard in Auth0’s iOS/SwiftUI authentication video.
Tap to view at full size.

And then, I’ll show you how to add login and logout to the project’s app:

Joey deVilla appears in the corner of the screen, while adding login and logout to the starter project of Auth0’s iOS/SwiftUI authentication video.
Tap to view at full size.

And along the way, I’ll provide a brief intro to ID tokens, JWTs, and JWT.io:

Joey deVilla appears in the corner of the screen showing the JWT.io site in  Auth0’s iOS/SwiftUI authentication video.
Tap to view at full size.

Of course the video ends with an accordion number!

Joey deVilla plays accordion at the end of an Auth0 tutorial video.
Again, I ask: how many programming tutorial videos have a scene like this?

Once again, the here’s the video, How to Integrate Auth0 in a SwiftUI App, and here are the articles:

Whether you prefer to learn by watching video, reading, or a little bit of both, I hope you find these useful!

Categories
Humor Programming

File under “Funny because it’s true”

Meme showing Angular, React, Svelte, and Vue as young meen in a brawl at a fast food restaurant while jQuery (used on 70% of sites in 2022) ignores them all, eating its meal and reading its phone.
Categories
Conferences Meetups Programming Tampa Bay

Scenes from #TampaCC / Tampa CodeCamp 2022

Keiser University Tampa’s building and palm trees.

The 2022 edition of Tampa Code Camp (a.k.a. #TampaCC) took place on Saturday, October 8th, and Anitra and I were there to give presentations, attend presentations, catch up with some old friends and colleagues, and make some new ones.

TampaCC logo

Organized by Kate and Greg Leonardo, Tampa Code Camp has been a local tech tradition for years. While it’s been the de facto local conference for people building on Microsoft/.NET/Azure technologies, it goes beyond that to include Open Source, data science, AI/ML, and soft skills sessions. (My own first presentation at Tampa Code Camp was in 2016, when I presented an introduction to React.)

Tampa Code Camp 2022 took place at Keiser University Tampa, who’ve been gracious enough to make their space available a venue for tech events with 100 people or more for the past few years, including Tampa Code Camp and the BarCamp Tampa Bay unconference. They have a spacious lobby that makes for a great reception/registration and sponsor booth hall, a good-sized auditorium for opening keynotes and lunches (made even better by a patio area), and classrooms of all sizes to accommodate all sorts of talks, each one with a reliable audiovisual setup for presenters.

Some of Tampa Code Camp 2022’s presentations

I was so busy either prepping for my presentation, presenting, or just chatting with people that I took all of two photos. Luckily, a number of people who were there took some and posted them on Twitter; I’ve shared them below and they’re linked to their source.

Here’s the opening keynote, given by co-organizer Greg Leonardo, who talked about the unexpected (and often untold) consequences of moving your back end from on-premises to the cloud, often known as the “lift-and-shift.” There are good reasons to move to the cloud, but the rationale (or more accurately, sales pitch) of cost savings has been oversold — in fact, there’s often a cost increase.

A view of the auditorium at the keynote talk at Tampa Code Camp 2022.
Photo by Yours Truly.

Another key message from the opening keynote: running things on the cloud isn’t simply a matter of “our old stuff, but now on someone else’s servers.” It often requires a different approach and some re-thinking about how you do implementation and architecture. Some of the things you did when your servers were on-prem can be much worse when moved to the cloud. Watch out for these “onions in the varnish!”

Greg Leonardo delivers the keynote talk at Tampa Code Camp 2022.
Photo via Chris Cognetta. Click here for the source.
Greg Leonardo delivers the keynote talk at Tampa Code Camp 2022.
Photo via Adnan Masood. Click here for the source.

Here’s Chris Ayers, Senior Customer Engineer at Microsoft, giving his presentation, Dev Containers in VS Code, a handy feature that gives you a Docker container as a development environment:

Chris Ayers gives a talk at Tampa Code Camp 2022.
Photo via Marsinah Ahmed. Click here for the source.

We caught Sam Kasimalla’s session, titled IT life cycle and a bit of devops – Industry notes, which presented a solid overview aimed at people who are just entering (or pivoting to) our industry:

Sam Kasimalla gives a talk at Tampa Code Camp 2022.
Photo via Joey Hernandez. Click here for the source.

After Sam’s presentation, I raced to my room to give my talk, Build cross-platform visual novels, simulations, and games with Ren’Py, where I walked the group through the development of a “Choose Your Own Adventure”-style infosec training manual and a turn-based “Florida Man” RPG-style combat game:

Joey deVilla gives a talk at Tampa Code Camp 2022.
Photo via Marsinah Ahmed. Click here for the source.

While I was talking about Ren’Py development, Art Garcia was a couple of rooms over, giving his presentation, Azure DevOps APIs: Things you can do with the APIs, where he covered ways to do things that you can’t do using the Azure DevOps UI, but can if you use PowerShell, the APIs, and some tricks that aren’t well-documented.

Art Garcia gives a talk at Tampa Code Camp 2022.
Photo via Chris Cognetta. Click here for the source.
Sandwich icon

I’d like to thank Tampa Code Camp for not just providing a free lunch (and breakfast coffee and donuts — much apprecated!), but for estimating high in order to ensure that everybody could get a free lunch. It’s little touches like these that add to these events.

Russ Fustino’s “about me” slide from his Algorand presentations.

I don’t have a photo for Russ Fustino’s session, Web3 – Blockchain Myths for Developers, but we attended that one. Russ has been a local fixture on the tech scene ever since I’ve lived here (nearly a decade!) and we definitely want to catch him. His brother Gary (also a tech scene regular) recorded video of the session, so it should be online soon.

In the same time slot, Chris Cognetta gave his Power Apps in the Real World talk, where he covered Power Platform and Power Apps:

Chris Cognetta gives a talk at Tampa Code Camp 2022.
Photo via Marsinah Ahmed. Click here for the source.

After that, Anitra Pavka gave her talk, Manage your manager for fun, profit, and career success, which covered the valuable, vital, yet often-overlooked topic of working with the one person who has control of half your weekday waking life:

Anitra Pavka gives a talk at Tampa Code Camp 2022.
Photo by Yours Truly.

At the end of the day came Joey Hernandez’ Cyber Incident Response Exercise – From Tech to Exec talk — an excellent topic, because so many companies get this wrong for a multitude of reasons. He talked about TTXs — tabletop exercises, which in cybersecurity are preparedness exercises where you go through the steps of a simulated security incident.

Joey Hernandez presents at Tampa Code Camp 2022.
Photo via Joey Hernandez. Click here for the source.

Also at the end of the day: Jared Rhodes gave his fourth talk of Tampa Code Camp 2022: Homelab – Private Cloud on a Budget! I’ve been meaning to give homelabs a look.

Jared deserves a prize for being the busiest presenter at Tampa Code Camp 2022, because he also gave these talks:

And he came here from Atlanta to give his talks. I think the Azure team should at least send him some of their nicer swag for doing all this work on their behalf.

Jared Rhodes gives a talk at Tampa Code Camp 2022.
Photo via Marsinah Ahmed. Click here for the source.

Thanks to the sponsors!

Events like this don’t happen without sponsors. First, thanks to Keiser University Tampa for providing a venue!

Events like this go even better when the presenters get a chance to catch up beforehand, hence the long-standing tradition of a speaker dinner. Once again, it happened at the always-reliable, always-fun Tampa Joe’s. Thanks for the food and drinks!

Starbucks was the coffee sponsor. Free coffee? Bless you.

Photo via Leah Parrott.

Thanks to Pomeroy for helping make Tampa Code Camp 2022 happen, and for providing one of the raffle prizes: a Meta Quest 2 VR rig!

Photo via Leah Parrott.

Pomeroy also provided some swag that I needed:

Photo via Leah Parrott.
Photo via Leah Parrott.

Algorand also had a table, and when Russ wasn’t giving his Algorand presentation, he was at the Algorand table, and he answered a number of my questions and hooked us up with nice T-shirts. Thanks, Algorand!

And finally, I’d like to thank Webonology — which is also Greg’s company — for being a sponsor and contributing the grand prize, an Xbox Series X!

Photo via Kate Leonardo.

Please check out these sponsors. They do great work, they supported this great event, and they’re helping to build the Tampa Bay tech scene!

Tech scenes don’t happen by themselves — they need YOU!

What makes a tech scene?

In the end, it boils down to a single factor: techies who take part in building a tech community. There are cities out there with sizable populations of techies that aren’t tech hubs — these are places without people who help build a tech community. There are also smaller places with smaller numbers of techies but have a vibrant tech scene, and these are the places with a handful of active organizers and people who show up for tech events.

Among these active organizers are Kate and Greg Leonardo, who’ve been consistently stepping up and doing the (often, but not always) thankless work of putting together events like Tampa Code Camp and upcoming events for 2023. Thank you, Kate and Greg, for everything you do for the Tampa Tech Scene!

Categories
Conferences Programming Tampa Bay

TampaCC: A FREE code camp event happening this Saturday, October 8th!

The venue: Keiser University, Tampa.

TampaCC, Tampa’s FREE annual code camp, where you can sharpen your software development skills, is happening this Saturday, October 8th in Tampa at Keiser University. This is your chance to learn something new and get to know the Tampa tech community!

I’ll say it again: it’s FREE to attend! Register here to let them know that you’re attending.

Here’s the schedule. Click the presentation names to find out more:

TimePresentations
9:00 a.m. – 9:30 a.m.Registration, breakfast, and sponsor meet and greet
9:30 a.m. – 10:00 a.m.Keynote: Architecture and Cost Optimization (Greg Leonardo)
10:00 a.m. – 11:00 a.m.Azure AI Fundamentals by Demo (Usama Wahab Khan)
An Introduction to Redis for .NET Developers (Steve Lorello)
• Dev Containers in VS Code (Chris Ayers)
• IT Life Cycle and a Bit of DevOps – Industry Notes (Sam Kasimalla)
• Improve State Management with Reactive Development (Sebastian Castaldi)
• Home Lab – Private Cloud on a Budget (Jared Rhodes)
11:00 a.m. – 12:00 p.m.• Azure DevOps APIs – Things You Can Do with the APIs (Arthur Garcia)
• Azure Chaos Studio – Deliberately Introducing Faults (Jared Rhodes)
• Leadership Catnip (Scott Dorman)
• Web3 – Blockchain Myths for Developers (Russell Fustino)
• Build Cross-Platform Visual Novels, Simulations, and Games with Ren’Py (Joey deVilla)
• MLOps for the Rest of Us (Bartosz Mikulski)
12:00 p.m. – 12:50 p.m.Lunch and sponsor meet and greet
1:00 p.m. – 2:00 p.m.• Azure for the Enterprise – Getting Started (Jared Rhodes)
• Building in the Cloud with Bicep (Chris Ayers)
• Flow Engineering – Boost Velocity, Quality, and Happiness Through Your Entire Value Stream (Steve Pereira)
• Power Apps in the Real World (Christopher Cognetta)
• Indexng, Searching, and Aggregation with RediSearch and .NET (Steve Lorello)
2:00 p.m. – 3:00 p.m.• Count-Min Sketch to Infinity: Using Probabilistic Data Structures to Solve Counting Problems in .NET (Steve Lorello)
• Memory Management Fundamentals – GC Deep Dive (Scott Dorman)
• Pre-Heating Your Architecture for Data and Regulations (Tito Martinez)
• Manage Your Manager for Fun, Profit, and Career Success (Anitra Pavka)
3:00 p.m. – 4:00 p.m.• Microservices Architecture (Sebastian Castaldi)
• Azure Management for the Enterprise (Jared Rhodes)
• Cyber Incident Response Exercise – From Tech to Exec (Joey Hernandez)
• Getting Started with Explainable AI with Microsoft FairLearn (Adnan Masood, Ph.D.)
• Serverless Continuous Integration with Drone (Kevin Poorman)
4:00 p.m. – 4:30 p.m.Closing ceremony and raffle

Keiser University is a great venue with lots of space for several simultaneous sessions and has been the gracious host of so many Tampa Bay tech events.

And of course, credit has to go to TampaCC’s long-time organizers, Kate and Greg Leonardo — thanks so much for putting this together! I’m looking forward to returning to TampaCC (and presenting, too!)

Want to attend (and remember, it’s FREE!)? Register here and we’ll see you on Saturday!

Categories
Mobile Programming

My initial impression of Android development with Jetpack Compose

Cat with horrified expression on its face.
Categories
Mobile Programming

How to fix the “Android Gradle plugin requires Java 11 to run” error (quick and dirty edition)

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, DeploymentBuild ToolsGradle 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.