Pull to refresh
14
0
Сергей @dvserg

Пользователь

Send message

Достучаться до небес, или FSM на шаблонах

Reading time13 min
Views15K

Здравствуйте! Меня зовут Александр, я работаю инженером-программистом микроконтроллеров.

Пишу на С/С++, причем предпочитаю плюсы, ибо верую в их эволюционную неизбежность в embedded.

Мир встроенного ПО, язык С++ динамично развиваются, поэтому разработчикам важно не отставать и поддерживать свои скиллы и наработки актуальными моменту.

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

Некоторое время назад я посмотрел мощный доклад Сергея Федорова про построение конечного автомата с таблицей переходов на шаблонах.

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments24

Как быстро проверить все конденсаторы на плате. Простой ESR-пробник

Reading time3 min
Views78K

Как определить неисправный электролитический конденсатор?

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

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

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

На одном из форумов я нашел схему и решил повторить ее.

Читать далее
Total votes 25: ↑24 and ↓1+29
Comments42

Websocket или REST? А зачем выбирать?

Reading time8 min
Views34K

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

Узнать больше
Total votes 6: ↑3 and ↓30
Comments20

Создание своего серверного ядра на Go для Minecraft Java. Часть #1 — Основное о идее и малое начало

Reading time7 min
Views12K

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

Конкретно в этой части статьи будет рассматриваться основные понятия об Minecraft, мультиплеере и почему решил сделать такое. Так же сделаем основу сервера, который пока будет поддерживать Ping-Pong List

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments8

Ссылки и ссылочные типы в C++

Level of difficultyMedium
Reading time47 min
Views127K

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.


Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.



В C роль ссылок играют указатели, но работать с ними не очень удобно и в C++ появилась отдельная сущность — ссылка (reference). В C++11 ссылки получили дальнейшее развитие, появились rvalue-ссылки, универсальные (передаваемые) ссылки, которые играют ключевую роль в реализации семантики перемещения — одном из самых значительных нововведений C++11.



Итак, попробуем рассказать о ссылках в C++ максимально подробно.


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

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views650K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

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

Войны 68000, часть 2: возвращение Джека

Reading time20 min
Views6.9K
До этого: << Войны вокруг чипа 68000, часть 1: Amiga Lorraine

Джек Трэмел, директор компьютерной фирмы, которого так и хочется сравнить с Дартом Вейдером. Интересно, почему?..

Позволяя крайнему сроку подписания лицензионного соглашения с Atari, 31 марта 1984, пройти мимо, Дэвид Морс безумно рисковал. Если бы он не смог найти способ наскрести $500 000 с процентами, чтобы расплатиться с займом, Atari могла совершенно бесплатно получить чипсет Amiga в своё распоряжение, а компания Amiga почти наверняка разорилась бы. Поэтому вся активность в компании Amiga крутилась вокруг подготовки компьютера Lorraine к летней выставке потребительской электроники (CES) в Чикаго, которая должна была начаться 3 июня. Летняя CES должна была стать последним шансом для Amiga, отчаянной попыткой заинтересовать кого-нибудь – кого угодно – своими предложениями настолько, чтобы получить более полумиллиона долларов только для начала, только для того, чтобы не дать Atari сделать всю затею бесполезной.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments3

Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению

Reading time7 min
Views29K
Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания актуальными».

Возможно, вы менеджер, который последние 10 лет работал на одном и том же стеке; возможно, вы разработчик, который поддерживает старое решение или пишет на привычном языке в привычной среде. Возможно, вы просто перешли из технического в организационный менеджмент и вдруг выяснили, что все, что вы знали, больше не актуально, и хочется понять — есть ли какой-то относительно простой сценарий, как это можно догнать. Я постараюсь дать советы, основываясь на собственном опыте, — от человека, который осознал, что, находясь на организационном управлении, скоро будет выражаться словами «Kubernetes — это эффективная технология, мы должны стремиться к ее применению», не вполне понимая, что лежит за этими словами и за всей технической культурой, развившейся в последнее время.

