Skip to content

Instantly share code, notes, and snippets.

@radupotop
radupotop / robots.txt
Created December 10, 2023 20:40
Disallow GPTBot in robots.txt
User-agent: *
Disallow: /action
Disallow: /help
Disallow: /search
Allow: /action/showJournal
Allow: /action/showPublications
User-agent: facebookexternalhit
User-agent: LinkedInBot
User-agent: Twitterbot
from dataclasses import dataclass
from typing import Tuple, Type, Dict
VertexType = Type['Vertex']
@dataclass
class Vertex:
name: str
value: int
@radupotop
radupotop / gocryptmount.sh
Created July 21, 2023 11:03
A basic Gocryptfs mount helper.
#!/bin/bash
#
# A basic Gocryptfs mount helper.
MOUNT_NAME=$(realpath "$1")
BASE_NAME=$(basename "$MOUNT_NAME")
MOUNT_DIR="$HOME/mnt/$BASE_NAME"
logger "Mounting $MOUNT_NAME to $MOUNT_DIR"
from Crypto.PublicKey import RSA
from Crypto.Signature.pkcs1_15 import PKCS115_SigScheme
from Crypto.Hash import SHA256
import binascii
# Generate 1024-bit RSA key pair (private + public key)
keyPair = RSA.generate(bits=1024)
pubKey = keyPair.publickey()
# Sign the message using the PKCS#1 v1.5 signature scheme (RSASP1)
# Hello, and welcome to makefile basics.
#
# You will learn why `make` is so great, and why, despite its "weird" syntax,
# it is actually a highly expressive, efficient, and powerful way to build
# programs.
#
# Once you're done here, go to
# http://www.gnu.org/software/make/manual/make.html
# to learn SOOOO much more.
@radupotop
radupotop / atkinson.py
Created May 23, 2023 12:12
Atkinson dithering
#!/usr/bin/python2
import sys, PIL.Image
img = PIL.Image.open(sys.argv[-1]).convert('L')
threshold = 128*[0] + 128*[255]
for y in range(img.size[1]):
for x in range(img.size[0]):
@radupotop
radupotop / openpgp-card-guide.md
Created April 2, 2023 09:59 — forked from ageis/openpgp-card-guide.md
Quick GPG Smartcard Guide
From 4e270c2a67ecc627f87c8f37c6e36df0e67e7515 Mon Sep 17 00:00:00 2001
From: Radu Potop <radu@wooptoo.com>
Date: Thu, 16 Feb 2023 17:28:17 +0000
Subject: [PATCH] update
---
.SRCINFO | 10 +++++-----
PKGBUILD | 13 ++++++-------
2 files changed, 11 insertions(+), 12 deletions(-)
@radupotop
radupotop / sonata.txt
Created February 6, 2023 09:57
sonata
running install_egg_info
Traceback (most recent call last):
File "/home/tail/.cache/yay/sonata-git/src/sonata/setup.py", line 63, in <module>
setup(
File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 108, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
File "/usr/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
@radupotop
radupotop / Reviewing profiles
Last active January 9, 2023 13:57 — forked from mmalone/Reviewing profiles
Replacement Django runserver command that does profiling... because I've rewritten this too many times.
>>> import pstats
>>> p = pstats.Stats('p.1258156459.52174278XcQE.prof')
>>> p.strip_dirs().sort_stats(-1).print_stats(5)
Fri Nov 13 15:54:20 2009 p.1258156459.52174278XcQE.prof
124278 function calls (122386 primitive calls) in 0.589 CPU seconds
Ordered by: standard name
List reduced from 1014 to 5 due to restriction <5>