Pull to refresh
13
Karma
0
Rating
Сергей @dvserg

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

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

Reading time 13 min
Views 9.3K
C++ *Programming microcontrollers *
Sandbox

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

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

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

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

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

Читать далее
Total votes 20: ↑17 and ↓3 +14
Comments 24

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

Reading time 3 min
Views 37K
DIY
Sandbox

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

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

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

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

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

Читать далее
Total votes 31: ↑30 and ↓1 +29
Comments 42

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

Reading time 8 min
Views 19K
JavaScript *TypeScript *
Tutorial

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

Узнать больше
Total votes 6: ↑3 and ↓3 0
Comments 20

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

Reading time 7 min
Views 6.7K
Go *Games and game consoles
Sandbox

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

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

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

VK приглашает на бесплатные курсы по аналитике, тестированию и обеспечению доступности

Reading time 2 min
Views 7.1K
VK corporate blog IT systems testing *System Analysis and Design *Studying in IT IT career

VK Образование запускает три бесплатных онлайн-программы для студентов магистратуры и старших курсов бакалавриата и специалитета. Вы сможете освоить системную аналитику, ручное и автоматизированное тестирование. Интенсивы длятся семестр, поступить на них могут старшекурсники любого российского вуза или выпускники, завершившие обучение в прошлом году. Студенты московских вузов также могут подать заявки на офлайн-интенсив «Практический квест для инженера доступности сервисов». Прием заявок на курсы открыт на сайте VK Образования.

Читать далее
Total votes 6: ↑4 and ↓2 +2
Comments 6

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

Reading time 47 min
Views 62K
Programming *C++ *
Tutorial

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


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



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



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


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

Сокеты в Python, чат в 50 строк

Reading time 4 min
Views 7.5K
Python *Studying in IT
Sandbox

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

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

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

Для начала определимся, что это за зверь такой - Сокет?

Представим себе работу ресторана быстрого питания, пусть будет Burger Queen, так вот работник этого заведения и будет сокетом, то есть программой, которая отвечает за обмен данными(бургерами) между клиентом и заведением. Как сокет узнает кому отдать заветное хрючево(данные)? У него есть чек с номером заказа! Вот и у сокета есть порт к которому он привязан, то есть и в Burger Queen и в сетевых технологиях есть приложение, тот самый сокет, который отвечает за работу с определенным портом, так же как и работник, который отвечает за обработку конкретного номера заказа, ведь и к конкретному компьютеру и к конкретной забегаловке одновременно конектятся разные клиенты, и всем им нужны разные данные.

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 21

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

Reading time 16 min
Views 352K
Instant Messaging *API *

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

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

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

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

Kali Linux получил графический интерфейс для подсистемы Windows для Linux (WSL2). Инструкция по установке

Reading time 2 min
Views 43K
Information Security *Open source *Development for Linux *


Команда разработчиков Kali Linux представила графический интерфейс для подсистемы Windows для Linux (WSL). Решение называется Win-Kex (Windows + Kali Desktop EXperience). Теперь можно запускать популярный дистрибутив для пентеста на ПК с Windows 10 в WSL2 с GUI.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 14

В Windows 10 появился собственный сниффер трафика pktmon, как запустить и пользоваться

Reading time 2 min
Views 59K
System administration *Network technologies *Software


Исследователи портала Bleeping Computer обнаружили, что компания Microsoft в составе обновления Windows 10 October 2018 Update без информирования пользователей добавила в ОС незаметную программу для диагностики сети и мониторинга пакетов под названием pktmon (Packet Monitor). Ее можно найти по этому пути: C:\Windows\system32\pktmon.exe.

Причем, информации об этой программе на сайте Microsoft нигде нет. Есть только описание в самой программе, там написано, что это «Monitor internal packet propagation and packet drop reports». Специалисты Bleeping Computer смогли научиться использовать pktmon, тем более у программы есть встроенный справочник. Также они опубликовали в своем исследовании несколько примеров активации разных возможностей pktmon для системных администраторов. Пользователи без административных прав не могут запускать эту программу.
Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Comments 21

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

Reading time 20 min
Views 6.6K
History of IT Games and game consoles
Translation
До этого: << Войны вокруг чипа 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
Comments 3

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

Reading time 7 min
Views 28K
ITSumma corporate blog IT Infrastructure *IT Standards *Microservices *Kubernetes *
Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания актуальными».

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

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

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

Reading time 4 min
Views 53K
VK corporate blog Programming *Git *
Translation



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

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

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

zDJTurRA

Reading time 1 min
Views 60K
Lua *
KlKMghfUXrGX4rSx clSRsl3U PxblRKb5 SzA9SMqG
Total votes 41: ↑37 and ↓4 +33
Comments 42

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

Reading time 7 min
Views 15K
Designing and refactoring *ООP *TypeScript *
Sandbox
Привет, Хабр! В последнее время уделяю много внимание архитектуре и решил поделиться с сообществом переводом статьи Clean Architecture with Typescript: DDD, Onion автора André Bazaglia.

Введение


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

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

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

Reading time 2 min
Views 7.8K
Information Security *Entertaining tasks Reverse engineering *Brain Logic games
Холмс потер руки и засмеялся от радости.
— Наш материал быстро разрастается, — сказал он.
Артур Конан Дойль «Пляшущие человечки»




Зима.

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

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

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

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

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



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

Property в C++

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

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

Reading time 16 min
Views 13K
Professional literature *Science fiction

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


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


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

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

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

Reading time 2 min
Views 25K
C++ *
Tutorial
Когда не так часто, как хотелось бы, приходится работать с языком, некоторые аспекты забываются. А некоторые никогда и не откладываются в голове. Поэтому, когда возникают вопросы, приходится отвлекаться и лезть в документацию.

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

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

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

Information

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