• Обработка распределенных транзакций в микросервисной архитектуре

    • Translation
    Привет, Хабр!

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

    Приятного чтения!
    Читать дальше →
  • Топ IT-книг прошлого века, которые актуальны до сих пор

      «Физические законы — это не Python, их не изменить в новых версиях, то есть материал в книге (по электронике) будет актуален всегда».
      ne555, из комментариев на Хабре

      image

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

      К счастью, это касается не всех аспектов гик-писательства, например, в сфере электроники наблюдается завидное для других IT-областей постоянство. Поэтому «спаянный» десятилетия назад контент, на котором росли будущие инженеры, зачастую будет актуален для их детей и даже внуков.

      Вдохновившись историей «второго рождения» учебника по электронике 1979 года (а точнее, комментариями к ней), мы решили собрать для вас подборку книг по электронике, которым в 2020 году исполнилось от 25 до 69 лет, но которые при этом не утратили своей актуальности. А чтобы не ограничиваться собственными нейтрально-редакторскими вводными, мы попросили прокомментировать эту подборку победителя «ТехноТекста-2019» в номинации «Научно-популярное», старожила Хабра, разработчика интегральных микросхем для космоса и потомственного инженера Валерия Шункова aka @amartology.

      Осторожно: прочтение книг из этой подборки может вызвать острое желание взяться за паяльник. Вдохновляйтесь, творите и делитесь своим опытом с Хабром, ведь именно по просьбе сообщества мы добавили в список номинаций «ТехноТекста-2020» новую — «Железо и его разработка».
      Читать дальше →
    • Как выбрать красивые цвета для вашей инфографики

      • Translation
      • Tutorial


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

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

      Статья не поможет найти хорошие градиенты или оттенки. Она предназначена для подбора красивых, чётких цветов для различных категорий информации (например, континентов, отраслей промышленности, видов птиц) в линейных, круговых, полосковых диаграммах и так далее.
      Читать дальше →
      • +44
      • 12.3k
      • 5
    • Математика верстальщику не нужна 2: Матрицы, базовые трансформации, построение 3D и фильтры для картинок

      • Tutorial


      В прошлый раз мы говорили о графиках и траекториях для покадровых анимаций, а сегодня речь пойдет про матрицы. Мы разберемся с тем, как строятся базовые трансформации в CSS, SVG и WebGL, построим отображение 3D-мира на экране своими руками, попутно проводя параллель с таким инструментом, как Three.js, а также поэкспериментируем с фильтрами для фотографий и разберемся, что же за магия такая лежит в их основе.

      Напомню, что в этой серии статей мы знакомимся с разными штуками из области математики, которые пугают верстальщиков, но могут быть полезны при решении рабочих задач. Мы стараемся избежать излишней теоретизации, отдавая предпочтение картинкам и объяснению на пальцах, с акцентом на практическое применение во фронтенде. В связи с этим формулировки местами могут быть не совсем точными с точки зрения математики, или не совсем полными. Цель этой статьи – дать общее представление о том, что бывает, и откуда можно начать в случае чего.
      Читать дальше →
    • 50 сайтов для изучения дизайна

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



        Итак, «поехали»:
        Читать дальше →
        • +21
        • 9.1k
        • 2
      • Хранение данных в кластере Kubernetes

        • Tutorial

        Настроить хранение данных приложений, запущенных в кластере Kubernetes, можно несколькими способами. Одни из них уже устарели, другие появились совсем недавно. В этой статье рассмотрим концепцию трёх вариантов подключения СХД, в том числе самый последний — подключение через Container Storage Interface.


        Читать дальше →
        • +20
        • 5.8k
        • 5
      • Пишем движок полнотекстового поиска на Go

        • Translation
        Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

        Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

        Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
        Читать дальше →
      • Математика верстальщику не нужна, или Временные функции и траектории для покадровых 2D анимаций на сайтах


        «Математика верстальщику не нужна!», — говорили они. «Арифметики за 2 класс школы хватит!», – говорили они. «Верстальщик – не программист, так что нечего себе голову забивать точными науками!», — чего только не услышишь на просторах интернета на тему нужности тех или иных знаний при разработке сайтов. И на самом деле в большинстве случаев человеку, который делает интерфейсы, и правда хватает умения складывать числа. Что-то более сложное встречается редко и обычно уже есть готовый алгоритм где-то в недрах NPM. Но сайты – понятие растяжимое, и иногда все же нужно включить голову, и разобраться в каком-то вопросе. И один из таких вопросов – это траектории в 2D анимациях.


        Наблюдая за людьми, которые осваивают JS, и, в частности, покадровые анимации в вебе, я заметил, что у многих возникают сложности, когда нужно сделать движение какого-то объекта на странице по определенной траектории. И, если эта траектория не нарисована заранее заботливым дизайнером в виде path в SVG-картинке, а формулируется какими-то общими словами и ссылками на референсы из сети, или, что еще хуже, должна генерироваться на лету, то задача приводит их в полный ступор. По всей видимости все упирается в тотальное непонимание того, как получить кривую той или иной формы в рамках JS. Об этом мы сегодня и поговорим в формате своеобразной лекции о временных функциях для анимаций в самых разных их проявлениях.


        Мы постараемся избежать излишней теоретизации, отдавая предпочтение картинкам и объяснению всего на пальцах, с акцентом на практическое использование в вопросах 2D анимаций на сайтах. Так что местами формулировки могут быть не совсем точными с точки зрения математики или не совсем полными, цель этой статьи – дать общее представление о том, что бывает, и откуда можно начать в случае чего.

        Читать дальше →
      • Почему выбор из двух — лучшее, что будет в образовании, дизайне и мире

          image

          Гении бывают двух видов: те, кто открывает новые формы, и те, кто улучшает уже существующие. Вся история человечества — это история эргономических улучшений: то перестроит себя за ночь Китай, то отсоциализирует себя за утро Япония, то США приютит в полдень гения, чтобы тот мог воплотить свое видение.
          Читать дальше →
        • Продвинутый уровень визуализации данных для Data Science на Python

          • Translation
          Как сделать крутые, полностью интерактивные графики с помощью одной строки Python

          image

          Когнитивное искажение о невозвратных затратах (sunk cost fallacy) является одним из многих вредных когнитивных предубеждений, жертвой которых становятся люди. Это относится к нашей тенденции продолжать посвящать время и ресурсы проигранному делу, потому что мы уже потратили — утонули — так много времени в погоне. Заблуждение о заниженной стоимости применимо к тому, чтобы оставаться на плохой работе дольше, чем мы должны, рабски работать над проектом, даже когда ясно, что он не будет работать, и да, продолжать использовать утомительную, устаревшую библиотеку построения графиков — matplotlib — когда существуют более эффективные, интерактивные и более привлекательные альтернативы.

          За последние несколько месяцев я понял, что единственная причина, по которой я использую matplotlib, — это сотни часов, которые я потратил на изучение сложного синтаксиса. Эти сложности приводят к часам разочарования, выясняя на StackOverflow, как форматировать даты или добавить вторую ось Y. К счастью, это прекрасное время для построения графиков в Python, и после изучения вариантов, явным победителем — с точки зрения простоты использования, документации и функциональности — является библиотека plotly. В этой статье мы погрузимся прямо в plotly, изучая, как создавать лучшие графики за меньшее время — часто с помощью одной строки кода.
          Читать дальше →
        • Стилизация контейнеров для содержимого веб-страниц

          • Translation
          Содержимое веб-страниц должно быть размещено в некоем элементе, ширина которого, ограничивающая ширину содержимого, позволяет пользователям удобно работать с материалами сайта. Такие элементы называют «обёртками» (wrapper) или «контейнерами» (container). Стилизовать контейнеры средствами CSS можно по-разному. Некоторые способы работы с контейнерами ставят дизайнера перед необходимостью решать достаточно сложные задачи.



          В этом материале я расскажу о контейнерах для содержимого веб-страниц: о том, как они работают, о том, как ими пользоваться, и о тех случаях, когда лучше обойтись без них. Обратите внимание на то, что я буду использовать здесь термины «обёртка» и «контейнер» как равнозначные.
          Читать дальше →
          • +33
          • 8.6k
          • 2
        • Собираем логи с Loki


            Мы в Badoo постоянно мониторим свежие технологии и оцениваем, стоит ли использовать их в нашей системе. Одним из таких исследований и хотим поделиться с сообществом. Оно посвящено Loki — системе агрегирования логов.


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

            Читать дальше →
          • Почему функциональное программирование такое сложное

            • Tutorial

            Я несколько раз начинал читать статьи из серии «Введение в функциональное программирование», «Введение в Теорию Категорий» и даже «Введение в Лямбда Исчисление». Причем и на русском, и на английском. Каждый раз впечатление было очень сходным: во-первых, много новых непонятных слов; во-вторых, много новых определений, которые возникают из ниоткуда; в-третьих, совершенно непонятно, как это использовать.


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


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

            Читать дальше →
          • Российский fair use: где лежит граница копирайта?

            Снова полыхает обсуждение авторских прав. Люди порицают авторские права за их тотальность и глухоту. Давайте посмотрим, что всё-таки можно делать в России. Какой ты, российский fair use?

            Книги
            Да-да, иногда можно ставить портрет на обложку!
            (РИА Новости, Wikimedia Commons, CC-BY-SA)


            В законе много запретов, однако сделан и целый ряд льгот. Предлагаю путеводитель по этим льготам.
            Читать дальше →
          • Как создать карту московских парковок с помощью Kepler.gl

            • Tutorial

            Несколько месяцев назад вышла первая версия Kepler.gl — нового Open Source инструмента для визуализации и анализа больших наборов гео-данных.


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




            Но сперва несколько слов о том, кто и зачем создал Kepler.gl
            Читать дальше →
          • 7 недостающих факторов в подходе 12 Factor App

            • Translation


            Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения, запускаемые в Kubernetes.

            Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 факторов (они поддерживаются моделью оркестровки контейнеров Kubernetes).

            Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
            Читать дальше →
          • Самый легкий способ изучения английского с помощью видео TED

            • Tutorial
            Это немного адаптированный кросс-пост* статьи Самый легкий способ изучения английского с помощью видео TED с моего персонального сайта (сокращена небольшая часть в конце статьи, непосредственно не касающаяся TED).

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

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

            Ниже показаны настройка мобильного приложения TED (iOS или Android) и страницы Youtube с видео TED таким образом, чтобы отображались субтитры на двух языках. Вывод двойных субтитров в мобильном приложении TED настраивается в его опциях.



            Теперь реализуем все это на десктопном компьютере в Youtube, например для этого видео (все видео TED также доступны на Youtube каналe TED).
            Читать дальше →
          • Книгообзор: Голден Кришна. «Хороший интерфейс — невидимый интерфейс»

              Сегодня предлагаем обзор книги автора с чудесным именем Голден Кришна, одно время работавшего на должности ведущего дизайнера Samsung. Эта небольшая, на 250 страниц книга, вышедшая в 2016 году, стала бестселлером и рекомендуется не только дизайнерам, но и вообще инженерам, программистам и менеджерам. Я считаю ее особенно актуальной для разработчиков устройств Интернета вещей.

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

              Какое же решение? Оно состоит в том, чтобы вернуться к истокам, к изначально правильным идеям, о которых задумывались еще в 80-е годы. Концепция Голден Кришны носит название NoUI, но это, конечно, скорее броский лозунг. Он не призывает отказаться от интерфейса вообще, но переосмыслить его в пользу более естественных, более минималистичных, более чистых и более осязаемых интерфейсов. После выхода книги многие компании начали принимать этот метод на вооружение, и таких устройств стало больше — я расскажу про это с картинками и примерами.

              Источник: Как развиваться Junior дизайнеру
              Читать дальше →
            • Как не пополнить ряды стремных специалистов, если ты Data Scientist


                Хабра-сообщество провело еще одно интервью в нашем образовательном проекте: прямых эфирах c ребятами из IT, которые отвечают на ваши вопросы в формате живого общения.

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

                В начале недели наши вопросы отвечал Борис Янгель — ML-инженер Яндекса, который участвовал в создании мозгов «Алисы», а теперь делает беспилотные автомобили. 

                Боря рассказал о том, как стать крутым Data-Scientist, как парашютный спорт помогает ему в работе, почему конференции по ML бесполезны и ответил на недавний пост разгневанного отца про то, как Алиса рекомендовала видео с историями убийств ребенку.
                Читать дальше →
                • +44
                • 17.5k
                • 4
              • Интересные CSS-находки в дизайне Twitter

                • Translation
                Хочу в очередной раз рассказать о результатах исследования дизайна сайта, который привлёк моё внимание. В прошлый раз я писал о CSS-механизмах, лежащих в основе нового дизайна Facebook. А теперь мне стало любопытно исследовать CSS-код Twitter. Новый дизайн Twitter появился почти год назад. В CSS-коде Twitter я нашёл много интересного: кое-что кажется мне просто замечательным, а кое-что — странным.


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