Skip to content

Instantly share code, notes, and snippets.


Bertrand Bordage BertrandBordage

View GitHub Profile
BertrandBordage /
Last active Feb 15, 2022
Lempel-Ziv-Welch algorithm in Python
from math import floor, ceil
from typing import AnyStr
ASCII_TO_INT: dict = {i.to_bytes(1, 'big'): i for i in range(256)}
INT_TO_ASCII: dict = {i: b for b, i in ASCII_TO_INT.items()}
def compress(data: AnyStr) -> bytes:
if isinstance(data, str):
View PostgreSQL autocomplete.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#!/usr/bin/env python
from argparse import ArgumentParser
from io import BytesIO
import re
from xml.etree import ElementTree
NAMESPACED_RE = re.compile(r'^\{(.+)\}.+$')
View home-made-wysiwyg-editor.html
<!DOCTYPE html>
<meta charset="utf-8" />
<style type="text/less">
body {
margin: 30px;
font-family: Helvetica, sans-serif;
.wysiwyg {
BertrandBordage /
Last active Feb 20, 2022
Automatically reply to unread and unanswered messages in Python
Automatically replies to mails both unread and unanswered.
WARNING: This answers to any both unread and unanswered mail, even if it is years old.
Dont use on a mailbox with old messages left unread and unanswered.
Simply subclass ``AutoReplyer``, define the undefined class attribute,
and call the ``run`` method on an instance. This loops until you stop the script
(using Ctrl+C, typically) or until an error occurs, like a network failure.
#!/usr/bin/env python3
import json
from math import ceil
import re
from subprocess import check_output
import sys
from urllib.parse import unquote
from urllib.request import urlopen
BertrandBordage /
Created Oct 25, 2015
Django LocMem cache backend without pickle
"Thread-safe in-memory cache backend."
import time
from contextlib import contextmanager
from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache
from django.utils.synch import RWLock
# Global in-memory store of cache data. Keyed by name, to provide
BertrandBordage /
Last active Sep 22, 2016
Converts most videos to the same quality HTML5-compatible MP4+OGV
# coding: utf-8
Converts videos inside the current directory to two complementary
HTML5 video formats while keeping the same quality.
The converted videos are placed in a subfolder.
You need avconv to be installed with some codecs
(packages libav-tools & libavcodecs-extra under Ubuntu)
View Linux mag 179 optimisation Python.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BertrandBordage / Dockerfile
Created Jan 30, 2015
Wagtail demo Dockerfile
View Dockerfile
# Build this docker image using: docker build -t wagtail-demo [path_to_the_folder_containing_this_file]
# Run it using: docker run -p 8000:8000 wagtail-demo
FROM ubuntu:14.10
MAINTAINER Bertrand Bordage,
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install postgresql postgresql-server-dev-9.4 build-essential \