Skip to content

Instantly share code, notes, and snippets.

Avatar

Paweł Krawczyk kravietz

View GitHub Profile
View gist:ca8083869942db55f727
Verifying myself: My Bitcoin username is +kravietz. https://onename.io/kravietz
@kravietz
kravietz / keybase.md
Created Sep 18, 2014
Keybase verification
View keybase.md

Keybase proof

I hereby claim:

  • I am kravietz on github.
  • I am kravietz (https://keybase.io/kravietz) on keybase.
  • I have a public key whose fingerprint is 2F69 FF2E 1912 182D A607 7E31 4FF8 8B09 C1E6 4B10

To claim this, I am signing this object:

@kravietz
kravietz / sitemap-split.py
Created Feb 19, 2015
XML sitemap split into 50k chunks
View sitemap-split.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
from gzip import GzipFile
import gzip
import sys
__author__ = 'Paweł Krawczyk'
@kravietz
kravietz / preload.py
Last active Jun 26, 2019
Resource hints (dns-prefetch, preload, prerender etc) middleware for Django. Includes automated resource discovery.
View preload.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
from urllib.parse import urlparse
import codecs
from django.conf import settings
from django.utils.html_parser import HTMLParser
__author__ = 'Paweł Krawczyk'
@kravietz
kravietz / django-dnt.py
Last active Jan 12, 2018
DoNotTrack middleware for Django.
View django-dnt.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
from django.views.generic import TemplateView
__author__ = 'Paweł Krawczyk'
DNT_HEADER = 'HTTP_DNT'
class DoNotTrackMiddleware(object):
View server-checks.py
#!/usr/bin/python3
# monitor a group of websites and email alerts
# cron task:
#
# */5 * * * * t=$(mktemp); if ! python3 /home/user/server-checks.py >$t; then mail email@example.com -s "Web check $(date)" <$t; fi; rm $t
# https://ipsec.pl/ True 0.7856874465942383
# sample output (only if errors detected, otherwise stays silent)
@kravietz
kravietz / vigenere.py
Last active Nov 7, 2017
Vigenere cipher over Latin alphabet in Python3
View vigenere.py
#!/usr/bin/env python3
from itertools import cycle
A = [chr(x) for x in range(ord('a'), ord('z')+1)]
def encrypt(a,b):
return A[(A.index(a) + A.index(b)) % len(A)]
def decrypt(a,b):
@kravietz
kravietz / break.py
Created Nov 7, 2017
Vigenere over bytes (XOR) statistical solver
View break.py
#!/usr/bin/env python3
import collections
import statistics
line = 'F96DE8C227A259C87EE1DA2AED57C93FE5DA36ED4EC87EF2C63AAE5B9A7EFFD673BE4ACF7BE8923CAB1ECE7AF2DA3DA44FCF7AE29235A24C963FF0DF3CA3599A70E5DA36BF1ECE77F8DC34BE129A6CF4D126BF5B9A7CFEDF3EB850D37CF0C63AA2509A76FF9227A55B9A6FE3D720A850D97AB1DD35ED5FCE6BF0D138A84CC931B1F121B44ECE70F6C032BD56C33FF9D320ED5CDF7AFF9226BE5BDE3FF7DD21ED56CF71F5C036A94D963FF8D473A351CE3FE5DA3CB84DDB71F5C17FED51DC3FE8D732BF4D963FF3C727ED4AC87EF5DB27A451D47EFD9230BF47CA6BFEC12ABE4ADF72E29224A84CDF3FF5D720A459D47AF59232A35A9A7AE7D33FB85FCE7AF5923AA31EDB3FF7D33ABF52C33FF0D673A551D93FFCD33DA35BC831B1F43CBF1EDF67F0DF23A15B963FE5DA36ED68D378F4DC36BF5B9A7AFFD121B44ECE76FEDC73BE5DD27AFCD773BA5FC93FE5DA3CB859D26BB1C63CED5CDF3FE2D730B84CDF3FF7DD21ED5ADF7CF0D636BE1EDB79E5D721ED57CE3FE6D320ED57D469F4DC27A85A963FF3C727ED49DF3FFFDD24ED55D470E69E73AC50DE3FE5DA3ABE1EDF67F4C030A44DDF3FF5D73EA250C96BE3D327A84D963FE5DA32B91ED36BB1D132A31ED87AB1D021A255DF71B1C436BF479A7AF0C13AA14794'
ciphertext
@kravietz
kravietz / nftables-host.conf
Last active Sep 24, 2018
Simple workstation nftables
View nftables-host.conf
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop
iifname lo accept
ct state established,related accept
# allow any incoming ICMP and ICMPv6
@kravietz
kravietz / docker-ce.yml
Last active Sep 24, 2018
Installing Docker 18 using Ansible on Ubuntu
View docker-ce.yml
# taken from https://get.docker.com/
---
- apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
- apt_repository:
repo: 'deb https://apt.dockerproject.org/repo ubuntu-{{ansible_distribution_release}} main'
state: absent
- apt_repository: