2014-10-25

Про Git и Mercurial

Моя борьба с git длится уже пятый год. Большую часть времени я его просто игнорировал. Последние пол года начал активно работать. Вообще, прекрасная иллюстрация импринтинга: первой системой была svn, а затем произошел переезд на идейного наследника mercurial - после чего git кажется технологией пришельцев. Первые попытки были вынужденными: нужно было попатчить драйвер couchdb для диплома, заслать пару пуллреквестов - каждый раз приходилось открывать шпаргалку и копипастить команды в консоль. Не помогла даже книга Pro Git, пол года назад пролистал еще раз - пока читаешь - все понятно, но повторить не смог бы.

Есть базовая идея, которая лежит в основе, без понимания которой все остальное не имеет смысла. В идеологии git есть один мастер бранч, все остальные - временные недоразумения, которые либо вливаются в главный, либо удаляются целиком, безымянные бранчи не могут существовать (хотя конечно есть reflog). В mercurial, как наследнике svn, бранчи - полноценные долгоживущие сущности, которие живут и после слияния. Поэтому граф git выглядит как корень дерева, а mercurial - как крона. Поэтому в git сложно взглянув на граф определить в каком бранче был сделан коммит, как он попал в текущую ветку и если ли эти изменения в ней вообще.

Другая идея важная для понимания - в git, пока не был сделан merge или rebase, визуально четко разделяются чужие ветки и твои (branch-name vs origin/branch-name) поэтому fetch совершенно безопасен, поэтому push --force деструктивнее, но крайне удобен если понимаешь, что ты делаешь, в mercurial как только коммит попал к тебе, он становится твоим сразу же, поэтому hg strip приходится делать каждому разработчику. Интересно, что mercurial органично впитывает лучшие идеи git: strip, rebase, rebase -i, stash, backup copy при деструктивных операциях - обратного дрейфа не заметно.

После того как освоил инструмент, обязательно начинаешь затачивать под свой workflow. Недавно, задействовав все свое bash-fu, родил монструозный алиас, чтобы понять в каком же бранче находится закрытый тикет (на самом деле главное - смерджен/не смерджен). Делать
git log --grep
git branch --contain
быстро надоело, поэтому легко заменить на
git gb #ISSUE-1234
при помощи
gb = !git --no-pager log --format=\"%H\" --decorate --all --grep=$1 | xargs -I {} sh -c \"git branch --contains {}| paste -sd ',' - && git --no-pager log --oneline --decorate {}^..{}\"

ЗЫ

Великолепный курс от codeschool
Интересная статья от tonsky
Мой .gitconfig

2014-10-12

Про уплату налогов

Заключительный пост из цикла про ИП.

UPD от 2014-12-21: Как платить налоги в валюте. Вкратце: с 2013 года, если вы продаете по курсу ЦБ на момент продажи, то курсовая разница не учитывается. Если по курсу банка и стоимость валюты выше курса ЦБ, то возникает курсовая разница с коротой нужно уплатить налог.

Рассчет налога по УСН

Подробности по рассчету здесь. Вкратце: за год ИПшники должны выплатить 17,328.48 руб первых 300,000 руб дохода + 1% с того что сверху в ПФ и 3,399.05 руб в ФФОМС. Затем считается сумма налога в 6% и из неё вычитается то, что было уплачено в ПФ и ФФОМС. Т.е. если вы зарабатываете больше 300,000 руб, то эффективно вы будете выплачивать только 6%, всяких отчислений вы просто не увидите. Чтобы сделать упомянутый вычет нужно платить в ПФ и ФФОМС поквартально максимально возможную сумму, которую бы вы заплатили из налогов (первые периоды вычет будет равен налогу, в последних весь возможный вычет уже будет сделан и останется только 6% налог).

Онлайн бухгалтерия

Когда регистрировал ИП, в Альфа Банке сказали что они теперь работают не с Эльбой а с Моё Дело (если не ошибаюсь). Тем не менее, я подключил Эльбу, они подарили максимальную версию на год. Почти весь головняк с выплатами снимается. Главная боль всех бухгалтерий - работа с валютой, приходится руками раз в квартал корректировать платежки перед уплатой налогов, которые выгружает Эльба из Альфа-Банка. После этого в несколько кликов рассчитывает сумма и прямо в онлайн-банке создаются нужные платежки, которые руками подписываются и отправляются. Мега удобно.

Валюта

Главная проблема в том, что с момента прихода валюты на внешний счет и конвертацией в рубли может пройти несколько дней и курс рубля обязательно изменится. Если рубль усилился, то вы потеряли деньги и на этом все. Если же рубль упал, то вы за это время получили доход, который тоже подлежит налогооблажению. Тут мнения сильно расходятся. Кто-то платит на момент прихода денег по курсу центробанка, кто-то на момент получения рублей. Самая замороченная версия с уплатой налогов с курсовой разницей, которой я придерживаюсь. Из одного платежа в бухгалтерии нужно сделать два: первый платеж в момент прихода денег с суммой в рублях по курсу ЦБ на момент прихода, второй - курсовая разница, которая может быть положительна или отрицательна. Дальше эльба рассчитывает платежи и я забываю о ней на три месяца до следующей СМСки с напоминанием.

2014-10-11

Про личное пространство

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

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

2014-10-07

Про макроэкономику

Небольшая зарисовочка

Прихожу я в спортивный магазин купить лопату. Магазин принадлежит крупной сети, торгуют зарубежным барахлом по всей России. Подхожу, значит, на кассу и мне кассир:
- Возможно будет дороже. 
- А почему?
- Ну вы курс видели, доллар как растет, мы переоценку не успели провести
- А что у вас все иностранное?
- Ну да, наши только ижевские пенки

Рядом стоит другой продавец и вырезает ценники.
- Такими темпами вам каждый день придется ценники менять
- Ну не настолько часто конечно
- Может проще на У.Е. перейти как раньше?
- Ага щас! Не зря же мы санкции вводили, пусть у них остаются их суррогаты денежные!

2014-09-28

Паспорталипсис

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