Skip to content

Instantly share code, notes, and snippets.

View akx's full-sized avatar
👹
rer

Aarni Koskela akx

👹
rer
View GitHub Profile
$ hyperfine './so73816657-gcc 1 50000000' './so73816657-gcc 2 50000000' './so73816657-clang 1 50000000' './so73816657-clang 2 50000000'
Benchmark 1: ./so73816657-gcc 1 50000000
Time (mean ± σ): 1.703 s ± 0.087 s [User: 1.501 s, System: 0.127 s]
Range (min … max): 1.586 s … 1.861 s 10 runs
Benchmark 2: ./so73816657-gcc 2 50000000
Time (mean ± σ): 1.694 s ± 0.096 s [User: 1.516 s, System: 0.126 s]
Range (min … max): 1.601 s … 1.882 s 10 runs
Benchmark 3: ./so73816657-clang 1 50000000
$ hyperfine --show-output 'python3 so73815479.py' 'python3 so73815479.py multi' --max-runs 5
Benchmark 1: python3 so73815479.py
multi_proc: False, data dur: 2.83, local dur: 2.31
multi_proc: False, data dur: 2.61, local dur: 2.09
multi_proc: False, data dur: 2.74, local dur: 2.22
multi_proc: False, data dur: 2.75, local dur: 2.26
multi_proc: False, data dur: 2.83, local dur: 2.58
Time (mean ± σ): 5.180 s ± 0.256 s [User: 5.875 s, System: 0.196 s]
Range (min … max): 4.852 s … 5.551 s 5 runs
import random
from collections import Counter
py310_encodings = [
'ascii',
'big5',
'big5hkscs',
'cp037',
'cp1006',
'cp1026',
@akx
akx / gist:544fc126eed19139c29b10e0958e2f3d
Created July 27, 2021 16:17
/pacman.d/hooks/bless-node.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = nodejs
[Action]
Description = Blessing Node.js for Bluetooth
When = PostTransaction
Exec = /bin/bash -c '/usr/bin/setcap cap_net_raw+eip $(eval readlink -f `which node`)'
@akx
akx / kontribuutiokuulat.js
Created April 20, 2021 07:41
Kontribuutiokuulat
(function () {
const svg = document.querySelector(".js-calendar-graph-svg");
let filter = svg.querySelector("#qla");
if (!filter) {
filter = document.createElement("filter");
filter.id = "qla";
svg.appendChild(filter);
}
filter.outerHTML = `<filter id="qla" primitiveUnits="objectBoundingBox">
<feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2" result="turbulence"/>
@akx
akx / bruijn.py
Created March 8, 2021 08:59
Valtion salaisten huoltotunneleiden salaiset pääsykoodit vuodettiin hakkeriryhmässä
import itertools
import math
import multiprocessing
import random
import tqdm
# Via Wikipedia
def de_bruijn(alphabet, n: int) -> str:
"""de Bruijn sequence for alphabet k
@akx
akx / pdf-portfolio.js
Created October 13, 2020 11:14
mupdf extract portfolio
// List and extract embedded files in a PDF document.
// extended from the example script
function usage() {
print("usage: mutool run pdf-portfolio.js input.pdf ['all' | index filename]");
print(
" List embedded files, or extract an embedded file from a PDF document.",
);
quit();
}
@akx
akx / 63885319.c
Created September 14, 2020 14:22
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
static uint64_t usecdiff(struct timeval *a, struct timeval *b) {
uint64_t sec_diff = b->tv_sec - a->tv_sec;
uint64_t usec_diff = b->tv_usec - a->tv_usec;
return sec_diff * 1000000 + usec_diff;
}
def make_immutable(v):
"""
Return an immutable representation of a mutable container.
The representation is only meant for machine use.
"""
if isinstance(v, (list, tuple)):
return (type(v), tuple(make_immutable(i) for i in v))
if isinstance(v, (set, frozenset)):
return (type(v), frozenset(make_immutable(i) for i in v))
if isinstance(v, dict):
@akx
akx / aggremagic.ts
Last active September 3, 2020 15:55
interface InitialGroup<K, T> {
key: K;
keyString: string;
items: T[];
}
export interface HierarchicalGroup<K, T, A> extends InitialGroup<K, T> {
id: string;
level: number;
parent?: HierarchicalGroup<K, T, A>;