Pull to refresh
20
0
Станислав Змитрович @StanislavZm

Embedded Software Engineer

Send message

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Views485K
Всем привет!

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


Читать дальше →
Total votes 102: ↑100 and ↓2+135
Comments54

10 советов схемотехнику

Reading time20 min
Views121K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Total votes 158: ↑156 and ↓2+208
Comments245

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One

Level of difficultyMedium
Reading time10 min
Views10K
image

В своей жизни я обожаю как минимум три вещи: это C# (как и .NET в целом), интересное железо и одноплатные компьютеры. В Embedded-системах на Linux обычно принято писать код на C/C++ для решения чувствительных к производительности задач и интерпретируемых Lua/Python для быстрого прототипирования, которые стали популярны в встраиваемых устройствах сравнительно недавно. Однако о нативной разработке под одноплатники на C# практически ничего не слышно и я решил исправить это недоразумение! В сегодняшнем материале: рассмотрим, какие платформы .NET нам доступны на одноплатниках, научимся работать с GPIO и SPI в юзерспейсе, а также напишем практическое приложение, которое реализовывает драйвер дисплея и выводит на экран определенное изображение.
Читать дальше →
Total votes 34: ↑32 and ↓2+39
Comments36

«Я стал тимлидом и боюсь». Что почитать и зачем

Level of difficultyEasy
Reading time8 min
Views31K
Стресс, связанный с переходом на менеджерскую роль, способен пошатнуть любые, даже самые крепкие нервы. А если ваше решение стать руководителем желанное и осознанное, то вы легко можете загнать себя в ловушку из двух стен: тревожности и перфекционизма.

Меня зовут Александр Шиндин, я — технический менеджер мобильных продуктов Kaspersky Password Manager и Kaspersky Who Calls. Я так сильно хотел проявить себя в роли руководителя, что внутренних обучающих курсов, которые дает в таких случаях компания, мне не хватало, — и лучшим дополнением к теории стали книги. Они ускорили мое погружение в мир менеджмента, помогли быть готовым к еще большему числу нестандартных ситуаций и придали уверенности в принимаемых решениях.

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


Читать дальше →
Total votes 44: ↑43 and ↓1+52
Comments17

Опасность устарела: несколько важных нюансов в новых стандартах C++

Reading time16 min
Views16K
Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли относительно неопределенного поведения кое-что новое. И довольно важное, если вы — архитектор ПО, а «плюсы» — ключевой стек вашей компании (подробнее о том, как и почему мы в «Лаборатории Касперского» много используем С++, читайте здесь).

В этой статье я со своих позиций Senior Software Architect и Security Champion в микроядерной операционной системе KasperskyOS рассмотрю кейсы-ловушки, в которые можно попасть практически в любом из стандартов, и покажу, что меняется в С++20/23/26, — уменьшается ли количество кейсов с неопределенным поведением, и становится ли С++ безопаснее.


Читать дальше →
Total votes 58: ↑56 and ↓2+60
Comments76

Список полезных IT-ресурсов для специалистов из сферы

Reading time2 min
Views48K
Привет, Хабр! Когда-то наша команда решила собрать список важных источников для расширения кругозора наших сотрудников в IT-индустрии.

Поэтому мы подумали и решили опубликовать наш список используемых ресурсов и здесь:
Читать дальше →
Total votes 11: ↑4 and ↓70
Comments11

Don't Repeat Yourself: Как правильно использовать принцип DRY в разработке ПО

Reading time6 min
Views21K

