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
Meetups Programming Tampa Bay

Scenes from last night’s Java User Group meetup featuring Scala

It’s great to be back at meetups, especially in Tampa Bay, where there’s an active, engaged, and interesting tech scene. Part of that scene includes Tampa’s sizable Java User Group, whose meetup I attended last night and featured a JVM language I was interested in: Scala!

Presented by Steve Waldman at KForce’s new office in Midtown, it was a tour of Scala-CLI as a tool for not just running Scala code, but Java code without all the scaffolding and yak-shaving that it normally requires.

The meeting took place in the conference room at KForce’s new office in Midtown, which is really nice and has some particularly comfy chairs. I will need to talk to them about hosting some of my meetups in the future!

I’m even more interested in the language after having seen Steve’s presentation and sample code.

Even better, Steve contacted Haoyi Li, author of Hands-On Scala Programming about possibly giving attendees a discount code for the book — and we all got the book for free! I’ve already dug a little into it, as it was also an excuse to take out this new Mac terminal app, Warp, for a test drive, as you can see in the screenshot below:

Here’s another reason to attend Tampa Java User Group meetups: the prizes! A lucky winner got a free JetBrains personal edition IDE:

Afterwards, some of us hit the nearby pizza place/pub for more conversation, which included tales of the dot-com bubble, career advice, job openings that I’d heard about (including some at my place of work, Okta), and explaining that once upon a time, you had to buy development tools in a shrink-wrapped box from a store (you didn’t want to download hundreds of megabytes over phone lines):

I had a blast! If you want to join in on the fun, join the Tampa Java User Group and keep an eye out for their meetups!

Categories
Artificial Intelligence Math Programming

You want sum of this? (or: What does the Σ symbol mean?)

If you’ve been perusing LinkedIn or a programming site like Lobste.rs, you may have seen that the professors who teach Stanford’s machine learning course, CS229, have posted their lecture notes online, a whopping 226 pages of them! This is pure gold for anyone who wants to get up to speed on machine learning but doesn’t have the time — or $55K a year — to spend on getting a Bachelor’s computer science degree from “The Cardinal.”

Or at least, it seems like pure gold…until you start reading it. Here’s page 1 of Chapter 1:

This is the sort of material that sends people running away screaming. For many, the first reaction upon being confronted with it would be something like “What is this ℝ thing in the second paragraph? What’s with the formulas on the first page? What the hell is that Σ thing? This is programming…nobody told me there would be math!”

If you’re planning to really get into AI programming and take great pains to avoid mathematics, I have good news and bad news for you.

First, the bad news: A lot of AI involves “college-level” math. There’s linear algebra, continuous functions, statistics, and a dash of calculus. It can’t be helped — machine learning and data science are at the root of the way artificial intelligence is currently being implemented, and both involve number-crunching.

And now, the good news: I’m here to help! I’m decent at both math and explaining things.

Over the next little while, I’m going to post articles in a series called Math WTF that will explain the math that you might encounter while learning AI and doing programming. I’m going to keep it as layperson-friendly as possible, and in the end, you’ll find yourself understanding stuff like the page I posted above.

So welcome to the first article in the Math WTF series, where I’ll explain something you’re likely to run into when reading notes or papers on AI and data science: the Σ symbol.

Σ, or sigma

As explained in the infographic above, the letter Σ — called “sigma” — is the Greek equivalent of our letter S. It means “the sum of a series.”

The series in question is determined by the things above, below, and to the right of the Σ:

  • The thing to the right of the Σ describes each term in the series: 2n + 3, or as we’d say in code, 2 * n + 3.
  • The thing below the Σ specifies the index variable — the variable we’ll use for counting terms in the series (which in this case is n) — and its initial value (which in this case is 1).
  • The thing above the Σ specifies the final value of the index variable, which in this case is 4.

So you can read the equation pictured above as “The sum of all the values of 2n + 3, starting at n = 1 and ending with n = 4.”

If you write out this sum one term at a time, starting with n = 1 and ending with n = 4, you get this…

((2 * 1) + 3) + ((2 * 2) + 3) + ((2 * 3) + 3) + ((2 * 4) + 3)

…and the answer is 32.

You could express this calculation in Python this way…

# Python 3.11

total = 0
for n in range(1, 5):
    total += 2 * n + 3

Keep in mind that range(1, 5) means “a range of integers starting at 1 and going up but not including 5.” In other words, it means “1, 2, 3, 4.”

There’s a more Pythonic way to do it:

# Python 3.11

sum([2 * n + 3 for n in range(1, 5)])

This is fine if you need to find the sum of a small set of terms. In this case, we’re looking at a sum of 4 terms, so generating a list and then using the sum function on it is fine. But if we were dealing with a large set of terms — say tens of thousands, hundreds of thousands, or more — you might want to go with a generator instead:

# Python 3.11

sum((2 * n + 3 for n in range(1, 5)))

The difference is the brackets:

  • [2 * n + 3 for n in range(1, 5)] — note the square brackets on the outside. This creates a list of 4 items. Creating 4 items doesn’t take up much processing time or memory, but creating hundreds of thousands could.
  • (2 * n + 3 for n in range(1, 5)) — note the round brackets on the outside. This creates a generator that can be called repeatedly, creating the next item in the sequence each time that generator is called. This takes up very little memory, even when going through a sequence of millions, billions, or even trillions of terms.

Keep an eye on this blog! I’ll post more articles explaining math stuff regularly.

Worth reading

