Web dev in DC http://ross.karchner.com
712 stories

Sleepy snake

1 Share

My son Ben has created a mascot for coverage.py. It adorns the new coverage.py Twitter feed. I give you Sleepy Snake:

Sleepy Snake snugly tucked into a C-shaped bed

I love this drawing! I’ve always been charmed by cartoonists’ ability to capture an essence in a seemingly simple drawing. Objects are reduced to stereotypes, but with some whimsy thrown in. Ben has always had this gift: to create just the right stroke to perfectly express an attitude or feeling.

Here Sleepy is snug in his bed, covered by a blanket. Even in his custom bed, he’s too long to fit, but he’s comfortable. The pillow isn’t shaped like a real pillow, but it’s exactly our cartoon Platonic ideal of a pillow.

When I first thought of getting a mascot, I wanted it to be a snake in bed, because of the literal meaning of “coverage.” But I threw the question out to Twitter to see what came up:

I got a lot of good ideas, including blanket/quilt/duvet, and a nice quick sketch of a snake holding an umbrella.

Ben liked the idea of the umbrella, so when he started sketching ideas, he started with snakes with umbrellas:

Two different ideas for snakes holding umbrellas

But I really wanted to see bed ideas, so he drew a snake in bed. He said snakes are usually curved, so the bed should be curved. His cartoonist’s instinct was at work:

Quick sketch of a snake in bed

I said, “Hmm, flip it around, and it will look like a C for coverage.” Now he was starting to warm to the idea:

Four more quick sketches of snake in a bed

Then he switched to digital media to produce a “real” drawing of the idea:

More detailed drawing of Sleepy Snake in bed

Now all the elements were there, and it was clear that this was a winner. I suggested making the sleeping cap a little more separate from the body, Ben added detail and colors, and Sleepy was done:

Sleepy Snake snugly tucked into a C-shaped bed

I can see using this picture with a slogan underneath: “Coverage.py: rest easy.”

I’ve long used Ben’s work where I can, in my presentations. The illustrations are always a fun aspect of what otherwise might be a visually monotonous slide deck:

Ben will be graduating soon, and setting out as a freelancer. I couldn’t be more proud of his talent. He has an Instagram and a portfolio site.

Read the whole story
7 days ago
Share this story

Take action to save .org and prosecute those who sold out the internet


As many of you have no doubt heard, control of the .org registry has been sold to private interests. There have been attempts to call them to reason, like Save .ORG, but let’s be realistic: they knew what they’re doing is wrong, the whole time. If they were a commercial entity, our appeals would fall on deaf ears and that would be the end of it. But, they’re not a commercial entity - so our appeals may fall on deaf ears, but that doesn’t have to be the end of it.

The level of corruption on display by the three organizations involved in this scam: ICANN (Internet Corporation for Assigned Names and Numbers), ISOC (The Internet Society), and PIR (Public Interest Registry), is astounding and very illegal. If you are not familiar with the matter, click this to read a summary:

Summary of the corrupt privatization of .org

The governance of names on the internet is kind of complicated. ISOC oversees a lot of activities in internet standards and governance, but their role in this mess is as the parent company of PIR. PIR is responsible for the .org registry, which oversees the governance of .org directly and collects fees for every sale of a .org domain. ICANN is the broader authority which oversees all domain allocation on the internet, and also collects a fee for every domain sold. There's a complex web of documents and procedures which govern these three organizations, and the name system as a whole, and all three of them were involved in this process. Each of these organizations is a non-profit, except for PIR, which in the course of this deal is trying to convert to a B corp.

ICANN can set price limits on the sale of .org domains. In March of 2019, they proposed removing these price caps entirely. During the period for public comment, they received 3,300 comments against, and 6 in favor. On May 13, they removed these price caps anyway.

