Skip to content

Instantly share code, notes, and snippets.

View Snawoot's full-sized avatar
🎯
Looking for a job

Vladislav Yarmak Snawoot

🎯
Looking for a job
View GitHub Profile
body { margin 0 1em; } @media screen and (min-width: 42em) { body { margin: auto; max-width: 40em; } }
@Snawoot
Snawoot / cache.js
Last active December 11, 2025 19:07
simple JS (ES5) cache
function Cache(n, f) {
if (!new.target) {
return new Cache(n, f);
}
n = n >= 2 ? n : 2;
var kv = Object.create(null);
var ki = Object.create(null);
var ik = Object.create(null);
var size = 0;
#!/bin/bash -x
INTERFACE="$1"
DEVICE="$2"
SPEED="$3"
LOCALIP="$4"
REMOTEIP="$5"
IPPARAM="$6"
if [[ "$IPPARAM" != "vpn" ]] ; then

In our discussion yesterday, @bradfitz asked if weak pointers made it possible to maintain a map of expensive derived information about something without preventing the GC of that something. Here is a worked example of how weak pointer enables that:

var cache struct {
    mu sync.Mutex
    m map[weak.Pointer[Foo]]*derived
}

func init() {
    cache.m = make(map[weak.Pointer[Foo]]*derived)

From LinuxBender @ HN

Create /etc/modprobe.d/nf_conntrack.conf:

options nf_conntrack expect_hashsize=256400 hashsize=256400

And then in /etc/sysctl.conf:

#!/bin/sh
set -e
require() {
if ! command -v "$1" > /dev/null 2>/dev/null ; then
>&2 echo "$1 utility not found!"
exit 1
fi
}
@Snawoot
Snawoot / haproxy.cfg
Last active December 3, 2024 18:22
dumbproxy HMAC auth on HAProxy 3.0+
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
@Snawoot
Snawoot / rsaopt.py
Created October 1, 2024 18:14
Utility which optimizes secret exponent of RSA key for faster power calculation
#!/usr/bin/env python
import sys
from Crypto.PublicKey import RSA
from fractions import gcd
if __name__ == '__main__':
if len(sys.argv) != 2:
print >> sys.stderr, "Usage: %s <RSA privatekey file>" % sys.argv[0]
exit(2)
@Snawoot
Snawoot / openvswitch-ipsec.service
Last active February 14, 2026 18:26
Fixes for openvswitch-ipsec to make it work on recent Ubuntu
# /lib/systemd/system/openvswitch-ipsec.service
[Unit]
Description=Open vSwitch IPsec daemon
Requires=openvswitch-switch.service
After=openvswitch-switch.service
[Service]
Type=forking
PIDFile=/run/openvswitch/ovs-monitor-ipsec.pid
ExecStart=/usr/share/openvswitch/scripts/ovs-ctl \

Сегодня 12 августа 2023 года

Метод, описанный в данной статье, создан для борьбы с китайским файерволом, который, начиная с 2019 года, учился блокировать зашифрованный трафик (протокол Shadowsocks) на основе анализа длины первого пакета соединения и энтропию его полезной нагрузки. Более подробно про этот метод блокировки описан в статье Роскомсвободы: https://roskomsvoboda.org/post/chinese-firewall/.

Метод XTLS-Reality отличается от других методов обхода блокировки тем, что определение свой/чужой сервером Xray происходит на этапе так называемого TLS-рукопожатия, когда клиент и сервер обмениваются сообщениями ClientHello. Подробнее про TLS-рукопожатия написано здесь: https://tproger.ru/articles/tls-handshake-explained/. Так вот, когда цензор стучится в этот сервер и пытается методом active probing проверить сервер, последний отправляет цензора на совершенно реальный и безобидный сайт, поддерживающий TLS1.3, и цензол получает настоящие данные этого сайта.

Данный гайд написан новичком для новичков. Я в гайде