• Реактивная разработка Telegram бота

    Доброго времени суток, Habr'овчане.

    В поисках различной информации по разработке бота для чата Telegram в сети Интернет обнаружил, что все tutorial'ы хоть и достаточно полны различными механиками взаимодействия с библиотекой «telegram-bot-api», никто не пришёл к умозаключению, что жизнь товарищей всегда нужно улучшать в сторону облегчения труда (программисты — люди по натуре своей ленивые), потому решил написать собственный tutorial с применением собственной библиотеки-обёртки, которая умеет на данный момент только читать сообщения и отправлять на них ответ, но обо всём по порядку.
    Читать дальше →
  • MOXA Nport — взгляд изнутри

      Серверы сбора данных по последовательным портам MOXA Nport и им подобные — в настоящее время являются стандартом де факто в области построения систем передающих или принимающих данные через интерфейсы RS-232,RS-485 и RS-422.

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

      Все, что может генерировать данные или управляться удаленно и имеет интерфейс RS-232, RS-485 и RS-422 — работает через данные преобразователи.

      Общий смысл их использования — обычно заключается в следующем: пробросить интерфейсы RS-232,RS-485 и RS-422 через существующую локальную сеть, подключить устройство или прибор имеющий один из последовательных интерфейсов к ПК (серверу, SCADA) через Ethernet, подключится к прибору имеющему последовательный интерфейс через Internet для удаленного управления и т.п.

      Цены на данные преобразователи не сильно высоки, младшие модели можно взять за 100-200$. Но учитывая что на любом автоматизированном производстве таких устройств может быть установлено сотни а то и тысячи — вырисовывается довольно лакомый кусочек для отечественных «импортозамещальщиков».

      Им то я сегодня и попытаюсь помочь.

      Что будем делать?

      Во первых — разберемся в теории, как оно устроено внутри.

      Во вторых — вычленим минимальный функционал для запуска работы в режиме Real Com Mode (то есть по сути для проброса виртуального COM порта до устройства через Ethernet).

      В третьих — ради интереса разберем протокол поиска и конфигурирования устройства через утилиту NPort Administration Suite. Получим полное понимание, как создать pin-to-pin аналог железки, которую можно воткнуть вместо существующей MOXA Nport при этом получив полную поддержку со стороны родного ПО и драйвера.

      Ну и на последок — попробуем посчитать, сколько индусов писало код прошивки MOXA.
      Читать дальше →
    • Функциональная парадигма на Go: основные техники



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



        Напоминаем, что данная статья является неким материалом для «внеклассного чтения» и не имеет отношения к программе курса, с которой можно ознакомиться тут.
        Читать дальше →
      • Как создать свое первое веб-приложение с помощью Go

        Привет, Хабр! Представляю вашему вниманию перевод статьи "How to build your first web application with Go" автора Ayooluwa Isaiah.


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

        Читать дальше →
      • Чем чревато отключение «лишних» проверок в САПР печатных плат

        • Tutorial
        В современных условиях инженеру-проектировщику необходимо постоянно получать новые знания, чтобы быть востребованным на рынке труда. Часто получать новую информацию приходится, так сказать, “без отрыва от производства”: в ходе работы над проектом, в поездках на работу и т.п. Современный цифровой мир это позволяет, было бы желание. Однако, иногда качество получаемых знаний может страдать. Информация усваивается человеком поверхностно или даже в искаженном виде.

        Общаясь с трассировщиками ПП, работающими в САПР печатных плат Cadence OrCAD/Allegro, я иногда замечал, что люди не придают большого значения цветовой индикации полей в редакторе правил Constraint Manager. А именно: пользователи не обращают внимания на то, что некоторые колонки раскрашены в желтый цвет.

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

        • Проверка отключена пользователем.
        • Проводящая дорожка либо не проложена вовсе, либо не доведена до конца.
        • Иные причины.

        В большинстве случаев не возникает фатальных ситуаций, при которых появляются ошибки, приводящие к неработоспособности ПП. Поскольку OrCAD PCB Editor обладает многоступенчатым механизмом проверок проекта на DRC, просто так, одним движением их не отключить. Однако иногда из-за досадного пробела в знаниях, или же из-за невнимательности, создаются ситуации, приводящие к возникновению некорректных ситуаций в проекте.
        Читать дальше →
        • +11
        • 3,8k
        • 6
      • Введение в SSD. Часть 1. Историческая



          Изучение истории дисков — начало пути к пониманию принципов работы твердотельных накопителей. Первая часть нашего цикла статей «Введение в SSD» проведет экскурс в историю и позволит наглядно понять разницу между SSD и его ближайшим конкурентом — HDD.

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

          Отдельное внимание следует обратить на единицу измерения вместимости накопителей: исторически сложилось, что десятичные приставки, такие как кило- и мега-, в контексте информационных технологий подразумевают как десятая и двадцатая степень двойки. Для исключения путаницы были введены двоичные приставки киби-, меби- и другие. Разница этих приставок становится заметной с увеличением объема: покупая диск на 240 гигабайт, вы можете сохранить на нём 223.5 гибибайта информации.
          Читать дальше →
        • VPN в каждый дом или как приручить Дракона

          • Tutorial

          Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard.


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


          Решение достаточно простое — развернуть свою VPN ноду.


          Я хочу сделать это просто

          Читать дальше →
        • Выбираем правильную структуру данных в Swift

          • Перевод
          И снова здравствуйте. Прежде чем уйти на выходные хотим поделиться с вами переводом материала, который был подготовлен специально для базового курса «iOS-разработчик».




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

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

          Сегодня мы публикуем перевод интересного исследования о работе с памятью и указателями в C++. Материал немного академический, но явно будет небезынтересен читателям книг Галовица и Уильямса.

          Следите за рекламой!
          Читать дальше →
          • +22
          • 8,5k
          • 1
        • Тренинг Cisco 200-125 CCNA v3.0. День 13. Настройка VLAN

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

          Откроем окно программы Cisco Packer tracer с нарисованной мною логической топологией нашей сети.



          К первому свитчу SW0 подключены 2 компьютера PC0 и PC1, объединенные в сеть VLAN10 с диапазоном IP-адресов 192.168.10.0/24. Соответственно, IP-адреса этих компьютеров будут 192.168.10.1 и 192.168.10.2. Обычно люди идентифицируют номер VLAN по третьему октету IP-адреса, в нашем случае это 10, однако это не обязательное условие обозначение сетей, вы можете назначить любой идентификатор VLAN, однако такой порядок принят в крупных компаниях, потому что облегчает настройку сети.

          Далее расположен свитч SW1, который подключен к сети VLAN20 с IP-адресом 192.168.20.0/24 с двумя ноутбуками Laptop1 и Laptop2.
          Читать дальше →
        • Опусы про Его Величество Клей. Часть четвертая — силиконы

          • Tutorial
          Посвящается Андрею А., котрому я так и не принес до сих пор извинения за испорченную силиконом вещь...

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

          Читать дальше →
        • ACPI: Добавление устройств без перекомпиляции ядра

            Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции.
            Читать дальше →
            • +14
            • 2,4k
            • 4
          • Самые интересные металлы


              Кто не слушает металл — тому бог ума не дал!

              — Народное творчество

              Привет, %username%.

              gjf снова на связи. Сегодня буду совсем краток, потому что через шесть часов вставать и ехать.

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

              Поскольку все участники хит-парада отличаются какими-то своими суперспособностями, то мест и победителей не будет. Будет — металлическая десятка! Так что порядковый номер ничего не означает.

              Поехали.
              Читать дальше →
            • О «жёлтом дожде» и «оранжевом агенте»



                Привет, %username%.

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

                Сегодня мы поговорим на ту тему, которая, как выяснилась, интересует большинство — это уже стало очевидно, тем более что ближайшего конкурента организатор конкурса снял за несоответствие нормам WADA. Ну и как обычно после текста будет голосование на счёт стоит ли продолжать и о чём продолжать.

                Помни, %username%, теперь только ты определяешь, стоит ли мне продолжать рассказывать подобные истории и о чём рассказывать — это и рейтинг статьи и твой собственный голос.

                Итак…
                Читать дальше →
              • Каждому яду — свой антидот. Как спастись или хотя бы попытаться (upd: про противоядия при бытовых отравлениях)

                • Tutorial
                Всем бойцам РХБЗ (радиационной, химической и биологической защиты) не посрамившим честь своего ОЗК посвящается...

                С интересом читая статьи коллеги gjf про самые интересные, самые страшные и самые нестрашные яды испытываю ностальгию :). Потому что любой правильный химик, начиная свой творческий путь в первую очередь интересуется либо ядами, либо взрывчатыми веществами, либо наркотиками. Вот не встречал людей, которых в химию бы привело что-то другое, честно. Правда с годами, если хобби становится профессией, вся информация как-то переосмысливается и упорядочивается, возникают совершенно иные приоритеты. Вот и теперь, читая упомянутые статьи я вспоминал свой бумажный блокнотик, в котором в том числе были и описания необычных ядов. Все течет, все изменяется, теперь в моем «рабочем» блокноте чаще встречаются «противоядия». Ибо человеком придуманы тысячи способов уничтожить жизнь и пока не придумано ни одного — ее создать. Сила — в равновесии, поэтому если на Хабре есть яды — должны быть и противоядия. Ну и проснулся ж во мне перманентно дремлющий сержант белорусского РХБЗ. Статья коротенькая, почти без воды, но может так оказаться, что жизненно важная (=«закладочная», FAQ по метанолу)! За противоядием — идем под кат.


                Читать дальше →
              • Самые интересные яды


                  Привет, %username%!

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

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

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

                  Итак, снова моя смертельная десятка! Поехали.
                  Читать дальше →
                • Самые нестрашные яды


                    И снова привет, %username%!

                    Спасибо всем, кто оценил мой опус «Самые страшные яды».

                    Было очень интересно почитать комментарии, какими бы они ни были, было очень интересно отвечать.

                    Я рад, что «хит-парад» понравился. Если он не понравился — ну что ж, я сделал всё, что мог.

                    На написание второй части меня вдохновили именно комментарии и активность.

                    Итак, представляю очередную смертельную десятку!
                    Читать дальше →
                  • Самые страшные яды



                      Привет, %username%

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

                      Но я не хочу перечислять то же самое. Я не хочу меряться дозами LD50 и претендовать на оригинальность.

                      Я хочу написать про те яды, с которыми ты, %username%, имеешь большой риск столкнуться каждый день. И которые не так просты, как их ближайшие собратья.

                      Врага надо знать в лицо. И надеюсь — будет интересно. А если окажется интересно — то возможно, что и осилишь вторую часть.

                      Итак — моя смертельная десятка!
                      Читать дальше →
                    • Мох и мамонты (часть 2)

                        image

                        Про то как мерзлота может стать если не «белым пушным зверьком», то уж точно «чёрным лебедем», притаившим полтора триллиона тонн углерода — читаем первую часть «Мох и мамонты».

                        Про то, как можно остановить таяние мерзлоты, превратить северные широты в высокопродуктивную степь при помощи мохнатых четвероногих товарищей и про «альтернативную» модель планетарной экосистемы — читаем/смотрим под катом.
                        Читать дальше →