• Внедрение зависимостей (dependency injection) через свойства-функции в JavaScript



      Известный, но не очень популярный способ внедрения зависимостей. Попытка реализовать этот способ в популярных DI npm пакетах. Еще один свой DI.

      Читать дальше →
    • Клоны STM32: хороший, плохой, злой

      • Translation
      После того, как некий продукт становится популярным, у компаний, которые могли бы его создать, но не сделали этого, неизбежно возникает желание прокатиться на волне его популярности. Это — лишь вопрос времени. Именно этот феномен в ответе за то, что было создано так много ужасных детских игрушек и компьютерных игр. Проявляется он и в мире электроники. Поэтому неудивительным должно выглядеть то, что произошло с чрезвычайно успешной серией микроконтроллеров (Microcontroller Unit, MCU) STMicroelectronics, основанных на ARM. На долю этих контроллеров выпало немалое количество имитаций, клонов и явных подделок.



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

      Поговорим о том, какие существуют подделки и имитации STM32, и о том, каково это — с чем-то подобным столкнуться.
      Читать дальше →
    • Декларативный подход в Angular

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

        Если говорить кратко, в compliant-механизме для обеспечения его технических характеристик используют деформацию. В то время как в традиционной технике (rigid body) гибкость зачастую является негативным качеством материала, сompliant-механизмы используют ее для передачи силы и движения в нужном направлении, вместо соединений из нескольких подвижных деталей.

        Узнать, к чему это я
        • +35
        • 4.5k
        • 5
      • Разбираемся с модулем ШИМ на tms320

        Добрый день. Какое-то время назад я прочёл, что какому-то человеку захотелось изучить поглубже вопрос про ePWM модуль на мк tms320f28xxx, поэтому я решил, почему бы и мне не написать статью на эту тему, в которой я постараюсь подробно разжевать этот модуль на примере tms320f28335.
        Читать дальше →
        • +14
        • 2.1k
        • 6
      • Теперь я не могу сделать даже маленький сайт



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

          Это был сайт про события моего родного города. На одной странице выводились все мероприятия на грядущую неделю.

          Я сделал страничку с мероприятиями, и небольшую админку, где они редактировались. У меня была книжка по PHP, поэтому сайт я написал на PHP, подключил MySQL-базу, сверстал на HTML и CSS, и залил на виртуальный хостинг. Сайтом пользовались, а я усердно добавлял мероприятия каждое утро, пока не ушёл в армию, не оставив никого на поддержку. Так сайт и почил.

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

          Я решил взяться за дело и стал думать.
          Читать дальше →
        • Создание тайлов из растровых карт (ч.2)

            В этой части статьи мы завершим наш алгоритм создания тайла, узнаем, как использовать полученные тайлы в OpenLayers и в OsmAnd. Попутно продолжим знакомство с ГИС и узнаем про картографические проекции, а также узнаем в чем заключается «привязка» растровой карты и зачем она нужна.
            Читать дальше →
          • Создание тайлов из растровых карт

            Как-то я озадачился вопросом создания карт, пригодных для использования в OsmAnd и OpenLayers. О ГИС я тогда вообще не имел ни малейшего понятия, поэтому разбирался со всем с нуля.

            В статье расскажу о результатах своих «исследований», составим алгоритм преобразования произвольной растровой карты в тайлы, понятные для приложений и попутно познакомимся с такими понятиями как эллипсоид, датум, система координат, проекция.
            Читать дальше →
          • Собеседование по Data Science: что могут спросить и где найти ответы на вопросы

            • Translation

            Однажды я получил оффер от Deliveroo, в этой компании я должен был стать Data Science Manager. Пока я готовился к тому, чтобы приступить к выполнению своих обязанностей, оффер отозвали. У меня на тот момент не было подушки безопасности на случай продолжительного отсутствия работы. Я поделюсь с вами всем, что в итоге помогло мне получить сразу два оффера на должность Data Scientist от Facebook. Надеюсь, это поможет кому-то из вас выбраться из той сложной ситуации, в которой я оказался несколько месяцев назад.
            Читать дальше →
            • +18
            • 5.7k
            • 1
          • Создание микросервисной архитектуры с использованием single-spa (миграция существующего проекта)

            image

            Это первая статья по в данной теме, всего их планируется 3:

            1. * Создание root application из вашего существующего проекта, добавление в него 3 микро-приложения (vue, react, angular)
            2. Общение между микро-приложениями
            3. Работа с git (deploy, обновления)

            Оглавление


            1. Общая часть
            2. Зачем это нужно
            3. Создание root контейнера (определение см. ниже) из вашего монолита
            4. Создаем микро-приложение VUE (vue-app)
            5.  Создаем микро-приложение REACT (react-app)
            6.  Создаем микро-приложение ANGULAR (angular-app)

            1. Общая часть


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

            Привет, Хабр! Представляю вашему вниманию перевод статьи "Convert into Strongly Typed Angular Forms in a Minute" автора Ajay Ojha.



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

            Читать дальше →
          • Создание favicon для сайта 2020

            Что такое favicon и для чего он нужен?


            Favicon – это значок (иконка), который отображается во вкладке браузера, закладках, а также в сниппетах результатов поиска.

            image

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

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

            Какой формат использовать для favicon?


            Раньше в качестве основного формата использовали ICO. Особенность данного формата – мульти-размерность. Данный файл может хранить в себе несколько размеров иконки. На смену ICO пришел формат PNG. ICO все еще поддерживаемый, но большинство современных браузеров выбирают PNG формат иконки, который легче. Некоторые браузеры не могут выбрать правильный значок в файле ICO, что приводит к неправильному использования значка с низким разрешением.

            О каких платформах пойдет речь в этой статье?


            • Classic desktop browsers
            • Android Chrome
            • iOS Safari Web Clip
            • Mac OS
            • Windows

            Читать дальше →
          • Низкоуровневое программирование микроконтроллеров tinyAVR 0-series

            • Translation


            Вы — 8-битный или 32-битный программист? Мы, в компании OMZLO, сосредоточили основные усилия на новых 32-битных ARM Cortex-чипах (STM32 и SAMD), которые, в сравнении с более старыми 8-битными микроконтроллерами (Micro Controller Unit, MCU) обычно предлагают больше RAM, более высокую производительность, поддержку большего количества периферийных устройств. И всё это — за ту же, или за более низкую цену. Но 8-битные MCU ещё не утратили своей актуальности. В частности, компания Microchip выпустила новую серию чипов, «tinyAVR 0-series», которые, в сравнении с AVR-чипами, выпущенными ранее, дают возможность работать с более современной периферией. Новые чипы, при этом, отличаются весьма привлекательной ценой. Возникает такое ощущение, что эти чипы отлично подойдут для разработки простых устройств, которым не нужны те возможности, что предлагают более новые 32-битные MCU. 8-битные микроконтроллеры, кроме того, значительно легче программировать, что приводит к увеличению скорости разработки программной части устройств, создаваемых на их основе.

            Благодаря успеху Arduino UNO в интернете можно найти множество руководств, разъясняющих особенности программирования 8-битных микроконтроллеров ATmega328 и их собратьев вроде ATtiny85. Речь идёт о прямом доступе к регистрам без использования языка программирования, используемого для Arduino, и без применения IDE, созданных производителями чипов, вроде Atmel Studio. Чтобы в этом убедиться — просто поищите в Google по словам «atmega328 blinky». Для программирования микроконтроллеров вам понадобится лишь C-компилятор для AVR, текстовой редактор, avrdude и AVR-программатор. На некоторых ресурсах даже можно найти руководства, посвящённые тому, как, пользуясь универсальными макетными платами, «завести» ATmega328. Правда, если говорить о более новых чипах tinyAVR 0-series, по ним найти информацию такого рода непросто.
            Читать дальше →
          • Сборка очень компактного планшетного ПК на базе Core i7

            Привет, Хабр! Хочу рассказать о своем порядком затянувшемся пет-проекте по сборке самодельного достаточно мощного планшетного ПК. Процесс еще не завершен, текущее состояние можно назвать «работающим прототипом». Но некоторые предварительные результаты достигнуты, и я хочу поделиться основными идеями.


            Читать дальше →
          • Автоматизация рабочего процесса Java-проекта с помощью модифицированной модели ветвления Gitflow

            • Translation

            Автоматизация рабочего процесса Java-проекта с помощью модифицированной модели ветвления Gitflow


            Ключевые выводы


            • Gitflow — это совместная модель ветвления, которая пытается использовать мощность, скорость и простоту ветвления Git. Этот метод хорошо работал в ситуации, которую мы описываем здесь, но другие отмечали, что использование Gitflow сопряжено со своими проблемами.
            • Документация по использованию Gitflow в размещения в источнике информации в лучшем случае является нечеткой.
            • Функции изолированы внутри ветвей. Вы можете управлять своими собственными изменениями функций изолированно. Этот подход отличается от разработки на основе магистралей, когда каждый разработчик фиксируется в основной ветке не реже одного раза в 24 часа.
            • Разделение функций с использованием изолированных ветвей позволяет вам решить, какие функции включать в каждый релиз. Компромисс здесь может заключаться в сложных слияниях.

            Читать дальше →
          • ReactJS: шпаргалка по хукам



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

              Представляю вашему вниманию справочник по основным хукам React: useState, useEffect, useLayoutEffect, useContext, useReducer, useCallback, useMemo и UseRef.

              Источник вдохновения: React Hooks cheat sheet: Unlock solutions to common problems.

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

              Полный набор хуков доступен в этом репозитории.

              1. Скачиваем репозиторий
              2. Устанавливаем зависимости: npm i
              3. Запускаем: npm start

              Хуки находятся в директории «hooks». Основной файл — index.js. Для того, чтобы выполнить конкретный хук, необходимо раскомментировать соответствующие строки импорта и рендеринга.

              Без дальнейших предисловий.
              Читать дальше →
            • Просто о D3.js

              • Tutorial


              70 тысяч звездочек на гитхабе и сотни интересных проектов. Кажется, что D3 это что-то большое и очень сложное, но это не так. Я расскажу об основах D3 и поделюсь опытом разработки инфографики Бюростат.

              Читать дальше →
            • Лучшие инструменты с открытым исходным кодом и библиотеки для Deep Learning — ICLR 2020 Experience

              • Translation
              Сложно найти на Хабре человека, который не слышал бы про нейронные сети. Регулярные новости о свежих достижениях нейронных сетей заставляют удивляться широкую публику, а также привлекают новых энтузиастов и исследователей. Привлеченный поток специалистов способствует не только еще большим успехам нейронных моделей, но и приводит к развитию инструментов для более удобного использования Deep Learning подходов. Помимо всем известных фреймворков Tensorflow и PyTorch активно развиваются и другие библиотеки, нередко более гибкие, но менее известные. 

              Эта статья является переводом одного из постов neptune.ai и освещает самые интересные инструменты для глубокого обучения, представленные на конференции по машинному обучения ICLR 2020. 

              Читать дальше →
              • +33
              • 3.1k
              • 2
            • Четыре способа получить аудио вк или «это не баг, а фича»

                Всем привет! Сегодня я расскажу вам о моем опыте с ВК, найденных багах, об отношении к пользователям и, собственно, как получить аудиозаписи вк, пользуясь "не багами а фичами", как меня заверяли сотрудники данной корпорации. Итак, приступим!

                Читать далее
              • Готовимся к собеседованию по фронтенду: 15 вопросов

                • Translation
                Автор статьи, перевод которой мы сегодня публикуем, приводит 15 вопросов, которые задавали на собеседованиях ему, и которые он задавал соискателям на должности фронтенд-разработчиков сам.


                Читать дальше →
              • IT на YouTube: что посмотреть в рабочий перерыв


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


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


                  А сегодня мы в JUG Ru Group запускаем новый сезон разговорных YouTube-шоу, привязанных к нашим IT-конференциям — и это как раз соответствует запросу. Поэтому я решил сделать общий пост: и о том, какие форматы IT-видеоконтента встретил, и конкретно о наших передачах. Смело дополняйте в комментариях своими YouTube-рекомендациями, наверняка я не знаю многого крутого.

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