2015-01-29

Редактирование истории в git

Этот пост что-то вроде Advanced mercurial но для git. Рано или поздно все сталкиваются с двумя проблемами: у меня куда-то пропали коммиты и я запушил не туда. Во втором случае есть простой случай, когда никто не успел спулить и когда неправильный кормит у всей команды. Все опасаются применять команды с ключами --hard и --force, но это совсем не страшно, если понимаешь, что все обратимо и ты понимаешь чего хочешь достичь этими командами.

Концептуальное отличие от mercurial: в git коммит обязательно должен принадлежать бранчу (без бранча коммит становится detached head), а бранч может быть только один. В mercurial ветки могут быть анонимными, более того может быть несколько веток с одним именем. Чтобы коммит стал виден, должен существовать путь до него из какого-либо бранча. То самое отличие кроны и корневой системы (почему-то именно такая аналогия приходит в голову). В mercurial чтобы коммит был доступен должен существовать путь до него от 0-го коммита, а имена и прочее это мелочи. Соответственно и можно четко проследить начало и конец любой ветви, в отличии от git, где коммиты эфемерные дельты болтающиеся по узлам DAG. Хорошо это или плохо - зависит от, но в централизованной разработке мне больше импонирует mercurial с долгоживущими и вполне материальными ветвями, хотя это не значит что там нельзя редактировать историю - дельта алгебра везде одна. Git же заточен именно под распределенность и множество центральных узлов - помимо ветки foo-branch, обязательно есть origin/foo-branch или another/foo-branch с четким разделением откуда приехал коммит - в mercurial же именование веток сквозное по всем репозиториям, если стянули изменения то они уже ваши и отделить где чьё не получится.

Дальше пойдет описание трех сценариев в демке с github. Демка пошагово демонстрирует работу Алисы и Боба с общим репозиторием. Запускаем, читаем комментарии, жмем батон. Демка должна работать на unix-like системах где есть bash. Кстати, ознакомьтесь со статьей tonsky - прольет свет на внутренности git.

2015-01-17

Черный лебедь. Под знаком непредсказуемости

Почему-то у ученых формат эссе (непрерывный монолог автора) получается крайне тяжелым для восприятия: пока читал, все время вспоминал Шок будущего Тоффлера и Структуру научных революций Куна - на мой взгляд книгу можно было спокойно сократить раза в три без потери выразительности сократив философские отступления, зато плотность полезной информации выросла бы многократно.

Автор, бывший биржевой брокер (я решил для контраста прочитать после Экономики для чайников) насмехается над нашими попытками делать предсказания и в качестве примера приводит график удовлетворенности жизнью индюшки. На 1001 день в жизни индюшки происходит событие "черный лебедь", обладающее тремя качествами: непредсказуемое до момента наступления, имеющее колоссальные последствия и ретроспективно объяснимое.

2015-01-12

Rework: бизнес бес предрассудков

Бестолковая книжка из разряда 100 рецептов успеха на каждый день от уникальной компании. Вообще суть книги авторы прекрасно передали в одной из глав: Скопировать рецепт гораздо проще, чем бизнес. Должно ли это пугать Марио Батали? Зачем ему нужно участвовать в кулинарных шоу и показывать, как он готовит свои блюда? Не боится ли он публиковать все свои рецепты в кулинарных книгах?... Никто не пытался, купив книгу, открыть неподалеку ресторан и выдавить знаменитого шеф-повара из бизнеса.

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

Б́ольшая часть труда создателя оригинала вкладывается в невидимое, скрытое внутри. Имитатор не знает, почему что-то действительновыглядит так, как оно выглядит, чувствуется, как оно чувствуется, и читается, как оно читается. Копирование – это ложный финиш. Оно не содержит ни сути, ни понимания основ, которые позволили бы принимать последующие решения.

Поэтому стоит относиться именно как к сборнику советов: 80% уникальных ситуаций, 19% очевидных вещей, 1% полезных идей. Дальше будет тот самый процент.

2015-01-11

Economics for dummies

Последний кризис я застал в 2008 году, будучи еще студентом, на содержании у родителей я не заметил видимо потому, что начал работать. Качественный скачок в доходах с 700р/мес до 5круб просто поглотил все ощутимые эффекты. Текущий же кризис хотелось бы не только пассивно наблюдать, но и понимать причины, маханизмы и последствия чтобы принимать осознанные решения.

В универе у нас было два (а может быть все четыре - не помню) семестра по экономике. Мы даже писали рефераты старательно выписывая параграфы из одного и старых изданий Экономикса. Но знания я вынес исключительно пассивные: есть микро и макроэкономики, спрос/предложение и куча других терминов - лежащие мертвым грузом, ни объяснить ни использовать их я никак не мог. Кстати интересно было читать книгу и вспоминать/угадывать русский перевод терминов которые еще остались в голове спустя 10 лет.

Последней каплей стало превращение в юридическое лицо, внешнеэкономическая деятельность. Необходимость самостоятельно платить налоги действует очень отрезвляюще по сравнению с получением смски о пришедшей зарплате - хотя фактически я так и остался наемным работником. Срочно нужно было подтянуть матчасть.

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


Все формулы в книге крайне просты даже для школьника младших классов. Весь раздел микроэкономики крутится вокруг двух графиков: спрос/предложение и маржинальный доход (удивлен кстати что ни разу не упомянута критическая цепь). Макроэкономических раздел посвящен рецессиям и весьма не богатым механизмам борьбы с ними. Laissez faire и Кенессианская модель роли государства. Последний раздел 10 заблуждений, 10 полезных вещей и 10 интересных вещей вообще самодостаточен.