This is going to be another one of those “I better write this down before I forget” stories. Plus I get to talk about an algorithm that was named after me so what’s not fun about that?

First a motivational picture :D

OK so what is the Mariani-Silver algorithm, why is it called that, and why does it mostly work? That’s what we’ll talk about today (Sabine Hossenfelder would be proud of this intro).

Briefly, it is a way of plotting the Mandelbrot set more quickly. It sometimes makes mistakes in that it might produce a result that is different…

I think I’ve told this story a bunch of times but I don’t think I’ve ever written it down so here goes.

You might have heard this description:

The Pit of Success: in stark contrast to a summit, a peak, or a journey across a desert to find victory through many trials and surprises, we want our customers to simply fall into winning practices by using our platform and frameworks. To the extent that we make it easy to get into trouble we fail.

Those are words I gave Brad Abrams right after a talk I gave in 2003. He…

Continuing the previous discussion with some more issues and followup.

This document focuses on tuning the VFS and running some additional experiments with lower level libraries.

Issue #11 : What factors are affecting IndexedDB performance the most?

What about deferred writes?

Consider the essential method in wa-sqlite/src/examples/IndexedDbVFS.js

_putBlock(store, file, index, blockData) {
const key = this._blockKey(, index);
file.cache.set(key, { data: blockData, dirty: true });
/* this._purgeCache(store, file); */

The existing VFS always flushes its write cache on every block, it does this on all writes not just at Sync operations. That’s pretty conservative. Maybe we could do this…

This is an exploration of using WASM to help with web product engineering. This document focuses on some of the initial questions which tell us if we have any hope of getting this idea off the ground at all. A lot more investigation is needed, some of the followups are mentioned below.

Issue #1 : What kind of penetration does WASM have anyway?

Actually the answer here is very good.

By vendor/version:

By usage:

Sometimes people talk about making the Lab more like Production. Actually this is usually an anti-goal. That may sound surprising but consider this:

  • lots of users
  • lots of data samples
  • variable available memory
  • variable available disk
  • variable other things running on system
  • variable network quality
  • variable [other stuff]
  • metric goal: what is actually happening to users

In order to get the lab to look like production you’d have to start emulating those things. Now consider:

  • tiny number of test users
  • small number of configs
  • tightly controlled execution environment
  • tightly controlled disk/memory etc.
  • metric goal: have we done something bad?


UPDATE! Visual Studio goes 64 bit in VS2022!!

This was one of my most contentious postings ever. I dug up an archived version because the original was deleted from MSDN. Many of my posting are archived there (e.g. Development Tools Ecosystem Summit | Microsoft Docs). But it seems some of my articles were censored. I’m kind of sad about that, this is an important article that reflects real thinking at the time.

So keeping in mind this is quite old… here it is for reference in its entirety. I recovered it from Wayback Machine ( at Visual Studio: Why is…

The / thing is a serious case of legacy compat gone nuts. And it happens when you have an ecosystem and you need to keep things working in that ecosystem even as it evolves.

So, we have to go ALL the way back to CP/M an operating system most of you won’t ever have heard of but it was popular on a variety of devices in the late 70s and even into the early 80s.

CP/M has no directories, it’s for floppies, small ones at that. Well actually small in capacity, but they were usually the 8” huge floppies you…

I wanted to talk a little bit about securing C code, this came up a few weeks ago in a friendly twitter discussion and I said I would write something; so here it is.

Securing C is not an easy thing to do generally but we had pretty good success in Project Lightspeed. Now please don’t consider this a pwnme challenge: it’s not that. Nobody needs that in their life (see this if that excites you). But I think we ended up in a pretty good place and it is C, so I thought it would be worth it to…

I’m a big fan of unit tests. Really. Big fan. Super big. Massive. Like, “make unit tests great again” massive. That.

So when I was working on my FB project ( of course I invested in a lot of tests. In fact there is about as much test code as there is code code. And I wouldn’t have it any other way. That stuff saves my life on a daily basis because when you’re working on any code, but maybe especially on a compiler, it’s really easy to hork things up. So the code has 100% line coverage and lots…

I thought I would write some notes on some old “networking” tech that I worked on in the early 80s. I have “networking” in quotes because it isn’t really like what you would call a modern network, this was more about sharing particular devices but in some sense the things we’re going to talk about are “switches”. This is the Microshare line of products. I’m doing this all from memory so there’s some chance I have some of the details wrong but I’m confident this is substantially correct.

The general need here was to be able to share Commodore peripherals…

Rico Mariani

I’m a software engineer at Facebook; I specialize in software performance engineering and programming tools generally. I survived Microsoft from 1988 to 2017.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store