Почему я считаю важным уметь менять парадигму технологического мышления?
Читать дальше →
Total votes 37: ↑31 and ↓6+37
Comments37

Руководство по Git. Часть №1: все, что нужно знать про каталог .git

Reading time4 min
Views60K



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

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

Это первая часть гайда по Git из блога Pierre de Wulf в переводе команды Mail.ru Cloud Solutions
Читать дальше →
Total votes 47: ↑36 and ↓11+42
Comments64

Чистая архитектура с Typescript: DDD и слоистая архитектура

Reading time7 min
Views22K
Привет, Хабр! В последнее время уделяю много внимание архитектуре и решил поделиться с сообществом переводом статьи Clean Architecture with Typescript: DDD, Onion автора André Bazaglia.

Введение


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

Целью данной статьи является не детальное покрытие сложных тем по DDD и Слоистой архитектуре, а пример реализации этих двух подходов в Typescript. Используемый проект является базовым и может быть доработан и расширен, например с использованием подхода CQRS.
Читать дальше →
Total votes 9: ↑7 and ↓2+9
Comments8

Признайтесь, Уотсон, вы совершенно сбиты с толку?

Reading time2 min
Views8.1K
Холмс потер руки и засмеялся от радости.
— Наш материал быстро разрастается, — сказал он.
Артур Конан Дойль «Пляшущие человечки»




Зима.

Глинтвейн, мандарины, приятные хлопоты, сказочное время и посиделки под камином у экрана с сочным аниме.

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

Настало время оупоительных загадок.
Прикоснуться к неизвестному
Total votes 7: ↑4 and ↓3+4
Comments39

Неожиданная встреча. Глава 1

Reading time13 min
Views36K
День был изумителен. По небу плыли белые облака, похожие на растянутый кусок ваты, через белые нити которого просвечивало яркое синее небо. Солнце подсвечивало сверху участки леса, создавая картину бегущих зеленых волн в такт тем местам на небе, где облака не закрывали солнце. Было заметно быстрое движение облаков, но ветер почему-то не ощущался. И это было странно здесь, на вершине горы. Птиц тоже не было ни видно, ни слышно. Хотя… если прислушаться… где-то вдали раздавались трели дринь-дринь-пик-пик…



Читать дальше...
Total votes 16: ↑12 and ↓4+8
Comments7

Property в C++

Reading time5 min
Views39K
Наверное, все любители языка C++, которые использовали другие языки, такие как C#, удивляются: почему же в плюсах нет property? Ведь это действительно удобное средство, позволяющее полностью контролировать доступ к членам класса. Недавно и я заинтересовался данным вопросом. Подумав, полистав Страуструпа и наконец, погуглив, я пришёл к выводу, что property можно реализовать средствами языка. Думаю многие уже видели разнообразные реализации, например, от microsoft, но для кого-то, надеюсь, это будет интересным открытием.
В статье вы найдёте один из возможных вариантов реализации свойств при помощи шаблонов.
Читать дальше →
Total votes 63: ↑50 and ↓13+37
Comments90

Колония. Глава 4: Старая военная база

Reading time16 min
Views14K

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


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


Либо жить, либо умереть – третьего варианта не было. Барни пригнулся, готовясь к решающему прыжку. Руки сами разжались, позволяя автомату, только что сделавшему свое самое важное дело, поддаться законам гравитации и начать падение. Прыжок! – но руки так и не нащупали заветного поручня, – ровер уже сорвался с мертвой точки.
Дав небольшую пробуксовку по стволу, последнее колесо съехало с него на грунт, отчего сработала система амортизации, и ровер слегка подпрыгнул задней осью, создав еще долю секунды промедления.
Барни сделал последний рывок.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments39

Пополняем шпаргалки по C++: неявно-генерируемые перемещающий конструктор и оператор присваивания

Reading time2 min
Views25K
Когда не так часто, как хотелось бы, приходится работать с языком, некоторые аспекты забываются. А некоторые никогда и не откладываются в голове. Поэтому, когда возникают вопросы, приходится отвлекаться и лезть в документацию.

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

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

Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments19

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity