Skip to content

Instantly share code, notes, and snippets.

@a-kr
a-kr / Chance.cs
Created March 16, 2010 16:43
Helper class for random things
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace System
{
class Chance
{
static Random rnd = new Random();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Babazka.Math
{
static class SlauSolver
{
/// <summary>
@a-kr
a-kr / designdoc.md
Created September 13, 2011 14:02
Abstract Chess Engine

Абстрактный шахматный движок

Задача: создать игровой движок, позволяющий на его основе реализовывать сетевые игры, подобные шахматам, путем написания файла правил для игры.

Существующие аналоги

# coding: utf-8
"""
Набросок сервера-супервизора, предоставляющего услуги по запуску и мониторингу
некого длительного процесса.
Одновременно может быть запущен только один экземпляр этого процесса. Сервер
блокирует попытки запуска, когда процесс уже запущен.
API сервера:
- start - запуск нового процесса с заданными параметрами
@a-kr
a-kr / fifofilecache.py
Created March 17, 2012 12:35
FifoFileBasedCache
# coding: utf-8
"""
Модификация FileBasedCache (кеш-бекэнд Джанго).
Особенность - при чистке кеша записи удаляются в порядке создания, а не случайно.
Как работал FileBasedCache:
При каждом добавлении ключа в кеш вызывается процедура очистки кеша.
Если число записей в кеше > MAX_ENTRIES, то случайным образом удаляется
доля записей, определяемая как 1/CULL_FREQUENCY.
@a-kr
a-kr / lazyinit.py
Created April 7, 2012 11:17
lazyinit.py
# coding: utf-8
class lazyinit(object):
"""
Ленивый прокси для питоновского объекта.
Создает объект при первом обращении к его атрибутам.
Пример использования:
from lazyinit import lazyinit
o = lazyinit(MyMegaClass, 123, 456)
/* A sometimes minimal FORTH compiler and tutorial for Linux / i386 systems. -*- asm -*-
By Richard W.M. Jones <rich@annexia.org> http://annexia.org/forth
This is PUBLIC DOMAIN (see public domain release statement below).
$Id: jonesforth.S,v 1.45 2007/10/22 18:53:13 rich Exp $
gcc -m32 -nostdlib -static -Wl,-Ttext,0 -Wl,--build-id=none -o jonesforth jonesforth.S
*/
.set JONES_VERSION,45
/*
INTRODUCTION ----------------------------------------------------------------------
@a-kr
a-kr / gist:3887628
Created October 14, 2012 06:43
Short snippet to unindent a string containing Python code
def unindent(code):
lines = code.split('\n')
indent_len = 0
for line in lines:
stripped = line.strip()
if stripped:
indent_len = line.index(stripped[0])
break
if indent_len == 0:
return code
@a-kr
a-kr / blame-remote-branches.pl
Created October 24, 2012 11:29
Git: перечень веток на origin c авторами
#!/usr/bin/perl
sub get_all_branches {
my @branches = ();
open(BRANCHES, 'git ls-remote origin|') or die $!;
while (<BRANCHES>) {
chomp;
$line = $_;
if ($line =~ /\s*refs\/heads\/(.*)$/) {
@a-kr
a-kr / decimal_tracking.py
Created November 6, 2012 18:01
Отслеживание арифметических вычислений в Python
#coding: utf-8
from decimal import Decimal as TrueDecimal
import traceback
def main1():
def compute(x):
k1 = Decimal('3.5')
k2 = Decimal('1.5')
k3 = Decimal('6')