In November 2019, ISOC announced that they had approved the sale of PIR, the organization responsible for .org, to Ethos Capital, for an unspecified amount. According to the minutes, the decision to approve this sale was unanimously voted on by the board. Additionally, it seems that Goldman Sachs had been involved in the sale to some degree.

Fadi Chehadé became the CEO of ICANN in 2012. In 2016, he leaves his position before it expires to start a consulting company, and he later joins Abry Partners. One of the 3 partners is Erik Brooks. They later acquire Donuts, a private company managing domains. Donuts co-founder Jon Nevett becomes the CEO of PIR in December 2018. On May 7th, Chehadé registers EthosCapital.com, and on May 13th ICANN decided to remove the price caps despite 0.2% support from the public. On May 14th, the following day, Ethos Capital was incorporated, with Brooks as the CEO. In November 2019, ISOC approved the acquisition of PIR by Ethos Capital, a for-profit company.

These are the names of the criminals who sold the internet. If you want to read more, Private Internet Access has a good write-up.

Okay, now let's talk about what you can do about it.

If you are familiar with the .org heist, then like me, you’re probably pissed off. Here’s how you can take action: all of these organizations are 501c3 non-profits. The sale of a non-profit to a for-profit entity like this is illegal without very specific conditions being met. Additionally, this kind of behavior is not the sort the IRS likes to see in a tax-exempt organization. Therefore, we can take the following steps to put a stop to this:

  1. Write to the CA and VA attorney general offices encouraging them to investigate the misbehavior of these three non-profits, which are incorporated in their respective states.
  2. File form 13909 with the IRS, encouraging them to review the organization’s non-profit status.

This kind of behavior is illegal. The sale of a non-profit requires a letter from the Attorneys General in both California (ICANN) and Virginia (ISOC, PIR). Additionally, much of this behavior qualifies as “self-dealing”, or leveraging one’s power within an organization for their own benefit, rather than the benefit of the organization. To report this, I’ve prepared a letter to the CA and VA Attorney’s General offices, which you can read here:

I encourage you to consider writing a letter of your own, but I would not recommend copying and pasting this letter. However, this kind of behavior is also illegal in the eyes of the IRS, and a form is provided for this purpose. Form 13909 is the appropriate means for reporting this behavior. You can download a pre-filled form here, and I do encourage you to submit one this yourself:

This only includes complaints for ICANN and ISOC, as PIR is seeking to lose its non-profit status anyway. You can print out the PDF, fill in your details on both pages, and mail it to the address printed on the form; or you can download the ODG, open it up with LibreOffice Draw, and fill in the remaining details digitally, then email it to the address shown on the page.1

