Skip to content

Instantly share code, notes, and snippets.

View HarryR's full-sized avatar
🏴‍☠️
My time travel machine is stuck at 60 seconds per minute

HaRoLd HarryR

🏴‍☠️
My time travel machine is stuck at 60 seconds per minute
View GitHub Profile
@HarryR
HarryR / graph3d.py
Created June 18, 2025 03:43
Make a 3d graph from nodes and edges, using igraph and plotly
###############################################################################
import sys
from collections import namedtuple
from dataclasses import dataclass
Node = namedtuple('Node',['name','group'])
GraphEdgesT = set[tuple[str,str]]
GraphNodesT = dict[str,Node]
@HarryR
HarryR / README.md
Created June 17, 2025 00:50
Endomorphism structure of y^2=x^3+3 % 199

Uses Plotly and igraph to render an interactive 3d graph of point operations on a j-invariant 0 elliptic curve defined over p=199 via y^2+x^3+3.

image

from sage.all import random_prime, GF, EllipticCurve, GF, is_prime
import math
ZETA = lambda n,x,p: pow(x, ((p-1)//n), p)
MODSQRT = lambda n, p: pow(n % p, (p + 1) // 4, p)
def cornacchia(d, p):
"""
Standard Cornacchia algorithm for x^2 + d*y^2 = p
"""
assert p % 12 == 7
@HarryR
HarryR / poly1305-rust-output.txt
Last active April 12, 2025 21:09
Poly1305 implementation & test vector print-out in pure Rust
$ ./bin/poly1305.native.exe
2.5.2. Poly1305 Example and Test Vector
For our example, we will dispense with generating the one-time key
using AES, and assume that we got the following keying material:
o Key Material: 85:d6:be:78:57:55:6d:33:7f:44:52:fe:42:d5:06:a8:01:0
3:80:8a:fb:0d:b2:fd:4a:bf:f6:af:41:49:f5:1b
@HarryR
HarryR / Cargo.toml
Last active April 12, 2025 21:08
Alternative to the Oasis `orc` tool
[package]
name = "orc-builder"
version = "0.1.0"
edition = "2021"
[dependencies]
clap = { version = "4.4", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10"
@HarryR
HarryR / pipeline.py
Last active January 9, 2025 16:20
Typesafe task pipeline for Python
import time
from dataclasses import dataclass
from typing import Awaitable, Callable, Generic, Iterable, Literal, Tuple, TypeVar, Union
_TaskInputT = TypeVar('_TaskInputT')
_TaskOutputT = TypeVar('_TaskOutputT')
TaskTypeT = Literal['first', 'intermediate', 'final']
@dataclass
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.0;
import { IERC721 } from '@openzeppelin/contracts/token/ERC721/IERC721.sol';
import { IERC721Receiver } from '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
import { Staking } from './Staking.sol';
import { randomBytes32 } from './Random.sol';
import { Moderation } from './Moderation.sol';
@HarryR
HarryR / transcriptex.rs
Last active December 23, 2024 01:46
Forking Merlin transcripts
use merlin::Transcript;
pub trait TranscriptExt {
// Proposed method to fork a transcript
fn fork_transcript(&mut self) -> Transcript;
// Proposed method to append another transcript
fn append_transcript(&mut self, other: &mut Transcript);
}
@HarryR
HarryR / kanbanflow-monthly-report.py
Last active September 6, 2024 05:51
Monthly reporting for Kanbanflow, produces a Markdown summary of all tasks and the percentage time breakdown daily & across categories
#!/usr/bin/env python3
import os
import re
import sys
import requests
import calendar
from datetime import datetime, timedelta, date
from typing import TypedDict
from collections import defaultdict
@HarryR
HarryR / triangle.html
Created July 28, 2024 18:12
Draws a cool morphing triangle thing
<!DOCTYPE html>
<html>
<head>
<title>Triangle</title>
</head>
<body>
<canvas id="canvas" width=500 height=500></canvas>
<script>