Categories
What I’m Up To

Chaos Muppet! (or: It’s my 2nd Oktaversary / Auth0versary!)

Yours Truly, at the Okta office in London, June 2022.
Tap to view at full size.

So this arrived in my work email earlier today:

Screenshot from email: “It’s time to celebrate...Happy Oktaversary! Happy Oktaversary, Joey! Congratulations on your 2-year anniversary at Okta! Thank you for your commitment and contributions to the success of the company.”

I’m enjoying my work on the Developer Engagement (DevN) team at what we’re currently calling “Auth0 by Okta” — that’s the developer-centric customer-facing authentication/authorization system by Okta, or what I often shorten to the layperson-friendly catchphrase “login as a service.”

I greatly enjoy working with the DevN team, who are that wonderful combination of smart and nice:

Photo of a long table with many of the  Auth0 Developer Engagement team having dinner at Mulberry Bush, London.
First team dinner of our London summit, June 2022.
Tap to view at full size.

I’m also honored to be the team’s Chaos Muppet — as evidenced by this Facet5 personality profile report of the various team members and how we rate on “control:”

Facet5 personality profile report showing Joey deVilla as being the member of the Auth0 Developer Engagement team with the least control.

Thanks to Okta, Auth0, and the DevN team for two wonderful years! Let’s see what Year Three looks like.

Joey deVilla’s blue accordion with Auth0 stickers.
The “Authccordion.”
Tap to view at full size.

Worth reading

Annotated photo of Joey deVilla getting ready for his job interview for Auth0.

How I landed my job at Auth0, from way back in October 2020.

Chaos Theory: A Unified Theory of Muppet Types, quite possibly Slate’s best article ever.

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
Meetups Security Tampa Bay What I’m Up To

I’m presenting “The Secret History of Login” at InfraGard Tampa Bay next Tuesday!

Are you free next Tuesday, October 18th from 9:00 a.m. to noon, for an event you can attend either in person or online? If so, perhaps you might want to catch my talk at the upcoming InfraGard Tampa Bay Members Alliance meeting. It’s titled The Secret History of Login!

Here’s the description:

If you’re reading this, the chances are very good that you’ve logged into a system or resumed a session where you logged in earlier. It’s a common enough occurrence that most of us don’t think about it unless we’re in a hurry or if we can’t remember our username/password combination.

Logging in is new enough that there are still many people alive who knew the world before usernames and passwords, yet old enough that it’s developed some problems that will take time and effort to solve. This talk will tell the strange story of how login grew from a last-minute hack to become part of our daily experience. Along the way, you’ll get an overview of some of the ways it’s been implemented, the popular software movement it inspired, how it inspired both a software movement and a whole new category of crime, and some best guesses about its future.

What is InfraGard Tampa Bay Members Alliance?

First of all, they’re affiliated with the FBI! As their About page states:

Our mission is to mitigate criminal and terrorist threats, risks and losses for the purpose of protecting our region’s critical infrastructure and the American people. Founded in 2004, the Tampa Bay chapter has established itself as a leader nationwide, setting the highest standards for programs, training and education. For the last decade, we have proudly contributed to the safety and security of Tampa Bay via an all-threats, all-hazards approach. At the national level, the InfraGard National Members Alliance was founded in 1996 and now comprises over 80 regional chapters, each linked to an FBI Field Office.

InfraGard’s success can be attributed to the unprecedented communication, collaboration and coordination it has forged at the epicenter of America’s most critical resources. Our membership is comprised of individuals that represent private businesses; local, state and federal law enforcement agencies; academic institutions; first responders and more.

All members are vetted by the FBI and pass comprehensive background checks prior to being accepted to InfraGard. The trust inherent in those who have successfully passed these checks is unmatched in any other public-private partnership in the country, making InfraGard a unique and highly successful solution to engaging the private sector in the protection of our nation’s critical infrastructure.

What’s happening at this meeting?

There’s a lot going on at this meeting — in fact, I’m not the only speaker at this one! Here’s the agenda:

