{ | |
"breadcrumbs.enabled": false, | |
"editor.minimap.enabled": false, // removes minimap | |
"editor.renderWhitespace": "none", // removes whitespace chars | |
"editor.renderIndentGuides": false, // removes indent guides | |
"editor.overviewRulerBorder": false, // removes border from overview ruler (located on the right, same position as the scrollbar) | |
"editor.hideCursorInOverviewRuler": true, // hides cursor mark in the overview ruler | |
"editor.lineNumbers": "off", // hide line numbers | |
"editor.renderLineHighlight": "none", // removes line highlight |
/** | |
* A quick way of using Markdown inside JSX: via tagged templates | |
* | |
* Downsides: | |
* – Works completely dynamically (no static compilation) | |
* – Big downside: You must escape backticks. | |
* Potential work-around in template tag function: result.replace(/∆/ug, '`') | |
* | |
* Upsides: | |
* – Preserves line breaks (JSX doesn’t) |
by Tatiana Mac
Last updated 14 April 2021
As speaking comes with immense privilege, I have crafted a speaker rider to set expectations and boundaries around my engagement. I am grateful to all the conference organisers who have brilliantly hosted me. I would love to continue to exercise this privilege to speak at conferences, and use this privilege to make the landscape more accessible and beneficial to tech's most historically excluded and marginalised communities.
😫 I provide a lot of explanations for those of you who never had to consider these things. Most thoughtful conferences I've attended check most of these boxes intrinsically, particularly when conference runners are experienced speakers. They get it.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Font | |
:set guifont=Source\ Code\ Pro:h14 | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Hide pointless junk at the bottom, doesn't work in .vimrc for some reason? | |
:set laststatus=0 | |
:set noshowmode "don't show --INSERT-- | |
:set noruler "don't show line numbers/column/% junk |
import React, { Suspense, useState } from "react"; | |
import { unstable_createResource as createResource } from "react-cache"; | |
import { | |
Autocomplete as Combobox, | |
Input as ComboboxInput, | |
List as ComboboxList, | |
Option as ComboboxOption | |
} from "./Combobox"; | |
function App({ tabIndex, navigate }) { |
React recently introduced an experimental profiler API. This page gives instructions on how to use this API in a production release of your app.
Table of Contents
React DOM automatically supports profiling in development mode for v16.5+, but since profiling adds some small additional overhead it is opt-in for production mode. This gist explains how to opt-in.
React recently introduced an experimental profiler API. After discussing this API with several teams at Facebook, one common piece of feedback was that the performance information would be more useful if it could be associated with the events that caused the application to render (e.g. button click, XHR response). Tracing these events (or "interactions") would enable more powerful tooling to be built around the timing information, capable of answering questions like "What caused this really slow commit?" or "How long does it typically take for this interaction to update the DOM?".
With version 16.4.3, React added experimental support for this tracing by way of a new NPM package, scheduler. However the public API for this package is not yet finalized and will likely change with upcoming minor releases, so it should be used with caution.
const http2 = require('http2'); | |
const fs = require('fs'); | |
const path = require('path'); | |
const zlib = require('zlib'); | |
const brotli = require('brotli'); // npm package | |
const PORT = 3032; | |
const BROTLI_QUALITY = 11; // slow, but we're caching so who cares | |
const STATIC_DIRECTORY = path.resolve(__dirname, '../dist/'); | |
const cache = {}; |
function logger(strings,...values) { | |
var str = ""; | |
for (let i = 0; i < strings.length; i++) { | |
if (i > 0) { | |
if (values[i-1] && typeof values[i-1] == "object") { | |
if (values[i-1] instanceof Error) { | |
if (values[i-1].stack) { | |
str += values[i-1].stack; | |
continue; | |
} |