Рубрика «Программирование» - 52

KC868-AG: IoT шайба - 1

Не знаю как у вас, а меня первая ассоциация при взгляде на Kincony KC868-AG — это хоккейная шайба. На самом деле это очередной IoT контроллер от компании Kincony на популярном микроконтроллере ESP32, предназначенный для IR управления домашней аппаратурой и дополнительно снабжённый беспроводным приёмником и передатчиком 433 МГц для взаимодействия с устройствами наподобие метеодатчиков, умных розеток и тому подобных устройств.

Во многом KC868-AG напоминает уже рассмотренный нами раньше контроллер KC868-Uair, но есть и некоторые отличия. Об этих отличиях и о том, как можно использовать KC868-AG мы и поговорим дальше.
Читать полностью »

В.А. Дебелов, середина 80-х годов
В.А. Дебелов, середина 80-х годов

Эта статья не относится к жанру официозных юбилейных публикаций. Скорее – это небольшой,  очень личный, не совсем упорядоченный и причёсанный набор воспоминаний и раздумий о пути, пройденном Машинной Графикой в в СССР и о человеке, посвятившему ей всю свою жизнь - докторе технических наук, лауреате Государственной Премии СССР, Викторе Алексеевиче Дебелове.

Читать полностью »

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

Если спросить современного С++ разработчика какие примеры type erasure он видел / использовал, то вероятно он ответит что то про std::function и возможно про std::any, но это лишь малая часть всех применений этого замечательного инструмента!

В статье я постараюсь описать все возможные виды type erasure в современном С++, но начать стоит с определения.

Читать полностью »

Существует множество языков для музыкального программирования. О некоторых из них, например, Sporth или ORCA, мы рассказывали в блоге. Сегодня поговорим о проекте Harmonicon — браузерном DAW, реализующем концепцию music-as-code.

Фотография: Aliane Schwartzhaupt. Источник: Unsplash.com
Фотография: Aliane Schwartzhaupt. Источник: Unsplash.com

Читать полностью »

Существует классическая задача:

Есть 2 емкости: 5 литров и 3 литра. Как отмерить 4 литра жидкости используя только эти 2 емкости?

Понятное дело что тут важно не сколько знание правильного ответа, а знание метода решения таких задач. Ведь вместо целевых 4х литров могут спросить отсчитать и 1,2,6,7 литров.

В этом тексте я решу эту задачу в общем виде при помощи конечного автомата. Так как тут явно можно проследить состояния и входные воздействия. Также я упомяну про малоизвестный язык Front-End разметки DotЧитать полностью »

Лора на батарейках (мечта каждого мужчины) - 1

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

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

Можно было бы сделать свои батарейные LoRa модули (благо прототипы есть и прекрасно работают), но не хотелось тратить время на изобретение велосипеда, а просто купить что-то готовое, и я заказал с Aliexpress несколько плат-кандидатов для тестирования.

Одна из таких плат — LoRa Radio Node, отчёт о её разборе (по косточкам) и тестировании я и предлагаю вашему вниманию.
Читать полностью »

Предисловие: это гайд для старшеклассников, первокурсников и тех кто отчаялся в программировании и подумал, что это сложно и не для меня.

Читать полностью »

Как написать калькулятор на HTML и CSS без JavaScript - 1

Материалом о разработке калькулятора на CSS и HTML, без файла JS, тега script и обработчиков событий в HTML делимся к старту курса по Fullstack-разработке на Python. За подробностями приглашаем под кат.

Постановка задачи

Читать полностью »

Как разработчику перестать быть потребителем технологий - 1

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

Почему ты выбрал такой подход к решению?

  • Не знаю. Прочитал в какой-то статье.
  • Не знаю. Скопипастил его из X.
  • Не знаю. Такой же подход я использовал в предыдущем проекте.
  • Не знаю. Кто-то мне посоветовал.

Этот паттерн можно назвать "потреблением вместо творчества". Потреблением без сомнений и вопросов. Потреблением, потому что можно спрятаться за чьим-то авторитетом.

Я видела разработчиков, берущих решение других людей как должное. Без малейших раздумий о выбранном подходе, не заморачиваясь анализом. Да, конечно, когда Дэн Абрамов говорит мне, как правильно использовать React, или в документации написано, что это единственный способ применения API, то с этим нужно согласиться. Тем не менее, когда вы используете какой-то технический контент без хотя бы доли скептицизма, то вы всё равно сможете продвинуться в своей карьере, но есть вероятность, что это вам помешает.
Читать полностью »

Любая программа состоит из данных и алгоритмов их обработки. Для написания программ на C++ в начале 90-х годов прошлого века Александр Степанов с коллегами разработал библиотеку STL. Я, Михаил Полукаров из команды разработки VK Teams, заглянул под капот этой библиотеки чтобы разобраться, как правильно ей пользоваться, в каких случаях лучше использовать другие библиотеки, а в каких стоит написать что-то своё. 

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js