TimeItem
9:00 a.m.Welcome and speaker/topic introductions by Ebony Vaz
9:05 a.m.Opening remarks by Michael Ritchie, President
9:15 a.m.Speaker 1: Kate Whitaker, Director of Cyber Outreach, Cyber Florida
10:00 a.m.Break
10:15 a.m.Speaker 2: Joey deVilla, Senior Developer Advocate, Okta — The Secret History of Login
11:00 a.m.Break
11:15 a.m.Speaker 3: Billy Sasser, Supervisory Protective Security Advisor (SPSA) CISA Region 4 — CISA’s Physical and Cyber Security Resources
12:00 p.m.Closing remarks by Michael Ritchie, President

You can attend in person or online!

They’re streaming this event, so you have the option of attending online if you can’t make it to the in-person event. Here are the registration details:

Categories
Conferences Tampa Bay What I’m Up To

More scenes and best practices from Tampa Code Camp 2022

This image has an empty alt attribute; its file name is accordion.jpg
TampaCC logo

Here are some more pictures from Tampa Code Camp 2022, along with some best practices that I saw at the event, which took place last Saturday, October 8th.

Want to see the full set of photos? They’re in the Photos section of Tampa Code Camp 2022’s Meetup page.

Make sure you see the previous article, Scenes from #TampaCC / Tampa CodeCamp 2022.

Try to get a group shot with all the presenters.

It’s just nice to have, and it helps make a record of the event more complete. The photo above is the post-Code Camp group photo featuring all the presenters, including Yours Truly and Anitra.

Get a venue with a big, bright gathering space.

I may have mentioned earlier that Keiser University’s Tampa campus has a great atrium lobby that makes a fantastic entry space for a conference. Thanks again to Keiser for providing us with such a nice venue!

Provide lunch at the venue if possible.

Providing lunch makes the event affordable to attendees in every economic situation, and it also keeps the attendees in one place, where they can literally break bread with each other and socialize, making the group more cohesive.

Even better, when people don’t have to go offsite to get lunch, they’re less likely to be late when the afternoon presentations start.

Have a great speaker dinner.

If the budget allows, have a dinner where the speakers and organizers get together and get acquainted (and especially this year, get re-acquainted). It helps to set a great tone for the event.

Here are some photos from the speaker dinner that took place the night before — thanks to Tampa Joe’s for giving us food, drinks, and a lovely patio on which to enjoy them!

Bring an accordion.

Because if you don’t, who will?

Have raffles if you’re an organizer or sponsor; enter the raffles and stick around for prizes if you’re an attendee!

Raffles are a great way to draw people to a conference and encourage people to interact with sponsors. If you hold the draw at the end of the conference and especially if you require the winner to be present (I know this isn’t always possible or applicable), you can encourage attendees to stick around for the full day.

Many people at conferences often decided that they’ll fill out the necessary forms or do the necessary legwork to enter a raffle “later,” and as with so many things in life, “later” often turns into “never.”

As a result, your odds of winning a prize at conferences, especially local ones, are often quite good. My general rule is to always enter the raffle — and if you read to the end of this section, you’ll see why it’s a general rule of mine!

Algorand, represented by Russ Fustino, a long-time regular in Tampa’s tech scene, provided a $100 Amazon girt certificate, which was won by Kelvin McDaniel, also a long-time regular in Tampa’s tech scene:

Pomeroy provided a Meta Quest 2 VR rig as one of the prizes, which Roger Hale won. I suggested that he definitely make sure to give Beat Saber a try, especially since it’s now free when you get a Quest, and it’s a fun way to dip your toes into VR:

Webonology also provided a great prize: an Xbox Series X, which got taken home by…

me! Here’s Greg (who’s also Webonology’s CEO) and me with this sweet, sweet gaming console.

And yes, while you can download games from home now, and while we’ve got gigabit fiber at home, the download/install process is still slow, especially for games for current-generation consoles. So we made a beeline for Gamestop, and I picked up Elden Ring, where my character needs to do a lot of leveling up.

Thank you so much, Tampa Code Camp!

Categories
Programming What I’m Up To

Can I say how impressed I am with this Python class?

A still from the recording of last night’s class. Tap to view at full size.

Yesterday was Evening 3 of the 10-evening “Learn Python” class that I’m teaching on behalf of Computer Coach, a tech training center here in Tampa. It started last Wednesday and takes place online every Monday and Wednesday from 6:00 p.m. to 10:00 p.m.. There are 15 students in the class.

