Pull to refresh
-30
Ошнуров Андрей @andreoshread⁠-⁠only

Программист

Send message

Распознавание речи при помощи Arduino Nano: пример простой системы

Reading time2 min
Views17K
image

Разработчик по имени Питер, как и многие из нас, попал на долгое время в ловушку карантина. У него появилось свободное время, причем много, и Питер решил разработать систему распознавания речи на базе Arduino Nano.

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

Начало работы с MongoDB и Redis на Rust

Reading time13 min
Views12K

В этой статье будет показано как создать Rust бэкэнд, который использует MongoDB, документо-ориентированную БД, для хранения данных и Redis для кэширования, ограничения количества HTTP запросов и нотификаций пользователя. Для большей наглядности созданное приложение также будет предоставлять REST API. В итоге будет получена следующая архитектура:


architecture


MongoDB является хранилищем, в то время как Redis используется для следующего:


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

Как провести онлайн-конференцию на 2 000 участников, даже если ты болеешь коронавирусом

Reading time11 min
Views3K

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

Скажу сразу, что мероприятие далось нам нелегко. Конфа несколько раз переносилась из-за пандемии, менялся формат и список спикеров, да еще и в самый разгар подготовки и  момент проведения я заболела ковидом. Но всё-таки мы это сделали. Провели 3 стрима, на которых суммарно собрали около 2 000 зрителей, представили 21 доклад, организовали 3 панельные дискуссии и розыгрыш призов. И все это за один день!

Для меня было важно, чтобы конференция была прикладной и полезной. Ведь IT-конференция — это не какая-то пиар-история, это больше про развитие комьюнити и шеринг знаний. Судя по отзывам, такой она и получилась. Поэтому я решила обобщить свой опыт подготовки, возможно, кому-то он тоже пригодится.

Го делать конференцию

Как создать динамический профиль на GitHub с помощью GitHub Actions и PHP

Reading time4 min
Views4.8K

В прошлом году GitHub без лишнего шума выпустил новую возможность, которую быстро заметили в сообществе пользователей, — файлы README в профилях. По сути, README-файл профиля представляет собой глобальный файл README, связанный с вашим профилем GitHub. Чтобы он появился, нужно создать публичный репозиторий, имя которого совпадает с вашим именем пользователя на GitHub. Например, мое имя пользователя — osteel, поэтому я создал osteel/osteel в качестве такого репозитория.

Читать далее

Подводные камни при работе с enum в C#

Reading time9 min
Views18K

0844_EnumBoxing_ru/image1.png


C# имеет низкий порог вхождения и прощает многое. Серьёзно, на этом языке преспокойно можно писать, не особо понимая, как всё работает под капотом, и не забивать голову. Однако со временем приходится сталкиваться с разными нюансами. Сегодня рассмотрим один из них — работу с перечислениями.

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

Библиотеки для цифровой обработки сигналов на C++

Reading time3 min
Views12K

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

Подобрали три библиотеки на C++ для звукового синтеза.

Читать далее

Делаем простого бота в Telegram на Python. Интеграция с Excel

Reading time9 min
Views73K

Друг предложил мне поработать над проектом для нашей кафедры. ТЗ пока не сформулировано, но точно известно, что это будет бот в телеге. Я хоть и питонист, но с ботами дел никогда не имел, поэтому пишу эту статью, как заметку, для себя и молодых перспективных ребят, чтоб у них было от чего оттолкнуться. Постараюсь писать максимально понятным и простым языком. Профессионалам тут особо делать не чего, хотя, может и придёт какая-нибудь идея.

Читать далее

Интеграция PVS-Studio в uVision Keil

Reading time14 min
Views3.8K

Я занимаюсь разработкой для встраиваемых систем (в основном, под STM32 и Миландр), в качестве основной среды я использую uVision Keil. И, поскольку пишу я на С и С++, уже долгое время меня мучает вопрос – правильно ли я пишу код? Можно ли так?


Не, он конечно компилируется, но это же С++, язык, где «program is ill-formed, no diagnostic required» — это норма.


Соответственно, на протяжении нескольких лет я донимал руководство просьбами купить нам лицензию PVS-Studio и, наконец, когда моя просьба неожиданно совпала с моментом, когда нужно было срочно потратить выделенные на закупку ПО деньги, нам ее все-таки купили!