Принцип “Не повторяйся” (Don't Repeat Yourself, или DRY), то есть избегай дублирования кода, часто относят к обязательным практикам в программировании. Однако в реальности часто можно увидеть, как в общем коде оказываются концептуально разные блоки, которые похожи только по внешним параметрам. Это неминуемо приводит к ухудшению кода и появлению "костылей", без которых он не работает. Именно поэтому слепое следование принципу DRY не всегда целесообразно! В этой статьей я расскажу про типичные ошибки при использовании этого правила и способы их избежать.

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments5

Методология Kanban: введение

Reading time4 min
Views305K
Добрый день!

Одним из моих профессиональных интересов, как координатора команды тестировщиков, являются методологии разработки программного обеспечения. В настоящее время все большую популярность приобретают так называемые Agile-методологии, в особенности Scrum и Kanban. На «раcпиаренных» терминах играют недобросовестные «тренеры», семинары и сертификации («сертифицированный Scrum-мастер», «сертифицированный Product owner» и т.д.) растут как на дрожжах.
Total votes 40: ↑28 and ↓12+16
Comments49

FreeRTOS: мьютексы и критические секции

Reading time3 min
Views71K

Здравствуйте. Это заключительная статья о многопоточном окружении FreeRTOS в которой я расскажу про мьютексы и критические секции.
Ссылки на предыдущие части:

Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments5

Фильтр Калмана

Reading time10 min
Views430K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Total votes 178: ↑173 and ↓5+168
Comments84

Проектирование архитектуры embedded-приложения

Reading time6 min
Views14K


Добрый день! Хотелось бы поговорить на тему архитектуры embedded приложений. К сожалению, книг по этой теме очень мало, а в связи с тем, что, в последнее время, интерес к embedded и IoT растет, хочется уделить внимание этому вопросу. В этой статье, я бы хотел описать один из возможных вариантов того, как можно проектировать такие приложения.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments28

События .NET в деталях

Reading time9 min
Views151K
Если вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
Читать дальше →
Total votes 59: ↑57 and ↓2+55
Comments16

Старт работы с Excel на C#

Reading time7 min
Views99K

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

Однако, у многих Excel до сих пор ассоциируется с чем-то тяжелым, неповоротливым и сложным. Давайте посмотрим, как мы, C# разработчики можем легко сформировать простой Excel документ, на примере табличного отчета.

Читать далее
Total votes 15: ↑13 and ↓2+16
Comments43

STM32MP1: U-Boot, Buildroot, Arch Linux и немного Debian

Reading time17 min
Views23K
Привет, Хабр!

Некоторое время назад компания STMicroelectronics выпустила интересные процессоры серии STM32MP1. Когда у меня наконец-то дошли руки до отладочной платы на основе этого процессора, я с некоторым удивлением обнаружил, что для нее отсутствуют какие-либо сборки на основе популярных дистрибутивов (Debian, Arch Linux и др). Оставалось только попробовать самому адаптировать какой-нибудь дистрибутив под данную плату. По результатам этого и появилась данная статья.


Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments41

Как собрать бюджетный умный дом. Общие принципы проектирования на оборудовании Wiren Board

Level of difficultyMedium
Reading time28 min
Views47K

Сборник коротких рецептов по автоматизации инженерных систем дома, офиса и любого другого объекта на оборудовании Wiren Board.

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

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments35

В чем разница между мидлом и сеньором

Level of difficultyEasy
Reading time2 min
Views33K

Заметка навеяна вопросом друга на эту тему, решил развернуто ответить.

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

В чем разница между мидлом и сеньором? Пройдем по пунктам:

Зам тимлида

Да, позиция сеньора означает, что он может быть потенциальным замом тимлида, Что это значит?

Читать далее
Total votes 38: ↑8 and ↓30-20
Comments82

Доказано наукой: 7 способов быть продуктивнее

Level of difficultyEasy
Reading time10 min
Views40K

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


В тексте речь идёт о маркетологах, однако материал будет полезен всем, кто работает с информацией, чей главный инструмент на работе — это мозг.

Читать дальше →
Total votes 19: ↑11 and ↓8+5
Comments21

Эволюция человека остановилась?

Level of difficultyEasy
Reading time9 min
Views28K

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

Я думаю все знают, что такое естественный отбор. Антилопы убегают от львов, самые быстрые антилопы выживают и передают свои гены дальше, а медленные погибают. Таким образом с каждым поколением антилопы становятся быстрее. А теперь давайте посмотрим на людей. Как правильно сказал Станислав Дробышевский высокий интеллект, не является тем признаком, который делает человека более эволюционно успешным. Для успешности нужно не только выжить, но и передать как можно больше своего генетического материала, то есть завести больше детей. Какие признаки способствуют эволюционной успешности человека? Сразу вспоминается фильм Идиократия, да? Но на самом деле всё не так плохо, да мозг уменьшается и вероятно люди становятся физически слабее, на этот счёт тоже есть исследование(1 и 2), хотя срок исследований слишком мал для далеко идущих выводов. Для понимания куда мы движемся по дороге эволюции, сначала нужно понять, как проходит естественный отбор в нашей популяции.

Люди чаще всего гибнут от голода, болезней, войн, несчастных случаев, катастроф. Наверное, вы уже поняли, что объединяет эти признаки? Они неизбирательные. Если случился неурожай, от голода гибнут все, не важно умный ты или сильный. От болезней по большей части тоже, особенно это проявилось с развитием медицины, от пандемии коронавируса гибло больше всего пожилых и людей с хроническими заболеваниями. То есть тех, кто уже внёс свой вклад в эволюцию. Война то же самое, какой бы сильный ты не был, численное преимущество противника, стрела или дротик не оставят тебе шансов. А с появлением артиллерии и огнестрельного оружия, эта ситуация ещё более усугубилась. Про катастрофы и несчастные случаи и говорить нечего. Единственное качество, которое может закрепиться при таком отборе – это удача. Но учёные пока не нашли гена, который за неё отвечает.

Читать далее
Total votes 50: ↑36 and ↓14+34
Comments178

Учебное проектирование для джунов: как учить и зачем

Level of difficultyEasy
Reading time12 min
Views25K

Привет! Меня зовут Андрей, я бэкенд-тимлид в KTS

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

В статье расскажу про методику обучения проектированию в нашей компании.

Читать далее
Total votes 32: ↑31 and ↓1+31
Comments10

C#: требования и рекомендации по написанию кода

Reading time5 min
Views146K
Не так давно в комментариях к топику AlexS высказал идею использования соглашения об оформлении на Хабре кода примеров темы .Net написанных на C#.

Я немного поизучал имеющиеся предложения из этих источников:
submain.com/blog/FreeCVBNETCodingGuidelinesEbookDownload.aspx
idesign.net/idesign/DesktopDefault.aspx
и скомпилировал черновик который описывает самые базовые правила оформления кода написанного на C#.

Предлагаю:
— обсудить этот черновик;
— внести в него все необходимые изменения;
— утвердить как стандарт написания C# кода на Хабре.
Более того, предлагаю создать документ, который можно было бы предложить как рекомендации habrahabr comunity для всех других программистов C#.

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

Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments117

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
STM32