Skip to content

Instantly share code, notes, and snippets.

View schlamar's full-sized avatar

Marc Schlaich schlamar

View GitHub Profile
@schlamar
schlamar / processify.py
Last active April 17, 2024 19:19
processify
import os
import sys
import traceback
from functools import wraps
from multiprocessing import Process, Queue
def processify(func):
'''Decorator to run a function as a process.
Be sure that every argument and the return value
@schlamar
schlamar / main.rs
Created January 14, 2023 11:44
SQLite time-series test with Rust
use std::fs;
use std::time::Instant;
use rand::Rng;
use rusqlite::{Connection, Result};
fn insert_data(conn: &mut Connection) -> Result<()> {
let mut rng = rand::thread_rng();
let mut t: u64 = 1600000000;
let num_entries = 1000 * 1000;
@schlamar
schlamar / wallabag_to_linkding.py
Created January 1, 2023 19:53
Import Wallabag JSON to linkding
import json
import requests
def transform_data(data: dict) -> dict:
return {
"url": data["url"],
"tag_names": data["tags"],
"unread": bool(data["is_archived"]),
@schlamar
schlamar / imp_wallabag.py
Created January 1, 2023 15:39
Import Wallabag to Shiori
import json
import subprocess
def main():
with open("wallabag-all.json") as fobj:
data = json.load(fobj)
for entry in reversed(data):
cmd = ["docker", "compose", "exec", "shiori", "shiori", "add", "-a",
entry["url"], "-i", entry["title"]]
if entry["tags"]:
@schlamar
schlamar / gist:7024668
Created October 17, 2013 13:14
Handle Windows privileges from Python. Based on http://stackoverflow.com/a/2129589/851737
from __future__ import print_function
import ctypes
from ctypes import wintypes
GetCurrentProcess = ctypes.windll.kernel32.GetCurrentProcess
GetCurrentProcess.restype = wintypes.HANDLE
OpenProcessToken = ctypes.windll.advapi32.OpenProcessToken
OpenProcessToken.argtypes = (wintypes.HANDLE, wintypes.DWORD, ctypes.POINTER(wintypes.HANDLE))
OpenProcessToken.restype = wintypes.BOOL
@schlamar
schlamar / example.py
Last active February 13, 2022 18:15
mplog: Python advanced multiprocessing logging.
import logging
import multiprocessing
import time
import mplog
FORMAT = '%(asctime)s - %(processName)s - %(levelname)s - %(message)s'
logging.basicConfig(level=logging.DEBUG, format=FORMAT)
existing_logger = logging.getLogger('x')
import ctypes
from ctypes import POINTER
from ctypes.wintypes import HANDLE, LPVOID, WORD, DWORD, BOOL
LPSTR = ctypes.c_char_p
LPBYTE = LPSTR
LPHANDLE = POINTER(HANDLE)
LPDWORD = POINTER(DWORD)
@schlamar
schlamar / gist:5373110
Created April 12, 2013 16:05
Another serialization benchmark, OSX Python 2.7.3
import cPickle
import json
import ujson
import msgpack
d = {
'words': """
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Mauris adipiscing adipiscing placerat.
Vestibulum augue augue,
@schlamar
schlamar / gist:4149031
Created November 26, 2012 16:11
pygtk + pyglet
#!/usr/bin/python
import sys
import time
import math
import gtk
import gobject
import pyglet
import pyglet.gl as gl
@schlamar
schlamar / ssdp.py
Created April 20, 2012 12:45
Simple Python SSDP discovery
import socket
import struct
import sys
from httplib import HTTPResponse
from BaseHTTPServer import BaseHTTPRequestHandler
from StringIO import StringIO
import gtk
import gobject