• Интеграция в проект LVGL графической библиотеки для микроконтроллеров

      LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


      Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство
      Читать дальше →
    • Mockito и как его готовить

      • Tutorial

      О статье


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


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

      Читать дальше →
    • 15 лучших и крупнейших библиотек иконок

      • Перевод


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

      Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
      И, нет, это не рейтинг — список маркированный, а не нумерованный.
      Читать дальше →
    • Блокировать трекеры рекламы на сетевом уровне сложно, но возможно

      • Перевод
      image


      Когда вы выходите в интернет или используете приложение, множество компаний спокойно отслеживают каждое ваше действие. Некоторые, такие как Newrelic, достаточно невинны, они отслеживают ошибки пользователей и чтобы быстрее на них реагировать. Но другие, такие как Facebook Audience Network, собирают огромное количество данных как с ваших собственных устройств, так и с устройств в вашей сети.

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

      Пытаясь защитить свою частную жизнь, я решил, что лучше всего использовать ядерный метод: блокировать рекламу и трекеры во всей моей домашней сети.
      Читать дальше →
    • Структуры данных в Java. Полезные методы вспомогательных классов

      Привет, habr!

      Я Software Engineer в EPAM. Более 8 лет я работаю с legacy-кодом, написанном на языке Java (предвосхищая комментарии, отмечу, что понимание и терпимость к legacy началась задолго до EPAM, в заключении вы найдёте ответ, почему). Часто в работе я сталкивался с одними и теми же повторяющимися недочетами. Это побудило меня написать заметку, и начать я хочу со структур данных и вспомогательных классов Collections и Arrays. Почему-то некоторые разработчики пренебрегают их использованием, и напрасно

      Разработчику на Java часто приходится сталкиваться с различными структурами данных. Это могут быть массивы, всевозможные коллекции или реализации Map. Казалось бы, всё с ними ясно и понятно, но существует несколько мелочей, о которые легко споткнуться.

      Эта заметка может оказаться полезной как новичкам, которые ещё не знают этих нюансов, так и опытным разработчикам, которые могли что-то из этого забыть.

      image
      Photo by ammiel jr on Unsplash

      КАТ


      Сразу хочу оговориться, что этот материал актуален для Java 8. Понятно, что какие-то вещи уже сделаны лучше в Java 9+, но в большинстве крупных проектов чаще всего используется версия Java 8 (а иногда и Java 6).
      Читать дальше →
    • Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 2 — Компиляция с Emscripten

      • Перевод
      • Tutorial



      Список переведённых частей серии:


      1. Приготовления
      2. Компиляция с Emscripten (вы тут)
      3. Конвертация avi в mp4


      Начиная с этой части, материал будет посложнее, так что не стесняйтесь гуглить по ходу чтения, если не понимаете, что происходит.


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


      В этой части мы разберём:


      1. Как настроить окружение для Emscripten в Docker
      2. Использование emconfigure и emmake 
      3. Как решать проблемы, возникающие при компиляции FFmpeg с Emscripten

      Читать дальше →
      • +16
      • 2,7k
      • 1
    • Автоматизация тестирования с использованием Selenide через Selenoid в Docker контейнере

        Данная статья будет полезна начинающим QA специалистам, а также тем, кто интересуется особенностями и возможностями таких популярных фреймворков тестирования, как Selenide и Selenoid.

        Здесь мы рассмотрим некий базовый проект на Selenium. Увидим, как подключить Selenium и TestNG к проекту, пример Page Object с описанием элементов страницы и используемых методов.

        Далее, знакомство с Selenide: рассмотрим сам фреймворк, его основные возможности и преимущества, добавление Selenide в тестовый проект. Рассмотрим работу с элементами, проверки и ожидания, доступные в Selenide.

        И наконец, подключим к своему проекту фреймворк Selenoid для запуска тестов в Docker контейнере и вне его.


        Читать дальше →
        • +8
        • 13,2k
        • 4
      • Allure Server meetup: видеозаписи докладов



          В конце марта в питерском офисе Wrike прошел Allure server meetup. В несколько часов удалось поместить концентрированную информацию по новому инструменту Allure server, по современным практикам работы с тестовой документацией и автотестами и по интересному опыту взаимодействия тестирования компании Wrike и нового вендора на рынке TMS систем.

          Для тех, кто не смог прийти, мы публикуем видеозаписи докладов.
          Смотреть
          • +18
          • 4,7k
          • 7
        • Модульное тестирование Json сериализации в Spring Boot



          Введение


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

          В данной статье будет рассмотрен один из сценариев, когда нам может понадобиться учесть особенности бизнес-логики приложения при сериализации (сценарий округления денежных сумм), на примере которого мы столкнёмся с механизмом сериализации в Spring Boot, а также описан возможный способ тестирования.
          Читать дальше →
        • Довольно вычурные «Начала» Евклида в TeX-е



            «какая-то странная антикварная х██ня, написанная ирландским кулибиным в 1847 ну, хорошо, что и такая бывает, конечно» Миша Вербицкий

            В 16-м году мне на глаза попались «Начала» Евклида в интерпретации Оливера Бирна. Фишка этой книги в том, что вместо буквенных обозначений навроде «треугольник ABC» там прямо в текст помещаются миниатюры частей построения, то есть, например, картинка с соответствующим треугольником. Насколько сделать такую книгу, как можно представить, было адовой работой в середине XIX века, настолько же легко, с правильными инструментами, это должно бы быть теперь. И, в общем, решил я в этом убедиться наверняка.
            Читать дальше →
          • Математики обнаружили идеальный способ перемножения чисел

            • Перевод

            Разбивая крупные числа на мелкие, исследователи превысили фундаментальное математическое ограничение скорости



            Четыре тысячи лет назад жители Вавилонии изобрели умножение. А в марте этого года математики усовершенствовали его.

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

            «Все думают, что метод умножения, который они учили в школе, наилучший, но на самом деле в этой области идут активные исследования», — говорит Йорис ван дер Хувен, математик из Французского национального центра научных исследований, один из соавторов работы.
            Читать дальше →
          • Логирование HTTP запросов в Spring Boot с использованием Бобины

              Приветствую, дорогие друзья!


              Сегодня я хочу продемонстрировать потрясающий пример того, как Бобина может помочь в очень распространённой ситуации — логирование HTTP запросов и ответов в Spring Boot.


              Даже больше! Мы будем логировать только сообщения HTTP в отдельные файлы.

              Читать дальше →
            • Spring Data JPA: доводим напильником

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

                Читать дальше →
                • +7
                • 20,9k
                • 6
              • 12 приемов работы с JavaScript, которых нет в большинстве туториалов

                • Перевод


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

                В этой статье я покажу 12 отличных способов улучшить и ускорить свой JavaScript-код. В большинстве случаев они универсальны.
                Читать дальше →
              • Bonsai: фамильный вики-движок

                  Лирическое вступление


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

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



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

                  Идеальным решением для хранения семейных данных мне представлялся гибрид вики-движка и фотоальбома. Готовых подходящих решений не оказалось, поэтому пришлось написать собственный. Он называется Bonsai и доступен с открытым кодом по лицензии MIT. Дальше будет история о том, как он устроен и как им пользоваться, а также история его разработки и немного ДРАМЫ.
                  Читать дальше →
                • Начинаем изучать микроконтроллеры на примере STM32F030f4p6



                  0. Перед прочтением статьи


                  Данная статья преследует следующие цели:

                  1. показать, как работать конкретно с этой платой;
                  2. показать подход, с помощью которого можно написать программу мигания светодиодом, опираясь исключительно на документацию и логику;
                  3. изложить материал языком, понятным человеку, слабо знакомому с микроконтроллерами.

                  Код получится минималистичным с точки зрения использования дополнительных файлов — мы не будем подключать ни один файл, кроме тех, что нужны для сборки пустой, но валидной, прошивки. Т.е. на базе кода прошивки, которая работает, но ничего полезного не делает.
                  Читать дальше →