Simon Willison’s Weblog


23 items tagged “adrian-holovaty”


State-of-the-art music scanning by Soundslice. It's been a while since I checked in on Soundslice, Adrian Holovaty's beautiful web application focused on music education.

The latest feature is spectacular. The Soundslice music editor - already one of the most impressive web applications I've ever experienced - can now import notation directly from scans or photos of sheet music.

The attention to detail is immaculate. The custom machine learning model can handle a wide variety of notation details, and the system asks the user to verify or correct details that it couldn't perfectly determine using a neatly designed flow.

Free accounts can scan two single page documents a month, and paid plans get a much higher allowance. I tried it out just now on a low resolution image I found on Wikipedia and it did a fantastic job, even allowing me to listen to a simulated piano rendition of the music once it had finished processing.

It's worth spending some time with the release notes for the feature to appreciate how much work they've out into improving it since the initial release.

If you're new to Soundslice, here's an example of their core player interface which syncs the display of music notation to an accompanying video.

Adrian wrote up some detailed notes on the machine learning behind the feature when they first launched it in beta back in November 2022.

OMR [Optical Music Recognition] is an inherently hard problem, significantly more difficult than text OCR. For one, music symbols have complex spatial relationships, and mistakes have a tendency to cascade. A single misdetected key signature might result in multiple incorrect note pitches. And there’s a wide diversity of symbols, each with its own behavior and semantics — meaning the problems and subproblems aren’t just hard, there are many of them.

# 20th June 2024, 4:37 am / adrian-holovaty, music, machine-learning, ai, ocr


Let websites framebust out of native apps (via) Adrian Holovaty makes a compelling case that it is Not OK that we allow native mobile apps to embed our websites in their own browsers, including the ability for them to modify and intercept those pages (it turned out today that Instagram injects extra JavaScript into pages loaded within the Instagram in-app browser). He compares this to frame-busting on the regular web, and proposes that the X-Frame-Options: DENY header which browsers support to prevent a page from being framed should be upgraded to apply to native embedded browsers as well.

I’m not convinced that reusing X-Frame-Options: DENY would be the best approach—I think it would break too many existing legitimate uses—but a similar option (or a similar header) specifically for native apps which causes pages to load in the native OS browser instead sounds like a fantastic idea to me.

# 10th August 2022, 10:29 pm / browsers, privacy, security, adrian-holovaty

Twenty years of my blog

Visit Twenty years of my blog

I started this blog on June 12th 2002—twenty years ago today! To celebrate two decades of blogging, I decided to pull together some highlights and dive down a self-indulgent nostalgia hole.

[... 4,455 words]


What is the history of the Django web framework? Why has it been described as “developed in a newsroom”?

I was there!

[... 674 words]


Data Is Journalism: Acquires Everyblock. Congratulations Adrian, Wilson and the team! Brady Forrest reports the acquisition within the larger context of the rise of data-driven journalism.

# 18th August 2009, 12:10 pm / adrian-holovaty, wilson-miner, everyblock, msnbc, brady-forrest, datadrivenjournalism

Django tip: Caching and two-phased template rendering. Neat trick for expensive pages which can be mostly cached with the exception of the “logged in as” bit—run them through the template system twice, caching the intermediary generated template.

# 19th May 2009, 1:34 am / django, template, python, caching, performance, adrian-holovaty

The Django Book: Version 2.0 (via) Adrian’s working on a new edition of the Django Book updated to cover version 1.0. As with the first edition, it will be available free online in addition to a published Apress paperback. The first three chapters are now available.

# 9th January 2009, 2:54 pm / adrian-holovaty, django, book, python, apress


Django tickets with keyword “djangocon”. Adrian and Jacob ran an “I want a pony” session during their closing keynote at DjangoCon—I’ve filed the feature requests as tickets tagged with the “djangocon” keyword.

# 8th September 2008, 3:02 am / djangocon, djangocon08, iwantapony, django, python, adrian-holovaty, jacob-kaplan-moss, tickets

Cyberstar. Adrian made the front cover of the Chicago Tribune magazine!

# 18th August 2008, 11:56 pm / adrian-holovaty, django, everyblock Launch. The Maneater’s online edition is where Adrian cut his web development teeth, so it’s great to see them up and running on Django. Important to note that KeepAlive can completely murder Apache/Django performance.

# 10th February 2008, 8:10 am / apache, django, keepalive, themaneater, adrian-holovaty

Introducing EveryBlock. EveryBlock launched! Adrian Holovaty, Wilson Miner, Paul Smith and Daniel X. O’Neil’s startup which answers the question, “What’s happening in my neighborhood?” Cities covered by the launch are Chicago, New York and San Francisco.

# 23rd January 2008, 9:56 pm / everyblock, django, adrian-holovaty, wilson-miner, paul-smith, daniel-x-oneil, san-francisco, chicago, new-york

Chatting with Adrian Holovaty. Fabio Akita interviews Adrian about Django and related topics.

# 1st January 2008, 11:44 am / django, adrian-holovaty, python, fabioakita


“The Definitive Guide to Django” is now shipping from Amazon. The book looks absolutely fantastic (bias disclosure: I contributed the newforms chapter)—huge congratulations to Adrian and Jacob.

# 11th December 2007, 9:12 pm / django, django-book, books, apress, amazon, adrian-holovaty, jacob-kaplan-moss

Django Book Update. It’s done! Went to the printer on Friday, due in bookstores in the second week of December (just in time for Christmas). Congrats to Adrian and Jacob.

# 14th November 2007, 12:59 am / django-book, django, python, adrian-holovaty, jacob-kaplan-moss

Knight Foundation grant. Adrian’s leaving the Washington Post to found EveryBlock, a startup focusing on local news and information in the style of

# 24th May 2007, 4:27 pm / everyblock, adrian-holovaty, chicagocrime, startup, washington-post

Web Focus Leads Newspapers to Hire Programmers for Editorial Staff. It’s great to see this trend taking off. A newsroom is an excellent place to work as a programmer.

# 8th March 2007, 12:27 am / newspapers, programmers, jobs, adrian-holovaty, jacob-kaplan-moss


The programmer as journalist. An interview with Adrian Holovaty.

# 6th June 2006, 10:51 am / adrian-holovaty

How I’m using Amazon S3 to serve media files. Adrian’s saving server overhead on ChicagoCrime by serving media from S3.

# 7th April 2006, 6:51 pm / adrian-holovaty, s3, amazon, chicagocrime


Exciting developments with Django

The amount of activity surrounding the Django web framework since its not-quite release a few weeks ago is amazing. Adrian, Jacob and Wilson have been working over-time, with 395 check-ins to source control since the 13th of July. They’ve added WSGI support, a development web server, unit-tests, a ton of documentation, SQLite support, database introspection and dozens of other feature tweaks and bug fixes. Check out the project Timeline for an idea of just how frenetic things have been.

[... 271 words]

Adrian is leaving the Journal-World. This opens an excellent Python job opportunity in Kansas.

# 3rd August 2005, 2:50 pm / adrian-holovaty

Again, a newspaper PDF experiment is fatally flawed. Adrian nails the reason PDF editions will always play second fiddle to the real web.

# 2nd March 2005, 11:25 am / adrian-holovaty


’Game’: Fun with databases. Adrian discusses our latest site launch.

# 12th June 2004, 12:14 am / adrian-holovaty


I’m in Kansas

If you’ve been wondering why the site has been so quiet for the past few days, here’s the reason: I’ve moved to the States! To cut a long story short, I’m here in sunny Lawrence for a couple of weeks preparing for a year long industrial placement at the Lawrence Journal-World, which should start for real in October (depending on my Visa application). To call this an exciting opportunity would be an understatement. The team I’m working with have won a ton of awards, and have a fearsome reputation within the industry. I’m joining Adrian Holovaty (recently interviewed on zlog) as a web developer working on KUSports, LJWorld and the excellent The company itself is remarkably forward thinking, especially in its approach to the web (no need to support Netscape 4)—there’s a good overview of what makes the Journal World special here, which includes a video interview with my boss, Rob Curley.

[... 206 words]