The SocialCode x Tampa is a few weeks away, but if you’re into AI and networking with Tampa’s top technology people in one of Tampa’s top venues, you’ll want to put this on your calendar right now.
The first reason you should attend is venue: Hyde House Public Studio’s Black Box Auditorium. It’s a great space that rarely sees a Tampa Bay tech event, and it’s going to be amazing.
The speaker lineup
The second reason you should attend is the speaker lineup:
Craig Bosco, Data Scientist at Gale Healthcare: From Data to Decisions: harnessing predictive analytics for effective healthcare staffing.
Craig Bosco is a lifelong learner with a passion for math and technology, as well as finding innovative solutions. After working in multiple industries and starting his own business, he’s found a calling with Data Science and has spent the last five years developing his skills to apply programmatic solutions for hosted services and predictive modelling. Telling a story with data is his expertise, and he loves solving difficult problems.
Craig will discuss how predictive analytics can play a part in healthcare staffing, the role of AI in automation and operational excellence, and how different types of AI can be used to augment the skills of a limited workforce. In the healthcare world, where resources are always limited, AI can be a multiplying force, filling in gaps where human time may be limited and providing an extra set of eyes where getting the right answer is critical.
James Gress – Generative AI Director at Accenture: Exploring the groundbreaking realm of Generative AI
James is a Generative AI Director for Accenture, bringing over 30 years of software delivery experience, leading global teams to break new ground in Generative AI solutions. James has a strong foundation in AI, DevOps, Architecture, and Modern Engineering practices spanning various projects and across numerous industries, technologies, and software platforms.
James’ expertise doesn’t end with software architecture and creating custom automation tools, he also takes great pleasure in exploring the groundbreaking fields of the Metaverse and Generative AI during his personal time. This blend of professional accomplishment and personal fascination embodies an undying dedication to the ever-changing landscape of technology.
James’ talk, “Talk Track” will involve a captivating exploration into the groundbreaking realm of Generative AI. In this insightful session, James will elucidate how various organizations are harnessing the power of Generative AI to drive innovation in their products and enhance operational efficiency. This session will also explore and demonstrate how we can use multiple technologies across the entire software delivery lifecycle.
Witness firsthand how this revolutionary tool is reshaping the coding process by generating code lines and blocks, offering an up-close look at how Generative AI is transforming our workplaces and the potential it holds for the future of technology. Don’t miss out on this opportunity to get a glimpse of the technological revolution that’s just around the corner!
Joey deVilla, Senior Developer Advocate at Okta: Centaurs vs. Minotaurs: the human-AI synergy
(Yup, I’m speaking at this event!)
If you hear an accordion at a programming presentation, chances are that Joey de Villa is the one playing, presenting, or both. He’s a Senior Developer Advocate at Okta, where he specializes in supporting mobile and Python developers.
He’s also the editor of Tampa Bay’s tech blog, Global Nerdy, home of the Tampa Bay Tech Events list, and organizes Tampa’s AI and Apple coding meetups. When he’s not programming or talking to programmers, he plays in a band called the Tropical Sons, does daily 10K bike rides around his neighborhood, plays tabletop and video games, and is always looking for interesting new places to hang out.
Joey’s talk, “Centaurs vs. Minotaurs,” is a metaphor used in AI circles for two different approaches to human-AI synergy. In the “centaur” relationship (human head/horse body), the human is in charge and the AI follows its orders. Conversely in the “minotaur” relationship (bull head/human body), the AI is making the decisions and the human follows its orders.
It’s happening on Thursday, September 7, and it’s free to attend!
Join us as we kick off September with a great event where you’ll learn more about AI and its applications, mix and mingle with Tampa Bay’s tech scene, get an opportunity to speak to the tech recruiters at Oscar, and have a grand old time in an great venue!
Here’s the “official unofficial” list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, August 21 through Sunday, August 27, 2023.
On Tuesday morning, via the Career Success Academy, Front End Creatives, Tampa Cybersecurity Training, and Tech Success Network meetups, Computer Coach will have an online session on ten job search strategies you should be using. Find out more and register here.
On Thursday evening, the Tampa Bay AWS User Group will feature a presentation on developing a generative AI strategy for your business and cover the tools and services that power AWS AI. There will also be a demo or two of generative AI on AWS. Find out more and register here.
Group
Event Name
Time
Wesley Chapel, Trinity, New Tampa, Business Professionals • Wesley Chapel, FL
On Friday evening, Black Innovation Leaders of Florida will host the first part of a two-day event at MOSI, where the goal will be to create an inclusive and thriving innovation ecosystem that benefits all. Find out more and register here.
Group
Event Name
Time
Winter Park Toastmasters – Learn while having FUN! • Winter Park, FL
On Saturday afternoon, Black Innovation Leaders of Florida will host the second part of a two-day event at the Entrepreneur Collaborative Center, where the focus will be on the impact of inactivity in public policy. Discover proactive measures against AI threats to copyrights and intellectual property, including discussions on the OpenAI and Fearless Fund Lawsuit. Find out more and register here.
Group
Event Name
Time
Central Florida Philosophy Meetup • Winter Park, FL
How do I put this list together? It’s largely automated. I have a collection of Python scripts in a Jupyter Notebook that scrape Meetup and Eventbrite for events in categories that I consider to be “tech,” “entrepreneur,” and “nerd.” The result is a checklist that I review. I make judgement calls and uncheck any items that I don’t think fit on this list.
In addition to events that my scripts find, I also manually add events when their organizers contact me with their details.
What goes into this list? I prefer to cast a wide net, so the list includes events that would be of interest to techies, nerds, and entrepreneurs. It includes (but isn’t limited to) events that fall under any of these categories:
Programming, DevOps, systems administration, and testing
Tech project management / agile processes
Video, board, and role-playing games
Book, philosophy, and discussion clubs
Tech, business, and entrepreneur networking events
Toastmasters (because nerds really need to up their presentation game)
Sci-fi, fantasy, and other genre fandoms
Self-improvement, especially of the sort that appeals to techies
Here’s the “official unofficial” list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, August 14 through Sunday, August 20, 2023.
On Tuesday morning, Computer Coach — by way of the Career Success Academy, Tech Success Network, Front End Creatives, Tampa Cybersecurity Training — will have an online meetup called Top Interview Questions and how to interpret them. Find out more and register here.
On Tuesday evening, Tampa Devs’ meetup at Kforce will cover software methodologies — Waterfall, Agile, Scrum, and Kanban — with tech exec Mike Wood, who’s overseen investments of over $100 million across more than 100 technology projects and operational work streams. Find out more and register here.
On Thursday at 11:00 a.m., Tampa Bay Techies is holding a fundraiser at Anthony’s Coal Fired Pizza to raise money to support their mission. Find out more and register here.
On Thursday evening, Tampa Bay Agile and Clearly Agile are hosting Lean Beer for All Things Agile — the even more fun, beer-y version of Lean Coffee — at Cigar City Spruce Street. Find out more and register here.
If you’d rather stay home but still want a techie event, there’s a special online meetup via Google Developer Group Central Florida with Randal Schwartz — author of the classic Learning Perl and other classic O’Reilly books — who’ll discuss the latest Flutter news and trends. Find out more and register here.
Group
Event Name
Time
Wesley Chapel, Trinity, New Tampa, Business Professionals • Wesley Chapel, FL
Here’s the “official unofficial” list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, August 7 through Sunday, August 13, 2023.
On Monday evening, a new group — The Bot Brains – AI Enthusiasts of St. Pete — is holding their first meetup:
Come join us at a new brewery every week for beers and a lively discussion around AI. Come prepared to speak about your favor AI topics, new developments in AI, and AI business ideas. This week we’ll be trying The Brutalist.
On Tuesday morning, Computer Coach — by way of the Front End Creatives, Career Success Academy, Tampa Cybersecurity Training, and Tech Success Network meetup groups — will hold an online session called How to Get The Most Out of Networking. An excerpt from the description:
During the workshop, our expert facilitator will guide you through the essential steps for successful networking. You’ll learn how to identify the right people to network with, how to make meaningful connections, and how to build lasting relationships that can benefit your career.
You’ll also gain valuable insights into the latest networking trends and strategies, and learn how to leverage social media and other digital tools to expand your network and reach new opportunities.
This workshop is ideal for professionals at any stage of their career who want to enhance their networking skills and achieve greater success in their professional lives. Whether you are looking to build new connections or deepen existing ones, this workshop will provide you with the tools and knowledge you need to succeed.
On Thursday evening, I’ll be speaking at the Tampa Java User Group, where my topic will have it all: Kotlin development, authorization in APIs, Spring Boot, learning unfamiliar frameworks, and landing a job during a pandemic.
Also on Thursday evening, only a couple of blocks away from the Tampa Java User Group meetup, will be Tampa Bay Women in Agile’s Agile Rooftop Networking Event.
It’s our last event of the summer. Let’s finish with some cold cocktails on an Ybor City rooftop. Expect great views, high energy, fun ice breakers, and some lean beer style conversations. Come meet, learn, and grow with your fellow Tampa Bay agile community. Cheers!
How do I put this list together? It’s largely automated. I have a collection of Python scripts in a Jupyter Notebook that scrape Meetup and Eventbrite for events in categories that I consider to be “tech,” “entrepreneur,” and “nerd.” The result is a checklist that I review. I make judgement calls and uncheck any items that I don’t think fit on this list.
In addition to events that my scripts find, I also manually add events when their organizers contact me with their details.
What goes into this list? I prefer to cast a wide net, so the list includes events that would be of interest to techies, nerds, and entrepreneurs. It includes (but isn’t limited to) events that fall under any of these categories:
Programming, DevOps, systems administration, and testing
Tech project management / agile processes
Video, board, and role-playing games
Book, philosophy, and discussion clubs
Tech, business, and entrepreneur networking events
Toastmasters (because nerds really need to up their presentation game)
Sci-fi, fantasy, and other genre fandoms
Self-improvement, especially of the sort that appeals to techies
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.
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:
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:
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:
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:
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.
The Code pane. This is where you’ll read, enter, and edit code. You’ll use this pane a lot.
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.
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:
ContentView, which defines what appears on the screen when you run the app.
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 ContentViewadopts 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!