Skip to content

Instantly share code, notes, and snippets.

jaseg jaseg

Block or report user

Report or block jaseg

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jaseg
jaseg / mpv_render_context_gtk_example.py
Last active Jan 7, 2020
Basic test of python-mpv mpv render context mapping used with GTK
View mpv_render_context_gtk_example.py
#!/usr/bin/env python3
import ctypes
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GLib
gi.require_version('GL', '1.0')
from OpenGL import GL, GLX
View flashcard_chinese_import.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
pinyinToneMarks = {
u'a': u'āáǎà', u'e': u'ēéěè', u'i': u'īíǐì',
u'o': u'ōóǒò', u'u': u'ūúǔù', u'ü': u'ǖǘǚǜ',
u'A': u'ĀÁǍÀ', u'E': u'ĒÉĚÈ', u'I': u'ĪÍǏÌ',
u'O': u'ŌÓǑÒ', u'U': u'ŪÚǓÙ', u'Ü': u'ǕǗǙǛ'
}
@jaseg
jaseg / mailboxorg_to_fritzbox.py
Last active Dec 25, 2016
Convert mailbox.org/openXchange contact exports to Fritzbox Phonebook backup files
View mailboxorg_to_fritzbox.py
#!/usr/bin/env python3
# coding: utf-8
import csv
import argparse
avm_xml_template = '''<?xml version="1.0" encoding="utf-8"?>
<phonebooks>
<phonebook>
{entries}
View cd.fish
# Modified cd that also displays the directory's contents if the listing is less than 5 lines long
function cd
if test -n "$argv"
if test -e $argv -a ! -d (realpath $argv)
set argv (dirname $argv)
end
end
builtin cd $argv
and test (ls -C -w $COLUMNS |wc -l) -le 5; and ls
end
View tabular_deltastore.py
import struct
def deltaify(list_of_tuples):
return list_of_tuples[0], [ tuple( b-a for a,b in zip(tup1, tup2) ) for tup1, tup2 in zip(list_of_tuples[:-1], list_of_tuples[1:]) ]
smallest_format = lambda num: 'b' if num < 2**7 else 'h' if num < 2**15 else 'i' if num < 2**31 else 'q'
make_format = lambda es: ''.join(smallest_format(e) for e in es)
def pack(list_of_tuples):
offx, deltas = deltaify(list_of_tuples)
View blobstore_sqlite.py
import sqlite3
import itertools
import lzma
import threading
import functools
class Stringstore:
def __init__(self, dbfile, max_block_size=262144):
self.db = sqlite3.connect(dbfile)
@jaseg
jaseg / blobstore.py
Last active Jan 9, 2016
little python experiment
View blobstore.py
import pathlib
import itertools
import lzma
import threading
import functools
class Blobstore:
def __init__(self, path, create_if_missing=False, validate=True, blobid_len=4):
p = self._path_obj = pathlib.Path(path)
self._blobid_len, self._fmt_blobid = blobid_len, lambda blobid: ('{:0'+str(self._blobid_len)+'x}').format(blobid)
@jaseg
jaseg / ruby-test.py
Created Jan 5, 2016
Fooling around with furigana on a terminal.
View ruby-test.py
#!/usr/bin/env python3
import unicodedata, textwrap
print('\033[38;5;250m ニホンゴ\n\033[0m日本語', end='\n\n')
# I could not find any terminal actually rendering this. urxvt just ignores the escapes, which is kind of sane. gnome terminal et al. print it literally, replacing the \e with a replacement character which looks garbage.
print('foo\033[1\\bar\033[2\\baz\033[0\\fnord', end='\n\n')
FW_TO_HW_MAP = {
@jaseg
jaseg / article-style.css
Last active Nov 20, 2015
Goldendict style sheet for use with JMdict/EPWing dictionaries
View article-style.css
body
{
/* font-family: Sazanami Mincho; */
font-family: Source Han Sans JP;
font-weight: 100;
font-size: 16px;
}
h3
{
View gist:e1ff57a92b8bb18e6976
# Modified cd that also displays the directory's contents if the listing is less than 5 lines long
function cd
if test -n "$argv"
if test -e $argv -a ! -d (realpath $argv)
set argv (dirname $argv)
end
end
builtin cd $argv
and test (ls -C -w $COLUMNS |wc -l) -le 5; and ls
end
You can’t perform that action at this time.