Skip to content

Instantly share code, notes, and snippets.

me: "write a romance novel where a woman has to choose between a successful but boring VC, and a skater that sleeps on a mattress on the floor"
ChatGPT:
"Title: Between Success and Passion
Chapter 1: The Meeting
It was a crisp autumn day when Rachel first encountered the two men who would irrevocably alter the course of her life. She hurried down the bustling streets of San Francisco, her mind preoccupied with the upcoming meeting at the prestigious venture capital firm where she worked as a financial analyst.
@sayrer
sayrer / ech_tls_server.go
Created August 5, 2022 19:03
A little TLS server using Cloudflare's copy of Go
package main
import (
"crypto/tls"
"encoding/base64"
"flag"
"fmt"
"log"
"net/http"
)
@sayrer
sayrer / numbers.rs
Created February 1, 2022 17:41
number conversion
fn main() {
let x = 1; // integer
let y = 1f32; // float32
let z = x as f64 + y as f64; // float64
println!("Hello, world: {}", z);
}
@sayrer
sayrer / freezing.txt
Last active December 19, 2021 20:17
Freeze out the worst prototype pollution vulnerabilities with this one weird trick
sayrer@sayrers-MacBook-Air% node
Welcome to Node.js v17.2.0.
Type ".help" for more information.
> Object.freeze(Object.prototype);
[Object: null prototype] {}
> Object.freeze({}.constructor);
[Function: Object]
> {}.constructor.foo = "bar"
'bar'
> {}.constructor
sayrer@sayrers-MacBook-Air% node
Welcome to Node.js v17.2.0.
Type ".help" for more information.
> Object.freeze(Object.prototype);
[Object: null prototype] {}
> Object.freeze({}.constructor);
[Function: Object]
> {}.constructor.foo = "bar"
'bar'
> {}.constructor
@sayrer
sayrer / nanopir2s.md
Last active July 4, 2021 20:48
Making old equipment work on ethernet with a nanopi r2s
sayrer@roberts-mini ring-bazel % time (bazel test //...)
INFO: Analyzed 23 targets (1 packages loaded, 243 targets configured).
INFO: Found 11 targets and 12 test targets...
INFO: Elapsed time: 1.256s, Critical Path: 1.09s
INFO: 7 processes: 4 internal, 3 darwin-sandbox.
INFO: Build completed successfully, 7 total actions
//:aead_tests (cached) PASSED in 0.4s
//:agreement_tests (cached) PASSED in 3.4s
//:constant_time_tests (cached) PASSED in 1.6s
//:digest_tests (cached) PASSED in 3.5s
INFO: Elapsed time: 6.896s, Critical Path: 5.72s
INFO: 96 processes: 49 internal, 47 darwin-sandbox.
INFO: Build completed successfully, 96 total actions
//:aead_tests PASSED in 0.4s
//:agreement_tests PASSED in 3.4s
//:constant_time_tests PASSED in 1.6s
//:digest_tests PASSED in 3.5s
//:ecdsa_tests PASSED in 0.5s
//:error_tests PASSED in 0.3s
//:hkdf_tests PASSED in 0.3s
@sayrer
sayrer / sample.js
Created April 17, 2021 19:33
More expressive
/* Original code from https://seanbarry.dev/posts/switch-true-pattern:
switch (true) {
case !isDefined(user):
throw new Error("User must be defined.");
case !isString(user.firstName):
throw new Error("User's first name must be a string");
case !isValidEmail(user.email):
throw new Error("User's email address must be a valid email address");
case !isValidPhoneNumber(user.number):
throw new Error("User's phone number must be a valid phone number");
@sayrer
sayrer / sample.js
Created April 17, 2021 19:14
I'd use an Array function, maybe every()
/* Original code from https://seanbarry.dev/posts/switch-true-pattern:
switch (true) {
case !isDefined(user):
throw new Error("User must be defined.");
case !isString(user.firstName):
throw new Error("User's first name must be a string");
case !isValidEmail(user.email):
throw new Error("User's email address must be a valid email address");
case !isValidPhoneNumber(user.number):