• Малоизвестные Git-команды

    • Перевод


    У Git есть строгие обязательства по обратной совместимости: многие продвинутые возможности скрыты за разнообразными опциями, а не применяются как поведение по умолчанию. К счастью, Git также поддерживает и алиасы, так что вы можете создавать свои собственные команды, которые делают всю характерную для Git магию. Под катом — подборка полезных (или как минимум забавных) алиасов, определённых в моём .gitconfig.
    Читать дальше →
  • Гомельское Архитектурное Сообщество

      В последние годы значительно вырос спрос на специалистов в области проектирования и дизайна систем. Что и не удивительно, потому что приложения и системы с каждым годом становятся все сложнее. Размер команды и команд участвующих в одном проекте растет. Бизнес (заказчик) хочет недорогих решений и быстро. С этим всем приходится сталкиваться Архитектору Программных Решений (Solution Architect или сокращенно SA). Наша индустрия хоть и молода, но уже накопила множество готовых решений, начиная от библиотек и фреймворков до подходов, практик и паттернов.

      На каждом проекте мы принимаем большое количество решений, от правильности которых зависит успешность проекта. На все эти вопросы отвечает Solution Architect.
      Читать дальше →
      • +10
      • 3,5k
      • 7
    • Чем хороши свободные монады

      Предлагаю читателям «Хабрахабра» перевод статьи «Why free monads matter».

      Интерпретаторы


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

      Преимущества такого разделения очевидны. Давайте попытаемся построить абстракцию, отображающую суть синтаксического дерева. Лучше начать с конкретного примера. Для этого мы спроектируем наш собственный игрушечный язык и попытается оформить его в виде типа данных.
      Читать дальше →
      • +23
      • 12,1k
      • 2
    • Стражи ночи

      • Перевод
      Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

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

      Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
      Читать дальше →
    • Встречайте бесплатный и свободный шрифт Imperial

        Дизайнер-шрифтовик Иван Гладких, более известный как Джованни Лемонад (Jovanny Lemonad), сегодня объявил о выходе нового шрифта «Imperial», отличающегося одновременным употреблением квадратных, круглых и треугольных форм.

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

        [плакат со шрифтом Imperial]
         
        Читать дальше →
      • Удачная модель ветвления для Git

        • Перевод
        Перевод статьи Vincent Driessen: A successful Git branching model

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



        В качестве инструмента управления версиями всего исходного кода она использует Git.

        Читать дальше →