Categories
Artificial Intelligence Deals Programming

45 (mostly) Python tutorials for $25 via Humble Bundle!

If you want to learn Python, machine learning, data science, and a few other related topics AND you have $25 handy, The Complete Python Mega Bundle has you covered, as you can see from the list of tutorials below:

At the time of writing, you’ve got about 17 days to get in on this deal.

Categories
Florida Meetups Programming What I’m Up To

I’m speaking at GDG Central Florida on Thursday, May 25!

One of the games that Joey will demo at the meetup: Attack on Walmart!
It’s a turn-based combat game featuring Florida Man vs. the world’s worst cow.

Next Thursday, May 25th, I’ll be speaking at the Google Developer Group Central Florida Meetup, giving a presentation titled The Beginner-Friendly Android Dev Tool You Didn’t Know About!

It’ll take place at Design Interactive, located at 3501 Quadrangle Blvd in Orlando, and it’ll take place from 6:30 p.m. to 8:30 p.m.

So what’s this beginner-friendly Android dev tool that we don’t know about?

The Ren’Py icon.

It’s Ren’Py, a “visual novel engine” that makes it easy to create visual novels — interactive stories featuring a combination of text, images, sound effects, and music — that run on computers and mobile devices.

There are a couple of ways to think of visual novels:

  1. As a “Choose Your Own Adventure”-style book, but in electronic form, and backed with visuals, sound effects, music, and interactivity, or
  2. As a story-driven, turn-based multimedia game, which can fit any number of genres, including adventures, simulations, or role-playing games.

What will Joey cover at the meetup?

In this meetup, Joey’s presentation will cover:

  • A quick intro to visual novels, including some delightfully ridiculous ones like Attack Helicopter Dating Simulator and I Love You, Colonel Sanders.
  • A tour of Ren’Py and its basic features.
  • A look at the code of a beginner-friendly project: a “Choose Your Own Adventure”-style game/novel.
  • A look at the code of a more advanced project: Attack on Walmart, a turn-based combat role-playing game.
  • Q&A, which in this case means Questions and Accordion!

Why is it called Ren’Py?

Ren’Py is a portmanteau of renai (恋愛), Japanese for “romantic love”…

…and Python, the programming language in which it’s implemented, and one of the languages you can use to create Ren’Py visual novels / games.

How much programming do I need to know to make visual novels or games in Ren’Py?

You’ve got options!

  • If you’re new to programming, Ren’py provides a scripting language that’s easy enough to let you get started writing visual novels after a couple of minutes’ worth of learning, but powerful enough to add a surprising amount of interactivity.
  • If you know Python or are an experienced programmer, you can harness the entire Python language and its libraries and geek out to your heart’s content.

And, yes, you can program using a mix of both Ren’Py’s programming language and Python.

What platforms can I use to develop Ren’Py visual novels and games?

You can run the Ren’Py development tool on Windows, macOS, and Linux…

…and with a little work, you can even do Ren’Py development on a Raspberry Pi!

What platforms do Ren’Py visual novels and games and run on?

The point of my presentation is that you can use Ren’Py to build visual novels and games for Android. Ren’Py can convert your scripts into an Android Studio project, which you can then deploy to your Android device or submit to the Play Store.

You can also deploy apps to:

  • Windows
  • macOS
  • Linux
  • iOS

And with more work (and the right amount of luck), you can deploy your Ren’Py-based works on Steam. Here’s a list of Steam’s Ren’Py-based games.

I have only two questions: “How much?” and “Give it to me!”

Ren’Py is open source and free as in beer — that’s right, it costs nothing to download, use, or to deploy your Ren’Py creations to the world! You can download Ren’Py from its site, renpy.org.

Once again, where and when is this fabulous meetup where I can learn about the beginner-friendly Android dev tool you didn’t know about?

Categories
Artificial Intelligence Deals Programming Reading Material

Humble Bundle’s deal on No Starch Press’ Python books

Banner for Humble Bundle’s No Starch Press Python book bundle

I love No Starch Press’ Python books. They’re the textbooks I use when teaching the Python course at Computer Coach because they’re easy to read, explain things clearly, and have useful examples.

And now you can get 18 of their Python ebooks for $36 — that’s $2 each, or the cost of just one of their ebook, Python Crash Course, Third Edition!

Check out the deal at Humble Bundle, and get ready to get good at Python! At the time of writing, the bundle will be available for 20 more days.

Banner for Tampa Artificial Intelligence Meetup

Consider these books recommended reading for the Tampa Artificial Intelligence Meetup, which is now under my management, and holding a meeting later this month!

Categories
Conferences Programming What I’m Up To

Coming soon to PyConUS 2023

Rasberry Pi 3 with attached 3.5" LCD screen displaying Thonny running and Badger 2040 electronic badge displaying “Auth0 by Okta - Joey @ PyConUS 2023 - Let’s connect @oktadev”
Pictured: My Raspberry Pi 3 (above), running Thonny, which I used to write the badge app running on the Badger 2040 e-badge (below) in MicroPython.

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)!

Categories
Conferences Programming What I’m Up To

I’ll be attending Python Web Conf 2023 (March 13 – 17)!

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!

Jess Temporal.

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:

  1. App Dev
  2. Cloud
  3. Culture
  4. PyData
  5. Tutorials

See their schedule for more details.

Tickets are:

  1. 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.
  2. US$100 if you only want post-conference videos available to you for 90 days after the event.
  3. There’s also a grant program if you need assistance.
  4. Videos of the sessions will be posted publicaly on YouTube following the 90-day period.
Categories
Programming

Converting a number into words, this time with Python and inflect.py

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…

number_words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']

…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

Pythoninflect.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!

Also worth checking out

If you’re an iOS/macOS programmer, you’ll want to look at this article from a couple of days ago, Convert a number into words in a couple of lines of Swift.

Categories
Conferences Programming What I’m Up To

I’m going to PyCon US 2023!

The US edition of the Python Conference — better known an PyCon US — takes place in Salt Lake City in April, and I’m going to be there minding Okta’s Auth0 booth!

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.
  • As an online attendee: US$100.

You can find out more at PyCon’s Registration Information page.