Сколько не пытался юзать меркуриал, долго плевался и возвращался на гит. Зачем там дублирование хешей номерами коммитов, для застарелых свнщиков? А ветки там тоже такую боль приносят, чтобы привычнее после свна было? Не знаю, может мой мозг съеден гитом, но мекруриал мне кажется каким-то поломанным и недоделанным подобием гита.
Если у вас такие вопросы, вы не понимаете гит. Гит отслеживает не файлы, а изменения в них. И это круто, потому что когда ты спрашиваешь «откуда-куда скопирован файл», то скорее всего инетерсен не сам файл, а «откуда взялся здесь этот кусок кода?», и гит даёт ответ на этот вопрос (см. man git-log, флаг -S).
Как только понимаешь, что важен сам код, а не файлы, в которых он содержится, проблемы исчезают. За всё многолетнее использование гита никогда не было проблем с переименованием-копированием файлов. Такой вопрос, как у вас, возник только в самом начале знакомства с гитом, года 4 назад, но как только я разобрался с тем, что делает гит, вопрос исчез и больше никогда меня не беспокоил. Даже более того, поменялось отношение к коду, так что гит сделал меня лучним программистом.
Да, а «переименование/копирование» — это состояние файлов, и это не так важно, как кажется. Впрочем, гит вычисляет эти категории изменений на лету по «похожести» файлов.
Мне docopt больше нравится тем, что с его помощью можно десериализовать аргументы в готовую структуру с нужными типами. Как это сделать с помощью clap без головной боли я так и не понял. Ну лениво мне самому аргрументы в инты парсить, гораздо проще сделать так:
Нет, если используете модуль raw. Ну и потом питон в минимальном виде не так уж тяжёл, раз уж вы уже ssh-сервер ставите. А если не используете всякие экзотические модули, то и дополнительных либ к питону ставить не нужно.
Как старый пользователь zsh, не могу не упомянуть zsh-syntax-highlighting (есть в репозиториях арчика), который добавляет подсветку синтаксиса в командную строку zsh, наподобие fish.
Да, монада. Только монада выраженная через тип явно объявляет требуемую семантику компилятору, а исключение (которое может вылететь откуда угодно и когда угодно) — нет. В Java пытались это решить с помощью checked exceptions и ключевого слова throws, но побоялись пойти до конца и оставили лазейку в виде unchecked exceptions. Так что в случае исключений компилятор программисту не помощник, программист один в поле воин, а в случае явных типов (вроде Option или Result) компилятор друг и союзник.
Не всегда помогают. Они предусматривают только то, о чём подумал программист. Гораздо важнее то, о чём программист не подумал, и строгая типизацию + функциональный подход здесь спасают, т.к. заставляют компилятор «думать» о том, о чём программист (To err is human, кстати) может и забыть.
Основное отличие типа Result от простого кода ошибки — типобезопасность. Этот тип (точнее семейство типов Result<T, E> в общем случае) сохраняет тип ошибки, что позволяет проверять валидность кода во время компиляции. С простыми кодами ошибок в виде int это не прокатит, т.к. компилятор не знает семантическую нагрузку этого int-а.
P.S. Я не претендую на знание C#, но довольно давно пишу в функциональном стиле в т.ч. на Scala, Rust, Python и немного баловался с Haskell, так что в этой области чувствую себя относительно хорошо.
Извините, но здесь именно вы злоупотребляете нерусскими словами. Автор поста только неологизм «грок» использовал, остальной пост на хорошем русском языке. Я понимаю цель такого поведения, хотите довести до абсурда. Только вот это ваши комментарии заставляют плакать кровавыми слезами, а не статья.
«Грокать» — довольно старый неологизм, существующий и в русском языке, введён переводчиком как калька с английского «to grok» из книги Роберта Хайнлайна «Чужак в чужой стране», означает одновременно «понять что-либо во всей своей полноте и объёме» и «съесть». Так что это слово не требует перевода, не надо тут размусоливать.
Всё правильно сделали. Пусть будут последовательными. Почему не заблокирован сайт ООН? Почему медэнциклопедии ещё доступны? Почему медицинские сайты открываются?
Самое плохое, что можно сделать, это скрыть истинную информацию от человека, потому что отсутствие чёткого знания порождает мистификации, и открывает ум для внешних манипуляций, делает человека более податливым для контроля. Лично я собираюсь честно рассказать своим детям, что такое наркотики, как они влияют на организм человека, чтобы потом, когда, не дай бог, к ним подкатит дилер в подворотне, они знали, с чем имеют дело, и не повелись на его уговоры.
Я вот до этого комментария даже понятия не имел о такой вещи, как этот ваш «чарас», даже слова такого не знал, чтобы искать. Теперь знаю, спасибо. Внимание, вопрос! Какой смысл в блокировке, если она действует наоборот — просвещает людей по поводу вещей, которые пытается скрыть?
Как только понимаешь, что важен сам код, а не файлы, в которых он содержится, проблемы исчезают. За всё многолетнее использование гита никогда не было проблем с переименованием-копированием файлов. Такой вопрос, как у вас, возник только в самом начале знакомства с гитом, года 4 назад, но как только я разобрался с тем, что делает гит, вопрос исчез и больше никогда меня не беспокоил. Даже более того, поменялось отношение к коду, так что гит сделал меня лучним программистом.
Да, а «переименование/копирование» — это состояние файлов, и это не так важно, как кажется. Впрочем, гит вычисляет эти категории изменений на лету по «похожести» файлов.
См. githowto.com/changes_not_files
P.S. Я не претендую на знание C#, но довольно давно пишу в функциональном стиле в т.ч. на Scala, Rust, Python и немного баловался с Haskell, так что в этой области чувствую себя относительно хорошо.
P.S. А книгу рекомендую к прочтению.
на первой же странице: medmore.ru/medicine.php?id=28497