Categories
Meetups Mobile Programming What I’m Up To

This Monday: Build a “Magic 8-Ball” app at the Tampa Bay Apple Coders Meetup!

This Monday — Monday, July 31st — I’ll hold another Tampa Bay Apple Coding Meetup at Computer Coach, where we’ll continue our exploration of building iOS apps by building an app that mimics the classic toy, the Magic 8-Ball.

Join us at Computer Coach on Monday, July 31st at 6:00 p.m. and learn how to build simple but interesting iOS apps! Register here — it’s free, and we’ll provide food as well!

A little practice exercise before the meetup

Don’t worry, this isn’t mandatory, but if you’re new to Xcode (or new-ish), you might want to try out this simple app exercise beforehand, just to get comfortable with the tools.

In order to do the exercise below — as well as the exercises at the meetup — you’ll need Xcode, the development tool for building applications for all things Apple. The simplest way to get it is to the Mac App Store. Follow this link, and you’ll be on your way to downloading and installing Xcode.

Once you’ve installed Xcode, launch it and follow the steps below. The app you’ll make is simple, but the exercise will get you used to working with the tools.

Create a new project

Open Xcode. From the File menu, select New, then Project.

You’ll see this window pop up:

The “Choose a new template” window in Xcode. The “iOS” tab and “App” icon are selected.

This window lists templates for the different kinds of projects that you can build using Xcode. Templates are starting points for projects that contain just enough code to actually work, but they do little more than display a blank (or mostly blank) screen.

Make sure that the selected template category near the top of the window is iOS and that App is the selected template. Then click the Next button.

The contents of the window will change to this:

The “Choose options for your new project” window in Xcode. The “Product Name” text field contains “My First iOS Project”, the selected Team is “None”, and the “Organization Identifier” text field contains “com.example”.

This window lets you choose options for the project you’re creating. For simplicity’s sake, we’ll take the approach you might take if you’d just installed Xcode and don’t have an Apple Developer account. Here’s how you should fill out this screen:

  • Product Name: My First iOS Project
  • Team: Select None.
  • Organization Identifier: Use com.example (or, if you own your own domain, use it, but in reverse — for example, if you own the domain abcde.net, you’d enter net.abcde into this field).
  • Interface: Go with the default SwiftUI.
  • Language: Go with the default Swift.
  • Leave the Use Core Data and Include Tests checkboxes unchecked.

Click the Next button, and you’ll see this:

The file dialog box.

Select a place to save the project, then click Create.

Xcode now has all the information it needs to build a basic iOS app project. It will build this project and then present the full Xcode interface, as shown below:

The Xcode window has four general areas, which I’ve numbered in the screenshot above:

  1. The Explorer pane. The leftmost pane of the Xcode window contains a set of Explorers, which is a set of menus that let you look at different aspects of your project. The one you’ll probably use most is the Project Explorer, which lists the project’s files and allows you to select the file you want to view or edit.
  2. The Code pane. This is where you’ll read, enter, and edit code. You’ll use this pane a lot.
  3. The Canvas pane. This pane lets you preview what the user interface will look like in real time, as you enter code that defines the it.
  4. The Inspector pane. The rightmost pane lets you get details about any code or user interface element that you currently have selected.

As I said earlier, when you create a new Xcode project, Xcode builds in enough code for a very bare-bones application.

Run the project

Take a look at that application in action — click the Run button (located near the top of the screen; it looks like a ▶️ or “play” button)…

…and Xcode will launch the iOS simulator, which imitates an iOS device. Give it a few seconds to launch, and then you’ll see this:

The app doesn’t do anything other than display a 🌐 icon and the text “Hello, world!” In this exercise, we’ll take this starter app and make it do a little more, adding user interface elements along the way.

The ContentView file

Let’s take a closer look at the code. First, look at the Explorer pane and make sure that ContentView is selected:

ContentView is a file, and the code inside it defines the app’s one and only screen looks and works.

Here’s the code inside ContentView:

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            Text("Hello, world!")
        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Structs

You’ll see that the code is divided into two blocks, each beginning with a keyword: struct, which is short for “structure.” If you’re familiar with object-oriented programming languages like Python or JavaScript, you should think of Swift’s structs as being like classes: they’re “blueprints” for objects, and can have properties and methods.

There are two structs in the ContentView file:

  1. ContentView, which defines what appears on the screen when you run the app.
  2. ContentView_Previews, which displays ContentView in the Canvas pane, allows you to see what ContentView will look like while you’re coding the app.

For now, let’s just look at ContentView.

The ContentView struct

