Categories
Artificial Intelligence Conferences Presentations Programming What I’m Up To

O’Reilly’s AI Codecon — free and online, Thursday, May 8!

On Thursday, May 8th from 11 a.m. to 3:00 p.m. Eastern, O’Reilly Media will host a free online conference called AI Codecon. “Join us to explore the future of AI-enabled development,” the tagline reads, and their description of the event starts with their belief that AI’s advance does NOT mean the end of programming as a career, but a transition.

Here’s what I plan to do with this event:

  • Register for the event
  • Log in when it starts and fire up a screen recorder
  • Watch the event in the background while working
  • Generate a transcript from the recording and feed it into a couple of LLM
  • Have the LLMs answer any questions I may have and generate summaries and “going forward” game plans based on the content and my future plans

Interested? Register here.

The agenda for AI Codecon

Here’s the schedule for AI Codecon, which is still being finalized as I write this:

  1. Introduction, with Tim O’Reilly (10 minutes)
  2. Gergely “Pragmatic Engineer” Orosz and Addy Osmani Fireside Chat (20 minutes)
    Addy Osmani for an insightful discussion on the evolving role of AI in software engineering and how it’s paving the way for a new era of agentic, “AI-first” development.

  3. Vibe Coding: More Experiments, More Care – Kent Beck (15 minutes)
    Augmented coding deprecates formerly leveraged skills such as language expertise, and amplifies vision, strategy, task breakdown, and feedback loops. Kent Beck, creator of Extreme Programming, tells you what he’s doing and the principles guiding his choices.
  4. Junior Developers and Generative AI – Camille Fournier, Avi Flombaum, and Maxi Ferreira (15 minutes)
    Is bypassing junior engineers a recipe for short-term gain but long-term instability? Or is it a necessary evolution in a high-efficiency world? Hear three experts discuss the trade-offs in team composition, mentorship, and organizational health in an AI-augmented industry.

  5. My LLM Codegen Workflow at the Moment – Harper Reed (15 minutes)
    Technologist Harper Reed takes you through his LLM-based code generation workflow and shows how to integrate various tools like Claude and Aider, gaining insights into optimizing LLMs for real-world development scenarios, leading to faster and more reliable code production.
  6. Jay Parikh and Gergely Orosz Fireside Chat (15 minutes)
    Jay Parikh, executive vice president at Microsoft, and Gergely Orosz, author of The Pragmatic Engineer, discuss AI’s role as the “third runtime,” the lessons from past technological shifts, and why software development isn’t disappearing—it’s evolving.
  7. The Role of Developer Skills in Today’s AI-Assisted World – Birgitta Böckeler (15 minutes)
    Birgitta Böckeler, global lead for AI-assisted software delivery at Thoughtworks, highlights instances where human intervention remains essential, based on firsthand experiences. These examples can inform how far we are from “hands-free” AI-generated software and the skills that remain essential, even with AI in the copilot seat.
  8. Modern Day Mashups: How AI Agents Are Reviving the Programmable Web – Angie Jones (5 minutes)
    Angie Jones, global vice president of developer relations at Block, explores how AI agents are bringing fun and creativity back to software development and giving new life to the “programmable web.”
  9. Tipping AI Code Generation on its Side – Craig McLuckie (5 minutes)
    The current wave of AI code generation tools are closed, vertically integrated solutions. The next wave will be open, horizontally aligned systems. Craig McLuckie explores this transformation, why it needs to happen, and how it will be led by the community.
  10. Prompt Engineering as a Core Dev Skill: Techniques for Getting High-Quality Code from LLMs – Patty O’Callaghan (5 minutes)
    Patty O’Callaghan highlights practical techniques to help teams generate high-quality code with AI tools, including an “architecture-first” prompting method that ensures AI-generated code aligns with existing systems, contextual scaffolding techniques to help LLMs work with complex codebases, and the use of task-specific prompts for coding, debugging, and refactoring.
  11. Chip Huyen and swyx Fireside Chat (20 minutes)
    Chip Huyen will delve [Aha! An AI wrote this! — Joey] into the practical challenges and emerging best practices for building real-world AI applications, with a focus on how foundation models are enabling a new era of autonomous agents.

  12. Bridging the AI Learning Gap: Teaching Developers to Think with AI – Andrew Stellman (15 minutes)
    Andrew Stellman, software developer and author of Head First C#, shares lessons from Sens-AI, a learning path built specifically for early-career developers, and offers insights into the gap between junior and senior engineers.
  13. Lessons Learned Vibe Coding and Vibe Debugging a Chrome Extension with Windsurf – Iyanuoluwa Ajao (5 minutes)
    Software and AI engineer Iyanuoluwa Ajao explores the quirks of extension development and how to vibe code one from scratch. You’ll learn how chrome extensions work under the hood, how to vibe code an extension by thinking in flows and files, and how to vibe debug using dependency mapping and other techniques.
  14. Designing Intelligent AI for Autonomous Action – Nikola Balic (5 minutes)
    Nikola Balic, head of growth at VC-funded startup Daytona, will show through case studies like AI-powered code generation and autonomous coding, you’ll learn key patterns for balancing speed, safety, and strategic decision-making—and gain a road map for catapulting legacy systems into agent-driven platforms.
  15. Secure the AI: Protect the Electric Sheep – Brett Smith (5 minutes)
    Distinguished software architect, engineer, and developer Brett Smith discusses AI security risks to the software supply chain, covering attack vectors, how they relate to the OWASP Top 10 for LLMs, and how they tie into scenarios in CI/CD pipelines. You’ll learn techniques for closing the attack vectors and protecting your pipelines, software, and customers.
  16. How Does GenAI Affect Developer Productivity? – Chelsea Troy (15 minutes)
    The advent of consumer-facing generative models in 2021 catalyzed a massive experiment in production on our technical landscape. A few years in, we’re starting to see published research on the results of that experiment. Join Chelsea Troy, leader of Mozilla’s MLOps team, for a tour through the current findings and a few summative thoughts about the future.
  17. Eval Engineering: The End of Machine Learning Engineering as We Know It – Lili Jiang (15 minutes)
    Lili Jiang, former Waymo evaluation leader, reveals how LLMs are transforming ML engineering. Discover why evaluation is becoming the new frontier of ML expertise, how eval metrics are evolving into sophisticated algorithms, and why measuring deltas instead of absolute performance creates powerful development flywheels.
  18. Closing Remarks – Tim O’Reilly (10 minutes)

