• Пайка компонентов 0201. Слабонервных просьба удалиться от экранов

      Доброго времени суток, Хабр!



      Хочу поделиться опытом пайки плат. Также затрону тему установки совсем маленьких компонентов с типоразмером 0201.
      Читать дальше →
    • Что такое VPS/VDS и как его купить. Максимально внятная инструкция

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

        Не гадайте на ромашке — читайте нашу инструкцию
        Читать дальше →
      • 32 отличия дизайна мобильного приложения под iOS и Android

          image

          Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями.

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

          Чтобы адаптировать дизайн правильно, нужно соблюдать гайдлайны платформ: Human Interface Guidelines (HIG) у iOS и Material Design у Android. И общаться с разработчиками, в идеале подключать их к дизайну как можно раньше, чтобы они могли сразу задать технические ограничения.

          Но в чём именно отличается дизайн под iOS от дизайна под Android? В этой статье я разберу 32 конкретных отличия дизайна под iOS и Android. Они поделены на четыре группы:

          1. Базовые отличия.
          2. Отличия в навигации и паттернах (UX).
          3. Отличия в компонентах (UI).
          4. Прочие отличия.

          Особенности iOS будут слева, а Android — справа или сверху/снизу.

          Базовые отличия


          Human Interface Guidelines vs Material Design


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

          Material же имеет несколько основополагающих принципов: материал как метафора; смелый, графический, сознательный; осмысленная анимация; гибкая основа и кроссплатформенность. Если вы не знакомы с гайдлайнами, лучше их прочесть до того, как ознакомитесь со статьёй.

          image

          image
          Читать дальше →
        • STM32CubeMonitor стоит попробовать

          Введение


          STM32CubeMonitor — утилита для удобного отображения данных с контроллеров семейства STM32. Причем не требуется никакого дополнительного оборудования, только плата с контроллером и программатор (я пробовал и китайский свисток и оригинальный st-link\v2). Слово «Cube» в название не означает привязку к CubeMx\HAL, от вас требуется всего лишь прошивка в формате "*.elf", что не может не радовать. Данная утилита позволяет чрезвычайно быстро и просто выводить данные с контроллера в реальном времени в виде графика, а так же осуществлять постобработку(присутствуют наборы основных математических и тригонометрических функций).
          Читать дальше →
        • Литье форм из жидкого силикона в домашних условиях

          • Tutorial
          image

          В прошлый раз я описывал разработку набора для фокуса «Растворимая ложка», в котором фигурировала форма из силикона.

          Сегодня подробно распишу сам процесс литья таких форм из жидкого силикона на основе платины. Предупреждаю, под катом много фото!
          Читать дальше →
        • PostgreSQL Antipatterns: ударим словарем по тяжелому JOIN

            Продолжаем серию статей, посвященных исследованию малоизвестных способов улучшения производительности «вроде бы простых» запросов на PostgreSQL:


            Не подумайте, что я так сильно не люблю JOIN… :)

            Но зачастую без него запрос получается ощутимо производительнее, чем с ним. Поэтому сегодня попробуем вообще избавиться от ресурсоемкого JOIN — с помощью словаря.


            Читать дальше →
          • Опциональная цепочка, объединение с null, и как они меняют наш подход к написанию кода

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

            Если Вы следите за релизами TypeScript, то знаете, что опциональная цепочка (Optional Chaining) и объединение с null (Null Coalescing) были представлены в TypeScript 3.7. Также эти фичи по умолчанию включены в Babel 7.8.0. Это одни из главных претендентов на роль особенностей JavaScript. В настоящее время они находятся на 4 и 3 стадиях рассмотрения, соответственно (23 января был принят стандарт ECMAScript 2020, где есть и опциональная цепочка, и объединение с null, и еще парочка занимательных вещей; я в курсе, что недавно на Хабре вышла статья-перевод про особенности, которые привнес в JS ES2020, однако, полагаю, парочка лишних примеров не повредит — прим. пер.).
            Читать дальше →
          • PHPUnit. «Как мне протестировать мой чёртов контроллер», или тестирование для сомневающихся

              Привет, Хабр.

              image

              Да, это очередной пост на тему тестирования. Казалось бы, что тут уже можно обсуждать? Все кому надо — пишут тесты, кому не надо — не пишут, все счастливы! Факт же в том, что большинство постов о юнит-тестировании имеют… как бы так никого не обидеть… идиотские примеры! Нет, ну правда! Сегодня я попытаюсь это исправить. Прошу под кат.
              Читать дальше →
            • Интеграционные тесты на Flutter — это просто

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

                Читать дальше →
              • Свойства Min и Max width/height в CSS

                • Translation
                Перевод «Min and Max Width/Height in CSS» Ахмада Шадида.

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

                В этой статье мы познакомимся с CSS-свойствами максимума и минимума для ширины и высоты, а также детально рассмотрим каждое из них и сценарии их использования.
                Читать дальше →
                • +13
                • 13.9k
                • 4
              • Vue для самых маленьких a.k.a небольшой блог по всем канонам



                  Всем привет! В данной статье рассмотрим разработку фронта простенького блога на Vue с использованием всех прелестей Vue включая Vuex и Router. А также поговорим про структуру приложения и работу с контейнером и роутером.
                  Читать дальше →
                • Почему я отказался от Google Maps API

                  • Translation
                  TL;DR Недавние изменения в модели ценообразования, мягко говоря, безумны.

                  Когда я в 2012 году запустил NUKEMAP, у Google Maps были просто потрясающие программные интерфейсы. Абсолютно лучшие API для создания картографических мэшапов на JavaScript, практически бесплатные, с активным сообществом разработчиков, которое регулярно добавляло новые функции. На самом деле создавалось впечатление, что компания заинтересована в людях, которые используют их продукт для создания крутых, полезных инструментов.


                  Старые версии NUKEMAP: слева оригинальная версия от марта 2005 года на скриншотах MapQuest (она была чрезвычайно ограничена и никогда не публиковалась), полностью на PHP. Я разработал её для личного пользования и обучения. Справа переделанный NUKEMAP от 2012 года на Google Maps API и Javascript.

                  Сегодня изменилось почти всё. В кодовую базу API практически перестали добавлять реально полезные функции (многие классные фичи были удалены или тихо устарели; добавляемые новые функции, как правило, инкрементальные или примитивные). Это действительно весьма примечательный факт, поскольку на свой собственный веб-сайт Google Maps они добавили много классных штук, например, режим 3D. Но в API их не портировали.
                  Читать дальше →
                • Делаем адаптивную загрузку контента на сайте

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

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

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

                    Мы сделали камеру для определения AprilTag и ArTag с mROS. Подключением по Uart или Ethernet.



                    Мы пробовали JeVois и OpenMV, оценили плюсы и минусы и собрали свою камеру.



                    Поиск визуальной метки и ориентация робота на основе полученных данных. Мы разрабатываем робота для сбора мячей для гольфа на driving range. Сейчас в мире только одна компания продает робота для решения этой задачи. Рынок очень перспективный, это сподвигло нас превратить проект из DIY в технологический стартап.
                    Читать дальше →
                  • Используем SQLite в Flutter

                    • Tutorial
                    Привет, Хабр! Представляем вашему вниманию перевод статьи «Using SQLite in Flutter».



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

                    В этой статье я продемонстрирую как сделать это, используя SQLite, в Flutter-e
                    Читать дальше →
                    • +19
                    • 15.6k
                    • 3
                  • Частное мнение о Яндекс.Турбо

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

                      Что такое Турбо-страницы Яндекс официально?

                      Турбо-страницы — лёгкие версии страниц вашего сайта
                      Исследования показывают, что люди не готовы ждать загрузки более 2 секунд.
                      Мы предлагаем вам подключить Турбо-страницы, которые очень быстро открываются из сервисов Яндекса и эффективно монетизируются.
                      В принципе описано все четко, для чего это нужно. И хотя понимаешь, что технология привязывается к Яндексу, ну да ладно. Тем более, если это повышает удобство пользователей и тем самым увеличивает пользовательский трафик, то почему бы и нет?

                      Но как всегда, есть нюанс.


                      Читать дальше →
                    • 5 способов полезного использования Raspberry Pi. Часть вторая

                        Привет, Хабр.

                        В первой части были рассмотрены 5 способов использования Raspberry Pi. Тема оказалась достаточно интересной, и сегодня я рассмотрю еще несколько вариантов того, как можно с пользой использовать этот микрокомпьютер.


                        Фото с сайта learn.adafruit.com

                        Как и в предыдущей части, я рассмотрю те способы, которые не требуют программирования.
                        Для тех кому интересно, продолжение под катом.
                        Читать дальше →
                      • Улучшите свой CSS с помощью этих 5 принципов

                        • Translation


                        Написание CSS — процесс достаточно простой и понятный, тогда почему для этого требуются еще какие-то принципы и best-practices?

                        По мере увеличения масштабов проекта и количества людей, работающего над ним, всё более и более явно начинают проявляться новые сложности, которые могут вызвать серьезные проблемы в будущем. Дублирование кода, сложные цепочки переопределения свойств, использование !important, оставшиеся и неиспользуемые CSS-свойства от удаленных HTML-элементов и так далее. Такой код сложнее читать и исправлять.

                        Написание CSS на профессиональном уровне сделает код более поддерживаемым, расширяемым, понятным и чистым. Давайте рассмотрим 5 простых и очень эффективным принципов, которые выведут ваш CSS на новый уровень
                        Читать дальше →
                      • Нетривиальная расстановка элементов на flexbox без media-запросов

                        Казалось бы, какой пост может быть о CSS Flexbox в 2019 году? Верстальщики уже несколько лет активно используют данную технологию, и все тайны должны быть разгаданы.

                        Однако, недавно у меня возникло стойкое ощущение, что нужно поделиться одним нетривиальным и, на мой взгляд, полезным приёмом, связанным с flexbox. Написать пост побудил тот факт, что ни один знакомый (из учеников, верстальщиков и просто людей, близких к web), не смог решить задачку, связанную с flexbox, хотя на это нужно всего 4-6 строк.
                        Читать дальше →