Pull to refresh
97
0.1
Евгений Богер @evgeny_boger

User

Send message

Проект «Селенит». Часть 6: Финализация

Level of difficulty Medium
Reading time 8 min
Views 4.9K

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

Мне очень не хотелось писать эту часть цикла. Учить других на своих ошибках – сомнительное удовольствие, но образовательная составляющая всегда была и остаётся основной в проекте «Селенит». И очень важно не только сделать что-то, но и доступно объяснить на этом примере, почему сделано именно так.

Далее речь пойдёт о неочевидных нюансах влияния топологии печатной платы на характеристики радиоэлектронной аппаратуры связи на примере весьма неоднозначных опытов по компоновке и трассировке печатной платы трансивера Selenite Lite.

Все части цикла статей о создании любительской радиостанции:

Читать дальше →
Total votes 71: ↑70 and ↓1 +69
Comments 9

12 принципов создания успешной иконки

Level of difficulty Easy
Reading time 4 min
Views 6.5K

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

Тут мы сосредоточимся на работе в Figma и приёмами, что позволяют сделать всё правильно.

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

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

Reading time 18 min
Views 11K

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

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

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

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

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

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

Читать далее
Total votes 34: ↑31 and ↓3 +28
Comments 28

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

Reading time 3 min
Views 10K
QUIC — новый транспортный протокол, работающий поверх UDP. Некоторые в шутку называют его TCP/2. Расскажем, что сейчас обсуждают, как принять участие и кто внедряет поддержку QUIC.

Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 1

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

Reading time 17 min
Views 72K

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


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


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


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


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


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


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

Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 19

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

Reading time 10 min
Views 40K
Стенд для тестирования автомобильных зарядок по схеме №1

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

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

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

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

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

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

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

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

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

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

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

Reading time 5 min
Views 39K

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


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


Читать дальше →
Total votes 43: ↑38 and ↓5 +33
Comments 11

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

Reading time 9 min
Views 38K


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

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

Reading time 9 min
Views 124K


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

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

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

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

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

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

Reading time 21 min
Views 115K
Поскольку после второй части у меня случился перерыв на работу, я поимел возможность получить некоторый фидбек, который я хоть и еще не обработал, все же заставляет меня написать внеплановую часть Йо, которая мне кажется важной для дальнейшего разговора. С тем же перерывом на работу связана задержка третьей части, прошу меня извинить тех, кто действительно ждал и пока не дождался.
Читать дальше →
Total votes 127: ↑88 and ↓39 +49
Comments 236

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

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

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

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


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

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

Reading time 12 min
Views 161K

Вступление


Давно хотел написать статью про образование в 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, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Total votes 86: ↑81 and ↓5 +76
Comments 64

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

Reading time 25 min
Views 19K

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


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


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

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

Reading time 10 min
Views 117K
Судя по комментариям, многих людей интересуют не только параметры светодиодных ламп, но и теория их внутреннего устройства. Потому я решил немного поговорить об основах схемотехнических решений, чаще всего применяемых в этой области.

image

Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 72

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

Reading time 7 min
Views 35K
Продолжаем тему многопоточности в ядре Linux. В прошлый раз я рассказывала про прерывания, их обработку и tasklet’ы, и так как изначально предполагалось, что это будет одна статья, в своем рассказе о workqueue я буду ссылаться на tasklet’ы, считая, что читатель уже с ними знаком.
Как и в прошлый раз, я постараюсь сделать мой рассказ максимально подробным и детальным.

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


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

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

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

image

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

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

Reading time 14 min
Views 81K
image

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

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

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

Reading time 11 min
Views 139K


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

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

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

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

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

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

Information

Rating
3,077-th
Location
Долгопрудный, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity