I’ll fly to Salt Lake City on Thursday to set up the booth for Auth0 by Okta at PyCon US 2023, and I’ll be doing demos, answering questions, and playing the accordion in the expo hall on Friday, Saturday, and Sunday!
Drop by the Auth0 booth and check out what we’ve got, which includes the Badger 2040 e-badge, a nifty combination of Python (which we at Auth0 love) and identity (which is Auth0’s business)!
The 5th annual Python Web Conf— an online conference for mid-level to advanced Python developers — takes place next week, from Monday, March 13th through Friday, March 17th. Not only is Auth0 by Okta (where I work) one of the sponsors, but I’ll be in attendance!
My teammate, Jessica Temporal, will deliver one of the keynotes on Monday, March 13th at 1:00 p.m. EDT (UTC-4, and yes, we’ll have just moved to Daylight Saving Time). Her keynote is titled Go With the Flow, and it’s about authentication and authorization flows, which happens to be something that we in Okta and Auth0 are pretty good at.
Juan Cruz Martinez and I will also be in attendance and available for chats throughout each conference day and during the Zoom Breakout Rooms sessions at the end of each of days 1 through 4 — Monday, March 13th through Thursday, March 16th.
Want to find out more about Python Web Conf 2023?How about checking out these 90 videos from Python Web Conf 2022? You’ll find all sorts of topics covered, from the nuts and bolts of the Python programming language, libraries, and tools, but also subjects such as CI/CD, data science, machine learning, better processes, writing documentation, and how to be a better programmer.
As for this year’s conference, Python Web Conf 2023 has 5 tracks:
US$199 if you’d like to attend live, be able to join tutorial sessions, partake int he online social events and have exclusive access to the recordings for 90 days.
US$100 if you only want post-conference videos available to you for 90 days after the event.
There’s also a grant program if you need assistance.
Videos of the sessions will be posted publicaly on YouTube following the 90-day period.
Teaching a person how to spell out numbers involves a lot of repetition. Tampa Bay’s own Jack Hartmann, whose children’s educational YouTube channel has over a million subscribers and 300 million views, knows this. He’s got a video that teaches kids the words for the numbers 0 through 10:
Don’t underestimate the power of videos for kids — Jack’s laughing all the way to the bank. This online estimator says that his YouTube channel should be earning about $70,000 every month, and keep in mind that his particular line of work has probably benefited from everyone being stuck at home. I may have to do something similar with the accordion when this software fad passes.
If you just wanted to be able to convert any number from 0 through 10 into word form in Python, you could use a list…
…and if you wanted the number 3 in word form, you’d use this:
# This is in the Python REPL
>>> number_words[3]
'three'
You wouldn’t want to take this approach for a larger set of numbers, and you probably wouldn’t want to code it yourself. Luckily, you don’t have to do this in Python, thanks to the inflect.py module.
Using inflect.py
inflect.py is a module that does all sorts of processing to make your programs’ text output grammatically correct. If you hate seeing output like this…
You have 1 items in your cart.
…or this…
You have a egg in your inventory.
…you can use inflect.py to automatically use the correct singular or plural form, use “a” or “an” when appropriate, and so much more.
(I’ll cover inflect.py in greater detail in a future article.)
In addition to all these grammatical goodies, inflect.py can also be used to convert numbers to words.
To use inflect.py, you’ll need to install it first. The simplest way to do so is with pip:
pip install inflect
Once installed, you can use it in your Python programs. Here’s an example:
import inflect
inflector = inflect.engine()
words = inflector.number_to_words(54321)
print(words)
It produces this output:
fifty-four thousand, three hundred and twenty-one
The number_to_words() method has a number of optional parameters that are useful in certain circumstances. For instance, there’s the boolean wantlist parameter, which causes the word output to be broken into “chunks”:
words = inflector.number_to_words(54321, wantlist=True)
It produces this output:
[‘fifty-four thousand’, ‘three hundred and twenty-one’]
Suppose you want the number to be converted into its individual digits as words. You’d use the group parameter:
# This is in the Python REPL
>>> inflector.number_to_words(54321, group=1)
'five, four, three, two, one'
>>> inflector.number_to_words(54321, group=2)
'fifty-four, thirty-two, one'
>>> inflector.number_to_words(54321, group=3)
'five forty-three, twenty-one'
What if you’re using the group parameter set to 1, but want to get all UK English and have it use the word “naught” for zero? Or maybe you want your program to sound like a film noir gangster and say “zip” instead? Or you want it recite a phone number and say “oh”? That’s what the zero parameter is for:
# This is in the Python REPL
>>> inflector.number_to_words(13057, group=1, zero='naught')
'one, three, naught, five, seven'
>>> inflector.number_to_words(13057, group=1, zero='zip')
'one, three, zip, five, seven'
>>> inflector.number_to_words(8675309, group=1, zero='oh')
'eight, six, seven, five, three, oh, nine'
The one parameter does the same thing, but for the digit 1:
# This is in the Python REPL
>>> inflector.number_to_words(13057, group=1, one='unity')
'unity, three, zero, five, seven'
Want to get all Star Trek? Use the decimal parameter to change the default decimal word to “mark”.
# This is in the Python REPL
>>> coordinates = inflector.number_to_words(123.789, group=1, decimal='mark')
>>> print(f"Ensign Crusher, set course to {coordinates}. Engage.")
Ensign Crusher, set course to one, two, three, mark, seven, eight, nine. Engage.
A lot of style guides tell you to spell out the numbers zero through ten, and use the number form for numbers 11 and greater. The threshold parameter makes this easy:
# This is in the Python REPL
>>> inflector.number_to_words(9, threshold=10)
'nine'
>>> inflector.number_to_words(10, threshold=10)
'ten'
>>> inflector.number_to_words(11, threshold=10)
'11'
Go ahead — import inflect.py and play with it. There’s a lot of power in that module, and it goes way beyond just converting words to numbers!
I was at PyCon’s grand return to in-person conferencing last year, where I got to learn a little more about Python, meet a lot of the Python community’s nice folks, catch up with old friends and make new ones, and even jam onstage at Anaconda’s opening night party!
This is going to be a special PyCon, as it’ll be the conference’s 20th anniversary. It’s something worth celebrating, as Python has faced some challenges in that time. When PyCon started in 2003, it had been overshadowed by Perl and PHP. Soon afterward, it was eclipsed by Ruby, thanks to Ruby on Rails. But over the past 10 years, thanks to its simplicity, power, and vast collections of libraries — especially those for data science and machine learning — Python has experienced a renaissance. This gathering of the Python community should be a celebration of Python’s journey, and an interesting future ahead with ChatGPT and other upcoming AIs of its ilk.
Drop by the Auth0/Okta booth and say “hi,” or just simply start a conversation with me wherever you see me at PyCon. As always, I’ll be very easy to find. I’m the one with the accordion!
When does PyCon US 2023 happen? It depends on which parts you want to attend:
The main conference, which has the keynotes, general sessions, talk tracks, expo hall (where I’ll be spending most of my time), and so on, takes place from Friday, April 21 through Sunday, April 23 inclusive.
The opening reception happens on the evening before the main conference: Thursday, April 20.
The sponsor presentations and summits take place before the main conference, on Wednesday, April 19 and Thursday, April 20.
The job fair happens on Sunday, April 23.
And finally, the sprints — where you can contribute to Python itself or one of its libraries — happen from Monday, April 24 through Thursday, April 27.
How much does it code to attend PyCon? It depends on how you plan to attend.
As an individual — that is, on your own, with your own money, and without the support of a corporation: US$400.
As a corporate attendee — that is, your cost is being covered by a corporation: US$750.
As a student — that is, you’re currently in high school, college, university, or some other educational institution where you spend the majority of your time, as opposed to full-time work: US$100.
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:
Zoom and an internet connection. I’ll be teaching the course via Zoom — this is an online course — and we’ll also visit some web sites and download some software during the course.
The state of Python
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”:
Developer research company Slashdata’s 22nd State of the Developer Nation report puts Python as the second-most popular programming language behind JavaScript, having added 3.3 million net new developers in late 2021/early 2022.
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…
…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?
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.
One of the more ridiculous aspects of the S-1 Form that WeWork filed during their first attempt at an IPO was the fact that the name “Adam” (WeWork’s founder / personality behind the cult Adam Neumann) gets mentioned in it a ludicrous number of times. It’s not unusual for an S-1 Form to mention the founder’s name a couple dozen times, but nowhere near as many times as WeWork’s original S-1 did.
You could go through WeWork’s S-1 and count the number of times “Adam” appears in its text. You could load WeWork’s S-1 into a text editor and have it give you that number. But what if you had to do that for a dozen, or a hundred, or a thousand companies and create a list of the number of times each company’s founder was mentioned in its S-1? You will write a Python script to do just that in my upcoming course.
I’ll guide you through the process of writing that script and running it on not just the text of WeWork’s S-1, but also for other hot tech companies, such as Zoom, Uber, Lyft, and Slack.
It’s just one of the practical things I’ll cover in the Learn Python online course being offered by Computer Coach. Here are the quick details:
What: An introductory Python course!
Where: Online, via Zoom.
When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting 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.
I’ve been programming in Python since 1999, and I’ll be teaching Computer Coach’s upcoming 10-week online Learning Python course!
The “TL;DR:”
What: An introductory Python course!
Where: Online, via Zoom.
When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting 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.
What will you get out of this course?
The biggest things that you’ll get out of this course are the tools to succeed in a tech career, namely:
An introduction to the most-used and most useful parts of the Python programming language,
a solid basis in programming principles,
and a bag of tricks that you can use in your tech career.
The course will use one of the best books on Python out there: Automate the Boring Stuff with Python by Al Sweigart (whom I had the pleasure of meeting in person earlier this year at PyCon):
…but we won’t just stick to the book. We’ll look at all sorts of programming examples and tricks, 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 a 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.
What happens in the course?
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.
Zoom and an internet connection. This is an online course, after all.
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.