So far, the class is going well. In fact, I’m rather impressed. Even though some of them have only a little programming experience and others have none, they’re learning at a great pace, and better still, they’re cleverly applying what they’re learning, and they’re not afraid to ask questions and experiment.

For example, there’s the Fizzbuzz exercise. It’s where the challenge is to a program that counts from 1 to 100 and prints out the current number as it does this, while following these rules:

  • If the current number is divisible by 3, don’t print the number. Print “fizz” instead.
  • If the current number is divisible by 5, don’t print the number. Print “buzz” instead.
  • If the current number is divisible by both 3 and 5, don’t print the number. Print “fizzbuzz” instead.

Not only did they figure out how to make it work — not bad for evening 2! — but some of them started add their own ideas to the application. One said “I’m tweaking the program so that you can enter what numbers get turned into ‘fizz’ and ‘buzz’ instead of just 3 and 5.” And those modifications worked.

While covering if for comparing numbers, another student asked “Is there some way where I can compare a number to see if it’s part of a group of different numbers?” This led me to introduce lists and the in operator a little early, but it was a sign that one of them was already trying to come up with ways to apply a concept they’d just learned minutes before.

Last night, while I was demonstrating some list methods, yet another student asked “How do I pop an item from one list and then add it to another?” Again, that’s something someone does only when they grasp a new concept and start thinking up applications for it.

I just have to say this: I’m very impressed with this Python class.

Categories
Career Programming What I’m Up To

My upcoming “Learn Python” course for Computer Coach

Computer Coach’s “Learn Python” course banner: “Live, online, instructor-led / Starting Sept 7th 2022”

The TL;DR

Here’s a quick summary of the course:

  • What: An introductory Python course! I’m teaching it on behalf of Computer Coach, a Tampa-based training company and friends of mine.
  • Where: Online, via Zoom.
  • When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting this Wednesday, September 7th.
  • How to enroll or find out more: Contact Computer Coach’s Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

You’ll need the following to participate in the course:

The state of Python

Selection of headlines showing how in-demand Python is.

All you have to do is look at the current developer surveys and tech news headlines to know that right now, Python is having its “moment”:

Graph showing most in-demand programming languages 2021-2022. Python is in the #1 position with almost 150K job openings in the U.S. and almost 100K job openings in Europe.
Found via SiliconRepublic.

CodingNomads, a coding school in California, looked at thousands of job postings in North America and Europe and declared Python as the most in-demand coding language for 2022.

As for salaries…

Map showing Python salaries around the world (US: $111K, Canada $95K, UK $84K, Germany $97K, Australia $103K, India $14K).
These are salaries from 2020, found at CareerFoundry.

…you can say that the pay is decent. Pair Python with another tech skill (for instance, JavaScript) or a people skill (say, managing developers), and you can make even more.

The schedule

This is the course schedule for Learn Python. It’s flexible — if there’s a need spend more time on a specific topic, we’ll do that. The point isn’t to cover every topic on the list; it’s to give you the necessary grounding in Python and programming to continue after the course is over!

Sessions will take place via Zoom, which means that you can take the course from wherever you happen to be. There will be ten sessions, and each will run from 6:00 p.m. to 10:00 p.m., with ten-minute breaks at the end of the first, second, and third hour.

  • Day 1 : Hello, Python!
    Wednesday, September 7, 6:00 p.m. – 10 p.m.
    • Setting up the programming environment
    • Introducing Jupyter Notebook
    • Variables and simple data types
    • Programming in sequence
  • Day 2: Algorithms aren’t just for Facebook
    Monday, September 12, 6:00 p.m. – 10 p.m.
    • Branching (a.k.a. “If” / “elif” / “else”)
    • Lists
    • Looping
  • Day 3: Organizing data and code, and listening to the user
    Wednesday, September 14, 6:00 p.m. – 10 p.m.
    • Dictionaries
    • Functions
    • Getting input from the user
  • Day 4: Getting serious
    Monday, September 19, 6:00 p.m. – 10 p.m.
    • Object-oriented programming
    • Working with files
    • Handling exceptions
  • Day 5: When the going gets weird, the weird turn pro
    Wednesday, September 21, 6:00 p.m. – 10 p.m.
    • Running Python programs from the command line
    • Importing Python modules
    • Organizing files
  • Day 6: The web and data
    Monday, September 26, 6:00 p.m. – 10 p.m.
    • Web programming with Flask
    • SQLite: The database built into Python
  • Day 7: Just enough data science to be dangerous
    Wednesday, September 28, 6:00 p.m. – 10 p.m.
    • Introduction to data science and Python’s data science libraries
  • Days 8 – 9: Using your Python powers for good
    Monday, October 3, 6:00 p.m. – 10 p.m.
    Wednesday, October 5, 6:00 p.m. – 10 p.m.
    • Using Python to handle all sorts of programming tasks, which could include:
    • Building the scripts that generate the Tampa Bay Tech Events list
    • Automating email and spreadsheets
    • Building a weather app
  • Day 10: Just the beginning
    Monday, October 10, 6:00 p.m. – 10 p.m.
    • Review of everything covered
    • What you should cover next
    • Programming interview questions

What happens in the course?

Photo: Woman’s hands typing on Mac laptop.

This is not a passive course! This isn’t the kind of course where the instructor lectures over slides while you take notes (or pretend to take notes while surfing the web or checking your social media feeds). In this course, you’ll follow along as I write code on my screen. You’ll actively take part in the learning process, entering code, experimenting, making mistakes, correcting those mistakes, and producing working applications. You will learn by doing. At the end of each session, you’ll have a collection of little Python programs that you wrote, and which you can use as the basis for your own work.

The course will start at the most basic level by walking you through the process of downloading and installing the necessary tools to start Python programming. From there, you’ll learn the building blocks of the Python programming language:

  • Control structures that determine what your programs do,
  • Data structures to store the information that your programs act on,
  • Functions and objects to organize your code, and
  • Using libraries as building blocks for your applications.

Better still, you’ll learn how to think like a programmer. You’ll learn how to look at a goal and learn how you could write a program to meet it, and how that program could be improved or enhanced. You’ll learn skills that will serve you well as you take up other programming languages, and even learn a little bit about the inner workings of computers, operating systems, and the internet.

What kind of apps will you build?

We’ll build as many applications as we can, based on your suggestions or needs. These include (and aren’t limited to):

  • CoverTron: My generator for cover letters for job applications. I actually used it in my last job search!
  • Tampa Bay Tech Events Transmogrifier: Every week, I put together a list of tech events for Tampa Bay, culled from Eventbrite and Meetup. It would take me hours to do it by hand, but it’s so much quicker with the automated help of a couple of Python scripts.
  • Find out when and where a digital photo was taken: When you take a picture with your phone or a present-day digital camera, that picture has EXIF data embedded in it, with the date, time, and location where the photo was taken. I’ll show you how to extract that info!
  • Editing photos: If you were assigned the task of shrinking a set of 100 photos by 25% (or any other similar basic photo editing task), you could do it manually, or you could make Python do it.
  • Creating interactive documents with Jupyter Notebook: It’s more than just a Python tool used by data scientists, Nobel Prize winners, and Netflix, but a useful programming environment and operations platform for everyday tasks!
  • Writing web applications with Flask: Just as Python makes programming much easier, the Python-powered Flask framework makes programming web applications much easier.
  • Passing interview coding tests: Learn how to deal with the most dreaded part of the interview for a programming job, and why Python is a key part of my coding interview strategy.
  • Using databases: Using databases is a key part of programming, and luckily, Python comes with a built-in database!
  • Data science: This is a giant topic and could easily take up the time to do this course three times, but I’d be happy to go over the basics.
  • Interactive storytelling and games: Python’s quite good at this, and I can walk you through the PyGame framework and Ren’Py interactive story system.
  • Mobile app development: Yes, there are ways to do mobile app development in Python.

How do you sign up for the course or find out more?

Once again, you’ll want to contact Computer Coach’s Kasandra Perez at Contact Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

Categories
Conferences What I’m Up To

Accordion performance #1 at ng-conf 2022

I’m minding the Okta/Auth0 booth at ng-conf 2022, the conference for all things Angular, this week. I brought the accordion with me, and once again, it turned out to be a good idea.

On Day 1 of the conference (Wednesday) I got invited to do a quick last-minute accordion performance onstage before the afternoon break. So I broke out a favorite of mine, Should I Sleep of Should I Code? to the tune of The Clash’s Should I Stay or Should I Go?.