Как стать автором
Обновить
7
0
Сергей @hahenty

('•')

Отправить сообщение

Сетевой интерфейс для программируемого реле с поддержкой Telegram Bot и HomeKit

Время на прочтение5 мин
Количество просмотров16K

Как я реализовал удаленное управление и мониторинг, для программируемого реле ПР200, используя разные сервисы (Telegram Bot, HomeKit) протоколы (Modbus RTU, Modbus TCP, mqtt) и ESP32.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии3

Варианты создания интерактивной экскурсии для пользователей

Время на прочтение6 мин
Количество просмотров3.6K

Доброго времени суток, уважаемые читатели!

Меня зовут Евгений Когтев, я ведущий разработчик в команде Web Core в ДомКлик. Мы уже рассказывали подробнее о команде и стоящих перед ней задачах, если не читали, то рекомендую. А сегодня я расскажу, зачем нужен онбординг и как его реализовать в UI-kit.

Читать далее
Всего голосов 50: ↑50 и ↓0+50
Комментарии0

Векторное управление электродвигателем «на пальцах»

Время на прочтение17 мин
Количество просмотров323K
— Что такое векторное управление?
— Держать ток под 90 градусов.


Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии48

Полезные JavaScript-библиотеки

Время на прочтение6 мин
Количество просмотров33K
Не стоит недооценивать силу простоты. Пожалуй, сложно представить себе, что на чистом JavaScript реализовано что-то вроде системы push-уведомлений, работающей в реальном времени, или инструмент для работы с базами данных, или полноценный текстовой редактор. Но подобные проекты существуют и позволяют решать множество актуальных задач. В этом материале речь пойдёт о нескольких весьма полезных библиотеках, которые подключаются к страницам в виде обычных JavaScript-файлов. При рассказе о каждой из них я постараюсь выделять их особенности и приводить примеры их использования.


Читать дальше →
Всего голосов 48: ↑37 и ↓11+41
Комментарии18

Категория контекста

Время на прочтение12 мин
Количество просмотров2.1K

Математической моделью знаковых последовательностей с повторами (текстов) является мультимножество. Мультимножество было определено Д. Кнутом в 1969 году и позже подробно изучено А.Б. Петровским [1]. Универсальное свойство мультимножества – существование одинаковых элементов. Предельным случаем мультимножества при единичных кратностях элементов является множество. Множество с единичными кратностями, соответствующее мультимножеству, называется его порождающим множеством или доменом. Множество с нулевой кратностью – это пустое множество.

Читать далее
Всего голосов 4: ↑3 и ↓1+4
Комментарии1

Настройки Windows 10: часть III, или куда приводят скрипты

Время на прочтение34 мин
Количество просмотров37K

Здравствуйте, товарищи! Прошло чуть больше полугода после выхода предыдущей статьи о Windows 10 Sophia Script — скрипте, который за прошедшие годы стал самым крупным (а их осталось всего два) опенсорс-проектом по персонализации и настройке Windows 10, а также автоматизации рутинных задач. В статье я расскажу, что изменилось с момента релиза версии, описываемой в статье от 29.09.2020, с какими трудностями мы столкнулись, и куда всё движется.

Читать далее
Всего голосов 32: ↑29 и ↓3+34
Комментарии41

CORS для чайников: история возникновения, как устроен и оптимальные методы работы

Время на прочтение17 мин
Количество просмотров402K


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


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

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

Но давайте-ка пойдем к истокам…
Читать дальше →
Всего голосов 41: ↑40 и ↓1+57
Комментарии14

Musiphone — децентрализованный музыкальный плеер

Время на прочтение5 мин
Количество просмотров3.8K


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

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Coq — не порок

Время на прочтение2 мин
Количество просмотров6.3K

В интересное время мы живем, товарищи! В любой публичной деятельности теперь требуется проявлять изрядную креативность, чтобы обойти все ловушки, лишь бы не задеть случайно кого-нибудь неосторожным словом. То же слово "товарищ" за свою долгую жизнь претерпело несколько смысловых изменений. Изначально товарищи - "торгующие одним товаром". Затем, уже шире, "занимающихся одним делом". Далее, когда дело в СССР осталось одно на всех - построение коммунизма - "товарищи" стало вообще универсальным обращением, но в конце концов сдулось до узкого применения в войсках. А ведь теперь кто-то на "товарища" может и оскорбиться. Например, гусь на свинью - однозначно. Так что заранее прошу уязвимых не спускаться под кат. Потому что речь пойдет про систему Coq.

Читать далее
Всего голосов 14: ↑9 и ↓5+8
Комментарии30

Численный FORTH

Время на прочтение10 мин
Количество просмотров6.7K

Форт и сейчас известен, главным образом, среди разработки встроенных систем, как что-то вроде необычайного высокоуровневого ассемблера, например, для микроконтроллеров - AmForth и Mecrisp. Однако, когда-то давным давно был известен в другой ипостаси - как язык программирования научных приложений.

Форт был выбран в качестве средства, с помощью которого объясняются детали программной реализации систем, основанных на знаниях, по следующим причинам: во-первых, транслятор с этого языка имеется практически на всех типах микрокомпьютеров, во-вторых, он достаточно дешевый, и, наконец, имеет много общего с языками искусственного интеллекта, в частности с Лиспом.

