Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
154407 stories
·
33 followers

New tune for Code.org’s Hadi Partovi: CEO of piano education venture with unique method and big ambitions

1 Share
Hadi Partovi, founder of Code.org and new CEO of Payam Music, speaking at a Microsoft event in July 2025. (GeekWire Photo / Todd Bishop)

Hadi Partovi helped kids around the world learn to code. Next on the playlist: piano.

The Code.org founder, who earlier this year handed off the CEO role at the nonprofit, announced this weekend that he is the new CEO of Payam Music, a Bothell, Wash.-based piano school that he plans to expand nationally with backing from Mark Cuban, Uber CEO Dara Khosrowshahi (Partovi’s cousin), and Oscar-winning composer Hans Zimmer.

The news coincides with a 60 Minutes segment and a USA Today feature about the school and its teaching approach, known as the Payam Method. Instead of starting with sheet music and a classical repertoire, students learn to play using letters and numbers, choosing songs they already love. Traditional notation and theory come later as students progress through 18 levels.

“I’m taking my experience teaching computer science to hundreds of millions and connecting it to my lifelong love of piano,” Partovi wrote in a LinkedIn post on Sunday.

Partovi told USA Today that he and his twin brother Ali learned piano as children in Iran after the Islamic revolution, when the family was stuck at home. Their father cut out musical notes and taped them to the keys so they could teach themselves. 

After immigrating to the U.S. and moving in with their grandmother, Partovi could no longer afford lessons but kept playing on his own. He still composes his own music.

Payam Music was founded by Payam Khastkhodaei, a 32-year-old piano teacher who developed the method while giving lessons out of a converted home in Bothell. Partovi discovered the school when his son Darius enrolled and saw rapid progress after years of struggling with traditional lessons.

On 60 Minutes, Partovi compared the approach to Code.org’s method of teaching coding with blocks and drag-and-drop elements instead of ones and zeros and semicolons.

Payam Music has eight locations, in Washington state, California, New York, and Maryland. It has raised seed funding in the single-digit millions to expand nationally, USA Today reported.

Khastkhodaei told paper that about 97% of his students continue beyond the first year, compared with 15% to 20% in traditional instruction. Lessons cost $75 to $100 per session.

Read the whole story
alvinashcraft
47 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Ferrari reveals its first EV, with design help from Jony Ive

1 Comment and 2 Shares
An image of a blue Ferrari with a minimalist design and black accents.
The Ferrari Luce will start at €550,000 in Italy, but US pricing hasn’t been announced. | Image: Ferrari

After months of teasers, Ferrari is offering the first full view of its Luce electric vehicle. The Luce is notable not just for being Ferrari's first EV, but for being designed in collaboration with Jony Ive and Mark Newson at their collective LoveFrom. It's also going to be Ferrari's second four-door car and its first five-seat one.

We already knew Ive and Newson were working on the Luce's interiors, which were shown off earlier this year. Now Ferrari says LoveFrom was allowed to "define the design direction of the project from the outset," inside and out.

Tim Stevens reporting for Engadget offers a few firsthand impression …

Read the full story at The Verge.

Read the whole story
alvinashcraft
47 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
1 public comment
jgbishop
18 minutes ago
reply
This thing is *ugly*...
Raleigh, NC

Paint.NET 5.2 Alpha (build 9641)

1 Share

This is an updated alpha build for 5.2 that fixes a handful of issues and crashes.

You can read more about 5.2 and what it includes by reading the release notes for the first alpha.

Change Log

Changes since 5.2 Alpha (build 9625):

  • The selection will no longer be tinted when opening an effect or adjustment.
  • Improved the latency of the brush tool “preview cursor” by 1 frame.
  • Added some extra digits past the decimal place for the zoom level in the status bar.
  • Shortened the length of the animations used when closing an image or deleting a layer.
  • Fixed Edit -> Paste into New Image not setting the color profile, resulting in it always being sRGB.
  • Fixed a rare crash with the brush tools when adjusting the brush size. This crash could only be reproduced with external automation (e.g. macro record/playback with AutoHotKey).
  • Fixed copy/paste sometimes adding an extra row or column of pixels around the edge of the image due to bad rounding after floating point precision drift.
  • Fixed a crash when pasting images that are CMYK, or which have a LUT-based color profile, or a mismatched color profile (e.g. CMYK profile on RGB image).
  • Fixed some issues with copy/paste of indexed (e.g. 8-bit palettized) images.
  • Fixed not being able to use new Effect plugins compiled against the 5.2 Alpha (build 9625) binaries.
  • Changed the package ZIPs so that they use forward slashes instead of backslashes, which simplifies working with these outside of Windows (e.g. for WINE porting effort).

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.



Read the whole story
alvinashcraft
48 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

PowerSchool’s $17.25 Million Settlement Exposes Years of Student Data Tracking

1 Share
If you ask most people what breach PowerSchool experienced, their first response might be the 2024 hacking incident that affected tens of millions of students. But even before that breach, there was another significant breach involving PowerSchool that began in 2021. Colin Lee and Koji Edmunds report: In early April, many students across the world...

