Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View hastebrot's full-sized avatar

Benjamin Gudehus hastebrot

  • Freiheit.com
  • Hamburg, Germany
  • 14:28 (UTC +02:00)
View GitHub Profile
// ❯ bun add -d signia@0.1.5 vitest zod
// ❯ bun run test --watch signia.test.tsx
import { atom, computed, type Atom, type Computed, type Signal } from "signia";
import { expect, test } from "vitest";
import { z } from "zod";
// repo for "signia" package: https://github.com/tldraw/signia
test("signia condition with atom() and computed()", () => {
// ❯ bun add -d signia vitest zod
// ❯ bun run test --watch graph.test.ts
import { atom, computed, type Atom, type Computed, type Signal } from "signia";
import { expect, test } from "vitest";
import { z } from "zod";
test("signal graph", () => {
const BlockProps = z.object({
field1Input: zodAtom<number>(),
@font-face {
font-family: 'JetBrains Mono';
font-style: normal;
font-weight: 100;
src: local("JetBrains Mono Thin"), local("JetBrainsMono-Thin"), url("../fonts/webfonts/JetBrainsMono-Thin.woff2") format("woff2");
font-display: swap; }
@font-face {
font-family: 'JetBrains Mono';
font-style: italic;
@hastebrot
hastebrot / isogit.ts
Last active May 27, 2022 16:51
isomorphic-git in deno
#!/usr/bin/env -S deno run --no-check --allow-env --allow-read --allow-write --allow-net isogit.ts
import fs from "https://deno.land/std@0.140.0/node/fs.ts";
import path from "https://deno.land/std@0.140.0/node/path.ts";
import git from "https://esm.sh/isomorphic-git@1.17.2";
import http from "https://esm.sh/isomorphic-git@1.17.2/http/node.js";
const repositoryDir = path.join(Deno.cwd(), "/../test-repository");
const repositoryUrl = "https://github.com/isomorphic-git/lightning-fs";
await git.clone({
// https://stackoverflow.com/questions/7487917/convert-byte-array-to-escaped-string
fun encodeToEscapedString(bytes: ByteArray): String {
// 0x00..0x1f = non-printing characters
// 0x20 = SPACE
// 0x21..0x7e = printing characters
// 0x7f = DELETE
val string = StringBuilder()
val intSize = 0xff
val byteRange = 0x20..0x7e
for (byte in bytes) {

From SQL to Neo4j: Northwind

SQL Model

Neo4j Model

Get the SQL Dump

The SQL dump was stolen from here and imported into MySQL.

export const HomePage = () => {
return (
<SiteLayout>
<div className="flex">
<SitePanel></SitePanel>
<SiteContainer></SiteContainer>
</div>
</SiteLayout>
)
}
@hastebrot
hastebrot / ECS notes.md
Created September 17, 2020 06:04 — forked from dakom/ECS notes.md
ECS with sparse array notes (EnTT style)

Intro

The below is a breakdown / bird's eye view of how a sparse-array backed ECS like EnTT or Shipyard works.

Please see the thanks and references at the bottom - without their help I would not have been able to share this breakdown with you... everything here is really just notes and rephrasing of what they've written already :)

Also, these notes do not cover archetype systems (like unity) nor adaptations of archetypes (like in Flecs). Though there's a couple comparative footnotes at the end.

Here we go!

@hastebrot
hastebrot / main.dart
Created September 8, 2020 21:05 — forked from ds84182/main.dart
Flutter GPU memory growth repro
import 'dart:async';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
void main() => runApp(MyApp());
int xorshift32(int x) {
x ^= x << 13;
@hastebrot
hastebrot / fezrotate.js
Created January 29, 2020 02:32 — forked from veeenu/fezrotate.js
Fez-like world rotation
/*
* Procedurally generated Minecraft dirt texture.
*/
(function() {
var ctx, imgd;
ctx = document.getElementById('texture').getContext('2d');
imgd = ctx.createImageData(64, 64);