• Памятка по борьбе с алкоголем или Как пережить фуршеты

    • Tutorial
    Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

    Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

    Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

    Читать дальше →
  • Надоело писать PropertyDrawer в Unity? Есть способ лучше

    Не так давно я участвовал в разработке игры на Unity. Много времени уделял инструментам для коллег: редактор уровней для геймдизайнера, удобные базы данных для художников.


    По понятным причинам, в программировании интерфейсов под Unity мы не всегда можем использовать автоматическую разметку (удобные средства GUILayout), и нередко приходится вручную нарезать прямоугольники и рисовать интерфейсы средствами класса GUI. Эта работа утомительна, связана с большим количеством ошибок, а код получается сложным в поддержке. Со временем, возникла привычная каждому программисту мысль: напишу свой велосипед! "Должен быть способ лучше!". За подробностями приглашаю под кат.



    Картинка для привлечения внимания взята отсюда.

    Читать дальше →
  • Когда Феникс успел убить Рейлс?

    • Translation


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


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


    Ответ на вопрос из заголовка и масса интересного об Эликсире сразу же под катом.

    Читать дальше →
  • 7 правил хорошего тона при написании Unit-тестов


      “Хорошими манерами обладает тот,
      кто наименьшее количество людей
      ставит в неловкое положение.”
      Дж. Свифт


      Привет, коллеги! Сегодня я бы хотел поговорить о Unit-тестировании и некоторых “правилах” при их написании. Конечно, они неформальные и не обязательны к выполнению, но при их соблюдении всем будет приятно и легко читать и поддерживать тесты, которые вы написали. Мы в Wrike видели достаточно Unit-тестов, чтобы понять основные проблемы, которые возникают при их написании и поддержке, и сформулировать несколько правил для их предотвращения.

      Читать дальше →
    • Сударь, ваша команда — не команда

        За свои 12 лет работы в сфере разработки ПО, мне посчастливилось поработать в команде только два раза. Хотя я сменил порядка десяти мест работы. Но попробовав раз, ем и сейчас… Т.к. я не жадный, и готов своими достижениями делиться с сообществом, то решил я предпринять попытку вывести из равновесия неумных руководителей, которые до сих пор не осознали важность команды, а также тех руководителей, которые профессионально занимаются самообманом — мол, они строят команду, а на деле — тьфу, а не команда.
        Читать дальше →
      • Шпаргалка с командами Docker

        • Translation
        Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



        Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
        Читать дальше →
      • Измеряем динамику упоминания сущностей в информационном поле



          Сегодня мы покажем дашборд с визуализацией данных о динамике популярных сущностей, засетапим для пользователей хабра отдельный инстанс и дадим на нём возможность следить за собственными показателям, добавив регулярку.
          Читать дальше →
        • Заблуждения Clean Architecture

            Превращаем круги в блоки

            ­­ 


            На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

            Читать дальше →
          • Офшоры и внешнеэкономические сделки: преимущества и подводные камни

              Привет, Хабр! Продолжаю публикацию своей книги о юридических аспектах IT-бизнеса. Сегодня — об офшорах.



              Книга «Закон стартапа»:

              1. Стартапер vs. предприниматель
              2. Выбираем форму
              3. Регистрация
              4. Корпоративное управление
                Как юридически строится компания
              5. Текущая работа
                Договоры и как они работают
                Как проверить партнера по открытым источникам
              6. Налоги
                Что платит IT-бизнес в России?
              7. Государственная поддержка
              8. Цикл стартапа
                Как (в общем) работает венчурное инвестирование
              9. Венчурные сделки
              10. Венчурные фонды
              11. Интеллектуальная собственность
              12. Офшоры и ВЭД
                Преимущества и подводные камни офшоров

              Читать дальше →
            • Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

              • Translation
              Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

              image
              Читать дальше →
            • «Пятничный формат»: Как погасить пламя или 8 верных способов загубить разработку

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

                Читать дальше →
              • Июльские бесплатные печеньки для дизайнеров и разработчиков

                  image

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

                  Sketch: Supernova Studio, Qwikly, Sketch Material
                  Web apps: Paper Sizes, Grabient, Canva colors, TypeHero, Abstract
                  Developers stuff: MDB Angular GMD kit
                  Designers stuff: Memphis patterns, Travelisto UI kit, Flow font, Lists.design, WayFX logos
                  Читать дальше →
                • Сети Docker изнутри: связь между контейнерами в Docker Swarm и Overlay-сети

                  • Translation

                  В предыдущей статье я рассказал, как Docker использует виртуальные интерфейсы Linux и bridge-интерфейсы, чтобы установить связь между контейнерами по bridge-сетям. В этот раз я расскажу, как Docker использует технологию vxlan, чтобы создавать overlay-сети, которые используются в swarm-кластерах, а также где можно посмотреть и проинспектировать эту конфигурацию. Также я расскажу, как различные типы сетей решают разные задачи связи для контейнеров, которые запущены в swarm-кластерах.


                  Я предполагаю, что читатели уже знают, как разворачивать swarm-кластеры и запускать сервисы в Docker Swarm. Также в конце статьи я приведу несколько ссылок на полезные ресурсы, с помощью которых можно будет изучить предмет в деталях и вникнуть в контекст обсуждаемых здесь тем. Опять же, буду ждать ваших мнений в комментариях.

                  Читать дальше →
                • Создание движка для блога с помощью Phoenix и Elixir / Часть 9. Каналы

                  • Translation
                  • Tutorial


                  От переводчика: «Elixir и Phoenix — прекрасный пример того, куда движется современная веб-разработка. Уже сейчас эти инструменты предоставляют качественный доступ к технологиям реального времени для веб-приложений. Сайты с повышенной интерактивностью, многопользовательские браузерные игры, микросервисы — те направления, в которых данные технологии сослужат хорошую службу. Далее представлен перевод серии из 11 статей, подробно описывающих аспекты разработки на фреймворке Феникс казалось бы такой тривиальной вещи, как блоговый движок. Но не спешите кукситься, будет действительно интересно, особенно если статьи побудят вас обратить внимание на Эликсир либо стать его последователями.

                  В этой части мы воспользуемся каналами из Phoenix для того, чтобы оживить комментарии.

                  Читать дальше →
                • Руководство начинающего программиста графических шейдеров

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

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

                  image
                  Сцена в Minecraft до и после применения нескольких шейдеров.

                  Цель этой инструкции


                  Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
                  Читать дальше →
                • Деплой Elixir-приложений

                  • Tutorial

                  Deploy Exilir Applications


                  Данная статья участвует в конкурсе от Wunsh.ru — русскоязычное сообщество Elixir. Практики и просто сочувствующие — присоединяйтесь!


                  В статье рассмотрен процесс настройки приложения для релиза на удалённый сервер. Для такого не лёгкого дела в мире Elixir существует два хороших проекта, первый это Distillery, которой делает билд приложения и второй это Edeliver, которой позволяет осуществлять горячую замену кода. Ниже приведены базовые инструкции по использованию этих двух библиотек на примере простейшего Elixir-приложения. А также статья расскажет каким образом можно улучшить деплой благодаря использованию docker контейнеров.


                  Distillery


                  Distillery предназначен для автоматизации генерации релизов Elixir проектов! Является наследником Exrm от того же автора. Очень прост в использовании.


                  Первым делом необходимо добавить distillery в зависимости проекта. А после выполнить mix deps.get.

                  Читать дальше →
                • Бирюзовые организации: примеры и общие ответы

                    Живу и тружусь в основном в Иркутске: в двух организациях, которые сложно назвать классическими. Одна относительно крупная: на примерно, т.к. есть приходящие фрилансеры, 20 человек оборот составляет несколько десятков миллионов рублей в месяц, а вторая — хобби, которое с двумя товарищами «по цеху» пытаемся монетизировать.

                    На Хабре есть статьи, посвящённые так называемым бирюзовым (по поводу цвета идут споры: кто-то развивает идею до изумрудных, кто-то останавливается на жёлтых, но всё это частности, и статья не об этом) организациям. Их же называют: синергетическими, холакратическими (не стоит путать с охлократическими). Есть и посты предостерегающие. И всё же…


                    Читать дальше →
                  • Все врут или интервью, которого не было



                      О плюсах интервью с пользователем написано много, поэтому обойдем эту тему стороной. Хочу описать тот неловкий момент, когда интервью вроде и было, а пользы от него вроде и не было.

                      Кто смотрел сериал «Доктор Хаус», тот вспомнит, что гениальный хромой врач советовал не верить ни одному слову пациентов.

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

                      Примеры и выводы будут как свои собственные, так и заимствованные.
                      Читать дальше →
                    • Безболезненное разрешение Merge конфликтов в Git

                      • Tutorial

                      Предлагаю читателям "Хабрахабра" перевод публикации "Painless Merge Conflict Resolution in Git"
                      из блога blog.wuwon.id.au.


                      В моей повседневной работе, часто приходится иметь дело со множеством git ветвей (branch). Это могут быть ветви промежуточных релизов, ветви с устаревшим API находящиеся на поддержке для некоторых клиентов, или ветви с экспериментальными свойствами. Лёгкость создания ветвей в модели Git так и соблазняет разработчиков создавать все больше и больше ветвей, и как правило бремя от большого количества ветвей становится очень ощутимым, когда приходится все эти ветви поддерживать и периодически делать слияния (merge) с другими ветвями.


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