Search
Write a publication
Pull to refresh
32
0

Техножрец Омниссии.

Send message

Расширение сетевых возможностей программируемого реле при помощи WI-FI

Reading time7 min
Views23K

С чего все начиналось


Начиналось все с разработки алгоритмов для программируемого реле ПР200, и часто требовалась визуализация или ввод информации с компьютера, для этого необходимо использовать панели оператора или SCADA системы, но не всегда это удобно, да и нужно ли для простых систем. Решение было найдено быстро, и со временем я старался максимально улучшить и облегчить свою работу в этом направлении, что из этого получилось читайте далее.
Речь пойдет о сетевой плате WI-FI и ее возможностях.

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

10 отличных Github репозиториев для разработчиков (часть 2)

Reading time4 min
Views17K

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



Как и в прошлом случае, перевод будет довольно вольным: я опустил предисловие и эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, поехали.
Читать дальше →

Интересные приёмы и хитрости SSH

Reading time6 min
Views8K
Несколько советов об эффективном использовании SSH. Поговорим о том, как:

  • использовать двухфакторную аутентификацию для SSH подключений;
  • безопасно использовать «проброс ключа» (agent forwarding);
  • выйти из зависшей SSH сессии;
  • оставить терминал открытым при выходе или разрыве связи;
  • расшарить удаленный терминал с другом (без Zoom’а!).

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

Основные linux-команды для новичка

Reading time14 min
Views1M
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

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

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →

Пишем «Hello, World» Telegram бота на Си

Reading time7 min
Views62K
Привет всем, не знаю зачем это надо, но может кому пригодится…

Дисклеймер: Я ни в коем случае не являюсь профессиональным Си программистом.

Что нам понадобится:

1. Любой компьютер на Linux, Ubuntu, Centos, MacOS… с доступом к порту 443 или 8443 из интернета.
2. Любой Си компилятор
3. Бибилиотеки openssl, libssl-dev («apt-get install openssl libssl-dev» в терминале, для Ubuntu)
Читать дальше →

10 интересных репозиториев на GitHub, полезных любому разработчику

Reading time4 min
Views84K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

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

Исследуем электромагнитные поля с помощью SDR приемника и OpenCV

Reading time10 min
Views31K


SDR-приемник, даже самый дешёвый, является весьма высокочувствительным приборчиком. Если добавить к нему специальную антенну и OpenCV, то можно будет не только привычно слушать эфир, но и посмотреть на распределение электромагнитных полей в пространстве. О таком интересном применении и пойдет речь в данной статье. Внимание! Под катом много картинок и анимации!
Читать дальше →

Rust Embedded. Разработка под процессоры Cortex-M3 на примере отладочной платы STM32F103C8T6 (Black Pill)

Reading time7 min
Views33K
Привет! Хочу познакомить вас с проектом Rust Embedded. Он позволяет нам использовать язык программирования Rust для разработки под встроенные платформы (Embedded Linux / RTOS / Bare Metal).


В этой статье, мы рассмотрим компоненты, которые необходимы для начала разработки под микропроцессоры Cortex-M3. После этого напишем простой пример — моргание встроенным светодиодом.
Читать дальше →

Собираем 8-битный компьютер: как уменьшить количество микросхем до шести

Reading time5 min
Views24K

Сочетание старого трюка с кодированием цветов в NTSC и современного железа позволяет собрать на удивление работоспособную машину

В 8-битных системах есть что-то перманентно притягательное: вы можете собрать автономную систему, достаточно мощную, чтобы поддерживать адекватное взаимодействие с пользователем, но достаточно простую, чтобы собрать и запрограммировать её самостоятельно. Большинство современных 8-битных машин, созданных любителями, завязаны на классических процессорах, которые жили в золотой век домашних компьютеров 1980-х годов, когда в качестве дисплеев использовали миллионы телевизоров. Вначале была идея собрать свою машину на базе процессора Motorola 6809 из той же эпохи. Я пытался использовать как можно меньше микросхем, но несмотря на мои старания, мне всё ещё нужно было 13 дополнительных микросхем для работы с ОЗУ и последовательной передачи данных. Тогда я задумался: а что, если я использую более современный 8-битный процессор? Насколько сильно при этом я смогу снизить количество необходимых мне микросхем?
Читать дальше →

Embox RTOS на Raspberry Pi

Reading time4 min
Views12K
image Привет!

У нас часто спрашивают есть ли в Embox поддержка Raspberry Pi. Да, есть. Описание как запустить теперь тут. В этой статье я хочу чуть подробней об этом рассказать.
Читать дальше →

STM32MP1 — ядра + Linux = идеальный микроконтроллер

Reading time5 min
Views42K
По роду своей деятельности занимаюсь разработкой различных приборов: измерительных, управляющих, контролирующих и т.п. В подавляющем большинстве устройство делится на 2 части:

  1. Требующий больших ресурсов микроконтроллера и не требующий жесткого реального времени графический интерфейс пользователя (GUI).
  2. Потребляющая немного ресурсов и работающая в жестком реальном времени аппаратная часть прибора.

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

Но с появлением у STM новой линейки микроконтроллеров STM32MP1 мои терзания закончились и вот что пока получилось.
Читать дальше →

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)

Reading time8 min
Views16K
В статье Raspberry Pi + CentOS = Wi-Fi Hotspot (или малиновый роутер в красной шляпе) я рассказал о способе превращения «малинки» в беспроводную точку доступа при помощи операционной системы CentOS. Собрав по такому чертежу мой домашний роутер, я удовлетворил свое творческое эго и получил заряд спокойствия за критически важный элемент моей уютной инфраструктуры. Однако ощущение незаконченности решения и внутренний перфекционизм не давали покоя: «несовершенный результат работы не имеет права на существование». Мысль о том, «что идеал может и должен быть достигнут» не покидала меня ни на минуту.

И вот однажды на одном из тематических форумов я натолкнулся на обсуждение разрядности существующих операционных систем для «малинки» (aarch64 vs armhfp): какие 64-битные ОС в принципе могут влезть и заработать на Raspberry версии 3++?

Моя любимая CentOS для архитектуры ARM от «Userland» не спешила переходить на ядро последней версии и превращаться в 64-битную. А репозиторий EPEL, подключенный Бог весть откуда без цифровой подписи, являлся кошмаром в мой неспокойный сон…

Выступая адептом RPM-based дистрибутивов, я с удивлением обнаружил, что в обсуждениях ОС для «малинки» абсолютно забытой оказалась Fedora! И это при том, что ее релиз
с 28-ой версии официально поддерживает Raspberry Pi 3B+ в 64-битном исполнении!
Вот, оказывается, что беспокоило меня все это время...

Как реализовать игнор заблокированных пользователей в группах Telegram?

Reading time10 min
Views59K
image alt

UPD: благодаря помощи Tkachov эта статья всё-таки превратилась из просьбы о помощи в работающую инструкцию. В комментариях он дал работающий код для создания игнора в десктопном клиенте Телеграм. Я на всякий случай расположу объяснение в конце статьи. Далее статья продолжается в том же виде, в каком была написана.
UPD: Сделал «сайт» для распространения готового приложения sites.google.com/view/ignoram

* * *

Я хотел бы попросить помощи у сообщества, потому что все собственные возможности я полностью исчерпал.

Можно было бы задать вопрос на сервисе Q&A (он же бывший Тостер) — только я это уже сделал, и пользы вышло не очень много.

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

Если повезёт, то кто-нибудь в комментариях подскажет решение. И тогда нашедшие эту статью в поисковиках тоже смогут эту проблему решить.
Читать дальше →

Ускорение поиска в Have I Been Pwned до 49 микросекунд (С++)

Reading time8 min
Views13K


Я давно знал о сайте Have I Been Pwned (HIBP). Правда, до недавнего времени никогда там не был. Мне всегда хватало двух паролей. Один из них неоднократно использовался для мусорной почты и пары аккаунтов на странных сайтах. Но пришлось от него отказаться, потому что почту взломали. И, честно говоря, я благодарен хакеру, потому что это событие заставило меня пересмотреть свои пароли — то, как я их использую и храню.

Конечно, я поменял пароли на всех аккаунтах, где стоял скомпрометированный пароль. Затем мне стало интересно, попал ли утёкший пароль в базу HIBP. Я не хотел вводить пароль на сайте, поэтому скачал базу данных (pwned-passwords-sha1-ordered-by-count-v5). База весьма впечатляет. Это текстовый файл на 22,8 ГБ с набором хэшей SHA-1, по одному в каждой строке со счётчиком, сколько раз пароль с данным хэшем встречался в утечках. Я вычислил SHA-1 своего взломанного пароля и попытался найти его.
Читать дальше →

Как получать 100 тысяч за код. Полное руководство для начинающих

Reading time9 min
Views61K

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


Что нужно знать, чтобы получать зарплату 100 тысяч

1. Познакомьтесь с веб-разработкой


Ситуация на 1 этапе

Продолжительность этапа: 1 месяц.


Что изучить на этом этапе.


  1. Структуру HTML.
  2. Отличия фронтенда и бэкенда.
  3. Разметку и оформление текста.
  4. Как размечать страницу по макету.
  5. Как ставить ссылки и вставлять изображения.
  6. Основы CSS — правила, селекторы, свойства и каскадирование.
  7. Хотя бы немного понимать, как работает и где применяется JavaScript.

Сначала будет много непонятных слов, аббревиатур и голова пойдёт кругом. В одном JavaScript десятка три направлений, поэтому нужно понять, ваше ли это вообще. Смотрите видео на Ютюбе или тренируйтесь на интерактивных курсах. Другой вариант — по учебникам, но с ними сложнее всего. Электронные пока держатся, а вот бумажные устарели ещё до публикации.


Ещё 7 шагов

Светодиодный костюм

