Pull to refresh
45
0
Vladimir @Keroro

embedder

Send message

КПТ: психотерапия для гиков

Reading time12 min
Views171K
image

Когда речь заходит о психотерапии, многие представляют себе легендарную кушетку, полумрак уютного кабинета, мудрого пожилого терапевта с сигарой и бесконечные ассоциации: «знаете, вчера на улице я увидела мужчину с зонтом, он так быстро шёл, что его зонт равномерно раскачивался и это вызвало во мне какие-то смутные неопределённые чувства, он напомнил мне моего старшего брата Ивана, с которым в детстве мы играли в доктора, он, кстати сейчас стал так похож на отца!»

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

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

Tl;dr: В статье рассказано про основы КПТ. Если у вас есть психологические проблемы, но вы не верите в то, что их можно решить разговорами о том, как вас в детстве недолюбила мама, возможно, это направление психотерапии вам понравится. Оно логично, рационально и почти без лишних сущностей. А главное — фокусируется на мыслях, а не на чувствах.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments91

Смотрим китайскую микросхему novatek NT78820

Reading time2 min
Views18K
Попала ко мне неисправная ТВ приставка для цифрового телевидения. В результате диагностики была выявлена микросхема, которая была неисправна и замыкала питающее её напряжение на землю.

Появилась идея посмотреть как устроена микросхема внутри и как её собрали друзья китайцы. Об этом и хочу рассказать и показать. Это может быть интересно и тем, кто работает в сфере корпусирования кристаллов или просто интересуется как выглядит ИМС внутри. Также хочется послушать мнение знающих в этой сфере людей.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments20

Как быстро делать прототипы устройств и почему это важно. Доклад Яндекс.Такси

Reading time16 min
Views29K
Любой технически сложный hardware-проект — всегда уравнение с множеством неизвестных: платформа, компоненты, технологии, производство, функциональность, реализуемость. «Пощупать», что получается, можно, когда пройдены дорогостоящие этапы: R&D, выбор комплектующих, разработка программ и поиск фабрики для производства.



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

Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments149

Первое знакомство с Home Assistant

Reading time14 min
Views220K

Home Assistant – популярное приложение с открытым исходным кодом для организации умного дома. Первый опыт автора в работе с Home Assistant основывается на попытке интеграции в него ‘умной рисоварки‘. Автор постарается описать основные компоненты и возможности данного приложения, с которыми ему привелось пошагово познакомиться. Статья является в чем-то обзором, в чем-то руководством для желающих начать свое знакомство с Home Assistant.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments24

Польза строгой типизации в C++: практический опыт

Reading time7 min
Views20K
Наша программа обрабатывает сетевые пакеты, в частности, заголовки TCP/IP/etc. В них числовые значения — смещения, счетчики, адреса — представлены в сетевом порядке байтов (big-endian); мы же работаем на x86 (little-endian). В стандартных структурах, описывающих заголовки, эти поля представлены простыми целочисленными типами (uint32_t, uint16_t). После нескольких багов из-за того, что порядок байтов забыли преобразовать, мы решили заменить типы полей на классы, запрещающие неявные преобразования и нетипичные операции. Под катом — утилитарный код и конкретные примеры ошибок, которые выявила строгая типизация.
Читать дальше →
Total votes 90: ↑89 and ↓1+88
Comments77

Cockpit – упрощение типичных административных задач в ОС Linux через удобный веб-интерфейс

Reading time4 min
Views79K
В этой статье я расскажу про возможности инструмента Cockpit. Cockpit создан с целью облегчения администрирования ОС Linux. Если говорить кратко, то он позволяет выполнять наиболее типичные задачи администратора Linux через приятный веб-интерфейс. Возможности Cockpit: установка и проверка обновление для системы и включение автообновления (процесс патчинга), управление пользователями (создание\удаление\смена паролей\блокировка\выдача прав суперпользователя), управление дисками (создание\редактирование lvm, создание\монтирования файловых систем), настройка сети (team, bonding, ip managing и т. д.), управление systemd-юнитами\таймерами.


Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments28

Почему вам стоит использовать язык Ада для программирования вашей системы

Reading time6 min
Views26K


Язык программирования Ада родился в середине 1970-х, когда министерство обороны США и министерство обороны Британии решили заменить сотни специализированных языков программирования для встроенных вычислительных систем, всё чаще использовавшихся в военных проектах. Язык Ада разрабатывали так, чтобы это был единственный язык, способный работать на всех этих встроенных системах, и при этом обеспечивавший надёжность и быстродействие уровнем не хуже специализированных.