Радости моей с одной стороны не было предела, но с другой оказалось, что не все так хорошо; сходу PVS-Studio встраивается только в Visual Studio (что порадовало отдел разработки под десктопы) и продукты от Jetbrains (CLion, Rider, Idea, Android Studio), для некоторых других систем сборки тоже предусмотрены готовые сценарии, а вот для Keil’a заявлена только поддержка компилятора – и все. А значит, нужно заниматься интеграцией. Кто будет этим заниматься? Ну, мне же больше всех надо…


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

Vulkan. Руководство разработчика. Рендеринг и отображение на экране

Reading time14 min
Views7.9K


Добрый день. Я занимаюсь переводом уроков к Vulkan API с английского языка на русский (ссылка на оригинальный тьюториал — vulkan-tutorial.com).

Сегодня я бы хотела поделиться с вами переводом заключительной главы в разделе Drawing — «Rendering and presentation».

Содержание
Читать дальше →

Объектно ориентированное программирование на Си без плюсов. Часть 1. Введение

Reading time5 min
Views32K

Приветствую! 

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

Статья рассчитана на тех кто уже знаком с Си, а все примеры ориентированы на ОС Linux. Мои познания Windows закончились на «WinXP», после которой в Windows стало уже очень много политики ("безопасности") и коммерческой составляющей, но я сейчас не об этом и надеюсь, что здесь вы найдёте для себя полезные моменты, а если я в чём-то не прав или заблуждаюсь, то поправите.

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

Так сложилось, что изучать традиции ООП я начал с Delphi и Java, являющихся, как считается, на 100% объектно ориентированными языками программирования, а потому аналогия решений у меня ассоциируется именно с ними. И далее в тексте я иногда буду на них ссылаться, что надеюсь не испортит суть полного понимания.

Читать далее

Лучшие практики написания комментариев к коду

Reading time7 min
Views13K

Известный профессор МТИ Гарольд Абельсон сказал: «Программы нужно писать для того, чтобы их читали люди, и лишь случайно — чтобы их исполняли машины». Хотя он намеренно преуменьшил важность исполнения кода, однако подчёркивает, что у программ две важные аудитории. Компиляторы и интерпретаторы игнорируют комментарии и с одинаковой лёгкостью воспринимают все синтаксически корректные программы. У людей всё иначе. Одни программы нам воспринимать легче, чем другие, и мы ищем комментарии, которые помогут нам разобраться.

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

Дистанционный съем показаний со счетчиков

Reading time20 min
Views41K

При разработке домашней автоматизации ("умного дома") рано или поздно возникает задача дистанционного съема показаний с бытовых приборов учета (БПУ) электроэнергии, воды, тепла, газа. Если в БПУ нет специального интерфейса для считывания показаний, то такая задача решается с помощью дополнительного устройства, которое в своей памяти будет вести копию показаний БПУ и иметь интерфейс для считывания этих показаний. Есть много вариантов реализации такого устройства на любой вкус, но практически все они требуют наличия в БПУ электронного импульсного выхода. К сожалению, далеко не все БПУ оборудованы таким выходом. В этой статье представлен обзор одного устройства, которое может работать с любым БПУ, как с импульсным выходом, так и без.

Читать далее

Data Science на JavaScript без Python

Reading time10 min
Views9.9K

Мы уже писали о том, как запустить Python в браузере, а сегодня к старту флагманского курса по Data Science расскажем, как привычные для Python задачи решаются на JavaScript. Если вы знакомы только с JS и хотите попробовать Data Science, не покидая зону комфорта, (или, наоборот, хотите познакомиться с JS), просто хочется необычных экспериментов или нужно интегрировать небольшую управляемую визуализацию о статистике на сайт, читайте подробности под катом.

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

Читать далее

Медицинский алгоритмический язык ДРАКОН против пандемии и не только. Статья для профессиональных врачей

Reading time33 min
Views8.2K

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

Даются краткие сведения о медицинском алгоритмическим языке ДРАКОН. Это графический язык, предназначенный для записи алгоритмов действий врача. В Литве с помощью ДРАКОНа обучают 9000 человек (медицинских работников и студентов) в год.

В российской медицине ДРАКОН мало известен. Но уже есть и в России успешные попытки использовать ДРАКОН в медицине, например, в области реаниматологии и анестезиологии для противодействия новой коронавирусной инфекции COVID-19.

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

Читать далее

Как я исполнил свою мечту и написал движок Диззи

Reading time8 min
Views9.9K

