News
Abstraction-itis
So, Ryan Carniato, the author of SolidJS, posted this as a comment on his blog entry entitiled, “Web Components Are Not the Future”
Thank you for your response. A lot of this sprung from my realization just how much of a cost supporting Web Components properly has had on the library. And how it is basically endless. We doubled the size and complexity of our event delegation code in the last release (1.
News
Meta - Week 1
So I just started working at Meta after working at Google for close to 17 years.
It’s still very early days, I’ve only been here one week, and all of that was onsite in the Menlo Park office doing New Hire Orientation, but even at this early stage there are several things that have really stood out to me, particularly coming from Google.
Non-insular One of things you have to know about Google is how insular they are.
News
Custom Element Naming
In My approach to HTML web components Jeremy Keith goes into a naming convention for both web components and their attributes.
While I don’t have any opinions on attribute naming, I do have a strong opinion on element names, and that’s if you decide to namespace your elements it should be done using a post-fix and not a pre-fix.
As an example, all the elements we’ve build in Skia Infra are post-fixed with -sk:
News
Excalidraw in VS Code
Excalidraw is available as a VS Code plug-in.
The fantastic part of this is:
The source of the drawing can be embedded directly in a PNG or SVG image. Just create a new .excalidraw.png or excalidraw.png file.
So yeah, expect a lot more drawings in my blog posts.
News
Popper's Paradox of Tolerance and Section 3 of the 14 Amendment
Section 3 of the 14th Amendment is a fix for Popper’s Paradox of Tolerance encoded in law.
News
Bunk Bed
In this episode of “Woodworking with Joe”, I build a bunkbed. We needed a full size bunkbed that was also long enough to span two twin beds. After looking around online we couldn’t find anything that was both fit our dimensions and also be rugged enough for under $1,500, so I designed and built this one for around $400.
I first designed out the bed in SketchUp:
Here is an STL model if you would prefer that.
News
Everyone Was on Twitter
Gentle reader, you have been directed to this page because you recently said, without sarcasm:
“Everyone was on Twitter.”
This phrase is utter nonsense, as a quick bit of math will show. The population of the world is 8 billion people, a threshhold it just recently crossed. The number of people on Twitter is up for debate, but we’ll be generous and presume 250 million people, or 0.25 billion people.
News
Bodyweight Exercise Setup
There’s nothing like almost dying to really focus the mind.
My personal “2020” began back in Jan of 2019 when a long, lingering, and mis-diagnosed case of diverticulitis caused my large intestine to tear, requiring emergency surgery and nine days in the hospital, during which I lost 20 pounds, and had at least five days straight where my heart rate was over 165. If you are interested, I document that event in more detail in A thing that happened.
News
Journalists and Twitter
I am 100% in favor of the destruction, de-construction, or outright implosion of all centrally controlled for-profit walled-garden[1] social media sites, and none more so than Twitter. The primary harm such sites promulgate is a positive feedback loop of extremism, fostered in the corporate chase of engagement, solely in the name of profits, while the social discord they engender, now veering sharply toward political violence, is foisted on the rest of us as an unpriced externality.
News
Firebase Hosting and Github Actions
Kudos to the Firebase team, setting up this blog to automatically publish every time I commit was ridiculously easy.
Here are there instructions: Deploy to live & preview channels via GitHub pull requests
Here is my slightly tweaked workflow file.
News
Vscode Unity Linux
If you are trying to use Unity on Linux with VS Code as your editor and code completion doesn’t work with the OmniSharp C# plugin, then you probably need to install the latest Mono release. Not the one packaged by Debian, but this one:
https://www.mono-project.com/download/preview/#download-lin-debian
News
strace
So, I am not smart, and I have made this mistake enough times that I’m writing it down for both my future self, and also for anyone that encounters the same issue.
I was testing Mesa drivers and ran into the following error:
libGL error: MESA-LOADER: failed to open iris: libLLVM-13.so.1: cannot open shared object file: No such file or directory (search paths /home/jcgregorio/mesa/22.1.3, suffix _dri) libGL error: failed to load driver: iris libGL error: MESA-LOADER: failed to open swrast: libLLVM-13.
News
Wake County Omicron Mortality Rate
I’ve seen many articles on the mortality rate of Covid-19, either nationally or globally, but what I haven’t been able to find is the mortality rate of the Omicron variant for the county I live in, which is a much more relevant piece of information.
Now before we get into what I found, here are some caveats:
I am not a doctor. I am not a virologist. I am not a statistician.
News
2022
Polarization I pretty much nailed all my predictions for 2021, in particular I wrote about right-wing extremism:
I fully expect Trump, unconstrained by the people that surround him in the White House today, to become even more unhinged and try to inspire even more violent acts of terrorism."
I wrote that two weeks before Jan 6th.
I also wrote about the roots of that violence as a loss of power:
News
Perfetto SPAN_JOIN and LEAD Explained
Perfetto and the SQL processing built into trace_processor are both fantastic, but two of the most important parts of that SQL processing are not well documented, at least for my simple brain.
The first feature is SPAN_JOIN which is described as:
Span join is a custom operator table which computes the intersection of spans of time from two tables or views.
There is a nice diagram showing how the spans are combined:
News
Random Integer Matrices With Inverses That Are Also Integer Matrices
I want to generate a random integer valued \( n \times n \) matrix \( A \) whose inverse is also an integer valued matrix, i.e. how can I generate Unimodular matrices?
The key is starting with an \( n \times n \) identity matrix \( I \), which has a determinant of 1. Then you can apply row operations to \( I \) that keep the determinant 1, i.e. by picking row operations that are expressible as multiplication by a matrix that also has a determinant of 1 with integer components.
News
The Seeds of Delusion
Remember that nauseous feeling you had on waking up on Nov 5, 2016 to a Trump presidency? For me, the root of that nausea was the dawning realization that a majority of my fellow Americans were deeply racist, or at least there was enough of them to propel Trump to the highest office in the land.
I’m not naive, I always knew there were racist people, but I presumed they weren’t a majority, they were a minority, and a shrinking minority at that.
News
Get Vaccinated
From the Cleveland Clinic, Most COVID-19 Infections and Hospitalizations are in Unvaccinated.
“From January first to around mid-April, we’ve had around 4,300 admissions to the hospital with COVID. Of those patients, 99% were not fully vaccinated,” said Eduardo Mireles, MD, Director of the Medical Intensive Care Unit.
So in case it isn’t obvious, please get vaccinated.
Also, we all know the majority of people not getting vaccinated are the followers of Winnie The Coup, which will only fuel more conspiracy theories in future years when, for some unknown reason, the percentage of R deaths, hospitalizations, and instances of long Covid will be found to swamp the rest of the US population.
News
Bazel and Gopls
So Bazel and the Go language server gopls don’t get along very well. The problem is that Bazel generates a bunch of bazel-\* directories that gopls then tries to process, which can cause gopls to produce a slew of invalid warnings, run slowly, and sometimes even crash. The solution I’ve found so far is to add the following to my .bazelrc file:
build --symlink_prefix=_bazel_ test --symlink_prefix=_bazel_ # Also suppress the generation of the bazel-out symlink, which always appears,no # matter what you set --symlink_prefix to.
News
Islands of Data
This demo of a shopping list in the 1968 “Mother of All Demos” with Doug Engelbart & Team is both amazing and depressing all at the same time:
We have at least progressed to the point where assembling such an application is a training-wheels level exercise used to introduce different web frameworks. For example, here’s a tutorial from Mozilla on how to write a TODO list application in four different frameworks: Introduction to client-side frameworks