Skip to content

Instantly share code, notes, and snippets.

class Symbol:
__registry = {}
__lock = Lock()
__slots__ = ('name',)
def __new__(cls, name):
instance = cls.__registry.get(name)
if not instance:
with cls.__lock:
# A classical double-checked lock pattern.
@QuantumGhost
QuantumGhost / ssh_config
Last active August 6, 2017 13:34
Hardened ssh
# Github already dropped support for diffie-hellman-group1-sha1 and diffie-hellman-group14-sha1
# FYI: https://githubengineering.com/crypto-deprecation-notice/
# Host github.com
# KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
Host *
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
PasswordAuthentication no # comment this if you need password authentication (for example ssh into a VM)
ChallengeResponseAuthentication no
PubkeyAuthentication yes
template <typename Left, typename Right>
struct ConcatExpr;
template <typename Left, typename Right>
struct AltExpr;
template <typename SubExpr>
struct RepeatExpr;
template <char ch>
@QuantumGhost
QuantumGhost / how-clowwindy-design-Shadowsocks.md
Created March 12, 2017 14:24
clowwindy设计Shadowsocks的思路分析以及设计理念

clowwindy设计Shadowsocks的思路分析以及设计理念

鄙人不才,尝试站在原作者clowwindy的角度,来分析一下原版协议的设计思路和理念。 没参与过最初开发,不过设计了AEAD这个协议。读了一些资料,评论。

7:58 PM, 31 Aug 2015 作者发了这么一段话,我很好奇其中的指代内容,遂有本文。

眼睁睁看着一群人把一个东西搞错然后朝着错误的方向走了。不过懒得管了 =。=

@QuantumGhost
QuantumGhost / ss-redir 透明代理.md
Created January 23, 2017 06:43 — forked from wen-long/ss-redir 透明代理.md
ss-redir 透明代理.md

##ss-redir 的 iptables 配置(透明代理)

透明代理指对客户端透明,客户端不需要进行任何设置就使用了网管设置的代理规则

创建 /etc/ss-redir.json 本地监听 7777 运行ss-redir -v -c /etc/ss-redir.json

iptables -t nat -N SHADOWSOCKS
# 在 nat 表中创建新链
iptables -t nat -A SHADOWSOCKS -p tcp --dport 23596 -j RETURN
# 23596 是 ss 代理服务器的端口,即远程 shadowsocks 服务器提供服务的端口,如果你有多个 ip 可用,但端口一致,就设置这个
@QuantumGhost
QuantumGhost / preprocessor_fun.h
Created December 9, 2016 10:27 — forked from aras-p/preprocessor_fun.h
Things to commit just before leaving your job
// Just before switching jobs:
// Add one of these.
// Preferably into the same commit where you do a large merge.
//
// This started as a tweet with a joke of "C++ pro-tip: #define private public",
// and then it quickly escalated into more and more evil suggestions.
// I've tried to capture interesting suggestions here.
//
// Contributors: @r2d2rigo, @joeldevahl, @msinilo, @_Humus_,
// @YuriyODonnell, @rygorous, @cmuratori, @mike_acton, @grumpygiant,
@QuantumGhost
QuantumGhost / vm-resize-hard-disk.md
Created December 5, 2016 05:45 — forked from christopher-hopper/vm-resize-hard-disk.md
Resize a Hard Disk for a Virtual Machine provisioned using Vagrant from a Linux base box to run using VirutalBox.

Resize a Hard Disk for a Virtual Machine

Our Virtual Machines are provisioned using Vagrant from a Linux base box to run using VirutalBox. If the Hard Disk space runs out and you cannot remove files to free-up space, you can resize the Hard Disk using some VirtualBox and Linux commands.

Some assumptions

The following steps assume you've got a set-up like mine, where:

@QuantumGhost
QuantumGhost / README.md
Created September 9, 2016 05:26 — forked from pathikrit/README.md
My highly opinionated list of things needed to build an app in Scala
@QuantumGhost
QuantumGhost / profile.py
Last active February 6, 2017 03:22
A simple decorator for profiling python function.
import cProfile
import functools
import pstats
from cStringIO import StringIO
def profile(func):
@functools.wraps(func)
def wrapped(*args, **kwargs):
@QuantumGhost
QuantumGhost / example.puml
Last active March 23, 2024 22:39
A simple template for PlantUML to draw ER diagram.The basic idea comes from http://plantuml.sourceforge.net/qa/?qa=331/database-modeling
@startuml
' uncomment the line below if you're using computer with a retina display
' skinparam dpi 300
!define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
' we use bold for primary key
' green color for unique
' and underscore for not_null
!define primary_key(x) <b>x</b>
!define unique(x) <color:green>x</color>
!define not_null(x) <u>x</u>