Давным-давно, два английских школьника умудрились основать серию игр, ставшую легендарными играми для ZX-Spectrum. Да, речь про братьев Оливеров и их неподражаемого Диззи. Впервые услышал я про Диззи в начале девяностых в возрасте лет эдак девяти-десяти, когда мне рассказали, как подруга моей сестры играет в некую игру с бегающим и собирающим предметы яйцом на компьютере (!). Сам спектрум у меня появился чуть позже – в одиннадцать лет (это октябрь 1994 года), почти вместе с книжками серии «Как написать игру для ZX-Spectrum». И вот в книжке про написание игры на ассемблере была картинка из игры Dizzy-4. Увы, самой игры у меня не будет ещё год-два. Но всё-таки, в конце-концов, мне её купили, как сейчас помню, в ларьке в СПб на Балтийском вокзале. Кассета была известной многим студии “Михаил и Михаил” (MIM). Вот тогда-то я прочно запал на Диззи. Я играл в него с утра до вечера, разгадывая головоломки и собирая монеты. Много-много лет мне очень хотелось написать что-то подобное. В 1996 у меня даже получился невероятный примитив на бейсике. Много лет я методично приближался к своей цели. И вот именно сейчас, спустя 25 лет, у меня наконец-то получилось что-то более-менее играбельное. Вот о том, как написать такую игру, я и расскажу.

На что обратить внимание в резюме, когда думаешь, что всё там хорошо

Reading time4 min
Views8.6K

Старое доброе «встречают по одёжке, провожают по уму» никто не отменял, и мне кажется очень важно не забывать что при поиске работы «первая одёжка» с которой знакомиться потенциальный работодатель это резюме кандидата.

Резюме это визитная карточка, если хотите ваше лицо, это то на основе чего специалист по HR, а часто ещё и будущий руководитель будут принимать решение приглашать вас для дальнейшего общения или нет. Конечно во время личной встречи вы уже сможете проявить все свои навыки и показать все свои знания. Но пока до этого мы не дошли, всё что есть сейчас это скорее всего очередное_резюме.pdf на 1-3 листа формата A4.

Я более 10 лет руковожу разработкой, успел поработать в нескольких компаниях, от небольшой где всё IT подразделение было меньше 20 человек, до компаний с IT штатом более 1000 человек. За это время я пересмотрел сотни и даже тысячи резюме. Выработались определённые рефлексы, уже знаю куда смотреть сначала, куда потом, куда ещё бросить взгляд и обычно нужно от 30 до 90 секунд чтобы принять решение, будем общаться дальше или нет.

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

Ну что там

Портативная игровая консоль, работающая от крошечного ядерного генератора

Reading time2 min
Views23K
image

В детстве нам казалось, что Sega Game Gear постоянно требуются свежие батарейки, но и Game Boy имел сильный аппетит к Duracell и Energizer. Современным портативным консолям наподобие Switch достаточно ночной зарядки, но чтобы иметь возможность продолжать играть в Tetris даже в постапокалиптической пустоши, Иэн Чарнас создал карманную консоль с ядерным источником питания, вообще не требующую батареек.

Zynq 7000. Собираем Linux и RootFS при помощи Buildroot

Reading time10 min
Views17K

Продолжаем изучение SoC Zynq 7000 и разбираемся с тем, как организовать подготовку, сборку Linux для отладочной платы QMTech. В прошлой статье я рассмотрел процедуру быстрой сборки (без кастомизации) основных компонентов встраиваемой системы Linux и шаг за шагом прошли путь до приглашения к вводу в работающей ОС. Согласитесь, что если вы новичок - то работа была выполнена колоссальная! К счастью, всю эту работу можно автоматизировать! И в этой статье я хотел бы уделить внимание этому вопросу и рассказать как это сделать с помощью Buildroot. Эту статью можно считать логическим продолжением общего повествования о начале работы с Linux на Zynq.

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

Всем интересующимся - добро пожаловать под кат!

Читать далее

gRPC клиент. Попробуй на вкус клиент/сервер на gRPC

Reading time4 min
Views14K

   В прошлой статье мы разобрали, как писать сервер на gRPC. И протестировали его с помощью BloomRPC. Теперь, давайте разберем как пишется клиент. И попробуем отправлять запросы с клиента на сервер. Это будет наш первый шаг к созданию микросервисов на грпц. 

   В моем случае я использую многомодульный проект, но можно создать отдельный проект. Структура проекта будет примерно следующей: 

Читать далее gRPC client

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity