Как стать автором
Обновить
96
Карма
0
Рейтинг
Евгений Богер @evgeny_boger

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

CoroOS: концепт операционной системы для микроконтролеров на корутинах С++20

C++ *Программирование микроконтроллеров *
Туториал

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

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

И ваш автор не исключение.

Как по мне - дело не то чтобы запредельно сложное, сколько кропотливое. Если у вас, как и у меня, увлечение и(или) карьера крутится вокруг Arm Cortex-M серии, то вооружаемся стволами (раз, два и три) и выдвигаемся за Джеффом. Но, написав и запустив ядро своей "best of the best" оси около года назад, я вскоре забросил разработку, ибо как я ни креативил, вместо Сокола Тысячелетия у меня получался крепенький, но банальный и скучный велосипед.

А ведь хотелось оригинальности и бесстыдного выпендрёжа.

И тут в 20-й стандарт плюсов завезли корутины.

Читать далее
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 11K
Комментарии 28

На замену TCP: обсуждение протокола QUIC

Блог компании VAS Experts IT-стандарты *
QUIC — новый транспортный протокол, работающий поверх UDP. Некоторые в шутку называют его TCP/2. Расскажем, что сейчас обсуждают, как принять участие и кто внедряет поддержку QUIC.

Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 9.7K
Комментарии 1

Карма — это отчуждение от авторства

Habr
Я иногда прихожу на хабр, пишу на нём статьи. Иногда эти статьи попадают в TOP хабра.

Но всякий раз ухожу в тот момент когда у меня отчуждают авторство.
Читать дальше →
Всего голосов 289: ↑227 и ↓62 +165
Просмотры 36K
Комментарии 1819

Подробное введение в rvalue-ссылки для тех, кому не хватило краткого

Программирование *C++ *Visual Studio *
Туториал

Вместо КДПВ — короткая драма для привлечения внимания, основанная на реальных событиях. Ее можно смело пропустить и перейти к статье, которая поможет вам разобраться в rvalue-ссылках, конструкторах перемещения, универсальных ссылках, идеальной передаче (perfect forwarding) и т. д.


Драма в трех действиях


Действие первое


Компилятор. Локальный объект x типа T, проживающий на стеке, вы приговариваетесь к изъятию у вас всего имущества в связи с тем, что не будете пользоваться им до конца своей жизни.


Объект x. Что? Я не какой-то там временный объект, у меня постоянная регистрация, вы не имеете права!


Компилятор. Никто вас не выселяет. Но согласно одиннадцатой редакции стандартного кодекса, все ваши вещи будут переданы другому объекту, которому они нужны больше.


Объект x. И как вы это сделаете? Все мои данные надежно инкапсулированы, я не позволю никому бесцеремонно обращаться с ними. Если уж они так вам нужны, то пусть приходит конструктор копирования со своей флешкой, я ему скопирую.

Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 60K
Комментарии 19

Тест 10 автомобильных зарядок по стандартам ISO

Блог компании Третий пин DIY или Сделай сам Автомобильные гаджеты
Из песочницы
Стенд для тестирования автомобильных зарядок по схеме №1

Недавно я разработал автомобильный USB источник питания. Но статья будет совсем не о нем. В процессе разработки я ознакомился с двумя стандартами: ISO 16750-2, ISO 7637-2, которые подробно отвечают на часто задаваемый вопрос «Какое напряжение в автомобиле», а потом познакомил с ними десяток покупных USB зарядок разных производителей. Здесь (12) и там я видел статьи о разработке/доработке/запиле готовых источников для автомобилей, где авторы не задумываются о таких вещах, как защитные цепи. В моём источнике схема защиты получилась сложнее самого источника, т.к. пожар в машине — это, безусловно, неприятно. Как показали себя испытуемые и почему выжил только один — в этой статье.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 39K
Комментарии 34

Kill switch для OpenVPN на основе iptables

Информационная безопасность *
Туториал
Известно, что при подключении к открытым Wi-Fi сетям ваш трафик может быть легко прослушан. Конечно, сейчас всё больше и больше сайтов используют HTTPS. Тем не менее, это ещё далеко не 100%. Возникает естественное желание обезопасить свой трафик при подключении к таким открытым Wi-Fi сетям.

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

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

В этой статье я расскажу, как можно этого избежать.

Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 30K
Комментарии 12

Источники выделения энергии на кристалле ИМС

Компьютерное железо
Из песочницы
Вся современная микроэлектроника базируется на полупроводниках. На кристалле создаются зоны различной проводимости, которые объединяются в некоторую логику. Кристаллы работают, потребляя электрическую энергию и преобразуя её в тепло. Эта статья описывает основные процессы, на которые расходуется энергия при работе ИМС.

Источником выделения тепла на кристалле ИМС являются три основных процесса: динамическая мощность, короткое замыкание и токи утечки. Обзор этих процессов будет проводиться на примере n-МОП технологии (хотя все описанное будет справедливо и для р -МОП)
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 6.1K
Комментарии 17

Балансировка 70 тысяч запросов в секунду на HighLoad++

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Разработка веб-сайтов *Анализ и проектирование систем *

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Просмотры 38K
Комментарии 11

Механизмы профилирования Linux

Блог компании НТЦ Метротек Системное программирование *


Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
Читать дальше →
Всего голосов 60: ↑60 и ↓0 +60
Просмотры 36K
Комментарии 11

Когда не помогает ЦАП. Цифровые потенциометры в деталях. Часть первая

Схемотехника *Звук Электроника для начинающих


Прогресс не обошёл стороной не только велосипед. Сегодня традиционные переменные и подстроечные резисторы в очень многих приложениях уступают место цифровым сопротивлениям. В англоязычных источниках их называют digital potentiometer, RDAC или digiPOT. Область применения этих устройств гораздо шире регулировки уровня звукового сигнала. В частности они приходят на помощь в очень многих случаях, когда требуется изменять параметры обратной связи, что трудно реализовать с помощью традиционных ЦАП.

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

Изначально я хотел написать краткую статью, но в результате углубленного изучения темы материал с трудом уместился в две части. Сегодня я постараюсь рассказать об архитектуре данных устройств, их возможностях, ограничениях использования и тенденциях развития. В заключении вскользь затрону тему областей применения, поскольку конкретные примеры практической реализации схем на их основе будут рассмотрены во второй части. МНОГО примеров!

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

P.S.Так получилось, что уже вышла ещё одна статья из этой серии и в ней пример всего один, зато подробно разобранный. Для остальных обещанных примеров придётся писать третью.
Читать дальше →
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 114K
Комментарии 89

Как я нашел лучший в мире язык программирования. Часть Йо (2.72)

JavaScript *Программирование *Java *Scala *Функциональное программирование *
Поскольку после второй части у меня случился перерыв на работу, я поимел возможность получить некоторый фидбек, который я хоть и еще не обработал, все же заставляет меня написать внеплановую часть Йо, которая мне кажется важной для дальнейшего разговора. С тем же перерывом на работу связана задержка третьей части, прошу меня извинить тех, кто действительно ждал и пока не дождался.
Читать дальше →
Всего голосов 127: ↑88 и ↓39 +49
Просмотры 114K
Комментарии 236

openEMS — электромагнитный симулятор с открытым исходным кодом

Open source *CAD/CAM *
Этот пост рассказывает об электромагнитном симуляторе с открытым исходным кодом openEMS. Автор проекта — Thorsten Liebig (Германия, университет Дуйсбург-Эссен). Сайт проекта — openems.de. Репозиторий на Гитхабе: github.com/thliebig/openEMS-Project. Симулятор является кроссплатформенным и работает под Linux и Windows.

Когда я впервые увидел этот проект, то не поверил, что такое может быть создано. Создание электромагнитного симулятора представляет собой достаточно-трудоемкую задачу, и раньше я думал, что такое не под силу open-source сообществу. Тем не менее openEMS опровергает это представление. Это полноценный электромагнитный симулятор. Конечно, он не дотягивает до уровня HFSS, но это уже весьма достойный результат.

Здесь изображен пример использования симулятора. Это диаграмма направленности рупорной антенны на частоту 15 ГГц, полученная при помощи openEMS.


Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Просмотры 29K
Комментарии 11

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Программирование *Математика *

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Всего голосов 86: ↑81 и ↓5 +76
Просмотры 155K
Комментарии 64

Управление «умной» BLE лампой без смартфона

Реверс-инжиниринг *
Из песочницы

Прошлым летом, когда началась неразбериха с рублём, я решил купить себе что-нибудь забавное, чего в нормальных ценовых условиях никогда не купил бы. Выбор пал на умную управляемую светодиодную лампу "Luminous BT Smart Bulb", про которую, собственно, прочитал до этого здесь же. По-хорошему, для начала нужно было бы купить смартфон с BLE, но на тот момент я не беспокоился о таких мелочах. Лампа приехала, мы немного поигрались с ней на работе, она оказалась довольно прикольной. Но я не мог управлять ею дома, поэтому она отправилась на полку. Один раз, правда, я одолжил лампу коллеге на день рождения маленького ребёнка.


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


Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 18K
Комментарии 7

Немного об основах схемотехники светодиодных ламп

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

image

Читать дальше →
Всего голосов 65: ↑64 и ↓1 +63
Просмотры 110K
Комментарии 72

Многозадачность в ядре Linux: workqueue

Блог компании Embox Системное программирование *C *
Продолжаем тему многопоточности в ядре Linux. В прошлый раз я рассказывала про прерывания, их обработку и tasklet’ы, и так как изначально предполагалось, что это будет одна статья, в своем рассказе о workqueue я буду ссылаться на tasklet’ы, считая, что читатель уже с ними знаком.
Как и в прошлый раз, я постараюсь сделать мой рассказ максимально подробным и детальным.

