I appear in two segments of the piece, along with:
Local realtor Chris Logan, who’s been using ChatGPT to speed up the (presumably tedious) process of writing up descriptions of houses for sale
University of South Florida associate director of the School of Information Systems and Management Triparna de Vreede, who talked about its possible malicious uses and what might be possible when AI meets quantum computing.
IP lawyer Thomas Stanton, who talked about how AI could affect jobs.
Watching the segment, it occurred to me that I need to light my office the way that the news crew did for the segment — it’s got such a great “cinematic hacker” vibe!
Also: My thanks to Kristin Moore for inviting me to be part of the piece!
Haraldur “Halli” Thorleifsson. Tap to view at full size.
Pictured above is Haraldur Thorleifsson, better known as Halli. He founded Ueno, an agency that designed digital brands and experiences for a fine list of clients that included Airbnb, Apple, ESPN, Dropbox, Facebook, Google, NY Times, Oculus, PayPal, Uber, Venmo, Visa, and Walmart. As a result of their success, Ueno was acquired by Twitter in 2021. That’s the good news. The bad news is that Twitter was then acquired by Elon Musk in 2022.
Halli had a problem: he had no idea if he’s still a Twitter employee or not.
Here’s his situation, explained in a tweet made at 3:38 p.m. Eastern Standard Time (UTC-5) on Monday, March 6th:
Tap to view the original tweet.
About four hours later, Musk replied.
Tap to view the original tweets.
Halli made a very good point there. Musk replied with this:
Tap to view the original tweet.
That definitely doesn’t look legally binding, but what other path of communication did Halli have? He replied, carefully treading the line between providing enough information to explain the work he did and not breaking any non-disclosure agreements. What he did required a fair bit of effort; everything Musk did so far required little or none:
Tap to view the original tweets.
Here are Musk’s responses: an adolescent “pics or it didn’t happen” and the “What would you say you do here?” clip featuring “The Bobs” from Office Space (which, ironically enough, was about working for a terrible boss at a soul-crushing workplace):
Here’s what happened in the end, as explained in a couple of tweets from Halli that appeared a few minutes ago at the time of writing:
Tap to view the original tweets.
Halli was definitely the better person in the conversation, but when Elon Musk is the other person, the bar’s pretty low.
Some notes
What Musk demonstrated in this exchange wasn’t leadership, nor was it management — in fact it wasn’t even decent. It was simply Musk being what he is at his rotten core: an asshole. I’m using philosophy professor Aaron James’ definition from his book, Assholes: A Theory: someone who “allows himself to enjoy special advantages in social relations out of an entrenched sense of entitlement that immunizes him against the complaints of other people.”
More irksome than Musk’s behavior is the number of responses by others cheering him on, questioning Halli’s value, or calling for Halli’s firing. I looked at a number of these fanboys’ profiles — and yes, they were largely male — and while many of them liked to portray themselves as independent thinkers and savvy businesspeople, most also appeared to collect a paycheck every two weeks, live vicariously through Musk’s public persona, and their Twitter feeds looked like laundry lists of grievances against “others.”
…I think these readers are tripping on the story’s considerable jolt of machismo. It’s a commonplace that our civilization is soft and sentimental. It’s less remarked that soft and sentimental people — particularly the chair-bound geek variant — often idolize brutality. The actual inhabitants of barbarian eras don’t necessarily share this feeling; they often took pains to appear as refined and cultured people.
There were a few posters for whom this was the incident that caused them to question their admiration for Musk. It might be that this is the first time they could picture themselves in the position of the person having to face off against Musk, instead of seeing Musk as the movie protagonist you’re supposed to identify with.
Stop worshipping Elon Musk. He’s not Tony Stark; he’s Justin Hammer.
If you’re still using Twitter, give Halli a follow and drop him an encouraging line.
Also: Did you know that Halli is Iceland’s Person of the Year?
Haraldur Þorleifsson, known as Halli, has garnered multiple Person of the Year Awards from various Icelanidc media outlets, including from national broadcaster RÚV, Morgunblaðið, and Vísir.
Halli, a 45 year-old designer, gained nation-wide recognition this year when, after the sale of his tech company Ueno to Twitter, he chose to be paid the sale price as wages. Normally in such large sales, the payment comes in the form of stock or other financial instruments, which categorize the sale as capital gains, meaning it is taxed at a much lower rate. Halli, however, gladly paid the higher tax rate, having spoken publicly on many occasions about the benefits he has received from the Icelandic social system.
Halli was born with muscular dystrophy and came from a working class background. In statements about his decision to pay back into the Icelandic social system, he cited both healthcare and education in Iceland as keys to his success. Notably, he was one of the highest tax payers in the nation after the sale of Ueno.
The 5th annual Python Web Conf— an online conference for mid-level to advanced Python developers — takes place next week, from Monday, March 13th through Friday, March 17th. Not only is Auth0 by Okta (where I work) one of the sponsors, but I’ll be in attendance!
Jess Temporal.
My teammate, Jessica Temporal, will deliver one of the keynotes on Monday, March 13th at 1:00 p.m. EDT (UTC-4, and yes, we’ll have just moved to Daylight Saving Time). Her keynote is titled Go With the Flow, and it’s about authentication and authorization flows, which happens to be something that we in Okta and Auth0 are pretty good at.
Juan Cruz Martinez and I will also be in attendance and available for chats throughout each conference day and during the Zoom Breakout Rooms sessions at the end of each of days 1 through 4 — Monday, March 13th through Thursday, March 16th.
Want to find out more about Python Web Conf 2023?How about checking out these 90 videos from Python Web Conf 2022? You’ll find all sorts of topics covered, from the nuts and bolts of the Python programming language, libraries, and tools, but also subjects such as CI/CD, data science, machine learning, better processes, writing documentation, and how to be a better programmer.
As for this year’s conference, Python Web Conf 2023 has 5 tracks:
US$199 if you’d like to attend live, be able to join tutorial sessions, partake int he online social events and have exclusive access to the recordings for 90 days.
US$100 if you only want post-conference videos available to you for 90 days after the event.
There’s also a grant program if you need assistance.
Videos of the sessions will be posted publicaly on YouTube following the 90-day period.
The conference takes place from Wednesday, April 19th through Friday, April 21, with workshops on Wednesday and the main conference taking place Thursday and Friday. Here’s the agenda.
I haven’t been able to find out more about this conference, but you might be able to glean more from the following Twitter accounts:
Here’s the “official unofficial” list of tech, entrepreneur, and nerd events for Tampa Bay and surrounding areas for the week of Monday, March 6 through Sunday, March 12, 2023.
Babe Crafted, the community for women entrepreneurs who want to get noticed online while building genuine connections and sharpening their skills, is holding their first Deep Dive of the year on Wednesday! It’s a workshop featuring breakout groups where you’ll discuss and get feedback, opinions, and insight on a current project or challenge you’re facing. You’ll get to be open and honest in a 100% non-judgmental space and will get to hear from each woman in your group. Find out more and register here.
On Thursday, Tampa Bay Women in Agile is holding their first in-person event! There’ll be networking with fellow Tampa agile experts, enjoying great cocktails, and coaching conversations. Find out more and register here!
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!
Teaching a person how to spell out numbers involves a lot of repetition. Tampa Bay’s own Jack Hartmann, whose children’s educational YouTube channel has over a million subscribers and 300 million views, knows this. He’s got a video that teaches kids the words for the numbers 0 through 10:
Don’t underestimate the power of videos for kids — Jack’s laughing all the way to the bank. This online estimator says that his YouTube channel should be earning about $70,000 every month, and keep in mind that his particular line of work has probably benefited from everyone being stuck at home. I may have to do something similar with the accordion when this software fad passes.
If you just wanted to be able to convert any number from 0 through 10 into word form in Python, you could use a list…
…and if you wanted the number 3 in word form, you’d use this:
# This is in the Python REPL
>>> number_words[3]
'three'
You wouldn’t want to take this approach for a larger set of numbers, and you probably wouldn’t want to code it yourself. Luckily, you don’t have to do this in Python, thanks to the inflect.py module.
Using inflect.py
inflect.py is a module that does all sorts of processing to make your programs’ text output grammatically correct. If you hate seeing output like this…
You have 1 items in your cart.
…or this…
You have a egg in your inventory.
…you can use inflect.py to automatically use the correct singular or plural form, use “a” or “an” when appropriate, and so much more.
(I’ll cover inflect.py in greater detail in a future article.)
In addition to all these grammatical goodies, inflect.py can also be used to convert numbers to words.
To use inflect.py, you’ll need to install it first. The simplest way to do so is with pip:
pip install inflect
Once installed, you can use it in your Python programs. Here’s an example:
import inflect
inflector = inflect.engine()
words = inflector.number_to_words(54321)
print(words)
It produces this output:
fifty-four thousand, three hundred and twenty-one
The number_to_words() method has a number of optional parameters that are useful in certain circumstances. For instance, there’s the boolean wantlist parameter, which causes the word output to be broken into “chunks”:
words = inflector.number_to_words(54321, wantlist=True)
It produces this output:
[‘fifty-four thousand’, ‘three hundred and twenty-one’]
Suppose you want the number to be converted into its individual digits as words. You’d use the group parameter:
# This is in the Python REPL
>>> inflector.number_to_words(54321, group=1)
'five, four, three, two, one'
>>> inflector.number_to_words(54321, group=2)
'fifty-four, thirty-two, one'
>>> inflector.number_to_words(54321, group=3)
'five forty-three, twenty-one'
What if you’re using the group parameter set to 1, but want to get all UK English and have it use the word “naught” for zero? Or maybe you want your program to sound like a film noir gangster and say “zip” instead? Or you want it recite a phone number and say “oh”? That’s what the zero parameter is for:
# This is in the Python REPL
>>> inflector.number_to_words(13057, group=1, zero='naught')
'one, three, naught, five, seven'
>>> inflector.number_to_words(13057, group=1, zero='zip')
'one, three, zip, five, seven'
>>> inflector.number_to_words(8675309, group=1, zero='oh')
'eight, six, seven, five, three, oh, nine'
The one parameter does the same thing, but for the digit 1:
# This is in the Python REPL
>>> inflector.number_to_words(13057, group=1, one='unity')
'unity, three, zero, five, seven'
Want to get all Star Trek? Use the decimal parameter to change the default decimal word to “mark”.
# This is in the Python REPL
>>> coordinates = inflector.number_to_words(123.789, group=1, decimal='mark')
>>> print(f"Ensign Crusher, set course to {coordinates}. Engage.")
Ensign Crusher, set course to one, two, three, mark, seven, eight, nine. Engage.
A lot of style guides tell you to spell out the numbers zero through ten, and use the number form for numbers 11 and greater. The threshold parameter makes this easy:
# This is in the Python REPL
>>> inflector.number_to_words(9, threshold=10)
'nine'
>>> inflector.number_to_words(10, threshold=10)
'ten'
>>> inflector.number_to_words(11, threshold=10)
'11'
Go ahead — import inflect.py and play with it. There’s a lot of power in that module, and it goes way beyond just converting words to numbers!
Another good trick: answer what looks like a bad-faith question in a straightforward way, as if it were a good-faith question. Thomas Maxwell responded to Esther’s tweet with a question about sleeping bags, as shown above.
It was probably a good-faith question, judging from Maxwell’s Twitter timeline, but put yourself in Esther Crawford’s shoes. She’s probably still processing her very public layoff and dealing with slings and arrows from critics. In her position — and even as an observer — Maxwell’s question could easily be seen as a bad-faith barb.
Crawford did the right thing: she answered it as if it were a legitimate, good-faith question. This has a double-advantage:
If it is indeed a good-faith question, she’s just answered it.
If it’s a bad-faith question, it shows grace. Or if you prefer a more Machiavellian, it highlights the attacker’s dickishness.