Categories
Deals Programming Reading Material

Get these 5 books for 1 dollar at Humble Bundle!

There’s a Humble Bundle deal going on for the next nine days at the time of writing: the Popular Programming Languages book bundle, featuring books by O’Reilly. There’s a “15 books for $25” version of the deal and a “10 books for $18” version.

If you’re still iffy about parting with that much money, you might be interested in the $1 deal, which gets you these five books:

Once again, the deal is here, and it’s good for the next nine days at the time of writing.

Categories
Meetups Mobile Programming Tampa Bay What I’m Up To

Build your first iOS app at Tampa Bay Apple Coding Meetup — Monday, June 26!

“Let’s Get Started!” — a collage of Apple products including the iPhone, MacBook Pro, Apple Watch, Apple TV, iPad, and Vision Pro.

It’s been a while, so let’s go back to the beginning and build an iOS app!

Graohic: Computer Coach Training Center logo

Join us on Monday, June 26 at 6:00 p.m. at Computer Coach to sit down, fire up Xcode, and write an iOS app. Register here!

It’s been a while since Tampa Bay has had a meetup for Apple platforms — iOS, iPadOS, macOS, watchOS, tvOS, and the upcoming visionOS (as in the OS for Apple’s Vision Pro, a.k.a. “the goggles”). The best way to learn how to develop for all of these platforms is to develop for iOS.

At this meetup, where we’ll build a simple iOS app and get re-acquainted with iOS development with Swift and SwiftUI.

Are you new to iOS development, the Swift programming language, Xcode, SwiftUI, or any combination of these? This meetup session is just for you! You’ll come to the meetup with your Mac with Xcode installed, and you’ll leave with a working app!

This meetup will be a “code along with the presenter” exercise. You’ll fire up Xcode, click File → New, and following the presenter’s work on the big screen, you’ll write code in Swift, build a user interface in SwiftUI, and compile and run the app. If you’ve never built an iOS app before — or it’s been a while — you’ll want to attend this meetup!

MacBook with code on its screen.

You’ll need:

  • A Mac computer — preferably a laptop, but we’ve had people bring in Mac desktops before.
  • Xcode 14.3.1. It’s free on the App Store, but it does take a while to download and install. It’s best if you install it in advance.

And because it’s hard to code on an empty stomach, we’ll provide the pizza, courtesy of our sponsor: Okta! We’d also like to thank Computer Coach for the generous use of their space.

Once again: Join us on Monday, June 26 at 6:00 p.m. at Computer Coach to sit down, fire up Xcode, and write an iOS app. Register here!

Categories
Artificial Intelligence Programming What I’m Up To

Andrew Ng’s “ChatGPT Prompt Engineering for Developers” is free for a limited time!

Screenshot from “ChatGPT Prompt Engineering for Developers,” showing the screen’s three parts — table to contents, Jupyter Notebook, and video.
A screenshot from ChatGPT Prompt Engineering for Developers.

Here’s something much better and more useful than anything you’ll find in the endless stream of “Chat Prompts You Must Know”-style articles — it’s ChatGPT Prompt Engineering for Developers. This online tutorial shows you how to use API calls to OpenAI to summarize, infer, transform, and expand text in order to add new features to or form the basis of your applications.

Isa Fulford and Andrew Ng.
Isa Fulford and Andrew Ng.

It’s a short course from DeepLearning.AI, and it’s free for a limited time. It’s taught by Isa Fulford of OpenAI’s tech staff and all-round AI expert Andrew Ng (CEO and founder of Landing AI, Chairman and co-founder of Coursera, General Partner at AI Fund, and an Adjunct Professor at the computer science department at Stanford University).

The course is impressive for a couple of reasons:

  1. Its format is so useful for developers. Most of it takes place in a page divided into three columns:
    • A table of contents column on the left
    • A Jupyter Notebook column in the center, which you can select text and copy from, as well as edit and run. It contains the code for the current exercise
    • A video/transcript column on the right.
  2. It’s set up very well, with these major sections:
    1. Introduction and guidelines
    2. Iterative prompt development
    3. Summarizing text with GPT
    4. Inferring — getting an understanding of the text, sentiment analysis, and extracting information
    5. Transforming — converting text from one format to another, or even one language to another
    6. Expanding — given a small amount of information, expanding on it to create a body of text
    7. Chatbot — applying the techniques about to create a custom chatbot
    8. Conclusion
  3. And finally, it’s an Andrew Ng course. He’s just good at this.

The course is pretty self-contained, but you’ll find it helpful if you have Jupyter Notebook installed on your system , and as you might expect, you should be familiar with Python.

I’m going to take the course for a test run over the next few days, and I’ll report my observations here. Watch this space!

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!