For more about generators in Python, see Real Python’s article, How to Use Generators and yield in Python.

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
Mobile Programming

My “Working with dates and times in Swift” articles on the Auth0 blog

Swift (or more accurately, the Foundation framework from which Swift gets its date and time classes) gets a bad rap for complex date and time programming, but that’s because date and time programming is complex, and many programmers have erroneous ideas on the topic.

This blog used to be home to a four-part series on date and time programming in Swift. I’ve recently updated that series and moved it to the Auth0 Developer Blog (the one that has much greater reach and also pays my mortgage). It’s also a four-parter:

  1. Introduction to Date and Time Programming in Swift, Part 1: Learn how to create dates and times using Swift’s powerful date and time objects.
  2. Introduction to Date and Time Programming in Swift, Part 2: Now that you can create dates and times in Swift, learn how to display date and time values to your users.
  3. Date and Time Calculations in Swift, Part 1: Learn how to perform date and time calculations with Swift’s powerful date and time objects.
  4. Date and Time Calculations in Swift, Part 2: Improve your Swift date and time calculations with syntactic magic.

With these articles, you’ll be able to answer questions like:

  • What will the day and time be 10,000 hours into 2023?
  • What date is the first Friday of 2024?
  • What date is the first National Donut Day of 2023?
  • What date is the Thursday of the 33rd week of the year?
  • What is the actual date of September 50, 2023?
  • What day of the week and week of the year will April Fools’ Day 2023 fall on?
  • What’s 3:30 p.m. Pacific on the 3rd Thursday of July in the Coptic Calendar system in Melbourne, Australia’s time zone?
  • When does a 90-day warranty that starts today expire?
  • What is the date of the next Sunday? Or the previous Sunday?
  • When is the next Friday the 13th? How many Friday the 13ths will there be in 2024?
  • Can you write code like this:
let futureDate = (2.months + 3.days + 4.hours + 5.minutes + 6.seconds).fromNow

I answer all of these questions in this series, so check these articles out!

Categories
Artificial Intelligence Meetups Programming Tampa Bay

Tampa Artificial Intelligence Meetup is back!

I’m the new organizer of the Tampa Artificial Intelligence Meetup, a meetup that started way back on June 7, 2017 at its inaugural meetup — which I happened to attend!

Here are some photos from that kick-off meeting, featuring original host Dan Daniels at the head of the room:

Since then, the Tampa Artificial Intelligence Meetup has held dozens of gatherings over the years, ranging from presentations to discussions to study groups.

After the two-year pause from the pandemic, it’s time to get the meetup started again. I’ve been made Tampa Artificial Intelligence Meetup’s organizer with the blessing of organizers Sam Kasimalla, Lenar Mukhamadiev, and OG organizer Stan Liberatore, who remain co-organizers. I’ve also added my partner in life and tech, Anitra Pavka to the co-organizers, as she will provide invaluable assistance in restarting the meetups.

What’s happening at the next Tampa Artificial Intelligence Meetups?

I thought we’d start with a bang and code ELIZA, the very first chatbot, developed between 1964 and 1966 at MIT by Dr. Joseph Weizenbaum. It simulates a Rogerian therapist, using pattern matching to reflect what the patient says back at them or gets the patient to talk about what they just said.

You can try out ELIZA online!

ELIZA was created by computer scientist Joseph Weizenbaum at MIT’s Artificial Intelligence Lab over a two-year period from 1964 to 1966:

It simulated a psychotherapist that reflects what the patient says back at them or gets the patient to talk about what they just said. Although it was written for the IBM 7094, a room-sized computer whose operator console is pictured below…

IBM 7094 operator console. Photo by Arnold Reinhold.
Tap to view at full size.

…it later became a popular program on home computers in the 1980s under the name “Eliza” or “Doctor”:

We’ll build ELIZA — in Python. I’ll give you a “starter” project, and you’ll code along with me in real time until you have a working Eliza version that you could tweak into your own chatbot.

You wouldn’t need the latest and greatest computer to do it, either! A laptop from 2010 (and remember, that’s 13 years ago now!) or later would be all you’d need.

When will it happen?

Sometime in May. I’m working on securing a venue, and I’ll announce a date, time and location once we have one.

Categories
Artificial Intelligence Programming Reading Material

Humble Bundle deals on AI books and courses

The “Ultimate Guide to ChatGPT & AI Chat Bots” bundle

Cover of “Exploring GPT-3”

How did I not know this book existed? Exploring GPT-3, published by Packt and written by Tampa Bay’s own Steve Tingiris, is a great introduction to GPT-3 and natural language processing that doesn’t require you to have a technical background. All you need are basic computer skills to try out the exercises in this book.

Ultimate Guide to ChatGPT and AI Chat Bots

Exploring GPT-3 is but one of twelve books, shown below…

Covers of all the books in the “Ultimate Guide to ChatGPT and AI Chat Bots” bundle

… and you can get all o them for as little as $18 in the Ultimate Guide to ChatGPT and AI Chat Bots ebook package from Humble Bundle (pictured above).

🚨 At the time of writing, this Humble Bundle will expire in 17 days.

The “Machine Learning and AI: Zero to Hero” bundle

Machine Learning and AI: Zero to Hero

Also worth checking out: the Machine Learning and AI: Zero to Hero Humble Bundle, which gives you 21 courses from Packt on various aspects of ML and AI:

Covers of all the courses in the “Machine Learning and AI: Zero to Hero” bundle

🚨 At the time of writing, this Humble Bundle will expire in 13 days.