-
Drupal 10: Getting Config Ignore and Webform to play nice together
I describe a technique for ignoring some, not all, webform settings from config sync. This gives flexibility to business users to manage end-user-facing form labels without fully giving up on configuration management. Along the way, I solve a quirk in Config Ignore that prevents from hard-coding its own configuration in settings.php. -
Drupal 10: Fully local, open source Drupal AI setup, part 1: Search API
I describe a Drupal AI setup based on open source tools and running locally. The use case is to provide search results based on natural language queries using the Search API ecosystem. The constraint is to avoid communicating with external APIs and rely only on services that are co-located with the Drupal deployment. -
Drupal 10: Fix AJAX-related error with Views exposed forms
Enabling AJAX callbacks on Views exposed forms causes a cryptic error that "the uploaded file likely exceeded the maximum file size". In this post, I explain why this happens, and present a functioning workaround. -
Music Grimoire: A progress report
In this post, I present a summary of the music ecosystem I've been working on for the past 7 years. -
Drupal 10: Fix Views Reset button with Big Pipe
Big Pipe on Drupal 9+ breaks form redirects. In this post, I explain how I fixed it for a specific but common case. -
Drupal 10: From cookies to user sessions
In this post, I show a script that relates user cookies to Drupal session information. -
Drupal 9: Troubleshooting Cache API issues, Part 1: Xdebug, wodby/drupal, VS Code
In this post, I explain how to configure Xdebug with VS Code in the context of deep Drupal debugging. -
Drupal 9: Backup and Migrate - Drush 11 support
In which I publish a small Drush 11 command for Backup and Migrate. -
Drupal 9: Fixing Google Charts rendering in tabbed pages
In which I describe a fix to a long-standing bug with Google Charts rendering inside hidden divs. This bug affects charts that are rendered in Boostrap tabs that are not active. -
Drupal 9: Backup and Migrate - PostgreSQL support
In which I describe a simple and robust approach to support PostgreSQL with Backup and Migrate module. -
Drupal 9: Showing an export link for each manually updated configuration item
In which I describe how to add an export link to each out-of-sync configuration item right on the main Configuration synchronization page. -
Still Drupal after all these years
In which I congratulate myself for getting back into Drupal development after many years away from the platform. -
How to prepare your Web application for Web MIDI on Firefox
In this note, I explain the process of preparing your Web application to use Wed MIDI API on Firefox, because this process is different from Chrome and involves a few more steps that may be counter-intuitive or surprising. I include screenshots and code snippets from my own app.
-
Uploading Zoom meeting recordings to AWS S3
While helping out my friends at Labyrinth Online set up their platform for online music courses, I had the opportunity to work on an interesting function to automate the upload of recorded meetings from Zoom to AWS S3.
-
Visualizing musical tunings in the browser
One of my recurring intellectual joys is to learn about the deep connections between music and mathematics. About a decade ago, I discovered the amazing work of Gareth Loy, “Musimathics: A Guided Tour of the Mathematics of Music”, a generous 2-volume overview of the mathematics and...
-
Documenting the MusicXML schema
The latest MusicXML version is 3.1. However, the official MusicXML documentation stops at version 3.0, and the Music Notation Community Group’s plan to keep the documentation updated is unclear.
-
First release of iReal Pro to MusicXML converter
Yesterday, I finally published an online demo of my iReal Pro to MusicXML converter (unimaginatively called
ireal-musicxml
), having spent around 300% of the time I had originally anticipated to reach the first release of this module. In this post, I hope to summarize the... -
Validating MusicXML files without the tears
MusicXML is a standard open format for exchanging digital sheet music, supported by a large number of music applications. Version 3.1 is the first version to be released by the W3C Music Notation Community Group.
It’s a complex format, aiming at capturing...
-
Music blogging
I’m interested in music blogging, to document my journey as a music practicioner. By “music blogging”, I mean inserting music snippets within regular blog posts, just like one does with mathematical notation, code snippets, media objects, etc.
-
A query tool for heterogeneous sheet music indexes
As a practicing musician, I often need to refer to sheet music when I learn a new tune. Oftentimes, I prefer to refer to multiple transcriptions of the same song in order to fine-tune my own interpretation of it. To help me locate the various transcriptions, I’ve created a small...
-
Extracting and manipulating the media database from Synology NAS
As a dedicated music listener, I care about my media library. I run a Synology DS411+ NAS which has been excellent at serving large amounts of media, but their audio apps (Audio Station on the browser, DS audio on mobile) inevitably have missing features that I wish I could use...
-
Converting an audio album to a YouTube video
YouTube is a great way to quickly disseminate obscure, long-tail music albums that carry cultural significance. As long as you remain under the radar of our friends at the music labels, of course
Here’s a recipe to prepare audio files for YouTube upload. The video is a looping slideshow...
-
My interest in machine learning
I submitted the following essay to UBC as the introduction to a Master’s program letter of intent, so please forgive the self-engrossed tone. Haven’t heard back yet, hoping for good news!
<essay>
There is a paradigm shift afoot in the software industry. The expectations of software...
-
Music localization for cultural preservation
Following is a talk proposal I submitted (actually: mis-submitted, but that’s not important) to the “Music and hacking” 2017 conference organized by IRCAM at the Centre Pompidou in Paris. Please forgive the self-aggrandizing tone - doubly so that I ended up not even attending the conference...