Skip to content

Instantly share code, notes, and snippets.

View onjin's full-sized avatar

Marek Wywiał onjin

View GitHub Profile
@onjin
onjin / inyoka.py
Last active September 20, 2019 10:06
pysnake dojo pyconpl 2014
# to run snake you need an engine: https://bitbucket.org/Gandi24/pysnake/src/master/
# to watch this snake in action check youtube https://www.youtube.com/watch?v=gc2wpQp95TA (red one)
def move(snake1=None, snake2=None, food=None, data=None, board_width=None, board_height=None): # NOQA
from math import sqrt
from collections import namedtuple
Point = namedtuple('Point', 'x y')
def d(point):
return Point(point.x, point.y + 1)
@onjin
onjin / shakeit.py
Last active August 29, 2015 14:07
#!/usr/bin/env python
# encoding: utf-8
import random
import fileinput
def shakeit(word):
if len(word) < 3:
return word
#!/bin/bash
# firefox profile runner
# ln -s ff-runner ff-profilename to run specific profile
FIREFOX=/usr/bin/firefox
PROFILE=`basename $0|cut -d\- -f2`
${FIREFOX} -P ${PROFILE} --no-remote
from collections import defaultdict
from contextlib import contextmanager
class Exchange:
def __init__(self):
self._subscribers = set()
def attach(self, task):
self._subscribers.add(task)
@onjin
onjin / pydispatcher_demo.py
Created May 6, 2014 13:30
pydispatcher demo
#!/usr/bin/env python
# encoding: utf-8
"""
pydispatcher demo
requirements: pip install pydispatcher
"""
@onjin
onjin / droppub.py
Last active August 29, 2015 13:58
Push and publish on dropbox from shell
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Put and publish given file to dropbox.
Install
-------
1. open https://www.dropbox.com/developers/apps and register app
2. pip install dropbox
@onjin
onjin / lazyproperty.py
Created April 4, 2014 16:02
lazy property
import math
class lazyproperty(object):
def __init__(self, func):
self.func = func
def __get__(self, instance, cls):
if instance is None:
return self
import re
p = re.compile('^(?P<head>\d{2})(?:[-\s]?(?P<tail>\d{3})?$)')
zip = "-".join(p.match('11123').groups())
print zip
zip = "-".join(p.match('11-123').groups())
print zip
@onjin
onjin / tuple_to_namedtuple.py
Created March 24, 2014 10:14
tuple to namedtuple
from collections import namedtuple
# magic data accessed with magic numbers, f.i.:
# print "{} {}".format(row[2], row[3])
row = ('SS', 'asdf', 12.3, 'USD')
# let's create something self describing
Price = namedtuple('Price', ['symbol', 'name', 'amount', 'currency'])
@onjin
onjin / terminal_size_linux.py
Created March 24, 2014 07:32
get current terminal size on linux with python
import os
rows, columns = os.popen('stty size', 'r').read().split()