Статьи цикла:
  1. Многозадачность в ядре Linux: прерывания и tasklet’ы
  2. Многозадачность в ядре Linux: workqueue
  3. Protothread и кооперативная многозадачность


Читать дальше →
Всего голосов 68: ↑68 и ↓0 +68
Просмотры 33K
Комментарии 4

Исследование устройства WiFi Led Controller

Компьютерное железо
Из песочницы
Сегодня к осмотру представлено устройство, созданное для того, чтобы сделать нашу жизнь проще.
Данное устройство предназначено для управление освещением. При подключении RGB диодов можно управлять цветом и яркостью, а при подключении одноцветных диодных светильников только яркостью. В последнем случае 3 цветовых канала могут быть использованы раздельно. Кроме этого у устройства существует несколько режимов которые задают либо постоянное освещение, либо мигание. Питание устройства от 5 до 24 вольт. Это же напряжение устройство выдает в каналы. Технические характеристики таковы:
Max нагрузка: 288 Вт
Удаленное управление: 50 М
Модель: WIFI100 wifi controller

image

Однако, при включени моя жизнь проще не стала. Даже наоборот, усложнилась. Причиной этого стало приложение MagicColor v1.0, вошедшее в комплект поставки. Несмотря на то, что эта программа работала на телефонах HTC и LG, на моих устройствах Samsung Galaxy Note 10.1 и Galaxy Nexus она не заработала, что заставило ее немного препарировать, а вместе с ней и сам чудный девайс.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 36K
Комментарии 7

Как я проект в OpenSCADA сделал

Open source *Промышленное программирование *SCADA *
Из песочницы
image

Речь в статье пойдет о той самой OpenSCADA, которая под Linux и с oscada.org.

Зачем:
• потому что SCADA на самом деле достойна внимания и популяризации;
• в некоторых малобюджетных или маленьких проектах просто безальтернативная;
• судя по статьям про АСУТП на хабре, многим читателям АСУТП представляется черной магией, недо-IT или чем-то похожим (ломают несчастный modbus, мучают WinCC, которая и так еле тарахтит… Люди читают и охают: «Как так можно…. дырявое ПО в промышленности», но никого не удивляет ломание Win95 и 6го ослика. Поломали бы LON шифрованный, OPC, OPC_UA…… А WinCC сама расшаривает папку с проектом с именем вида WinCC_Project_xxxxxx при первом открытии + это вы еще не видели как ее плагин к Excel может намертво винду подвесить при неаккуратной вставке ячеек чуть больше, чем он может за раз осилить!) – добавим ликбеза;
Читать дальше →
Всего голосов 30: ↑27 и ↓3 +24
Просмотры 75K
Комментарии 185

Свой проект на Кикстартере: практическое руководство

Разработка игр *


Мы – российская студия, более двенадцати лет занимающаяся разработкой компьютерных игр. Нами были созданы «Мор. Утопия» (Pathologic), «Тургор» (Tension), «Тургор. Голос цвета» (The Void), «Эврика!» (Cargo! The Quest for Gravity) и «Тук-тук-тук» (Knock-Knock).

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

Несмотря на сомнения, первая кампания успешно завершилась в середине сентября 2012 года. Мы собрали сорок одну тысячу долларов при заявленных тридцати. На полученные деньги была разработана и доставлена вкладчикам игра «Тук-тук-тук» (Knock-knock).

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

Поэтому мы решили провести еще одну кампанию. Мы собираемся сделать графически, технологически и геймплейно более совершенный ремейк нашей первой игры «Мор. Утопия» (Pathologic).

Не так давно сборы достигли заявленной суммы в двести пятьдесят тысяч долларов. Это один из крупнейших результатов в постсоветском пространстве, и нам бы хотелось поделиться своими наблюдениями за течением двух кампаний, которые, возможно, будут полезны другим командам, решившимся выйти на Кикстартер или другую краудфандинговую площадку.
Читать дальше →
Всего голосов 103: ↑100 и ↓3 +97
Просмотры 136K
Комментарии 38

Kdump — диагностика и анализ причин сбоев ядра

Блог компании Selectel
Туториал
Kdump

Хотя в современных Linux-системах ядро отличается достаточно высоким уровнем стабильности, вероятность серьезных системных ошибок, тем не менее, имеется всегда. Когда происходит неисправимая ошибка, имеет место состояние, называемое паникой ядра (kernel panic): стандартный обработчик выводит на экран информацию, которая должна помочь в устранении неисправности, и входит в бесконечный цикл.
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Просмотры 44K
Комментарии 21

Информация

В рейтинге
Не участвует
Откуда
Долгопрудный, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность