Skip to content

Instantly share code, notes, and snippets.

@daniel-j
daniel-j / closure.nim
Last active February 28, 2024 21:20
Nim closure wrapping C with generics
# does not leak with --mm:arc :)
# nim c -d:release -d:useMalloc --debugger:native --mm:arc --threads:off closure && valgrind --leak-check=full ./closure
{.emit: """
typedef void(* c_callback) (int param, void *arg);
struct cState {
int param;
@daniel-j
daniel-j / visualizer.ino
Last active March 12, 2021 21:45
Ardunio FFT audio visualizer, using a python script running on host | https://www.youtube.com/watch?v=k5hBVO-IvFo
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 3
#define LEDS 16
#define PACKET_SZ ( (LEDS * 3) + 3 )
@daniel-j
daniel-j / main.nim
Last active September 15, 2022 11:42
super simple nim video player with libmpv. requires nimterop for now
from mpvclient as mpv import nil
proc mpv_check_error(status: cint) =
if status < 0:
echo "mpv API error: ", mpv.mpv_error_string(status)
quit(1)
proc main: int =
result = 1
@daniel-j
daniel-j / -README.md
Last active September 9, 2020 04:34
Fallout 3 GOTY script for Protonfixes

Fallout 3 Game of the Year Edition script for Protonfixes

This is ONLY for the Game of the Year Edition! Regular Fallout 3 edition is not supported/tested.

How to install

If you already have a working setup of Fallout 3 GOTY, I do not recommend using this script as it may break your current mods etc.

Before using this script, MAKE A BACKUP of your saves in steamapps/compatdata/22370/pfx/drive_c/users/steamuser/My Documents/My Games/Fallout3/Saves. Then delete the directory steamapps/compatdata/22370 and/or reinstall the game in Steam.

@daniel-j
daniel-j / hdmvpgs.js
Last active February 8, 2024 09:27
HDMV/PGS subtitle Javascript parser
'use strict'
function HDMVPGS (ctx) {
this.ctx = ctx || document.createElement('canvas').getContext('2d')
this.lastVisibleSegment = null
this.segments = []
this.loaded = false
}
HDMVPGS.prototype.loadBuffer = function (arraybuffer) {
@daniel-j
daniel-j / launch.bat
Last active June 22, 2018 18:51
Fallout New Vegas Menu
@ECHO OFF
start "Fallout New Vegas Menu" cmd /c launch_menu.bat
@daniel-j
daniel-j / launch.bat
Last active June 21, 2018 07:19
Fallout 3 Menu
@ECHO OFF
start "Fallout 3 Menu" cmd /c launch_menu.bat
@daniel-j
daniel-j / gpd-powerinfo.py
Created May 4, 2018 08:10
Script to read the battery drain/charge rate of the GPD Pocket, outputs wattage. Negative is draining, positive is charging.
#!/usr/bin/python3
dir='/sys/class/power_supply/max170xx_battery/'
with open(dir + 'current_avg', 'r') as f:
current = int(f.read()) / 1000000.0
with open(dir + 'voltage_avg', 'r') as f:
voltage = int(f.read()) / 1000000.0
wattage = voltage * current
# print('{0:.2f}V {1:.2f}A {2:.2f}W'.format(voltage, current, wattage))
@daniel-j
daniel-j / README.md
Last active February 21, 2024 06:48
Converts images in a directory to a comic/manga EPUB3 ebook. Can be used to convert extracted CBZ/CBR to EPUB3.

images2epub.py

Converts a directory of images into a modern EPUB3 ebook. Use a tool to extract CBZ/CBR/CBT files and then run this program to generate a nice fixed-layout EPUB ebook of it. You can optionally set the reading direction to right-to-left (e.g. for manga). For Kobo ereaders, use the file extension .kepub.epub to get the modern reader and correct reading direction.

Usage

Install dependencies with pip install imagesize lxml

@daniel-j
daniel-j / obs-visualizer.html
Last active March 14, 2021 19:09
OBS-Studio Audio Visualizer. Add --enable-media-stream to Linux Browser command line arguments.
<!DOCTYPE html>
<html>
<head>
<title>Visualizer</title>
<style type="text/css">
html, body {
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;