Happy Thanksgiving! Funny how this all happened right when the American public would be distracted…

  1. Crash course in LibreOffice Draw: press F2, then click and drag to make a new textbox. Select text and use Ctrl+[ to reduce the font size to something reasonable. The red button on the toolbar along the top will export the result as a PDF. 

Read the whole story
15 days ago
Washington, DC
15 days ago
Share this story

Fedora Toolbox. Unprivileged development environment at maximum

1 Comment and 2 Shares

Fedora Toolbox is a tool for developing and debugging software that basically is a frontend to the Podman container system. A simple way to test applications without getting billions of dependencies and cluttering up your operating system. First, Podman (Pod Manager tool) is a daemon less container engine for developing, managing, and running OCI Containers on your Linux System. With[...]

The post Fedora Toolbox. Unprivileged development environment at maximum appeared first on CIALU.NET.

Read the whole story
26 days ago
Podman + Silverblue = 💖
26 days ago
Akron, OH
Share this story

Baking and cooking simulations with mixture theory

1 Comment
I understand none of this math, but it's nice to know we'll have fresh baked bread and cookies in the Matrix
Read the whole story
30 days ago
This is super-cool
Share this story

World Wide Whiteboard

1 Share

World Wide Whiteboard


Back in the '00s, I said blogging was "like sending email that's 'cc:world'." That was kind of the way my old blog (1999-2007) worked.  The subject was the headline and each post was as short or long as I liked—as an email also might be. And, like an email, it was personal. I was speaking for myself.

These days I write on four blogs:  my personal oneProjectVRMCustomer Commons, and here. Of those four, only this one is fully* personal, and only this one runs on a writing platform like my old blog had. (No surprise there, because both platforms were creations of our blogfather, Dave Winer.) Sometimes I also cross-post to Medium, which is now less leveraged than it used to be. (I can explain later, but it's beside the point of this post.) And I tweet

*A bit of explanation: my personal blog is a Harvard one, and so is ProjectVRM's. Customer Commons' is also not mine. And I'm mindful of those institutions when I write there. Here the institution is me.

Bigger than all four of those blogs is Linux Journal, where I wrote a great deal, including what amounted to blog posts on its website, for 25 years. That ended when Linux Journal ceased business in August. Also, as of today the entire site, with all its archives, is offline, erasing a third to a half of what I've written online so far.

While I'm hoping that the owner will bring the site back up again (they did promise to keep it up), the prospect of losing the whole thing has shaken my belief that the Web itself will ever be a true place for archiving anything. Instead it's a whiteboard.† And writing on a whiteboard is not a prospect that energizes me. Quite the opposite, in fact. Especially when so much of my online work is gone. (Again, at least for now.)

Here's another depressing thing: Google and Bing searches are now biased for traffic rather than links. I know this for two reasons. One is that I planted keyword easter eggs in some old and well-linked-to blog posts, which both search engines used to find; and now they bring up goose eggs: nada. (I'd tell you the keyword, but that would blow the test.) The other is that links to this blog don't cause it to show up in search engines, but visits to this blog do cause it to show up—at least for me—presumably because Google and Bing watched one person come here, and customized the search result just for that person (moi).

Or so it seems. I really don't know.

Are there studies on any of this... about how the Web is a whiteboard, or how search engines are becoming biassed for observed visits rather than for inbound links?

I suppose studies like that would be hard or impossible, given the operational opacity of search engines, their tendency to change constantly, and the ways they are rigged to personalize results.

So I'm in something of a liminal state right now, wondering where to invest my ceaseless writing energies. At the moment the Web is looking less appealing than ever. My mind might change, especially if we succeed in getting Linux Journal back up. But that's where I am right now.

†I first wrote about this in Linux Journal back in 2003, noting a split between the "static" Web that was like a library (with its "locations," "sites," and "domains" you could "visit" and "browse"), and the "live" web of blogs and posts. I also wrote about it at greater length in 2005, when we had the first hints toward what became social media. Here's a link to it I just found on Google. It currently goes nowhere. And, if the Linux Journal site doesn't come back up, Google's search engine will forget it, and the live Web's whiteboard will be wiped clean.

Read the whole story
32 days ago
Share this story

Fast and Free Music Separation with Deezer’s Machine Learning Library

1 Comment

Cleanly isolating vocals from drums, bass, piano, and other musical accompaniment is the dream of every mashup artist, karaoke fan, and producer. Commercial solutions exist, but can be expensive and unreliable. Techniques like phase cancellation have very mixed results.

The engineering team behind streaming music service Deezer just open-sourced Spleeter, their audio separation library built on Python and TensorFlow that uses machine learning to quickly and freely separate music into stems. (Read more in today’s announcement.)

You can train it yourself if you have the resources, but the three models they released already far surpass any available free tool that I know of, and rival commercial plugins and services. The library ships with three pre-trained models:

  • Two stems – Vocals and Other Accompaniment
  • Four stems – Vocals, Drums, Bass, Other
  • Five stems – Vocals, Drums, Bass, Piano, Other

It took a couple minutes to install the library, which includes installing Conda, and processing audio was much faster than expected.

On my five-year-old MacBook Pro using the CPU only, Spleeter processed audio at a rate of about 5.5x faster than real-time for the simplest two-stem separation, or about one minute of processing time for every 5.5 minutes of audio. Five-steam separation took around three minutes for 5.5 minutes of audio.

When running on a GPU, the Deezer team report speeds 100x faster than real-time for four stems, converting 3.5 hours of music in less than 90 seconds on a single GeForce GTX 1080.

Sample Results

But how are the results? I tried a handful of tracks across multiple genres, and all performed incredibly well. Vocals sometimes get a robotic autotuned feel, but the amount of bleed is shockingly low relative to other solutions.

I ran several songs through the two-stem filter, which is the fastest and most useful. The 30-second samples are the separations from the simplest two-stem model, with links to the original studio tracks where available.

🎶 Lizzo – “Truth Hurts”

Lizzo (Vocals Only)
Lizzo (Music Only)

Compare the above to the isolated vocals generated by PhonicMind, a commercial service that uses machine learning to separate audio, starting at $3.99 per song. The piano is audible throughout PhonicMind’s track.

🎶 Led Zeppelin – “Whole Lotta Love”

Led Zeppelin (Vocals Only)
Led Zeppelin (Music Only)

The original isolated vocals from the master tapes for comparison. Spleeter gets a bit confused with the background vocals, with the secondary slide guitar bleeding into the vocal track.

🎶 Lil Nas X w/Billy Ray Cyrus – “Old Town Road (Remix)”

Lil Nas X (Vocals Only)
Lil Nas X (Music Only)

Part of the beat makes it into Lil Nas X’s vocal track. No studio stems are available, but a fan used the Diplo remix to create this vocals-only track for comparison.

🎶 Marvin Gaye – “I Heard It Through the Grapevine”

Marvin Gaye (Vocals Only)
Marvin Gaye (Music Only)

Some of the background vocals get included in both tracks here, which is probably great for karaoke, but may not be ideal for remixing. Compare this to 1:10 in the studio vocals.

🎶 Billie Eilish – “Bad Guy”

Billie Eilish (Vocals Only)
Billie Eilish (Music Only)

I thought this one would be a disaster—the vocals are heavily processed and lower in the mix with a dynamic bass dominating the song—but it worked surprisingly well, though some of the snaps bleed through.

🎶 Van Halen – “Runnin’ With The Devil”

Van Halen – “Runnin’ With The Devil” (Vocals Only)
Van Halen – “Runnin’ With The Devil” (Music Only)

Spleeter had a difficult time with this one, but still not bad. You can compare the results generated by Spleeter to the famously viral isolated vocals by David Lee Roth, dry with no vocal effects applied.


The release of Spleeter comes shortly after the release of Open-Unmix, another open-source separation library for Python that similarly uses deep neural networks with TensorFlow for source separation.

In my testing, Open-Unmix separated audio at about 35% of the speed of Spleeter, didn’t support MP3 files, and generated noticeably worse results. Compare the output from Open-Unmix below for Lizzo’s isolated vocals, with drums clearly audible once they kick in at the 0:18 mark.

The quality issues can likely be attributed to the model released with Open-Unmix, which was trained on a relatively small set of 150 songs available in the MUSDB18 dataset. The team behind Open Unmix is also working on “UMX PRO,” a more extensive model trained on a larger dataset, but it’s not publicly available for testing.

What Now?

Years ago, I made a goofy experiment called Waxymash, taking four random isolated music tracks off YouTube, and colliding them into the world’s worst mashup. But I was mostly limited to a small number of well-known songs that had their stems leak online, or the few that could be separated cleanly with channel manipulation.

With processing speeds at 100 times faster than real-time playback on a single GPU, it’s now possible to turn all recorded music into a mashup or karaoke without access to the source audio. It may not be legal, but it’s definitely possible.

What would you build with it? I’d love to hear your ideas.

Thanks to Paige for the initial tip!

Read the whole story
40 days ago
Share this story
Next Page of Stories