Skip to content

Instantly share code, notes, and snippets.

@Ivoz
Ivoz / Strategist.php
Last active December 17, 2015 02:59
Phur Strategy without needing custom Interfaces, using reflection
<?php
/**
* @author Rick Wong <[email protected]>
* @contributor Matthew Iversen <[email protected]>
*/
namespace Phur\Strategy;
/**
* The Strategy Pattern. It is used when your application needs to
* pick one business algorithm out of many. The behavior of your
@Ivoz
Ivoz / knuth.py
Last active December 20, 2015 10:09
def up(a, b, n):
"""Calculates a ↑ⁿ b"""
if a == 1:
return 1
elif b == 1:
return a
elif n == 1:
return a**b
else:
return up(a, up(a, b - 1, n), n - 1)
@Ivoz
Ivoz / fixpos.py
Created September 23, 2013 19:15
import os
import sys
from os.path import join
from fabric.api import local
BASE_DIR = os.path.realpath(os.path.dirname(__file__))
BUILD_DIR = join(BASE_DIR, '_build')
SOURCE_DIR = join(BASE_DIR, 'source')
LOCALE_DIR = join(SOURCE_DIR, 'locale',
@Ivoz
Ivoz / calldules.py
Last active October 19, 2020 11:17
import ctypes
# Create a function prototype for a 3-arg function
ternaryfunc = ctypes.CFUNCTYPE(ctypes.py_object, ctypes.py_object,
ctypes.py_object, ctypes.c_void_p)
# Define a new python type that's callable, via a ternaryfunc
class PyTypeObject(ctypes.Structure):
@Ivoz
Ivoz / .gitignore
Last active December 25, 2015 19:29
_site/
bower_components/
.sass_cache/
.ruby-version
@Ivoz
Ivoz / gist:7035239
Last active December 25, 2015 20:29
from __future__ import absolute_import, division, print_function
from cryptography.bindings import _default_api
class BlockCipher(object):
def __init__(self, cipher, mode, api=None):
super(BlockCipher, self).__init__()
if api is None:
@Ivoz
Ivoz / rstlinks.md
Last active January 3, 2016 10:48
How to replicate labelled linking with rst?
@Ivoz
Ivoz / CA.crt
Created February 23, 2014 12:38
A random self-signed cert
-----BEGIN CERTIFICATE-----
MIIC0jCCAboCBQDQKZmkMA0GCSqGSIb3DQEBCwUAMC0xKzApBgNVBAMTIkdlbmVy
aWMgUGlwYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTQwMjIzMTIzNTM1WhcN
MTUwMjIzMTIzNTM1WjAtMSswKQYDVQQDEyJHZW5lcmljIFBpcGEgQ2VydGlmaWNh
dGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2nP8
dYN9P8IFogGy0INayhsafe+LRh3a7Qd6PnyxBZrP3RaRXo+gQ/wswD744cURuSX6
NJgmFt/sgMBclQtnNwkUUXaHzsZIsjQKr3EgUGhepnt7yU6UU0lW2L0yz8n4YLlV
ezSaIH7VMA8YRhgxBJGt/Nv/OnQk4y/tUxQnucKwhB/kax8rMiOuzry8e8FHc3yU
4KZaJYLVF3QJOAIRvicMLe5BybFDue7TaZk9snsFtCBoOnKz4sFgaPdP6hHfTqt7
ZEjHVSoo0tvAmGftfon+kJNtYir9hkXabWS1rVOE2pCui3HRBwMya6+TT9tLhFaJ
@Ivoz
Ivoz / dlp.py
Last active December 25, 2017 01:55
Naive way to solve the Discrete Logarithm Problem
#!/usr/bin/env python
from __future__ import print_function
def find_discrete_log(h, g, p):
H = {}
print('Generating table...')
for x1 in range(0, B):
gx1inv = mod_mul_inv(pow(g, x1, p), p)
H[(h * gx1inv) % p] = x1