После обновления от 1995 года язык приспособили для систем общего назначения, добавив объектно-ориентированное программирование, не теряя из вида ключевые ценности – надёжность, простоту поддержки и эффективность. Сегодня написанное на Ада ПО формирует основу не только военного оборудования, но и коммерческих проектов в сфере авионики и систем управления воздушным трафиком. Код на Ада управляет такими ракетами, как Ариан-4 и 5, многими спутниками, и бесчисленным количеством других систем, в которых небольшие сбои могут иметь серьёзные последствия.

Возможно, Ада подойдёт и для использования в вашем следующем встроенном проекте.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments22

Локальный запуск юнит-тестов в STM32CubeIDE под Windows

Reading time7 min
Views13K

Введение


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


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


Существует три способа запуска юнит-тестов для встраиваемых платформ:

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

Прокачиваем умную зарядку Imax B6

Reading time6 min
Views256K
Воистину говорят: лень — двигатель прогресса! Вот и мне, взбудоражила голову мысль, автоматизировать процесс измерения и тренировки кислотных аккумуляторных батарей. Ведь кто, в здравом уме, будет, в наш век умных микросхем, корпеть над аккумулятором с мультиметрами и секундомером? Наверняка, многие знают «народное» зарядное устройство Imax B6. На хабре есть статья про него (и даже не одна). Ниже я напишу, что я с ней сделал и зачем.


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

Android для радиоинженера (часть вторая)

Reading time5 min
Views9.9K
В первой части я немного рассказал о приложении RF & Microwave Toolbox. Во второй части расскажу о не менее интересном приложении, которое позволяет проектировать СВЧ устройства (преимущественно, планарные) на смартфоне/планшете под управлением ОС Android. Если вам интересно, то добро пожаловать под кат…



Total votes 27: ↑27 and ↓0+27
Comments13

Делись, рыбка, быстро и нацело

Reading time4 min
Views14K
image

Деление — одна из самых дорогих операций в современных процессорах. За доказательством далеко ходить не нужно: Agner Fog[1] вещает, что на процессорах Intel / AMD мы легко можем получить Latency в 25-119 clock cycles, а reciprocal throughput — 25-120. В переводе на Русский — МЕДЛЕННО! Тем не менее, возможность избежать инструкции деления в вашем коде — есть. И в этой статье, я расскажу как это работает, в частности в современных компиляторах(они то, умеют так уже лет 20 как), а также, расскажу как полученное знание можно использовать для того чтобы сделать код лучше, быстрее, мощнее.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments17

Генерация звука на микроконтроллерах AVR методом волновых таблиц с поддержкой полифонии

Reading time12 min
Views32K
Микроконтроллеры AVR довольно дешевы и широко распространены. Наверно, с них начинает почти любой embedded разработчик. А среди любителей правит балом Arduino, сердцем которого обычно является ATmega328p. Наверняка многие задумывались: как можно заставить их звучать?

Если посмотреть на существующие проекты, то они бывают нескольких типов:

  1. Генераторы квадратных импульсов. Генерация с помощью ШИМ или дергать пины в прерываниях. В любом случае, получается очень характерный пищащий звук.
  2. Использование внешнего оборудования типа MP3 декодера.
  3. Использование ШИМ для вывода 8 битного (иногда 16 битного) звука в формате PCM или ADPCM. Поскольку памяти в микроконтроллерах для этого явно не достаточно, то обычно используют SD карту.
  4. Использование ШИМ для генерации звука на основе волновых таблиц, подобных MIDI.

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



Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments71

Всё, что вам нужно знать про CSS Margin

Reading time8 min
Views75K
Одним из первых, что многие из нас усвоили, когда изучали CSS, были особенности разных составляющих блока в CSS, описываемые как «Блочная Модель CSS». Один из элементов в блочной модели — margin (внешний отступ), прозрачная область вокруг блока, которая отталкивает другие элементы от содержимого данного блока. Свойства margin-top, margin-right, margin-bottom и margin-left были описаны еще в CSS1, вместе с сокращенным свойством margin для одновременной установки в всех четырёх свойств.

Margin кажется довольно несложным, однако, в этой статье мы рассмотрим некоторые моменты, на которых люди спотыкаются при его использовании. В частности, как margins взаимодействуют друг с другом и как на самом деле работает схлопывание внешних отступов.
Total votes 20: ↑20 and ↓0+20
Comments2

Протокол MQTT: концептуальное погружение

Reading time12 min
Views237K
Протокол Message Queuing Telemetry Transport (MQTT) используется в течение многих лет, но сейчас он особенно актуален благодаря взрывному росту IoT: и потребительские, и промышленные устройства внедряют распределённые сети и граничные вычисления (edge computing), а устройства с постоянной трансляцией данных становятся частью повседневной жизни.

Это означает, что лёгкие, открытые и доступные протоколы со временем станут ещё важнее. В этой статье приводится концептуальное погружение в MQTT: как он работает, как используется сейчас и как будет использоваться в будущем.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments8

TCP против UDP или будущее сетевых протоколов

Reading time27 min
Views174K
Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.


Осторожно, под катом 99 иллюстраций и схем и все важные.
Total votes 162: ↑159 and ↓3+156
Comments75

Обзор: карманный дозиметр нового поколения Atom Fast

Reading time4 min
Views51K
Привет geektimes. Как человек, увлекающийся всякими гаджетами, я разумеется, имею дома дозиметр. Не из соображений радиофобии, а исключительно как интересный физический прибор, которым можно что-нибудь измерить. Давно была мысль попробовать новые дозиметры — сцинтиляционные, однако главное что останавливало, это цена. Наконец, под Новый год удачно совпали время, наличие денег и свободного времени, и в итоге Санта Клаус в лице сотрудника почты, принес мне небольшой сувенир и дозиметр Atom Fast.



Как это работает, подробности под катом.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments226

Еще одно мнение о разнице между bin, sbin, usr/bin, usr/sbin

Reading time2 min
Views30K
Недавно я обнаружил вот такую статью: Разница между bin, sbin, usr/bin, usr/sbin. Хотелось бы поделиться своим взглядом на стандарт.

/bin


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

Там ожидается присутствие таких команд:

cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname.

Можно сделать симлинки на /usr, но хотя во времена systemd /usr на отдельном устройстве не встречается, его еще можно встретить на встраиваемой системе, светофоре, кофемолке и PDP-11 обслуживающем важный прибор в одной из лабораторий Академии Наук.

/sbin


Утилиты, используемые для системного администрирования (и другие команды только для root), /sbin содержит двоичные файлы, необходимые для загрузки, восстановления, восстановления и/или восстановления системы в дополнение к двоичным файлам в /bin. Программы, выполняемые после того, как /usr монтируется (когда проблем нет), обычно помещаются в /usr/sbin. Локально установленные программы системного администрирования должны быть помещены в /usr/local/sbin.

Ожидаются:

fastboot, fasthalt, fdisk, fsck, getty, halt, ifconfig, init, mkfs, mkswap, reboot, route, swapon, swapoff, update.

Один из способов защиты системы от шаловливых рук юзеров — это запрет запуска этих утилит кому-попало, установкой атрибута x.
К тому же, замена /bin и /sbin на копии из архива (одинакового для всех однотипных систем) является быстрым способом починки систем без пакетного менеджера.
Читать дальше →
Total votes 46: ↑33 and ↓13+20
Comments31

Осваиваем компьютерное зрение — 8 основных шагов

Reading time3 min
Views105K
Привет, читатель.

Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.

image

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

Total votes 40: ↑35 and ↓5+30
Comments10

Оптимальная линейная фильтрация: от метода градиентного спуска до адаптивных фильтров

Reading time10 min
Views21K

Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации.


Для кого в первую очередь была написана эта статья:

1) для студенческой братии родной специальности;
2) для преподавателей, которые готовят практические семинары, но ещё не определились с инструментарием — ниже будут примеры на python и Matlab/Octave;
3) для всех, кто интересуется темой фильтрации.


Что можно найти под катом:

1) сведения из теории, которые я постарался оформить максимально сжато, но, как мне кажется, информативно;
2) примеры применения фильтров: в частности, в рамках эквалайзера для антенной решетки;
3) ссылки на базисную литературу и открытые библиотеки (на python), которые могут быть полезны для исследований.


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


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

Поддельная «голубая пилюля»

Reading time3 min
Views42K
Я являюсь большим любителем макетных плат «голубая пилюля». Они очень хороши по соотношению цена/возможности. Собственно, моя любовь к ним заметна из первоапрельской статьи про педальную прошивку для игры на балалайке.



Открыть коробочку с такими платами и быстро взять одну для решения каких-то задач — в порядке вещей. Именно так, недавно я взял очередную плату, прошил уже хорошо отлаженной и проверенной «прошивкой» и… получил неопознанное USB-устройство. Взял другую плату, «прошил» её, там устройство заработало. Тут бы делу и конец, но интересно же, в чём дело. Поэтому, как пришли выходные, я занялся детальным исследованием, почему же она не работает.
Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments138

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

embedded engineer
Lead