• Исповедь docker хейтера

    Я должен признаться. Я ненавижу docker. Всей своей душой. Это самая ужасная софтина, которую я видел за последние 10 лет.


    С одной стороны, я очень уважаю одноименную компанию. Ребята из Docker Inc. реально популяризировали контейнеризацию. Теперь о ней не знает только ленивый. С другой стороны, ничего принципиально нового они не изобрели — контейнеризация на момент, когда Docker "выстрелил", уже существовала более 30 лет (начиная от chroot, вспомним еще jails и zones, ну, и наконец-то — namespaces & cgroups).


    Круто, что docker реально ускоряет разработку во множество раз. Если вести ее правильно, то даже без потери в качестве. В любом случае, docker здесь, от него не деться и приходится им пользоваться.


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


    Disclaimer: все написанное ниже является личным мнением автора и может как отражать реальность, так и не отражать реальность. Материал строго провокационного характера и основной целью является не унизить или обидеть кого бы то ни было, а скорее заставить людей включить голову и осознать масштабы глубин (с).

    Читать дальше →
  • Выкладка нетрадиционной ориентации



      Все, кому приходится иметь дело с вёрсткой, знают что гриды и flexbox давно захватили CSS, позволяют очень удобно организовать классическую выкладку хедер-контент-сайдбар-футер, списки карточек, masonry и так далее. Но их настоящая крутизна не в удобстве использования, а в бескрайних возможностях, которые они открывают. Я покажу и объясню мой любимый трюк, который позволяет верстать за рамками привычной вертикально-горизонтальной прямоугольной сетки, и выглядит это очень круто.
      Читать дальше →
      • +34
      • 6,2k
      • 2
    • Что такое автоматизация маркетинга и как она влияет на развитие бизнеса

      Сегодня различные предприятия активно внедряют автоматизацию маркетинга в свой бизнес. По данным компании по распространению пресс-релизов Cision PR Newswire к 2027 году отрасль автоматизации маркетинговых процессов достигнет отметки 8,42 миллиарда долларов. Это говорит о том, что автоматизация станет важной составляющей продвижения брендов на рынке, и без нее компании перестанут быть конкурентоспособными.

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

      Читать далее
    • 9 лет в монолите на Node.JS

        монолит от https://reneaigner.deviantart.com


        Неделю назад я выступал на митапе по Node.JS, и многим обещал выложить запись выступления. Уже потом я понял, что мне не удалось вместить в регламентированные полчаса некоторые интересные факты. Да и сам я больше люблю читать, а не смотреть и слушать, поэтому решил выложить выступление в формате статьи. Впрочем, видео тоже будет в конце поста в разделе ссылок.


        Рассказать я решил про набившую оскомину тему — жизнь в монолите. Об этом на хабре уже есть сотни статей, тысячи копий сломаны в комментах, истина давно погибла в спорах, но… Дело в том, что у нас в OneTwoTrip есть весьма специфический опыт, в отличие от многих людей, которые пишут про некие архитектурные паттерны в вакууме:


        • Во-первых, нашему монолиту уже 9 лет.
        • Во-вторых, всю жизнь он провёл под хайлоадом (сейчас это 23 млн запросов в час).
        • А в NaN-ых, мы пишем наш монолит на Node.JS, который за эти 9 лет изменился до неузнаваемости. Да, мы начинали писать на ноде в 2010, безумству храбрых поём мы песню!

        Так что всякой специфики и реального опыта у нас довольно много. Интересно? Поехали!

        Читать дальше →
      • ENTRYPOINT vs CMD: назад к основам

        • Перевод

        Construction


        Название ENTRYPOINT всегда меня смущало. Это название подразумевает, что каждый контейнер должен иметь определенную инструкцию ENTRYPOINT. Но после прочтения официальной документации я понял, что это не соответствует действительности.

        Читать дальше →
      • Демистификация Join в Apache Spark

        • Перевод

        Операции Join часто используются в типовых потоках анализа данных для корреляции двух наборов данных. Apache Spark, будучи унифицированным аналитическим движком, также обеспечил прочную основу для выполнения широкого спектра сценариев Join.

        На очень высоком уровне Join работает с двумя наборами входных данных, операция выполняется путем сопоставления каждой записи данных, принадлежащей одному из наборов входных данных, с каждой другой записью, принадлежащей другому набору входных данных. При обнаружении совпадения или несовпадения (в соответствии с заданным условием) операция Join может либо вывести отдельную сопоставляемую запись из любого из двух наборов данных, либо объединенную (Joined) запись. Объединенная запись представляет собой комбинацию отдельных сопоставляемых записей из обоих наборов данных.

        Читать далее
      • 1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей



          Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит по всем нашим микросервисам. Класс. Но, допустим, у вас совсем маленький проект и вы можете себе позволить лишь VPS минимальной конфигурации. Реально ли на ней сделать мониторинг не хуже, чем у больших проектов? Я решил – надо попробовать.
          Читать дальше →
        • RabbitMQ против Kafka: два разных подхода к обмену сообщениями

            В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



            Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

            Читать дальше →
          • Как померить Node.js-приложение, если у тебя лапки. Доклад Яндекса

              Неважно, каких размеров ваше приложение на Node.js. Неважно, как хорошо вы написали код. Вам просто необходимо знать, как он работает в продакшене. Разработчик интерфейсов в поисковом портале Яндекса Алексей Попков сделал доклад о том, как выяснить, что происходит внутри запущенного процесса.

              Что нужно, чтобы заглянуть в этот чёрный ящик? Ответ — опенсорс, все бесплатно, бери и внедряй.

              — Всем привет. Немножко про то, кто я такой. Меня зовут Лёша, я разрабатываю внутренние сервисы Яндекса. Уже третий год делаю всякие Node.js-приложения, менторю разработчиков в Яндекс.Практикуме и измеряю все, до чего дотягиваются руки, потому что это весело.
              Читать дальше →
            • Полезные консольные Linux утилиты

                В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


                Осторожно много скриншотов. Добавил до ката утилиту binenv.


                binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

                Читать дальше →
              • Понимание (всех) «модульных» форматов и инструментов JavaScript



                  Доброго времени суток, друзья!

                  Представляю вашему вниманию перевод статьи «Understanding (all) JavaScript module formats and tools» автора Dixin.

                  При создании приложения часто возникает желание разделить код на части, логические или функциональные блоки (модули). Однако JavaScript изначально не имел поддержки модулей. Это привело к появлению различных модульных технологий. В настоящей статье обсуждаются все основные понятия, шаблоны, библиотеки, синтаксис и инструменты для работы с модулями в JavaScript.

                  Читать дальше →
                  • +18
                  • 16,5k
                  • 5
                • Font size бесполезен, давайте это исправим

                  • Перевод
                  Что происходит, когда вы указываете в редакторе "font_size": 32? Я бы вам всё равно рассказал, но хорошо, что спросили.

                  Попробуем догадаться. Я пользуюсь Sublime Text 4 под macOS:


                  Если мы измерим сами буквы, то нигде не найдём числа 32:

                  32 — это не ширина и не высота буквы, и не высота заглавной буквы, и не рост строчных знаков, и не высота верхних или нижних выносных элементов. Что за дела?
                  Читать дальше →
                • Создаем свою инспекцию для IDEA

                    В статье показано, как быстро можно сделать свою полноценную инспекцию для IDEA для языка Java. В инспекции будем проверять, что переопределены методы equals, hashСode для классов, используемых в качестве ключа в HashMap. Писать будем на Kotlin.

                    Читать далее
                  • 25 актуальных вопросов работодателю + комментарии разработчика

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


                      Мы опросили знакомых IT-специалистов, разработчиков и тимлидов, как проверить компанию во время собеседования. Собрали каверзные вопросы, на которые нельзя отделаться стандартной отговоркой — надеемся, они вам пригодятся. Список не может быть полным: каждый ищет свою работу мечты, к тому же удалёнка вносит коррективы :) Поэтому добавляйте свои варианты в комментарии! Кстати, есть хорошая идея — задавать эти вопросы разным интервьюерам и сравнивать ответы.




                      Читать дальше →
                    • «Переверни игру»: тем, кто стримит лоу-фай музыку, не нужны ни деньги, ни карьера в музыкальной индустрии

                        В 70-е начинающие музыканты не могли позволить себе дорогостоящую аудиотехнику и аренду студий, поэтому качество их записей оставляло желать лучшего. Так появился «lo-fi», к которому имели отношение даже ранние The Beatles. Однако термин быстро переосмыслили — в эпоху кассет за ним стояли те, кто намеренно отказывался от борьбы за чистый звук и видел в этом особый способ самовыражения. Но к моменту появления YouTube-стримов, лоу-фай стал совершенно другим, и под ним уже понимали самодостаточное музыкальное направление.

                        Поговорим об этом подробнее и обсудим, как обстоят дела у лоу-фай стримеров.

                        Читать далее
                      • Что послушать, когда пишешь код: бесплатные миксы, заглушка для второго монитора и эмбиент-плеер

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

                          Читать далее
                        • Миллион с нуля за 2 года

                          Всем привет.

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

                          Читать далее
                        • Что не так с WebAssembly?

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

                          WebAssembly, в теории, может позволить кому угодно писать низкоуровневый код, выполняющийся в браузере, в безопасном виртуальном окружении. И, что ещё интереснее, технология WASM (сокращение от WebAssembly) была спроектирована как цель компиляции для других языков, позволяя коду, который обычно выполняют в серверной среде (например — коду, написанному на C или на C++), компилироваться в соответствующий формат и выполняться в браузере.



                          У WASM был огромный потенциал и невероятные перспективы. Что же пошло не так? Почему WASM, через 3 года после релиза, ещё не используется в каждом веб-проекте? Есть ли у WASM будущее в веб-разработке? Поищем ответы на эти вопросы.
                          Читать дальше →
                        • Как выбрать тимлида

                            Будучи разработчиком, я выработал в себе привычку читать доки и мануалы систематически и в большом объеме. Сейчас я руковожу отделом iOS разработки в Cardsmobile и практически не пишу код, но привычка осталась. Статей про менеджмент написано не меньше, чем по программированию. И начитавшись публикаций на очередную такую тему, я кое-что понял: зря я не читал их, пока активно кодил. Ведь в моей команде всегда есть как минимум один менеджер и хорошо было бы разбираться в том, что он делает. Хотя бы немного. Ведь если он делает свою работу плохо, то лучше подыскать нового?       

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

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

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

                            Читать далее