Раньше не понимал, как можно всякую электронную музыку слушать и вообще в ней разбираться, не запоминаемо же, такой продолжительности треки. А сейчас вот наоборот, передачу одну по техно слушаю. -- последние выпуски уже до дыр заслушал (даже 4-часовой), решил старые 100 выпусков начать слушать.
p.s.: одна из причин почему я не вернусь работать в офис
➜ proj git:(master) ✗ git cherry-pick --continue
On branch master
Your branch is up-to-date with 'origin/master'.
You are currently cherry-picking commit 1a38a34.
Untracked files:
api/creative/creative.py.orig
nothing added to commit but untracked files present
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
хули блять
В процессе засовывания тестов в докер написал такой пиздец, что уже у самого немного мурашки по коже ходят.
Фаб-скрипт разворачивает кучу репозиториев, внутри тех запускает другой фаб-скрипт, тот разворачивает докер, в нём разворачивает снова этот же (первый) для клонирования всего и т.д. и т.п. Короче в результате какое-то змеиное гнездо, само себя тащит и достраивает по дороге.
p.s.: но в целом норм
Нашёл охуенную вещь -- amazon spot instance. Тебе говорят "текущую ставку", например, "$0.26" доллара за инстанс c3.8xlarge (это тот, у которого 32 ядра). Просто так его купить стоит $1.680 в час.
Так вот, ты делаешь ставку, скажем я сделал $0.3 за этот инстанс. И пока "никто не перебьёт" (то есть, вот тот бид начальный не повысится) -- ты можешь себе пользоваться сервером. Когда перебьёт -- сервер у тебя заберут.
Короче очень интересная фигня.
Короче при 16ти гигах оперативки всё ок (практически)
http://i.imgur.com/QXdr5Yo.png
Видимо, таков и будет план.
Из хороших новостей -- кажется всё стало шустрее работать/отдаваться (время респонса).
При обновлении на GHC7.8 веб-лицо начало OOM-убиваться при ртс-опции -A100M
, которая там исторически была (не я придумал). Без неё -- воркеры "липнут" под нагрузкой. Второй день уже играюсь с опциями всякими http://i.imgur.com/uh3VZCt.png
Пока решил -A30
сделать. Приложение уходит в OOM, но меееедленно (и потом по-быстрому монит его перезапускает).
Зачем миру нужны всякие декларативные монстры для конфигураций? Почему нет готового базового императивного фреймворка, просто всовывающегося в любой bash/python?
Вот взял сейчас написал чуть-чуть подобного, у меня теперь вот так выглядит функция развёртывания окружения:
@task
def ensure_environment_is_ready():
"""Initial dependencies and make sure needed directories exist"""
rs = []
sudo("apt-get update -qq")
sudo("apt-get install -qq -y git python-setuptools dnsmasq resolvconf")
ensure_exists("/home/deploy/proj")
ensure_exists("/home/deploy/proj/AdServer")
rs.append(ensure_line_present_at_beginning(
"search mycompany.com",
"/etc/resolvconf/resolv.conf.d/tail"))
ensure_exists_sudo("/var/log/AdServer")
ensure_file_present_sudo("/var/log/AdServer/AdServer.daemon.out")
ensure_file_present_sudo("/var/log/AdServer/AdServer.daemon.out")
ensure_file_present_sudo("/var/log/AdServer/daemon.err")
rs.append(ensure_ini_value_set('resolv-file', '/etc/resolv.conf',
'/etc/dnsmasq.conf'))
rs.append(ensure_ini_value_set('listen-address', '127.0.0.1',
'/etc/dnsmasq.conf'))
rs.append(ensure_config_file(
'configs/adserver/etc/monit/monitrc',
'/etc/monit/monitrc'))
if any(rs):
print(u"ヽ(゜ロ゜;)ノ")
print(u"Restarting services (running app will stop)")
sudo("service resolvconf restart")
sudo("service dnsmasq restart")
sudo("service monit restart")
То есть идея в том, что вместо дохуя-декларативных конфигураций мы лучше напишем дохуя-умную функцию ’ensure_ini_value_set`, которая умеет парсить ini-подобные конфиги и в нужную секцию пихать нужное значение, если его нету.
Сойдёт/похуй/говно/охуенно?