Как стать автором
Обновить
12
0
Влад @iamkisly

Сферический разработчик в вакууме

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

ESP 8266: отправка данных на сайт методом Get запроса

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

Привет! Это мой первый пост здесь! Решил его написать, чтобы облегчить путь всем начинающим знакомство с ESP 8266. Много времени потратил чтобы разобраться с этой темой и что-то началось получаться. Изначально я отправлял данные в таблицу Googlesheets (об этом надо написать отдельный пост). Но потом захотелось сделать опорный проект - заготовку для дальнейшего развития. Итогом стала данная статья.

Итак, у нас есть ESP-01.

Read more
Всего голосов 27: ↑11 и ↓16-2
Комментарии20

STM32 и USB-HID — это просто

Время на прочтение14 мин
Количество просмотров372K
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать
Всего голосов 103: ↑101 и ↓2+99
Комментарии105

Range Extender на NRF24L01+PA+LNA: обмен текстовыми сообщениями между устройствами там, где нет сотовой связи

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров9.9K
Картинка Pressfoto, Freepik

Эта идея появилась у меня достаточно давно, и наконец-то дошли руки её частично реализовать. А именно: хотелось попробовать сделать средство общения с помощью известного радиопередатчика NRF24L01+PA+LNA.

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

Читать дальше →
Всего голосов 44: ↑42 и ↓2+56
Комментарии36

Как правильно маркировать рекламу после получения токенов из ОРД?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров28K

При исполнении закона о маркировке рекламы необходимо не только полноценно оформлять свою отчетность по доходному договору в ОРД (оператор рекламных данных), но и правильно нанести атрибуты маркировки на рекламные материалы.

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

Как мы Steam Deck Verified получали

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.3K

Это небольшой рассказ о том, как мы получили заветную плашечку Steam Deck Verified для нашей игры The Unexpected Quest. Причем, никто из нас даже в руках не держал этот ваш Steam Deck.

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

Outlook как сервер микросервисов

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

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

Ты ж у нас один программист !!!
Небольшая вводная. Я для друзей, по их запросам, выгружаю данные из MS SQL Server'а. Друзья дают исходные данные, для которых надо сделать выгрузку в файлах .csv. Исходных данных (ИД) может быть от 1 до ... строк. Я загружал данные в sql таблицу с помощью задачи или Task в английской версии в SQL Server Management Studio (SSMS). Исторически сложилось, что все sql файлы со скриптами хранятся на моем ПК. Я файлы открывал в SSMS и запускал на выполнение. Результаты записывал в файл и отправлял сообщение, что обработка выполнена. Друзья забирали файлы с результатами. 

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

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

Еще раз про асинхронную машину состояний и где именно там аллокации

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров20K

Несмотря на то, что про async/await уже было сказано много слов и записано множество докладов, тем не менее, в своей практике преподавания и наставничества, я часто сталкиваюсь с недопониманием устройства async/await даже у разработчиков уровня Middle+. В данной статье мы подробно рассмотрим машину состояний, сгенерированную компилятором из асинхронного метода для понимания принципа работы асинхронности в C#, разберемся где именно там аллокации и порешаем задачи для самопроверки. Если вы уже раз сто видели как выглядит асинхронная машина состояний, но все равно недопонимаете ее, тогда эта статья для вас.

Читать далее
Всего голосов 23: ↑21 и ↓2+24
Комментарии9

Async/Await в C#. Часть 5. Функция-перечисление и цикл через рекурсию, асинхронный вызов без Async/Await

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.3K

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

Там где мне придется цитировать (назовем это так) содержание исходного текста в переводе, оно будет выделено подчеркнутым курсивомпредыдущей статье я попробовал поэкспериментировать с особым форматированием, но это не всегда удобно читателю, на сколько я понимаю.

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

«Отучаем» WinFXNet от жадности (часть 1)

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров10K

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу
Всего голосов 88: ↑83 и ↓5+91
Комментарии28

Дамп разделов TV-бокса на чипе RK3528

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров16K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

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

Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров15K

USB Type-C - действительно универсальный порт.

В данной статье я расскажу о том, как использую Type-C для отладки устройств на STM32. По каким линиям проведен интерфейс SWD, чтобы не нарушить спецификацию USB и сохранить совместимость со всеми устройствами, как сделать свой программатор, и в чем плюсы и минусы этого решения под катом.

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

Получаем JTAG на iPhone 15

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров14K

Месяц назад Apple выпустила iPhone 15 — свой первый смартфон с разъёмом USB-C. Предыдущие полтора года я занимался аппаратным хакингом iPhone, например, мы выпустили опенсорсный последовательный JTAG-адаптер для iPhone под названием Tamarin Cable. Компания Apple наконец-то перешла на USB-C, поэтому мне стало любопытно, можно ли сделать что-то подобное с iPhone 15. Я купил по предзаказу этот телефон, пару печатных плат и набор электронных компонентов.

Прежде всего нужно сказать, что это не уязвимость и не jailbreak, я просто исследую USB-C в iPhone 15 и развлекаюсь со взломом оборудования.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии1

Как я делал первую маркировку рекламы в своём Телеграм-канале (пошаговая инструкция)

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