Reading time3 min
Views27K
Это первая часть моей публикации, в которой я постараюсь кратко и лаконично изложить технологию построения современного светодиодного костюма.

image

Уже более 4-х лет на рынке доступны цифровые светодиодные ленты на базе IC LED чипов (смарт пикселей). Суть таких пикселей довольно проста, в RGB SMD/DIP светодиод интегрируется микросхема, которая им управляет. Такие ленты обеспечивают высокую плотность — 144/100/60 пикселей на метр, малый вес, низкое напряжение питания, и простоту управления внешним контроллером.

image

Среди наиболее распространенных и популярных LED чипов можно выделить: WS2812B, WS2813, APA102, SK9822, UCS1903 с питанием 3,5-5В. В настоящее время также набирают популярность IC LED чипы с питанием +12В, это WS2815, GS8208.

image

Каждый пиксель такой ленты может управляться индивидуально, также как пиксель на экране монитора, т.о. это дает возможность построить на базе цифровой светодиодной ленты продвинутый LED костюм или «Пиксельный костюм».
Читать дальше →

FreeBSD: гораздо лучше GNU/Linux

Reading time11 min
Views147K
Сравню FreeBSD с GNU/Linux системами. Всё это исключительно субъективное мнение! Многое это просто мой опыт. Почти 100% всего времени я провожу за компьютером и исключительно Unix системами, примерно поровну с FreeBSD и GNU/Linux, вот уже 20+ лет.

Большая часть достоинств FreeBSD также относится и к другим популярным свободным BSD системам: NetBSD, OpenBSD, DragonflyBSD. Что-то в этих системах будет получше, многое появилось впервые не в FreeBSD, но перекочевало в неё. FreeBSD многое наследует от NetBSD (различные драйвера и подсистемы), от OpenBSD (сетевые технологии), DragonflyBSD (лучшая масштабируемость на многопроцессорных платформах), от Solaris (DTrace, идея Jail-ов, ZFS), сочетая самое лучшее ото всех.

Если коротко, то FreeBSD это высокое качество, надёжность, удобство и простота работы. GNU/Linux это зоопарк, помойка малосвязанного кода, мало чего доделываемое до конца, отсутствие документации, хаос, базар.
Читать дальше →

STM32 Часть 1: Основы

Reading time4 min
Views36K
Нельзя доверять коду, который вы не написали полностью сами. — Кен Томпсон
Пожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяца и я решил писать статьи для закрепления материала. Все началось с простой задачи, синхронизировать лампы в своей фото студии с помощью Ардуины. Задача была решена, но в фото студию я больше не заходил, времени нет. С того момента я решил основательно заняться программированием микроконтроллеров. Ардуина, хоть и привлекательна в своей простоте, как платформа мне не понравилась. Выбор пал на компанию ST и их популярную продукцию. В тот момент я еще не представлял в чем особо разница, но как типичный потребитель я сравнил скорость «процессора» и количество памяти, купил себе внушительную плату с дисплеем STM32F746NG — Discovery. Я пропущу моменты отчаяния и сразу перейду к делу.
Читать дальше →

Маленькая паяльная станция своими руками v2

Reading time6 min
Views39K
Привет.

Некоторое время назад я собрал маленькую паяльную станцию, о которой хотел рассказать. Это дополнительная упрощенная паяльная станция к основной, и конечно не может ее полноценно заменить.


Основные функции:

1. Паяльник. В коде заданы несколько температурных режимов (100, 250 и 350 градусов), между которыми осуществляется переключение кнопкой Solder. Плавная регулировка мне тут не нужна, паяю я в основном на 250 градусах. Мне лично это очень удобно. Для точного поддержания температуры используется PID регулятор.

Заданные режимы, пины, параметры PID можно поменять в файле 3_Solder:

struct {
  static const byte   termistor   =  A2;  // пин термистора
  static const byte   pwm         =  10;  // пин нагревателя
  static const byte   use         =  15;  // A1 пин датчика движения паяльника
  int                 mode[4]     =  {0, 150, 250, 300}; // режимы паяльника
  byte                set_solder  =  0; // режим паяльника (по сути главная функция)
  static const double PID_k[3]    =  {50, 5, 5};    // KP KI KD
  static const byte   PID_cycle   =  air.PID_cycle; // Цикл для ПИД. Участвует в расчетах, а также управляет частотой расчетов ПИД
  double PID_in;  // входящее значение
  double PID_set; // требуемое значение
  double PID_out; // выходное значения для управляемого элемента
  //unsigned long time;
  unsigned long srednee;
} sol;

Домашний кинотеатр на Raspberry

Reading time6 min
Views125K
Так случилось, что решил я упростить себе вопрос он-лайн просмотра фильмов, вариант стандартного смарт ТВ меня не устраивал, а постоянно торчащий кабель HDMI для подключения к ноутбуку раздражал. Решение моей проблемы я увидел в приобретении Raspberry Pi 4, который можно аккуратно спрятать за корпусом телевизора.
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Middle