Interested? Register here.

Categories
Presentations Security What I’m Up To

Video of my Bsides Tampa 2024 presentation, “xz made EZ”

Here it is — the video of my presentation, xz made EZ, which covers the security incident with the xz utils utility on Unix-y systems, which I gave at BSides Tampa 2024 on April 6th:

If you’d like them, here are the Google slides from the presentation.

Questions and answers

How did I land this presentation?

The details of the xz vulnerability were made public mere days before the BSides Tampa 2024 cybersecurity conference, and on a whim, I emailed the organizers and asked if I could do a lightning talk on the topic.

They quickly got back to me and let me know that they’d had a last-minute speaker cancellation and gave me a full slot in which to do my presentation.

The moral of the story? It never hurts to ask, and it can lead to opportunities!

What’s this xz thing, anyway?

Let me answer with this slide from my presentation:

xz is short for xz Utils, a compression utility that you’ll find in Unix-y operating systems, including:

  • Linux distributions
  • macOS

It’s usually used by Unix greybeards who generally use it in combination with tar.

What happened with xz?

xz was one of those open source projects that had a vulnerability best illustrated by this xkcd comic:

xz was like that project pointed out in the comic, except that the “random person” doing the maintaining was Lass Collin, a developer based in Finland, who was experiencing burnout. As a result, xz was languishing.

In what appeared to be a stroke of good fortune, a developer who went by the handle of “Jia Tan” on GitHub came to the rescue and started submitting patches to xz.

At about the same time, there were a number of complaints about xz’s lack of apparent maintenance. In hindsight, it looks like a clever two-pronged campaign:

  1. A group of people loudly clamoring for someone else to take the reins of the xz project, and
  2. A friendly developer who swoops in at the right time, making patches to the xz project…

…all while a burned-out Lasse Collin was facing a lot of stress.

On November 30, 2022, Lasse changed the email address for xz bug reports to an alias that redirected to both his email address as well as Jia Tan’s. At that point, Jia Tan, the apparently helpful developer who appeared at just the right time, was now an official co-maintainer.

Not long after, Lasse releases his last version of xz, and soon after Jia Tan, now the sole maintainer of the project, releases their own version.

With full control of the project, Jia Tan starts making changes — all the while, carefully disguising them — that create a “back door” within the xz application.

On any system that had Jia Tan’s tainted version of xz installed, an unauthorized user with the right private key could SSH into that system with root-level access. By becoming the maintainer of a trusted application used by many Linux versions, Jia Tan managed to create a vulnerability by what could have been one of the most devastating supply-chain attacks ever.

Categories
Artificial Intelligence Presentations Programming

Join my online hands-on AI session with Austin Forum next week!

Next Tuesday, April 2nd at 6:15 p.m. Central / 7:15 p.m. Eastern / 23:15 UTC, I’ll lead an online introductory session for people who to dive into AI titled AI: How to Jump In Right Away.

ℹ️ Click here to register for the presentation.

My session is part of Austin Forum on Technology and Society’s third annual AI April, a month of presentations, events, and podcasts dedicated to AI capabilities, applications, future impacts, challenges, and more.

My presentation will start with a brief history of AI, as well as the general principles of how “old school” AI works versus “new school” AI…

…but we’ll quickly dive into building Sweater or No, a quick little AI application that tells you if you should wear a sweater, based on your current location. Here’s a screenshot of some of the code we’ll build:

This is a FREE online session, so you don’t have to be in Austin to participate. I’m not in Austin, but Tampa Bay, and you can join in from anywhere!

You need to register to participate — here’s the registration page. I hope to see you there!

Categories
Hardware Meetups Presentations Programming What I’m Up To

Scenes (and full video!) from my “How Computers Work Under the Hood” presentation

Image preview

Back in June, I posed a question on this blog: Would you like to know how computers REALLY work “under the hood?” Tampa Devs, a very active nonprofit with a mission to support the local developer community though this would be a good presentation topic. On Wednesday, I gave that presentation to this crowd:

I started by telling the attendees that while knowing about microprocessors and assembly language isn’t absolutely necessary to function in a lot of developer and tech jobs today, there’s value in that knowledge:

Photo by Richard Schmid.

I talked about transistors…

…made note of the fact that it was the 52nd birthday of the commercial microprocessor…

…introduced the 6502…

…got deeper into its inner workings…

…and then we dove into 6502 assembly language programming!

Tampa Devs recorded the entire thing, and you can watch it here:

All the material from the presentation is available online:

My thanks to:

  • Tampa Devs for inviting me to speak at their meetup — it’s always an honor and a pleasure to work with a group that contributes so much to the Tampa Bay tech scene!
  • Kforce for providing the venue, which I like to say has “the comfiest meetup chairs in Tampa Bay.”
  • Civo for sponsoring the pizza, sodas, and water for the attendees, and taking such an interest in supporting the Tampa Bay tech scene.
Categories
Artificial Intelligence Presentations Tampa Bay What I’m Up To

Slides from “Centaurs vs. Minotaurs,” my presentation at SocialCode x Tampa

Thanks to everyone who came to The SocialCode x Tampa: Embracing the AI Evolution event last Thursday (September 7, 2023) for an evening of presentations and discussion about AI! As promised, here’s a link to the slides for my presentation, Centaurs vs. Minotaurs:

Categories
Presentations Programming

Would you like to know how computers REALLY work “under the hood?”

What’s “under the hood” of your computer, smartphone, tablet,
and other smart devices.

Tap to view at full size.

You might know how to program in a high-level language like JavaScript, Python, PHP, and so on, but do you know what’s happening at the machine level? Have you wondered what pointers and references actually are, or the difference between the stack and the heap, and for that matter, what a “stack overflow” is?

Would anyone be interested in a meetup seminar or two where I explain how your computer works “under the hood,” and maybe even walk you through a little programming at the chip level with hands-on exercises? Let me know.

Categories
Presentations Programming Video

Richard “.NET Rocks” Campbell on the next decade of software development

What might the next decade of software development look like? Richard Campbell has some ideas and shares them in this talk from the 2023 edition of the NDC London conference.

Here’s the video:

I know Richard from my former life at Microsoft. He’s the host of the .NET Rocks and RunAs Radio podcasts, and long-time developer, consultant, and tech company founder, and a damn good storyteller.

Still image from security cameera footage of a black bear wandering in the space between Richard’s house and his neighbor’s house.

The first story he tells is about “The Animal Highway,” the space between his and his neighbors’ house, which is frequented by bears. This actually made me laugh out loud, since when I last saw Richard at a backyard barbecue at his house, we had to scare away a bear cub by being noisy. He picked up a pot and barbecue tongs, I picked up my accordion, and with whoops, hollers, and random squeezebox chords, we chased it away into the woods.

Cray X-MP48 supercomputer.
Cray X-MP on display at the École Polytechnique Fédérale de Lausanne, Switzerland.
Creative Commons photo by Rama. Tap to see the source.

One of the themes that runs through his talk is that technology has grown in leaps and bounds. Near the start of the talk, he uses the example of the Cray X-MP. In 1985, it was the world’s most powerful computer. It sold for millions of dollars and required 200kW of power, which could perform 1.9 at gigaflops (billions of floating-point operations per second). It was used to model nuclear explosions and compute spaceflight trajectories.

The iPad 2 from 2011 also performs at 1.9 gigaflops, but it sold for hundreds of dollars instead of millions, and ran on battery power instead of requiring its own power plant. As Richard summed it up: “26 years later, the most powerful computer in the world is now a device we give to children. And they play Candy Crush on it.”

The first transistor ever made
English: The first transistor ever made, built by John Bardeen, William Shockley and Walter H. Brattain of Bell Labs in 1947. Original exhibited in Bell Laboratories.
Creative Commons photo by Unitronic. Tap to see the source.

Near the end of the talk, Richard uses another example of the technological changes that have happened in a lifetime. The picture above shows the first transistor ever, which was made in Bell Labs in 1947.

“It’s pretty hard to look at that,” he said, pointing to the photo of that transistor, “and think ‘M1 chip’.”

M1 chip diagram.

In case you were wondering, here’s how many transistors the different variations of the M1 chip have:

Chip versionNumber of transistors
M1 (original version)16 billion
M1 Pro33.7 billion
M1 Max57 billion
M1 Ultra114 billion

If you want an understanding of how we got to the current state of computing and some good ideas of where it might go, Richard’s talk is not only enlightening, but also entertaining. I listened to it on this morning’s bike ride, and you might find it good listening during your workout, chores, commute or downtime.