Skip to content

Instantly share code, notes, and snippets.

View agrif's full-sized avatar

agrif agrif

View GitHub Profile
{
"version": 1,
"uniqueId": 3395510822,
"songName": "RYTHM_OF_THE_NIGHT",
"performedBy": [],
"writtenBy": [],
"seed": 1147525942,
"tempo": 128.19999694824219,
"customTempoSections": [],
"beatOffset": 502,
import struct
import random
# Another day, another hash implementation. I should have been a carpenter.
# If you're reading this, you're probably looking for a bug. Good luck.
class SHA1:
"""
A SHA-1 implementation. It's not secure. It's not fast.
It just exists. Like everything else in this industry.
use embassy_sync::pubsub::PubSubBehavior;
use super::music::{music, Music};
// jingles adapted from
// https://github.com/DavinderHanda/HandaDigitalSpeaker/
#[derive(Clone, Copy, Debug, defmt::Format)]
#[allow(dead_code)]
pub enum Jingle {
#[embassy_executor::task]
pub async fn ui_task() -> ! {
let mut temperature = defmt::unwrap!(RateLimit::new(&TEMPERATURE, TEMP_RATE));
let intro = Text::from_str("Hello").scroll();
let duration = intro.scroll_duration();
TEXT.signal(intro);
Timer::after(duration).await;
loop {
<script lang="ts">
interface Props {
digits: number[],
}
let { digits }: Props = $props();
// in bitfield order, LSB to MSB
const segments = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'dp'];
// in render order, line by line, as [class, name]
@agrif
agrif / main.rs
Last active January 30, 2026 19:28
#![no_main]
#![no_std]
use core::fmt::Write;
use panic_halt as _;
use rk3506_m0_pac as pac;
struct Buffer<const N: usize>([u8; N], usize);
Upgrades started January 24, 2026.
[x] babel
[x] bifrost
[x] cartas
[x] erasmus
[ ] hyperion
[x] nara
[ ] zagreus
from __future__ import annotations
import dataclasses
import pathlib
import typing
import libfdt # type: ignore
class DeviceTree:
@agrif
agrif / 00-main.rs
Last active September 19, 2025 14:07
#![no_std]
#![no_main]
use rtt_target::rprintln;
extern crate panic_halt;
#[riscv_rt::entry]
fn main() -> ! {
rtt_target::rtt_init_print!();
@agrif
agrif / main.c
Last active September 15, 2025 17:15
void main(void) {
//uart->divisor = 234;
*leds = 0x0;
#define SLOTS 6
uint8_t times[SLOTS] = {0};
uint8_t subtime = 0;
while (true) {
*leds = 0;