У меня небольшой авторский канал на 3 000 подписчиков. Рекламу в нём я продаю как самозанятое физическое лицо (эту роль взяла на себя моя жена). Поэтому рассказ будет о маркировке текстового рекламного поста, где заказчик и исполнитель — физические лица. С помощью кабинета ОРД Вконтакте, который пока что бесплатен.

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

TypeScript и все что тебе нужно в разработке

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров32K

Все для работы с продвинутым TS внутри. Generic Types, Mapped Types, Types Guard, Utility Types и многое другое. Шпаргалка с навигацией и примерами.

К изучению
Всего голосов 18: ↑14 и ↓4+12
Комментарии12

Как создать бота ВКонтакте: гайд для старта на платформе

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

Автоматизируем рутинные процессы с помощью платформы ботов VK — подборка материалов для разработчиков

Привет! Меня зовут Семён, я деврел платформы ботов ВКонтакте. Расскажу о том, как с ней работать, какие есть возможности и перспективы для разработчиков. В этой статье вы найдёте краткий пошаговый мануал: от поиска идеи для вашего чат-бота до проектирования его бизнес-возможностей. К каждому этапу будут ссылки на полезные материалы и источники, где можно узнать больше и погрузиться в технологию. 

Статья будет дополняться по мере развития платформы — свежими ссылками на документацию, обзорами и интересными кейсами.

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

Почему тип поля enum на уровне базы — зло

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров33K

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

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

Но это в теории. А что на практике? Рассмотрим под катом.

Читать далее
Всего голосов 33: ↑14 и ↓190
Комментарии178

Тайны виртуальных конвертов: чтение и парсинг .pst файлов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.6K

Привет, Хабр!

Меня зовут Максим Саввин, я участник профессионального сообщества NTA.

Сегодня я рассмотрю алгоритм чтения и парсинга .pst-файлов, написанный на python, для работы с одним файлом и оставлю в стороне параллельную обработку, которую стоит использовать при работе с большим числом архивов.

Узнать больше
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Почему телевизоры за последние годы упали в цене на 97%. И почему вам стоит этого бояться

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

Вы, может быть, не заметили, но с телевизорами в последнее время творится что-то неладное.

Лет тридцать назад телевизор был почти предметом роскоши. И не только в странах бывшего СССР. Даже в Америке они, цветные и ламповые, продавались минимум за 800 долларов (то есть около 2500 долларов сегодня с поправкой на инфляцию). Семьи пользовались одним и тем же телевизором на протяжении нескольких поколений. Он хранился у многих дольше, чем автомобиль.

Но сейчас с телевизорами происходит какая-то интересная история. Как и многие другие устройства, за последние десятилетия они стали намного лучше и технологичнее. Но в то время как, скажем, новые автомобили стоят примерно столько же, как и 10 лет назад, а новые смартфоны даже растут в цене, телевизоры стали на порядки (!) дешевле. Что, казалось бы, противоречит элементарной логике.

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

Три способа отладки T-SQL кода

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.2K

Написание нового кода = ошибки. С этим всё просто.

Избавится от ошибок – вот это сложная задача.

Программисты привыкли, что в их средствах разработки есть встроенные инструменты, показывающие, какая строка кода сейчас работает, отображают текущее содержимое переменных, выводят сообщения о процессе выполнения и т.д. Какое-то время в SQL Server Management Studio тоже был отладчик кода, но, начиная с версии SSMS v18, он был удален. Хотя даже когда отладчик был, я не фанател от него: SQL Server буквально мог прекратить обработку других запросов, пока выполнял ваш запрос. Это была катастрофа, особенно когда ваш запрос блокировал других пользователей, и всё это происходило на рабочей базе.

Мне бы хотелось, чтобы у нас был простой способ отладки T-SQL на рабочей базе без блокировок, но отладка T-SQL отличается от отладки в C#. Так что если ваш T-SQL код делает не то, что вы ожидали, вот несколько хороших способов для его отладки.

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

Разбираемся с использованием неблокируещего ввода-вывода в ОС Linux. Пишем пример сервера на голых системных вызовах

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

Как обычно пишут сервер, если не особо заботиться производительности? Программа запускается, затем начинает принимать входящие соединения от клиентов и для каждого клиента запускает новый поток, который занимается обслуживанием этого клиента. Если вы используете какой-нибудь, прости господи, Spring или Flask или там Poco, то он что-такое внутри себя и делает - разве что потоки можно переиспользовать, то есть брать из некого пула. Это всё довольно удобно, но не слишком эффективно. Скорее всего, ваши потоки, обслуживающие клиентов, живут недолго и большую часть времени ожидают либо получения данных от клиента, либо отправки их клиенту - то есть ждут возвращения системных вызовов. Создание потока ОС - довольно дорогая операция, как и переключение контекста между потоками ОС. Если вы хотите уметь обслуживать много клиентов эффективно, надо придумать что-то другое. Например, коллбеки. Но это довольно неудобно.

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

Информация

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

Специализация

Backend Developer, Прокрастинатор
Git
SQL
.NET
MSSQL
ASP.NET Web API
.NET Core
ASP.Net
Database