Skip to content

Instantly share code, notes, and snippets.

View notpushkin's full-sized avatar
🕊️

Alexander Pushkov notpushkin

🕊️
View GitHub Profile
/* ==UserStyle==
@name Clean style for Ozon homepage
@namespace ozon-sanity@ale.sh
@version 1.1.1
@author Alexander Pushkov (hey@ale.sh)
==/UserStyle== */
@-moz-document url("https://www.ozon.ru/") {
.container,
[data-widget="paginator"] {
@notpushkin
notpushkin / oathtool.py
Last active April 15, 2025 09:37
Minimal oathtool(1) reimplementation in Python
#!/usr/bin/env python3
# (c) 2025 Alexander Pushkov <pyoathtool@ale.sh>
# Based on https://github.com/susam/mintotp, copyright (c) 2019 Susam Pal
# SPDX-License-Identifier: MIT
import argparse
import base64
import hmac
import struct
import time
@notpushkin
notpushkin / README.md
Last active March 25, 2025 06:44
dman on macOS – read man pages from manpages.debian.org

dman is now compatible with macOS/FreeBSD. Huge thanks to @stokito for helping upstream this patch!

curl https://salsa.debian.org/debian/debian-goodies/-/raw/master/dman?ref_type=heads > ~/.local/bin/dman
@notpushkin
notpushkin / rm-with-unordered-flags.sh
Created March 4, 2025 06:15
A shell function that wraps rm and re-orders flags in a way compatible with BSD platforms.
# SPDX-License-Identifier: Unlicense
rm() {
local flags=()
local args=()
for arg in "$@"; do
if [[ $arg == -* ]]; then
flags+=("$arg")
else
services:
app:
image: docuseal/docuseal:latest
networks: [default, traefik-public]
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.${PROJECT_NAME?}-http.rule=Host(`${DOMAIN?}`)
@notpushkin
notpushkin / msgspec_recurse.py
Last active September 2, 2024 23:57
Recursive conversion for msgspec
from typing import Any, Final
import msgspec
from msgspec import inspect
class _RecurseMarker:
def __repr__(self):
return "RECURSE"
{
"meta": {
"theme": "professional"
},
"basics": {
"name": "Alexander Pushkov",
"label": "Full-Stack Developer",
"summary": "I’m a versatile full-stack developer with a diverse background in various industries. I prioritize intuitive interfaces and thoughtful interactions in my development process and strive to ship software that users will love.",
"email": "alexander@notpushk.in",
"location": {
[user]
# name = Alexander Pushkov
# email = alexander@notpushk.in
[alias]
st = status
last = log -1 HEAD
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
lgd = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset'
swagger: '2.0'
info:
title: Authzed
version: '1.0'
contact:
name: Authzed, Inc.
url: https://github.com/authzed/api
email: support@authzed.com
license:
name: Apache 2.0 License
/* ==UserStyle==
@name WaniKani spacier reviews
@namespace wanikani-spacier-reviews@ale.sh
@version 1.0.0
@author Alexander Pushkov (hey@ale.sh)
==/UserStyle== */
@-moz-document domain("wanikani.com") {
:root {
--color-quiz-srs-correct-background: var(--color-quiz-correct-background);