It’s International Women’s Day! If you’re reading this blog, you’re either in tech or aspire to be, and you should attend the free online community mini-conference called FTW Conf! FTW Conf starts at 11:15 EST (16:15 UTC) and you can catch it online at FTWConf.com.
The Tracks
FTWConf will feature these tracks:
Security: Threat modelling, trust and how you can get into security yourself. Bring your questions — there’ll be ample time for Q&A with the speakers and hosts!
Transparency in tech: If you’re interested in technologies gathering personal information, accountability and trust, then you shouldn’t miss the Transparency in Tech panel discussion about how to change the way transparency is built into technology.
Career: Feeling nervous about approaching a salary negotiation or promotion discussion with your boss? Keen to find a mentor but unsure where to begin? Wonder how you can best bounce back and build resilience in an ever-challenging world? Applying to jobs and receiving zero response? Join the Career track as we explore real experiences, practical advice, and guidance from inspiring women in the industry on these important topics. There’s an open Q&A that will help you take your career to the next level!
Creative: All work and no play makes anyone dull. During the pandemic we’ve all picked up new hobbies, adopted new habits. In the Creative track, we won’t be talking sourdough bread, but we will explore more brainy creative outlets, like LEGO, sketch noting, and… knitting.
Main: Inspiring stories, discussions about diverse topics, and where they’ll wrap up the conference with a panel featuring speakers from the other tracks.
Annybell Villaroel, Security Culture Manager at Auth0, will speak at 12:30 p.m. EST in a session titled Trust: From Zero to Hero. She’ll talk about Security Culture, what trust is, and how to extend and inspire trust. We’ll follow almost exactly the same method that FBI hostage negotiators use on their day today. It doesn’t get more battle-tested than that!
Eva Sarafinaou, Senior Security Engineer at Auth0, will speak at 1:00 p.m. EST in a session titled Threat Modeling in the “Shift Security Left” era. “Shifting security left” means prioritizing security earlier in the development timeline. Doing this means that vulnerabilities are found early on in the process, making it easier and more cost effective to fix them. How can Threat Modeling become an integral part of your organization’s shift security left strategy? How can you, the developer, design secure software? Learn what is Threat Modeling and how to apply Threat Modeling techniques in each stage of the software development lifecycle. Start thinking like an attacker!
Ana Cidre is a Developer Advocate at Auth0, the founder of ngSpain and GalsTech. She has a degree in Fine Arts and a Master in International Business Economics and Management, so she is not your usual software developer. She’s a big fan of Web Components and Angular. As a very active member of the community, she regularly organises meetups and conferences, like the amazing ngSpain. Ana is based in Spain, where she’s the founder of GalsTech, a group for women in tech from Galicia. Because she is so passionate about diversity, she is also a Women Techmaker Ambassador.
James Quick is a developer, speaker, and teacher with a passion for Web Development. He is a Developer Advocate at Auth0 and has over 7 years of experience in Advocacy and Software Development. In his spare time, he runs a YouTube channel, plays co-ed soccer with his wife, spends time with his dogs, and can solve a Rubik’s cube in under a minute.
Sam Bellen is a Senior Developer Advocate Engineer at Auth0 and a Google Developer Expert. After office hours, he likes to play around with the web-audio API, and other “exotic” browser API’s. One of his side projects is a library to add audio effects to an audio input using JavaScript. When he’s not behind a computer, you’ll find him playing the guitar, having a beer at a concert, or trying to snap the next perfect picture.
Catch FTW Conf today! It’s free, it’s online, and it’s a great way to learn and celebrate International WOmen’s Day!
Welcome to the second week of March! Here’s your list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, March 8 through Sunday, March 14, 2020.
This is a weekly service from Tampa Bay’s tech blog, Global Nerdy! For the past four years, I’ve been compiling a list of tech, entrepreneur, and nerd events happening in Tampa Bat and surrounding areas. There’s a lot going on in our scene here in “The Other Bay Area, on the Other West Coast”!
By “Tampa Bay and surrounding areas”, this list covers events that originate or are aimed at the area within 100 miles of the Port of Tampa. At the very least, that includes the cities of Tampa, St. Petersburg, and Clearwater, but as far north as Ocala, as far south as Fort Myers, and includes Orlando and its surrounding cities.
For the time being, I’m restricting this list to online events. We’re still deep in a pandemic, and the way out is to stop the spread, however we can. In the age of broadband internet, smartphones, and social media, it’s not that hard. Stay home, stay safe, stay connected, and #MakeItTampaBay!
If you’d like to get this list in your email inbox every week, enter your email address below. You’ll only be emailed once a week, and the email will contain this list, plus links to any interesting news, upcoming events, and tech articles.
Join the Tampa Bay Tech Events list and always be informed of what’s coming up in Tampa Bay!
That all changed when I finally unboxed my Kuman 3.5″ LCD display, (a steal at $20) which my in-laws gave to me for Christmas (they went through my Amazon wishlist for gift ideas). They had no idea what it was, but figured I’d like it, which I do!
Tap to view at full size.
With a 3.5″ diagonal and 480 by 320 resolution, this screen isn’t meant for reading web pages or PDFs or writing code, documents, or spreadsheets. It’s meant to be a display for an IoT project that doesn’t need to display a lot of information, such as a weather app, smart thermostat, or even low-res videogames.
Tap to view at full size.
The screen’s not just an output device, but an input device as well, since it’s touch-sensitive. Once you’ve installed the driver, the Pi treats the screen as if it were another mouse, treating taps as mouse clicks, and the location of your tap as mouse coordinates.
Tap to view at full size.
The screen plugs directly into the Pi’s GPIO (General Purpose Input/Output), a 40-pin connector located along the top edge of the board, which it uses for power. It’s also what physically holds the screen to the Raspberry Pi.
Tap to view at full size.
The video signal is fed to the screen through a U-shaped HDMI connector that connects the Raspberry Pi’s HDMI port to the screen’s HDMI port.
Tap to view at full size.
I’ll post the results of my noodling with this new Raspberry Pi/screen combo here on Global Nerdy. It should be interesting!
It’s the first week of a new month, and the final month of the first quarter! Here’s your list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, March 1 through Sunday, March 7, 2020.
This is a weekly service from Tampa Bay’s tech blog, Global Nerdy! For the past four years, I’ve been compiling a list of tech, entrepreneur, and nerd events happening in Tampa Bat and surrounding areas. There’s a lot going on in our scene here in “The Other Bay Area, on the Other West Coast”!
By “Tampa Bay and surrounding areas”, this list covers events that originate or are aimed at the area within 100 miles of the Port of Tampa. At the very least, that includes the cities of Tampa, St. Petersburg, and Clearwater, but as far north as Ocala, as far south as Fort Myers, and includes Orlando and its surrounding cities.
For the time being, I’m restricting this list to online events. We’re still deep in a pandemic, and the way out is to stop the spread, however we can. In the age of broadband internet, smartphones, and social media, it’s not that hard. Stay home, stay safe, stay connected, and #MakeItTampaBay!
If you’d like to get this list in your email inbox every week, enter your email address below. You’ll only be emailed once a week, and the email will contain this list, plus links to any interesting news, upcoming events, and tech articles.
Join the Tampa Bay Tech Events list and always be informed of what’s coming up in Tampa Bay!
What happened at the first Programmers of Portables meetup?
The first Programmers of Portables meetup took place last night, and we made our first steps towards making our first videogame. We met over Zoom, where I shared my screen and led the group in a “code along with me” exercise as we started writing a simple videogame from scratch.
This article covers what we did last night, complete with the code that we wrote. If you were there, you can use this for review. If you weren’t, you should still be able to look at what we did and follow along.
This article is primarily a collection of the code we wrote and the recording of the session. In later articles, I’ll go over Pygame programming in more detail. In the meantime, if you’ve like to learn more about Pygame, here are a couple of resources:
The first part of the session was devoted to downloading and installing the prerequisites for writing videogames with Python.
A code editor (such as Visual Studio Code)
Any application that calls itself a code editor will do.
I tend to use Visual Studio Code these days, because I’ve already done my time using earlier versions of vim (in the late ’80s, I used a variant called ivi, short for “improved vi”) and Emacs (back when the joke name was “Eight megs and constant swapping”). VS Code is pretty much the same across all the platforms I use — macOS, Windows, Linux, and Raspberry Pi OS — and it feels like a present-day app, and not leftovers from the 1970s.
A distribution of Python 3 (such as Anaconda Python)
We’re programming in Python (preferably Python 3.7 or later), so any reasonably recent Python distribution will do.
I like the Anaconda Python distribution because iy includes a lot of useful libraries and other tools that you’ll need when using Python for things such as data science, and the experience is pretty much the same across macOS, Windows, and Linux.
The final prerequisite is Pygame, a cross-platform set of packages that supports game development in Python. It’s been around for 20 years (its was first release in the fall of 2000), and it’s a fun, fantastic 2D game programming platform.
To install it, you’ll need to go to the command line:
macOS and Linux users: Open a terminal and enter the command pip install pygame
Windows users using Anaconda Python: Open the Start Menu, select the Anaconda Python folder, and run Anaconda Command Prompt, where you’ll enter the command pip install pygame
The first version: A blank black screen
With the prerequisites gathered and installed on our computers, it was time to start working on the game. We worked on it in steps, each time producing an improved version of the game.
The first version of the game wasn’t terribly impressive, as it ended up being a blank black window that did nothing. Still, it was a working program, and the code we wrote would function as a framework on which we’d eventually build the rest of the game:
Here’s its code:
# The first version of the game:
# An 800-by-600 black window
# (Don’t worry; it gets better)
import pygame
# Constants
# =========
# Screen dimensions and refresh rate
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
FRAMES_PER_SECOND = 60
# Colors
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# Initialization
# ==============
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
# Game loop
# =========
running = True
while running:
# This method should be called once per frame.
# It calculates the number of milliseconds since the last
# call to clock.tick() in order to limit the game’s framerate
# to a maximum of FRAMES_PER_SECOND.
clock.tick(FRAMES_PER_SECOND)
# Handle events
for event in pygame.event.get():
# Check to see if the user has closed the window
# or hit control-c on the command line
# (i.e. Has the user quit the program?)
if event.type == pygame.QUIT:
running = False
# Draw game objects to the screen surface
screen.fill(BLACK)
# Update the screen with the contents of the screen surface
pygame.display.flip()
# Exit the game
pygame.quit()
The second version: A rightward-moving green square
The second version of the game built upon the code from the first, and was slightly more impressive. It featured an actual image on the screen, complete with animation: a green square, travelling from left to right across the screen, and “wrapping around” back to the left side after it disappears from the right side of the screen.
Here’s its code:
# The second version of the game:
# An 800-by-600 black window,
# now with a rightward-moving green square!
import pygame
# Constants
# =========
# Screen dimensions and refresh rate
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
FRAMES_PER_SECOND = 60
# Colors
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# Sprites
# =======
class Player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((50, 50))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.center = (SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2)
def update(self):
self.rect.x = self.rect.x + 5
if self.rect.left > SCREEN_WIDTH:
self.rect.right = 0
# Initialization
# ==============
# Initialize screen and framerate
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
# Create sprites and sprite groups
all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)
# Game loop
# =========
running = True
while running:
# This method should be called once per frame.
# It calculates the number of milliseconds since the last
# call to clock.tick() in order to limit the game’s framerate
# to a maximum of FRAMES_PER_SECOND.
clock.tick(FRAMES_PER_SECOND)
# Handle events
for event in pygame.event.get():
# Check to see if the user has closed the window
# or hit control-c on the command line
# (i.e. Has the user quit the program?)
if event.type == pygame.QUIT:
running = False
# Update the game state
all_sprites.update()
# Draw game objects to the screen surface
screen.fill(BLACK)
all_sprites.draw(screen)
# Update the screen with the contents of the screen surface
pygame.display.flip()
# Exit the game
pygame.quit()
The third version: The green square, now under user control!
The final version of the game was one where we made the green square interactive. Instead of continuously travelling from left to right on the screen, the square stays put until the user presses one of the arrow keys. When that happens, the square moves in the appropriate direction. The square is constrained so that it can’t go offscreen.
Here’s its code:
# The third version of the game:
# The green square, now under user control!
import pygame
# Constants
# =========
# Screen dimensions and refresh rate
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
FRAMES_PER_SECOND = 60
# Colors
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# Sprites
# =======
class Player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((50, 50))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.center = (SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2)
def update(self):
# Get the state of all the keys
keys = pygame.key.get_pressed()
# Check the retrieved state to see if any
# arrow keys have been pressed
# =======================================
# Is the user pressing the left-arrow key,
# and is the sprite’s left edge NOT flush
# with the screen’s left edge?
if keys[pygame.K_LEFT] and self.rect.x > 0:
self.rect.x = self.rect.x - 5
# Is the user pressing the right-arrow key,
# and is the sprite’s right edge NOT FLUSH
# with the screen’s right edge?
if keys[pygame.K_RIGHT] and self.rect.x < SCREEN_WIDTH - self.rect.width:
self.rect.x = self.rect.x + 5
# Is the user pressing the up-arrow key,
# and is the sprite’s top edge NOT FLUSH
# with the screen’s top edge?
if keys[pygame.K_UP] and self.rect.y > 0:
self.rect.y = self.rect.y - 5
# Is the user pressing the down-arrow key,
# and is the sprite’s bottom edge NOT FLUSH
# with the screen’s bottom edge?
if keys[pygame.K_DOWN] and self.rect.y < SCREEN_HEIGHT - self.rect.height:
self.rect.y = self.rect.y + 5
# Initialization
# ==============
# Initialize screen and framerate
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
# Create sprites and sprite groups
all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)
# Game loop
# =========
running = True
while running:
# This method should be called once per frame.
# It calculates the number of milliseconds since the last
# call to clock.tick() in order to limit the game’s framerate
# to a maximum of FRAMES_PER_SECOND.
clock.tick(FRAMES_PER_SECOND)
# Handle events
for event in pygame.event.get():
# Check to see if the user has closed the window
# or hit control-c on the command line
# (i.e. Has the user quit the program?)
if event.type == pygame.QUIT:
running = False
# Update the game state
all_sprites.update()
# Draw game objects to the screen surface
screen.fill(BLACK)
all_sprites.draw(screen)
# Update the screen with the contents of the screen surface
pygame.display.flip()
# Exit the game
pygame.quit()
Believe it or not, the end of this week is also the end of the month. Here’s your list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, February 22 through Sunday, February 28, 2020.
This is a weekly service from Tampa Bay’s tech blog, Global Nerdy! For the past four years, I’ve been compiling a list of tech, entrepreneur, and nerd events happening in Tampa Bat and surrounding areas. There’s a lot going on in our scene here in “The Other Bay Area, on the Other West Coast”!
By “Tampa Bay and surrounding areas”, this list covers events that originate or are aimed at the area within 100 miles of the Port of Tampa. At the very least, that includes the cities of Tampa, St. Petersburg, and Clearwater, but as far north as Ocala, as far south as Fort Myers, and includes Orlando and its surrounding cities.
For the time being, I’m restricting this list to online events. We’re still deep in a pandemic, and the way out is to stop the spread, however we can. In the age of broadband internet, smartphones, and social media, it’s not that hard. Stay home, stay safe, stay connected, and #MakeItTampaBay!
If you’d like to get this list in your email inbox every week, enter your email address below. You’ll only be emailed once a week, and the email will contain this list, plus links to any interesting news, upcoming events, and tech articles.
Join the Tampa Bay Tech Events list and always be informed of what’s coming up in Tampa Bay!