When you create a new iOS app project in Xcode, Xcode creates a “starter” project for an app with a single screen. Xcode gives this screen a default name: ContentView.

The name ContentView is arbitrary. You could rename it MainScreen or HelloWorldDisplay, and it would still work. Many developers change the name of ContentView immediately after they start a new iOS app project, but for this exercise, we’ll just stick with the name.

Let’s take a look at the first line of ContentView:

struct ContentView: View {
  • The struct ContentView part of the line declares ContentView as a struct.
  • The : View part says that ContentView adopts or conforms to the View protocol:
    • If you’ve programmed in C#, Go, Java, PHP, or Python 3.8 and later, think of a Swift protocol as being similar to an interface.
    • If you’re not familiar with interfaces but have programmed in an object-oriented programming language like JavaScript or Python prior to version 3.8, think of protocols as a loose form of inheritance.

You can think of the line struct ContentView: View { as saying “This is a struct named ContentView, which includes the properties and methods of a View object.”

Now let’s look at what’s inside ContentView:

var body: some View {
    VStack {
        Image(systemName: "globe")
            .imageScale(.large)
            .foregroundColor(.accentColor)
        Text("Welcome to the app!")
    }
    .padding()
}

Pay particular attention to that first line:

var body: some View {

ContentView contains just one thing: a variable. That’s it!

  • The var body part of the line declares body as a variable.
  • The : some View part says that body contains some kind of object that adopts the View protocol.

You can think of the line var body: some View { as saying “This is a var named body, which contains some kind of View object.”

The View protocol

The term “view” has a specific meaning in non-web GUI programming. It’s used to refer to any of the following:

  • A user interface element such as static text, a text field, a button, a switch, an image, and so on, or
  • A container for other user interface elements.

Here’s the code for ContentView and the resulting screen that shows the connections between the code and the views it creates:

Tap to view at full size.
  • ContentView is a plain View. It functions as the app’s one and only screen, and it contains that screen’s views.
  • Inside the ContentView is a VStack, which is a kind of View whose name is short for “vertical stack.” Like ContentView, VStack is a view that contains other views, but the views it contains are arranged in…you guessed it: a vertical stack or column.
  • Inside the VStack are two other views whose purposes you can get from their names:
    • Image: This view displays images.
    • Text: This view displays static text — the kind that the user can’t edit.

All of these things listed above adopt the View protocol, which means:

  • They are either a user interface element or a container for user interface elements, and
  • They include the properties and methods of a View object.

Let’s talk about that second point: that in order to adopt the View protocol (or more loosely, to be a kind of View), a struct includes the properties and methods of a View object.

There’s only one required property an object needs to adopt the View protocol: it just needs to have a variable named body, whose type is some View. body is a property that contains some kind of user interface element or a container for user interface elements.

In the case of ContentView, which adopts the View protocol, its body property contains a VStack. That VStack contains an Image view and a Text view.

The Text view

Let’s play around with the Text view first. Find the line inside ContentView that looks like this:

Text("Hello, world!")

And change it to this:

Text("Welcome to the app!")

You should see the preview in the Canvas pane update to match the change you made:

Tap to view at full size.

If for some reason the preview didn’t update, look for the text “Preview paused” at the top of the preview and click the “refresh” icon to “un-pause” it:

Add a new line after the Text:

Text("Good to see you.")

This should add a new Text view to ContentView, and Xcode’s preview should update to reflect the change:

Tap to view at full size.

Run the app. The preview will pause and the Simulator will start up and launch the app, which will look like this:

Notice that running the app in the Simulator pauses the preview. Running the app in the Simulator or making big changes to the code causes the preview to pause, but you can always restart it by either:

  • Clicking on the “refresh” icon at the top of the preview, or
  • Using the keyboard shortcut command + option + p

Text view modifiers

Let’s make the “Welcome to the app!” message on the screen larger — it should be the size of a title. Do this by changing the line that creates that Text view to the following:

Text("Welcome to the app!").font(Font.title)

Run the app or restart the preview — it should look like this:

I’ll cover more in Monday’s session, but feel free to experiment!

Categories
Career Meetups Tampa Bay What I’m Up To

Scenes and notes from Tampa Bay Techies’ “Breaking Into Tech” panel

A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

On Tuesday, July 25th at the Entrepreneur Collaborative Center, Tampa Bay Techies held their “Breaking into Tech” event that featured a panel of successful and interesting local techies sharing their advice and experience for people who want to get into the technology industry.

A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

It was standing room only at the event, and it looks like a lot of people here in Tampa Bay are looking to break into tech or like me, want to enable their fellow techies land a job in our exciting field.

A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

The intro

Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.

The session opened with founder Samantha Ramos talking about Tampa Bay Techies, which has only been around a few months but has already made a considerable positive impact on the Tampa Bay tech community.

They are:

  • A 501(c)(3) non-profit organization
  • with a mission to promote personal and professional growth for individuals in the technology community through networking, mentorship, volunteering, and training
  • whose vision is to empower individuals from all walks of life to thrive in the technology field
  • and aim to be a leading hub that connects individuals, organizations, and resources within our tech community.
Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.

Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.

In the short amount of time they’ve been around, they’ve put together all sorts of events from presentations and panel sessions (including this one) to study groups (their next one is on Saturday, August 19th at Joffrey’s Coffee in Midtown) to volunteering to social meetups.

Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.
Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.
Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.
Samantha Ramos does the introductory presentation at Tampa Bay Techies’ “Breaking Into Tech’ event.

Samantha’s intro was followed by some quick talks by the sponsors:

The event wouldn’t have been possible without them —thanks so much for your sponsorship!

The panel session

The panel comprised an impressive group with a wide array of experiences in different areas of the local tech industry, listed in alphabetical order by surname:

They were moderated by Christine Chinapoo.

Here are my (admittedly incomplete) notes from the panel session.

Skills and tech

What specific skills and technologies have been most valuable in your career, and how did you acquire or develop them?

Jeff:

  • I started as a mainframe developer
  • While tech skills are important, you need to leverage soft skills, especially empathy and collaboration
  • You also need to check your biases

Steve:

  • Know your audience — know who you’re talking to, what they want, and what they’re trying to get done
  • Know the shifts in the your career — I once transitioned from working on systems to find one of the most prolific serial killers to the Edinburgh Fringe Festival
  • Understand the business of the people you’re talking to

Suzanne:

  • I started as a web designer and ended up managing 50 sites for commercial real estate in the era before CRMs
  • I discovered that I have a passion for teaching, so I made a transition into tech training
  • Soft skills are important
The panel at Tampa Bay Techies’ “Breaking Into Tech’ event. From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.
From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.

Ashley:

  • I didn’t go into tech in the beginning
  • I ended up in recruiting for mainframe developers to solve the Y2K problem
  • The number one skill is relationship building

Jason:

  • At the Future of Work conference held at Stanford just before COVID, I heard a speaker say that 20 years ago, you might expect to change your career once, maybe twice in your lifetime…
  • …but these days, you can expect to change it four, five, maybe even six times now
  • You need to build the skill of learning new skills
  • The fundamentals that will help you as a techie (they helped me):
    • C programming
    • SQL
    • TCP/IP

Austin:

  • I’m going to echo the “learn how to learn” advice
  • I was a military brat, moving around a lot, and then I went to Florida State and did “Florida State things”
  • I started in research and ended up in applied science
  • Remember that math is never going to go away — it is fundamental to what we do
  • If you can, learn both low-level and high-level stuff
  • Also keep in mind that soft skills are criminally underrated

Strength / special ability

[Editor’s note: Somehow, I managed not to write this question down — if you remember what it was, email me, message me on my LinkedIn profile, or let me know in the comments!]

Suzanne:

  • I read 50 books a year — a lot in audiobook form — physics, career development, self-development
  • I’m always in some kind of class. I’ve even taken cooking and dog training courses
  • I maintain a commitment to learning, and I continuously study my industry

Ashley:

  • [Steve] Ashley’s special ability is her connections!

Jason:

  • I still code, which allows me to have intelligent discussion with the teams
  • When you}re in charge, it’s important to understand all facets of the busines

Austin:

  • I like what I do, which is a great help
  • I read a lot; it’s how I learn best
  • I approach my job with a childlike sense of wonderment
  • I’m relatively driven
  • I also have decent risk tolerance — I prefer to ask “Why shouldn’t I” over “Why should I?”

Jeff:

  • My strength is my ability to pivot
  • Don’t be afraid to take something on
  • Don’t sell yourself short

Steve:

  • Wow — everyone on this panel speaks in paragraphs!
  • I’ll remind everyone of this Ozzy Osbourne quote: “Be kind to people on your way up the ladder, ’cause you’ll meet them on the way down.”

The next five years

How do you see the industry evolving over the next five years?

Austin:

  • You’ve seen this ChatGPT thing, right? Tech like that is not going away
  • Basically, any technology that creates the three T’s — time, talent, and treasure — will be seen as valuable
  • Even with the current wave of fancy AI, the “simpler versions” of AI are still important — for example, scikit-learn
  • Other things will still be important: security, costs, deployment — they’ll all still be in play

Jason:

  • We’ve seen so many “once in a thousand years” kinds of events — in the past five years!
  • The best thing you can do is learn how to learn
  • You’ll need to anticipate changes and change with them
  • Keep tabs on new technologies, but through a “suspicious lens”
  • Learn the basics; you’ll always be able to leverage them

Ashley:

  • Find the thing you’re passionate about
The panel at Tampa Bay Techies’ “Breaking Into Tech’ event. From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.
From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.

Suzanne:

  • Make a plan
  • Keep in mind that some technologies will affect every career path
  • Ask yourself: Where do you want to be in five years?
  • Talk to people who have the job you’d like to have in the future — remember, people love to talk about themselves!
  • Keep learning, and course-correct along the way
A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

Steve:

  • I take inspiration from my favorite superhero of all time, Iron Man!
  • I was a fan of Tony Stark from the comics, even before the Iron Man movie changed superhero movies forever
  • What I love about Iton Man is that he’s not intrinsically “super,” he’s just a human augmented by technology
  • What we do is help people become Iron Man in little ways
  • AI is there to augment people, and it will be a regular part of your everyday life five years from now
  • Be people-centric in your approach to technology

Jeff:

  • In five years, I’ll hopefully be retired!
  • The days of being a generalist are going or gone
  • People want specialists. Pick a specialty, and if you need to, be prepared to pivot

Early career choices

From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.

How did your early career choices lead you to where you are now?

Jeff:

  • Exposure to the right mentors and indviduals
  • You learn from everyone you work for — some will provide ideas and actions that you’ll want to borrow, some will be anti-examples or show you what not to do
  • Don’t pick a technology just because it’s “shiny”
A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

Steve:

  • I wanted to be an accountant because my grandfather was one, but I’m terrible at math
  • I also wanted to be a pilot — I have family in the Royal Air Force — but I have nerve damage that disqualifies me
  • My accounting grades were an sign that I was not meant for accounting, but on the strength of what I was good at, it was suggested that I go into IT
  • You need to be able to see “the fork in the road” ahead of you

Suzanne:

  • I was an entrepreneur at 24, when I opened my first training center. Computer Coach is my third!
The panel at Tampa Bay Techies’ “Breaking Into Tech’ event. From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.
From left to right: Jeff Fudge, Steve Hindle, Suzanne Ricci, Ashley Putnam, Jason Allen, Austin Eovito.

Ashley:

  • I originally wanted to be a star! I went to New York City and did a lot of auditions
  • When that didn’t work out, I ended up running the call center for Frontier Airlines in St. Pete, which wasn’t fun. Nobody calls an airline call center unless their trip has gone wrong
  • I complained about the job, and got the suggestion that I should take an IT recruiter opening. I didn’t even know what that was, but it paid $25K + commission, and I made more than I’d ever made up to that time
A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

Jason:

  • My plan was to keep learning. My work at the Department of Energy led to my learning about information security and also how to build at scale
  • And don’t forget to use those connections!

Austin:

  • I’m still early in my career — I’ve been at it for only four years
  • A lot of my approach boils down to not giving up and putting in some long nights
  • What greatly helped me was someone writing a fire letter of recommendation for me
  • You can greatly affect people when you do well by others

Q & A

The panel ended with a Q&A session — here are my notes summarizing the responses:

A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.
  • You need to showcase your work in places like:
    • GitHub — open source contributions can open doors
    • Passion projects, whether technical or non-
    • Collaborative projects — the people you collaborate with may end up being your network and references
  • Use LinkedIn
    • Remember that recruiters pay for the recruiter-specific version of LinkedIn (it costs about $10K a year)
    • This recruiter-level subscription specifically seeks out people and what they can do by the content they produce
    • Learn how to use LinkedIn to be noticed by recruiters
  • Find a mentor
    • A mentor can help fill in your gaps, especially leadership gaps

Afterward

A wide shot of the main room of Tampa’s Entrepreneurial Collaborative Center, with the people attending Tampa Bay Techies’ “Breaking Into Tech” event.

The panel was followed by the informal networking session, which gave attendees a chance to catch up with old friends and acquaintances and make some new ones. It was great catching up with folks I know, and meeting some people whom I’d never met before.

Categories
Artificial Intelligence Tampa Bay Video What I’m Up To

My interviews (so far) about AI on Fox 13 News Tampa

I’ve made three appearances on Fox 13 News Tampa this year so far. If they call on me to answer more questions or explain some aspect of artificial intelligence, I’ll gladly do so!

My most recent appearance was on June 14, whose topic was all the noise about AI possibly being an existential threat to humanity. This is the one where I reminded the audience that The Terminator was NOT a documentary:

I made an earlier appearance on April 10th, where the topics were ChatGPT and AI’s upsides and downsides:

And here’s where it all started: a more in-depth news story on AI and ChatGPT featuring a number of Tampa Bay people

Categories
Career Meetups Tampa Bay What I’m Up To

Scenes and slides from Tampa Devs’ “Selling Yourself: The Art of Interviewing” meetup

Last night (Wednesday, June 21), Tampa Devs held a meetup at Embarc Collective with a great topic: Selling Yourself: The Art of Interviewing. They brought in some domain experts, who are also friends of this blog: Pitisci & Associates’ Craig Darrell, Brian Dodd, and Stephen Rideout, who were there to show us how to land a job.

Craig gave the presentation, which was eagerly absorbed by the audience, a lot of whom were first-time attendees of a Tampa Devs meetup. This was a crowd that was ready for their first or next job, and they had questions aplenty. Luckily for them, Craig, Brian, and Stever were there to answer them, and it looks like they had even more questions to answer after Craig’s talk.

I ended up deep in very enjoyable conversations with all sorts of people, and ended up talking about all sorts of things from AI ethics and Timnit Gebru, to C++ programming and the Deadly Diamond of Death, how I got into developer relations, and my proposed talk for how computers work “under the hood,” complete with a little assembly programming primer.

(And yes, I did a couple of accordion numbers.)

I’ll close this article with photos of Craig’s slides. Tap on them to view them at a larger size:

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

Yesterday’s AI interview on FOX 13 News Tampa

Chris Cato and Joey deVilla during a live interview of FOX 13 News Tampa. The caption in the “lower third” reads “Risks and benefits of artificial intelligence.”
FOX 13 News anchor Chris Cato and me.

Here it is — the recording of my interview on the 4:00 p.m. news on FOX 13 Tampa with anchor Chris Cato, where I answered more questions about artificial intelligence:

In this quick interview, we discussed:

  • The “existential threat to humanity” that AI potentially poses: My take is that a lot of big-name AI people who fear that sort of thing are eccentrics who hold what AI ethicist Timnit Gebru calls the TESCREAL (Transhumanism, Extropianism, Singularitarianism, Cosmism, Rationalism, Effective Altruism, and Longtermism) mindset. They’re ignoring a lot of closer-to-home, closer-to-now issues raised by AI because they’re too busy investing in having their heads frozen for future revival and other weird ideas of the sort that people with too much money and living in their own bubble tend to have.
  • My favorite sound bite:The Terminator is not a documentary.”
  • A.I. regulation: Any new technology that has great power for good and bad should actually be regulated, just as we do with nuclear power, pharma, cars and airplanes, and just about anything like that. A.I. is the next really big thing to change our lives — yes, it should be regulated.” There’s more to my take, but there’s only so much you can squeeze into a two-and-a-half minute segment.
  • Cool things AI is doing right now: I named these…
    • Shel Israel (who now lives in Tampa Bay) is using AI to help him with his writing as he works on his new book,
    • I’m using it with my writing for both humans (articles for Global Nerdy as well as the blog that pays the bills, the Auth0 Developer Blog) as well as for machines (writing code with the assistance of Studio Bot for Android Studio and Github Copilot for iOS and Python development)
    • Preventing unauthorized access to systems with machine learning-powered adaptive MFA, which a feature offered by Okta, where I work.
  • My “every 13 years” thesis: We did a quick run-through of something I wrote about a month ago — that since “The Mother of All Demos” in 1969, there’s been a paradigm-changing tech leap every 13 years, and the generative AI boom is the latest one:
Poster: “Every 13 years, an innovation changes computing forever.”
Tap to view at full size.
  • And finally, a plug for Global Nerdy! This blog has been mentioned before in my former life in Canada, but this is the first time it’s been mentioned on American television.

I’ll close with a couple of photos that I took while there:

Joey de Villa in FOX 13 News Tampa’s green room.
In the green room, waiting to go on.
Tap to view at full size.
A view of the Fox 13 News Tampa studio, as seen from the interview table.
The view from the interview table, looking toward the anchor desk.
Tap to view at full size.
Interviewee’s-eye view of the cameras, teleprompters, and monitors at the Fox 13 News Tampa studio, as seen from the interview table.
The cameras, teleprompters, and monitors.
Tap to view at full size.

Once again, I’d like to thank producer Melissa Behling, anchor Chris Cato, and the entire Fox 13 Tampa Bay studio team! It’s always a pleasure to work with them and be on their show.

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!