• Докеризация приложения, построенного на базе React, Express и MongoDB

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


    Читать дальше →
  • Реверс-инжиниринг мозга. Память

      image

      Мозг — мой давний сосед. Учитывая то, сколько времени мы провели, и сколько нам еще предстоит быть вместе, не интересоваться им — полнейшая бестактность.

      Ходишь с черным ящиком внутри черепной коробки, и этот ящик понимает, что он сам себе дает такое описание. Это же очень любопытно. Если бы мне дали железку с такими возможностями, я бы все свободное время убил на то, чтобы понять, как она работает. Собственно, я и убиваю. Объект исследования всегда при мне — очень удобно. Жаль только, внутри покопаться нельзя.

      Мозг записывает и обрабатывает информацию. Но как? Почему что-то хранится долго, а что-то забывается за пару дней? Как это связано с нейронами?

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

      А что гадать? Давайте просто попробуем.
      Читать дальше →
    • Обработка изображений ReactJS — NodeJS

      Доброго времени суток.

      Разбор полетов провожу на Reactjs (сторона клиента) и Nodejs (сторона сервера).

      Недавно в моем маленьком проекте встал вопрос, как легко и просто можно обмениваться изображениями по типу клиент — сервер.

      Сегодня мы научимся отправлять бинарные данные (конкретно изображения ) со стороны клиента и обрабатывать их на сервере. Добро пожаловать в под кат.
      Читать дальше →
    • IPv6 — прекрасный мир, стоящий скорого перехода на него

        Практически все статьи, которые я видел на тему «чем хорош IPv6 и почему на него стоит пошустрее переходить», говорят только о просто более широком адресном пространстве. В лучшем случае, упомянут автоматическую конфигурацию адресов и маршрутов (stateless address autoconfiguration (SLAAC)). Это удручает, а ведь IPv6 имеет много ещё других неявных плюшек, являясь очень продуманным стеком протоколов (IPv6 + ICMPv6 + NDP)! Создаётся впечатление, что IPv6 это просто тупо про расширение адресов, а дальше то особо никакого профита. Или же некоторые статьи плачутся о том, что они не видят сиюминутного профита от внедрения/перехода. Простоту и удобство, гибкость и расширенные возможности (из-за одного только избавления от NAT-а) не так то легко измерить, как какие-нибудь задержки и пропускную способность. Решил поэтому собрать моё видение прекрасного мира IPv6 протокола и его плюсы в этой статье.
        Читать дальше →
      • Как я свой мессенджер писал

        Одним вечером, после очередного расстраивающего дня, наполненного попытками наладить баланс в своей игре, я решил, что мне срочно требуется отдых. Переключусь на другой проект, быстренько его сделаю, верну на место скатившуюся за время разработки игры самоооценку и с новыми силами возьму игру штурмом! Главное выбрать проект nice and relaxing… Написать свой месседжер? Ха! How hard can it be?

        Код можно посмотреть здесь.

        Читать дальше →
      • Что нового в Android 11 для пользователей и разработчиков



          На днях внезапно выкатили превью-версию Android 11 для разработчиков. Google говорит «разработчики, вы в прошлом году хорошо нам нафидбечили, поэтому в этот раз мы даём вам превью раньше, чем когда-либо» (релиз намечен на третий квартал, то есть до него примерно полгода).

          Из-за этого версия особенно сырая, в неё могли попасть не все готовящиеся фичи (что-то привлекательное небось припасли для Google I/O), и часть вещей до релиза ещё могут откатить обратно. Но всё равно же интересно разобраться, что нового!

          Как водится, сайты вроде 9to5Google и Android Police тут же потестировали превью-версию в хвост и в гриву, а в итоге выпустили кучу текстов: про каждое нововведение по отдельности. А мы продрались через эту кучу текстов и сделали для Хабра сводную подборку на русском — такую, чтобы была понятна и обычному пользователю Android, но с приписками конкретно для мобильных разработчиков.

          Читать дальше →
        • 10 React-компонентов на все случаи жизни

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



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

          Материал, перевод которого мы сегодня публикуем, посвящён рассказу о 10 React-компонентах.
          Читать дальше →
        • Исчерпывающий путеводитель по тегу iframe

          • Translation
          • Tutorial
          iframe tag

          Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer.


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


          Чтобы помочь вам сформировать собственное мнение и отточить свои навыки разработчика, мы расскажем обо всем, что вам нужно знать об этом противоречивом теге.


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


          Читать дальше →
          • +27
          • 14.8k
          • 9
        • Android Remote Debugger — удаленная отладка Android приложений

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


          В этой статье я хочу поговорить об отладке именно Android приложений. Android Studio предоставляет нам различные инструменты профилирования, такие как:


          • logcat – инструмент для просмотра логов приложения, в том числе и исключений при краше. Его можно использовать как в Android Studio, так и в терминале, через adb;
          • Android profiler – мощный инструмент, который позволяет просматривать все сетевые запросы, загрузку процессора, памяти и батареи.

          Также существует множество сторонних решений, позволяющих просматривать сетевой трафик, базы данных, shared preferences и др.
          У всех этих инструментов есть преимущества и недостатки. К их минусам можно отнести следующее:


          • множество зависимостей различных инструментов;
          • сложность использования – как правило, все инструменты ориентированы на разработчиков и неудобны другим участникам команды, например, тестировщикам, аналитикам или back-end разработчикам. Обычно последним приходится дергать android-разработчиков, чтобы просмотреть какие-либо логи;
          • обязательное подключение телефона к компьютеру, например, через usb-кабель.

          На данный момент я не нашел ни одного решения, которое объединяло бы различные инструменты отладки и устраняло бы вышеуказанные проблемы. Поэтому я разработал собственное решение.


          Android Remote Debugger


          Мое решение является очень простым в использовании, так как позволяет отлаживать приложение прямо в браузере, без подключения Android устройства к компьютеру. Данное решение включает в себя четыре раздела для отладки:


          • Logging — просмотр логов приложения, включая краши;
          • Database — просмотр и редактирование записей в базе данных;
          • Network — просмотр всех сетевых запросов и ответов в удобном формате;
          • SharedPreferences – просмотр и редактирование данных SharedPreferences.
          Читать дальше →
          • +11
          • 3.5k
          • 4
        • Использование механизмов криптографических токенов PKCS#11 на платформе Android

            Подошло время задействовать криптографические механизмы PKCS#11 и на платформе Android. Кто-то может сказать, что нет аппаратных токенов для Android. Но, если это и так, то это только временное явление. Но уже сегодня можно поставить программный токен или использовать облачный токен. Поскольку утилита cryptoarmpkcs-A разрабатывается для платформы Android с использованием Androwish на скриптовом языке Tcl/Tk, то для подключения токенов используется пакет TclPKCS11 версии 1.0.1.

            При этом никакой переработки пакета не потребовалось. Все что было сделано, это был добавлены в проект скрипт для сборки библиотеки пакета, написанной на языке Си, под Android и сам дистрибутив библиотеки. В этот же проект было решено добавить и библиотеки программного ls11sw2016 и облачного ls11cloud токенов для различных платформ.
            Читать дальше →
          • 5 вещей, которые я бы хотел знать до начала разработки биржи

              “Скажи мне — и я забуду, покажи мне — и я запомню, дай мне сделать — и я пойму”.


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


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


              Всех остальных прошу под кат.

              Читать дальше →
            • Разбор: как защищены деньги на бирже, зачем нужны брокеры, и что нужно знать при их выборе



              Изображение: Unsplash

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

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

              • Tutorial
              Данная статья рассчитана на новичков.

              Теория


              Modbus — коммуникационный протокол, основанный на архитектуре ведущий-ведомый (master-slave). Использует для передачи данных интерфейсы RS-485, RS-422, RS-232, а также Ethernet сети TCP/IP.

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

              Команды
              Руководство, с перечнем всех команд можно найти в официальном мануале, там так же есть примеры кода для TCP/IP соединений.

              Итак, для того, чтобы управлять чем-либо, нам необходимо знать, что и куда отправлять. Значит нам нужна карта регистра.

              Уточню, что ячейки регистра бывают:
              1. Только для чтения
              2. Для чтения и записи
              3. Только для записи(подтверждение записи допустимо выдавать кодом ошибки)

              Самая простая карта, выглядит примерно таким образом:
              Скриншот


              Так же, там присутствуют разные пояснения, о том например, какое максимальное/минимальное значение может быть передано по адресу и тд.
              Читать дальше →
            • Георгий Потапов: «Я — профессиональный потребитель данных OpenStreetMap»



                Георгий Потапов — инженер-исследователь и руководитель проектов, который сейчас работает в Сколковском институте науки и технологий. Он увлеченно занимается стартапом GeoAlert, где их команда разрабатывает нейросети для автоматического картирования по спутниковым снимкам. Как ему в этом помогает OSM, почему компании должны открывать свои данные и когда человек станет не нужен — обо всем этом он рассказал в интервью.
                Читать дальше →
                • +13
                • 3.4k
                • 4
              • Leaflet. Дружим Image с Canvas

                  Leaflet Map

                  Доброго времени суток, дорогие хабрахабровцы!

                  Leaflet — библиотека, позволяющая добавить интерактивные карты на Ваш сайт и легко их кастомизировать. Сегодня рассмотрим то, как можно разместить изображения на Canvas-слое карт, совместно с базовыми маркерами.
                  Читать дальше →
                • Делаем универсальный RFID-ключ для домофонов

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


                  Читать дальше →
                • Замена дисков меньшего объёма на диски большего объёма в Linux

                    Всем привет. В преддверии старта новой группы курса «Администратор Linux» публикуем полезный материал, написанный нашим студентом, а также наставником на курсах, специалистом технической поддержки корпоративных продуктов REG.RU — Романом Травиным.



                    В данной статье будет рассмотрены 2 случая замены дисков и переноса информации на новые диски большего объёма с дальнейшим расширением массива и файловой системы. Первый случай будет касаться замены дисков c одноименной разметкой MBR/MBR либо GPT/GPT, второй случай касается замены дисков с разметкой MBR на диски объёмом более 2 TB, на которые потребуется ставить разметку GPT с разделом biosboot. В обоих случаях диски, на которые переносим данным, уже установлены в сервер. Файловая система, используемая для корневого раздела — ext4.


                    Читать дальше →
                    • +13
                    • 7.2k
                    • 5
                  • В зоне доступа. Находим расстояние от точки до области и сокращаем запросы обратного геокодинга

                    • Tutorial


                    Мне не раз приходилось реализовывать функционал расчета расстояния от некоторой географической точки до области на карте — например, до МКАД. В итоге я нашёл два способа решения задачи, которые показали хорошие результаты, и теперь мы регулярно пользуемся ими в продакшне. Опишу их в первой части статьи. А во второй покажу, как можно кешировать геоданные, чтобы меньше обращаться к геокодеру.
                    Читать дальше →
                  • Заменяем Redux c помощью Observables и React Hooks

                    • Translation
                    • Tutorial

                    Управление состоянием — одна из важнейших задач, решаемых в разработке на React. Было создано множество инструментов в помощь разработчикам для решения этой задачи. Наиболее популярным инструментом является Redux — небольшая библиотека, созданная Дэном Абрамовым, и предназначенная помочь разработчикам использовать паттерн проектирования Flux в их приложениях. В этой статье мы разберем, действительно ли нам нужен Redux, и посмотрим, как мы можем заменить его более простым подходом, в основе которого лежат Observable и React Hooks.

                    Читать дальше →
                  • Шпаргалка для сисадмина по SELinux: 42 ответа на важные вопросы

                    • Translation
                    Перевод статьи подготовлен специально для студентов курса «Администратор Linux».




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

                    «Важная истина, что вещи не всегда являются тем, чем кажутся, общеизвестна…»

                    ―Дуглас Адамс, Автостопом по Галактике

                    Безопасность. Повышение надежности. Соответствие. Политика. Четыре Всадника Апокалипсиса сисадмина. В дополнение к нашим ежедневным задачам — мониторингу, резервному копированию, внедрению, настройке, обновлению и т. д. — мы также отвечаем за безопасность наших систем. Даже тех систем, где сторонний провайдер рекомендует нам отключить усиленную безопасность. Это похоже на работу Этана Ханта из “Миссия невыполнима”.
                    Читать дальше →
                    • +23
                    • 15k
                    • 3