Таунсенд К., Фохт Д. ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЭКСПЕРТНЫХ СИСТЕМ НА ПЕРСОНАЛЬНЫХ ЭВМ. М.: Финансы и статистика, 1990.

Читать далее
Всего голосов 15: ↑14 и ↓1+17
Комментарии8

О завершении работы Node.js-процессов

Время на прочтение9 мин
Количество просмотров21K
Node.js-процессы завершают работу по разным причинам. При этом в некоторых случаях «смерть» процесса можно предотвратить. Например — в ситуации, когда причиной остановки процесса может стать необработанная ошибка. А вот иногда с остановкой процесса ничего поделать нельзя. Например — если её причина кроется в нехватке памяти. В Node.js существует глобальный объект process, являющийся экземпляром класса EventEmitter. Этот объект, при нормальном завершении процесса, генерирует событие exit. Код приложения может прослушивать это событие и, при его возникновении, выполнять, в синхронном режиме, некие операции по освобождению ресурсов.

Существует несколько способов намеренного завершения работы процесса. Среди них — следующие:

Операция Пример
Ручной выход из процесса
process.exit(1)
Неперехваченная ошибка
throw new Error()
Необработанное отклонение промиса
Promise.reject()
Проигнорированное событие error
EventEmitter#emit('error')
Необработанный сигнал
$ kill <PROCESS_ID>

Многие из этих операций часто выполняются случайно, например — это касается неперехваченных ошибок и необработанных исключений. Но одна из них, с которой мы начнём разбор причин завершения Node.js-процессов, была создана с целью дать разработчику возможность вручную завершать процессы.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+34
Комментарии2

Жаргон функционального программирования

Время на прочтение10 мин
Количество просмотров92K


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

SQLite — не игрушка

Время на прочтение7 мин
Количество просмотров81K

Рассказываю, почему SQLite отлично подойдет вам в повседневной работе. И неважно, разработчик вы, аналитик, тестировщик, админ или продакт-менеджер.

Читать далее
Всего голосов 189: ↑187 и ↓2+235
Комментарии89

Разделение кода и текста: прототип

Время на прочтение6 мин
Количество просмотров4.9K

Этот пост является продолжением предыдущей публикации Разделение кода и текста: мысли вслух. На этот раз мы пойдем чуть-чуть дальше и представим возможный API, а также сравним рабочий процесс до и после. В качестве примера использованы язык PHP и фреймворк Laravel, но это почти не имеет значения.

Читать далее
Всего голосов 4: ↑3 и ↓1+4
Комментарии20

Разделение кода и текста: мысли вслух

Время на прочтение4 мин
Количество просмотров6.4K

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

В итоге мы видим тысячи сайтов и приложений, которые говорят с пользователями на неестественном языке вроде: “Использованы запрещенные символы” или “Операция успешно завершена”. Как часто вам в жизни, на улице говорят такие фразы? 

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии50

Когерентная суперпозиция глубоко в основе коррупции

Время на прочтение8 мин
Количество просмотров5.2K
Доброго времени суток, дорогие читатели.

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

Все началось с небольшой модели экономических взаимодействий организаций, целью которой было наглядное представление статистически достоверного определения паттерна поведения (стратегии) компаний в развертке их эволюционного состояния. Иными словами я старался смоделировать эволюцию с учетом корреляции между состоянием развития и стратегией игроков в рынке…
Читать дальше →
Всего голосов 11: ↑6 и ↓5+4
Комментарии41

(Законы Акина) законы космической инженерии

Время на прочтение3 мин
Количество просмотров39K
1. Инженерная разработка — это цифры. Анализ без цифр — это просто мнение.

2. Создание правильной ракеты занимает бесконечное количество времени. Поэтому следует создавать ракеты, в которых что-то неправильно.
Читать дальше →
Всего голосов 82: ↑76 и ↓6+70
Комментарии29

It's a (focus) Trap

Время на прочтение5 мин
Количество просмотров16K
Люди которые пишут стандарты — очень хитро устроились. Им достаточно написать как должно все хорошо работать, а дальше уже не их проблемы.

Примерно так и получилось с тем «как должны работать диалоги», точнее «правильные» с точки зрения a11y модальные диалоги.

В описание к dialog role на MDN все написано очень просто:

  • The dialog must be properly labeled
  • Keyboard focus must be managed correctly

Проблема в том, что MDN забыла еще об одном важном пункте, а все остальные забыли про один из сказанных – про то, что модал не должен выпускать фокус из своих рук. Активный элемент надо посадить под замок. Не дать ему сбежать из нашей ловушки.


Это будет настоящий детектив!
Всего голосов 20: ↑19 и ↓1+18
Комментарии24

Как написать хороший SLA

Время на прочтение14 мин
Количество просмотров184K

Как написать хороший SLA (Service Level Agreement, оно же Соглашение об уровне сервиса). И какой SLA будет хорошим.


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

Ниже сплошной текст без диалогов и картинок
Всего голосов 14: ↑14 и ↓0+14
Комментарии5
2

Информация

В рейтинге
Не участвует
Откуда
Улан-Удэ, Бурятия, Россия
Зарегистрирован
Активность