О трудностях коммитов

06.03.2015 23:40:00

Вот интересно, увижу ли я когда-нибудь виндовых программистов, умеющих грамотно пользоваться репозиториями кода? По некоей причине (говорят, она уходит корнями в ТФС) единственное, что может делать с репозиторием виндовый программист — это вываливать туда кучи мусора с комментариями типа “fixed”. Понять, что изменилось, почему изменилось, какие нюансы, почему прикоммичены какие-то бинари, журналы, совершенно несвязанные изменения, невозможно никак.

Просто дамп состояния. Где-то с таким же успехом можно раз в день синхронизировать каталог с проектом по принципу рсинка, есть ощущение, что с точки зрения виндового программиста не поменяется ничего. Причём, различие проходит по чисто культурному признаку, программист может быть и весьма толковым, но коммитить код он будет именно так — большими несвязными кусками вместе с бинарями и прочим мусором, комментируя как “fixed” или “$DATE commit”.

А так как различие чисто культурное, то и попытки пояснить, что бинари коммитить в репозиторий не надо, приводят к непониманию — а чего, собственно, плохого-то? Попытки поговорить о структурировании изменений, понятных подробных комментариях в сообщениях это вообще за гранью понимания, считается, что вот есть код и всё хорошо. А как в этом коде потом разбираться без понятной истории изменений?

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

Конец атомного хостинга

25.02.2015 10:05:59

Пять лет назад переезжал на атомный хостинг. Нельзя сказать, что пять лет были совсем безоблачными, бывали всякие неприятные даунтаймы, но, в целом, работало. А если вспомнить ценник и вспомнить то, что это цельная выделенная машинка, то вообще хорошо. Хорошему, однако, пришёл конец — хостер закрывается. Печально, но что делать. Всем причастным спасибо.

А я пока судорожно вспоминаю как оно там всё работает и пытаюсь съехать уже на виртуальную машинку. По этому поводу, разумеется, возможны временные проблемы по всем ресурсам.

Пятнашки

22.11.2014 16:50:20

Иногда у детей получается очень ловко троллить родителей. Заодно давая им понять, во что они не доиграли в детстве. Так, мне вчера подсунули такую простую вещь как пятнашки. Быстренько раскидав три строчки, я упёрся с последней и, через где-то час упорного двиганья костяшек, подумал, что что-то здесь не так. Игра-то, как бы, простая, детская, а тут так. Я уже начал сомневаться, может совсем старый стал.

Если бы не википедическая статья, можно было бы и запаниковать. А так хотя бы выяснил, что половина стартовых позиций в этой простой детской игре нерешаема в принципе. И я как раз доводил игру (из полной мешанины) до того же самого состояния, что и на картинке в статье. Гармония вернулась в этот мир.

Что подсунут в следующий раз, остаётся только гадать.

ГОСТ в ЛибреССЛ

10.11.2014 23:23:59

Люблю я читать коммиты в ЛибреССЛ, бывает интересное, бывает смешное, особенно смешное когда работа также часто пересекается с тем же ОпенССЛом. Сегодня заглянул, а там бац! и патч, добавляющий ГОСТовые алгоритмы. Плюс небольшой набор патчей сверху по исправлению всякого. Это же праздник, товарищи!

Изначально, поддержка ГОСТов из ЛибреССЛа была выпилена, вместе со всеми остальными модулями (энжинами) ОпенССЛа. Бдительные граждане даже интересовались, не политическим ли причинам такое произошло?

Признаться честно, желание добавить ГОСТовые шифры в ЛибреССЛ у меня было у самого, тогда можно было бы использовать библиотеку в рабочих проектах, но тут две проблемы — во-первых, кто ж даст времени на это, а во-вторых, с разработкой ЛибреССЛ есть один нюанс, она жёстко привязана к ОпенБСД. Понятно, что ОпенБСДшникам от этого хорошо, но со стороны это вполне конкретный барьер для входа, который надо преодолевать. Есть, конечно, гитовый клон, в том числе портируемой версии, но если работать с портируемой версией, то потом будет проблема импорта в ОпенБСД. Разумеется, всё решаемо, при желании, но это барьер.

С барьером этим столкнулся и Дмитрий Еремин-Солеников, однако он его успешно преодолел, за что ему респект. Понятно, что будет ещё доводка всего этого хозяйства до полностью работоспособного состояния, плюс ТЛС, но основная часть уже есть, и это радует.

LibreSSL

23.04.2014 11:23:20

Именно за такой подход я уважаю разработчиков ОпенБСД. Да, у них приблизительно миллион разных проблем, которые со стороны Линукса кажутся смешными, но у них есть совершенно чёткие приоритеты и в этих заданных приоритетах они реально делают всё возможное, чтобы получить достойный результат. Даже если для этого нужно форкнуть ОпенССЛ.

А форкнуть ОпенССЛ, видимо, надо было уже давно. Я неоднократно лазил внутрь него и даже кое-что делал, ничего кроме адского кошмара там нет. При наличии возможности выбора, просто брал ГнуТЛС. Но возможность такая есть не всегда, поскольку все уже привыкли лепить костыли вокруг ОпенССЛа и переделывать их, как водится, никто не собирается.

