Skip to content

Instantly share code, notes, and snippets.

View akx's full-sized avatar
👹
rer

Aarni Koskela akx

👹
rer
View GitHub Profile
@akx
akx / gist:7511db747076a88e1a641a053d2ba98e
Last active January 14, 2022 17:29
Meikät, ihan kaikki!
meikämaa
meikämaadoitus
meikämaagi
meikämaagikko
meikämaaginen
meikämaagisuus
meikämaahanpaniaiset
meikämaahantunkeutuminen
meikämaaherratar
meikämaahikas
@akx
akx / gist:0a9dfdd68db5a649c6344540fe344c05
Last active August 3, 2020 07:33
Meikät yhdyssanoineen
meikämaa
meikämaagi
meikämaagikko
meikämaahanhyökkäys
meikämaahanlasku
meikämaahanlyönti
meikämaahanmeno
meikämaahanmuuttaja
meikämaahanmuutto
meikämaahanpaniainen
Meikämaa
Meikämaagi
Meikämaagikko
Meikämaahinen
Meikämaalainen
Meikämaalari
Meikämaali
Meikämaallikko
Meikämaanantai
Meikämaanikko
import orjson
from rest_framework.utils import encoders
from rest_framework import renderers
json_default_encode = encoders.JSONEncoder().default
class ORJSONRenderer(renderers.JSONRenderer):
def render(self, data, accepted_media_type=None, renderer_context=None):
if data is None:
@akx
akx / gist:f10d4d7ac15372105b05d375a381ae88
Last active May 10, 2020 11:57
Rename MP4 files based on embedded creation time tag
import os
import datetime
import glob
import subprocess
import json
def get_creation_time(f):
rinfo = subprocess.check_output('ffprobe -print_format json -hide_banner -show_format -i "%s"' % f, shell=True, stderr=subprocess.DEVNULL)
info = json.loads(rinfo.decode())
ctime = info['format']['tags']['creation_time']
@akx
akx / Instructions.md
Last active March 6, 2020 14:56
Super simple flask thing

Developing/debugging a Flask app

  • Set up a virtualenv
  • pip install flask
  • add calc_server.py
  • debug/run with python calc_server.py (autoreloading, debugging, etc.)
  • Access e.g. http://localhost:9999/calculate/9652/343

Running in production in an EC2 box

ffmpeg \
-video_size 1200x400 \
-framerate 30 \
-f x11grab \
-i :0.0+0,0 \
-pix_fmt yuv420p \
-filter_complex "
color=size=800x800:c=black [base];
[0:v] setpts=PTS-STARTPTS, crop=w=800:h=400:x=0:y=0 [row1];
[0:v] setpts=PTS-STARTPTS, crop=w=400:h=400:x=800:y=0 [row2];
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
static long long ts_usecs(struct timespec t) {
return (t.tv_sec * 1000000000 + t.tv_nsec);
}
int main() {
struct timespec t0, t1;
// h/t @japsu for the idea. had to type it.
import React from "react";
function connect<C, P>(
ContextClass: React.Context<C>,
propName: keyof P,
): ((
component: React.FunctionComponent<P> | React.ComponentClass<P>,
) => React.FunctionComponent<P>) {
@akx
akx / c2j.py
Created January 14, 2019 12:19
c2j -- dsl for generating json
#!/usr/bin/env python3
import json
import sys
class c2j:
def __init__(self):
self.stack = []
self.root = None