Source

Read the whole story
alvinashcraft
48 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

#549: Great Docs

1 Share
Your documentation has two audiences now - humans reading the rendered HTML, and AI agents trying to make sense of your library. Rich Iannone and Michael Chow from Posit are back on Talk Python with a brand new Python documentation tool called Great Docs that takes both seriously. Rich is the creator of Great Tables, and before that the R package GT, the man has a serious eye for design, and he's pointed that energy at the Python docs ecosystem. We'll talk about how Great Docs spins up a polished site in three commands, why every page ships as Markdown for your favorite LLM, how it leans on Quarto for executable code blocks and tabbed install sections, and where it lands against Sphinx, MkDocs, and Zensical. Plus, you'll meet Tablin. Here we go.

Episode sponsors

Sentry Error Monitoring, Code talkpython26
Temporal
Talk Python Courses

Guests
Michael Chow: github.com
Rich lannone: github.com

Python Web Security with OWASP Top 10 and Agentic AI Course: talkpython.fm

GT: posit-dev.github.io
Episode: talkpython.fm
Sphinx: www.sphinx-doc.org
mkdocs: www.mkdocs.org
Zensical: zensical.org
Hugo: gohugo.io
Ghost: ghost.org
Rs pkgdown: pkgdown.r-lib.org
Quarto: quarto.org
quickstart: posit-dev.github.io
llms.txt file: llmstxt.org
llms.txt: talkpython.fm
mcp: talkpython.fm
cli: talkpython.fm

Watch this episode on YouTube: youtube.com
Episode #549 deep-dive: talkpython.fm/549
Episode transcripts: talkpython.fm

Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong

---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython

Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython

Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy




Download audio: https://talkpython.fm/episodes/download/549/great-docs.mp3
Read the whole story
alvinashcraft
49 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

#481 Ways to die

1 Share
Topics covered in this episode:
Watch on YouTube

About the show

Sponsored by us! Support our work through:

Connect with the hosts

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too.

Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.

Michael #1: Dumb Ways for an Open Source Project to Die

  • Core categories
    • The maintainer left
    • The maintainer is still there
    • Sabotage and capture
    • The release pipeline broke
    • Force majeure
    • The world moved on
    • The project split
    • -
  • Examples
    • Bulma PRs still from 2023, issues and PRs with no maintainer response for years, last release 1.5 years ago
    • diskcache Similar, got hired by OpenAI, crickets after that

Brian #2: How to create a pylock.toml lockfile

  • Tim Hopper
  • Tim walks through using uv, pip and pdm to create pylock.toml files.
  • Recommendation: use uv export --format pylock.toml -o pylock.toml
  • He also has How to install from a pylock.toml lockfile with pip but the short version is:
    • use -r because tools treat it like a requirements file

Michael #3: https://github.com/facebook/Lifeguard

  • Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead for Lazy Imports in Python.
  • I’m more excited about lazy imports after my Cutting Python Web App Memory Over 31% experience
  • Some Python patterns depend on imports executing immediately. For example:
    • Module-level side effects — a module that registers a handler or modifies global state at import time will behave differently if that import is deferred.
    • The registry pattern — a module that registers itself (e.g., adding to a global dict) when imported will silently fail to register under Lazy Imports.
    • sys.modules manipulation — code that reads or writes sys.modules assumes prior imports have already executed.
    • Metaclasses and __init_subclass__ — class creation side effects may depend on imports being resolved.
  • Project Stage: Beta Lifeguard is in active development. We are aiming to be ready for general use by the Python 3.15 final release.

Brian #4: Choosing a Python Logging Library in 2026

  • Ayooluwa Isaiah
  • " which libraries matter, how they compare, where they overlap with the standard module, and when each one makes sense.”
  • The slant with this article is the need to log json output, which seems reasonable as things like API entry and exit point logging will include json.
  • Covered libraries
  • Some benchmarks with structlog, stdlib+json, and Loguru, with structlog coming out faster
  • I liked the Loguru example
    • I’m going to have to try @logger.catch and logger.exception() for easily logging exceptions and serialize=True to enable JSON output.

Extras

Brian:

  • When Women Stopped Coding - Planet Money segment , spotted on BlueSky from Savannah Ostrowski
  • Lean TDD is now leaner
    • Still working on audio version, but some great changes in 0.7.1 version
      • Ch 6, TDD Interpretations, move ATDD and some of BDD to chapter
      • Ch 7, Change name to TDD with Teams: BDD and ATDD
      • Ch 9, Lean TDD, streamline steps and chapter
      • Ch 10, Change name to Lean TDD with Teams: Lean ATDD
      • Ch 11, Lean TDD with AI, Add short discussion about guardrails and security

Michael:

Joke: Stop texting me





Download audio: https://pythonbytes.fm/episodes/download/481/ways-to-die.mp3
Read the whole story
alvinashcraft
49 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories