Skip to content

Instantly share code, notes, and snippets.

View f0t0n's full-sized avatar

Eugene Naydenov f0t0n

View GitHub Profile
@f0t0n
f0t0n / list2dict.py
Created August 12, 2012 14:22
Converts lists of bookmarks in directories to dictionaries.
#!/usr/bin/env python
def list_to_dict(pages):
return {page['name']: page for page in pages}
def convert_bookmarks(bookmarks):
for root, directory in bookmarks['roots'].iteritems():
directory['children'] = list_to_dict(directory['children'])
if __name__ == '__main__':
@f0t0n
f0t0n / service_example.php
Created May 30, 2012 15:07
CORS example (server side).
<?php
if(empty($_SERVER['HTTP_ORIGIN'])) {
die;
}
defined('LOG_DIR') OR define('LOG_DIR', dirname(__FILE__) . '/log/');
// domain => apiKey dictionary
$allowedDomains = array(
'qualify-test-site.local' => 's0m3d0ma1n1d',
);
$host = parse_url($_SERVER['HTTP_ORIGIN'], PHP_URL_HOST);

Keybase proof

I hereby claim:

  • I am f0t0n on github.
  • I am competera_en (https://keybase.io/competera_en) on keybase.
  • I have a public key whose fingerprint is 5EC8 2CC3 1270 4617 2D22 E44A E75F 50EE 9E79 B40B

To claim this, I am signing this object:

@f0t0n
f0t0n / background_tasks.py
Created August 22, 2016 19:48
Background tasks using app.loop.create_task + cancellation
#!/usr/bin/env python3
"""Example for aiohttp.web.Application.on_startup signal handler
"""
import asyncio
from aiohttp import ClientSession
from aiohttp.web import Application, run_app, Response
async def fake_redis_msg(request):
@f0t0n
f0t0n / background_tasks.py
Created August 22, 2016 19:38
Background tasks with loop.create_task + cancellation
#!/usr/bin/env python3
"""Example for aiohttp.web.Application.on_startup signal handler
"""
import aiohttp
import asyncio
import contextlib
from aiohttp.web import Application, run_app, Response
{
"swagger": "2.0",
"info": {
"title": "Uber API",
"description": "Move your app forward with the Uber API",
"version": "1.0.0"
},
"host": "api.uber.com",
"schemes": [
"https"
@f0t0n
f0t0n / recureduce.py
Last active March 3, 2017 14:09
Unlimited "recursion" hack
from functools import reduce
def run_flow(fns, input_value: dict) -> dict:
def flow_reducer(result, fn):
return fn(result)
return reduce(flow_reducer, fns, input_value)
def recur(fn, input_value, stop) -> dict:
#!/usr/bin/env python3
"""Example for aiohttp.web.Application.on_startup signal handler
"""
import asyncio
import aiohttp
from aiohttp.web import Application, run_app, Response
@f0t0n
f0t0n / pgmodeler.md
Last active June 16, 2016 18:57
Как я собрался генерировать ERD

#Как я собирался генерировать ERD

pgmodeler

В общем, решил я сгенерировать ERD существующей PostgreSQL базы данных. Добрые люди из украинского Python комьюнити порекомендовали pgmodeler. Посмотрел скриншоты на сайте - понравилось. Решил по-быстрому его собрать и опробовать. Когда собирал, понял, что заметка с пошаговой инструкцией может оказаться полезной. Посему излагаю.

@f0t0n
f0t0n / gitter-dev-ua-faq.md
Last active May 6, 2016 21:41 — forked from listochkin/gitter-dev-ua-faq.md
Gitter Dev-UA FAQ

FAQ по Gitter-чатам группы Dev-UA

Так получилось, что мы открываем сейчас достаточно много чатов в [Gitter.im][1]: часто это совсем новые для нас сообщества (как [PHP-чат][2], например), а часто - это уже существующие чаты, которые мы создали и администрировали в Skype (например, [Frontend-UA][3]). Не зависимо от того, новый ли это чат или "переезжающий", нам раз за разом задают одни и те же вопросы. Здесь мы собрали их и подготовили несколько ответов.

Почему Gitter?

  1. Больше 300 человек в чате (это лимит в Skype)