Skip to content

Instantly share code, notes, and snippets.

View onjin's full-sized avatar

Marek Wywiał onjin

View GitHub Profile
@onjin
onjin / supervised_workers.py
Created April 2, 2024 11:47
supervised async python workers
import asyncio
import argparse
import random
from typing import Any
async def worker(name: str, queue: asyncio.Queue[str], stop_event: asyncio.Event):
while not stop_event.is_set() or not queue.empty():
try:
# Try to get an item from the queue without indefinitely blocking
try:
@onjin
onjin / creator_producers_consumers_async.py
Created March 15, 2024 08:17
example creator/producers/consumers async patter - reusable
import asyncio
import httpx
from typing import Callable, List, Any
from rich.console import Console
console = Console()
async def producer(
@onjin
onjin / changelog.py
Last active October 25, 2023 09:57
changelog.md generate from conventional commits git log
#!/usr/bin/env python
# NOTE: use newer & fixed version as package: https://pypi.org/project/mkchangelog/
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import argparse
import json
import logging
import os
import re
@onjin
onjin / errors.txt
Created July 31, 2023 13:04 — forked from benjaminoakes/errors.txt
BeOS (NetPositive) haiku error messages
Not a pretty sight
When the web dies screaming loud
The site is not found.
Morning and sorrow
404 not with us now
Lost to paradise.
@onjin
onjin / set_wallpaper.sh
Last active July 27, 2023 11:20
set wallpaper by url | directory | file, using hyprpaper | feh | betterlockcreen | print - random or last used
#!/bin/bash
## ---------------------------------------------------------------------------------- ##
## Sets random image as wallpaper, trying remote url, local folder and fallback ##
## image. Then using executor like hyprpaper, feh, betterlockscreen or just prints ##
## found image to the output. ##
## ---------------------------------------------------------------------------------- ##
## https://gist.github.com/onjin/411d7f9c6ebcaf66aa75abe6941bea55
## ---------------------------------------------------------------------------------- ##
## Example usage
@onjin
onjin / obsidian-web-clipper.js
Last active April 20, 2023 21:22 — forked from kepano/obsidian-web-clipper.js
Obsidian Web Clipper Bookmarklet to save articles and pages from the web (for Safari, Chrome, Firefox, and mobile browsers)
javascript: Promise.all([import('https://unpkg.com/turndown@6.0.0?module'), import('https://unpkg.com/@tehshrike/readability@0.2.0'), ]).then(async ([{
default: Turndown
}, {
default: Readability
}]) => {
/* Optional vault name */
const vault = "";
/* Optional folder name such as "Clippings/" */
@onjin
onjin / advent.py
Last active December 3, 2022 23:07
advent of code executor
#!/usr/bin/env python
"""
Example layout
2022/01/input_test.txt
2022/01/input_prod.txt
2022/01/code.py
Example code.py:
def phase_1(input: List[str]) -> Any:
# lines have '\n' at end
@onjin
onjin / python_typed_decorator.py
Created July 13, 2022 12:09
Python typed decorator
RT = TypeVar('RT') # return type
def inject_user() -> Callable[[Callable[..., RT]], Callable[..., RT]]:
def decorator(func: Callable[..., RT]) -> Callable[..., RT]:
def wrapper(*args, **kwargs) -> RT:
# ...
@onjin
onjin / create-k3d-cluster-with-registry.sh
Created October 30, 2021 14:14
create k3d/k3s cluster with registry
k3d registry create myregistry.localhost --port 5555
k3d cluster create local --registry-use k3d-myregistry.localhost:5555
@onjin
onjin / update-nvim.sh
Created September 10, 2021 07:24
update nvim nightly bash script
update-nvim () {
target=${1:-nightly}
tmp_bin=/tmp/nvim.appimage.${target}
previous=$(nvim --version|grep '^NVIM')
url="https://github.com/neovim/neovim/releases/download/${target}/nvim.appimage"
echo "[update-nvim] target version ${target}"
echo "[update-nvim] current version ${previous}"
echo "[update-nvim] downloading file ${url}"
curl --output ${tmp_bin} --silent -L ${url}
file_type=$(file ${tmp_bin})