Конечно, ещё больше нравится нечто типа Содиума, когда библиотека изначально пишется людьми в теме, но применимость Содиума на данный момент, увы, слаба.

На данный момент говорят о 90 000 выпиленных строк кода без потери совместимости, это при том, что там всего их около 335 000 (включая автогенерируемые файлы). Грубо говоря, треть кода — мусор. Значит, скорее всего, можно ещё тысяч 50 выпилить. А если ещё начать работать над интерфейсом библиотеки, то совсем туши свет.

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

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

По счастью, именно с командой у ОпенБСД проблем нет, что и позволяет надеяться на достойный результат.

О безусловном вреде чая

15.04.2014 22:41:12

Я всегда пью чай. Много. Разный. И очень редко, но случается так, что чай оказывается не там где ему положено. Обычно, это не так-то и страшно, но вчера я превзошёл самого себя и вылил половину добротной кружки свежего горячего нилгири прям на свой многострадальный ноут. По факту, можно констатировать, что седьмой год ноут не выдержал.

Конечно, у него уже давно не работала батарея, не работал CD-ROM, с видео творилось что-то, и даже один из винчестеров (что характерно, купленный на замену оригинальному, отработавшему лет так пять, второй оригинальный пашет до сих пор) пару месяцев назад тоже стал издавать интересные звуки и перестал видеться системой. И, да, у ноута биосная травма из-за которой больше трёх с небольшим ГБ памяти он видеть не мог, даже если на борту полноценные четыре.

И всё же он неплохо работал. А вот теперь уже совсем-совсем нет. И запахи внутри говорят скорее о том, что не работать ему уже никогда. Жаль.

Все современные ноуты раздражают, как минимум, разрешением 1920×1080 вместо 1920×1200 и островными клавиатурами. Хотя, конечно, новый проц и хотя бы 8 ГБ оперативки уже давно хочется. Видимо, придётся снимать последние штаны и что-то новое таки покупать. Будем посмотреть.

Кровосдача №1

07.04.2014 23:46:10

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

Интересно было, как пойдёт процесс в моём случае — с одной стороны, во мне (уже чуть менее, но) 90 кг неплохого веса и я вполне нормально себя чувствую, а с другой стороны, я крайне, очень, не люблю когда мне в вену лазят иглой, то есть, даже тупо сдать анализ крови из вены уже напрягает. Давление мне, с испугу, намерили 120/80, хотя в последнее время чаще замечалось пониженное, анализ крови получился хороший, изначально допустили до сдачи 450 мл. Но уже на непосредственной сдаче, после некоторых проблем с нахождением вены на левой руке (есть такое, не торчит она наружу особо), а также, видимо, учитывая то, что в графе анкеты про обмороки я поставил “да” (на всякий случай, было такое давно, но было, а скрывать как бы не стоит); решили с меня, на первый раз, взять 350 мл.

И успешно взяли. Да, дискомфорт в районе вены был, но вот общее состояние осталось вполне себе нормальное, встал да пошёл. Остался весьма удовлетворён данным фактом, хотя попытка несколькими часами позже посерьёзнее вгрузиться в работу встретила явное сопротивление со стороны мозга, поэтому, подбил рутину, да пошёл домой отдыхать (положенный выходной, как-никак).

Почему “№1″? Причины, как минимум три: во-первых, да, сдавал впервые, во-вторых, через полгода всё равно нужно обязательно прийти и сдать хотя бы просто анализ (иначе кровь в дело не пойдёт), а, в-третьих, задолжал я, как минимум, на две дозы крови, а отдавать долги надо.

А лучше, конечно, пойти и сдать кровь без всяких задолженностей, что смело и рекомендую.

Совещание

07.04.2014 10:16:10

Рассказ Алексея Березина трёхлетней давности как-то прошёл мимо меня, а он прекрасен, явно писан с натуры. С удовольствием наверстал упущенное. Как оказалось, нынче есть ещё и две экранизации: наша и импортная.

Статический анализ кода

13.12.2013 23:31:04

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

Разумеется, нашлось много интересного.
Читайте далее »

Обновился до wheezy

17.11.2013 22:51:12

Сегодня внезапно ощутил необходимость апгрейда сервера, хостящего данный бложик, на Debian wheezy. Домашний сервер апдейтил ещё несколько месяцев назад, а этот и боязно, и времени не очень. Да и апдейтить машины в последнее время не радует совсем, ничего интересного, кроме того, что что-нибудь отваливается. Особенно когда речь о десктопе идёт, только привыкнешь к одним багам КДЕ, как вот тебе уже и новый набор!

Здесь же успел сломаться PHP (allow_call_time_pass_reference и register_long_arrays в php.ini) и особенно интересные ощущения доставила поломка Dovecot (фатально отвалился Sieve, не менее фатально отвалился SSL, плюс общие жалобы на конфигурацию), за почту всегда переживаешь особенно, а тут ещё и починить за три минуты не удалось; однако, в конце сделал полную миграцию конфигурации на вторую версию, судя по внешним признакам, даже работает. В общем-то, оба случая вполне могли бы быть предусмотрены где-нибудь в скриптах или, хотя бы, в мануале, но увы, в мануале из интересного было только про suhosin для PHP, а он у меня как раз и не использовался.

Как обычно, ждём новых удивительных релизов.