Pull to refresh
2
0
Андрей @dredd_krd

Инженер сетей передачи данных

Send message

Снова про STL

Reading time8 min
Views21K
Эта подборка коротких заметок относительно контейнеров C++ появилась как результат просьбы подготовить для начинающих коллег программистов сжатый обзор STL. Зачем это было нужно, когда по этому предмету есть оригинальная документация и много целых отдельных книг, из которых как минимум 5-6 превосходного качества существуют в переводах и на русский язык?
Но смысл, однако, есть и он вот в чём:

  • Все книги изданы в конце 90-х — начале 2000-х. Более поздние стандарты языка C++ (вплоть до C++11) вводят новые синтаксические конструкции, которые в применении с STL дают кросс-эффект … с очень интересной интерференцией. Это позволяет часто использовать конструкции STL с гораздо большей лёгкостью.
  • Книги обычно описывают предмет слишком детализировано (это хорошо для студентов, но избыточно для программистов, пусть даже уровня джуниоров, которым, после других языков, например, нужно только базовое ознакомление). Оригинальная документация, наоборот, напичкана формальными синтаксическими определениями (это замечательно в качестве справочника под рукой, но избыточно для знакомства). Настоящие заметки, полностью избегая формальных определений, строятся вокруг примеров использования, в большей части понятных программисту даже без каких-либо дополнительных пояснений.
  • Контингент, для которого первоначально готовились тексты, помимо прочего в значительной степени ориентирован на численные математические методы, обработку данных в потоке, на что не рассчитаны существующие публикации. Мне тоже ближе такой уклон, и такой акцент будет заметен в примерах, на которых построено описание.

Из-за требований обязательной однотипности объектов в контейнерах, их можно было бы с уточнением называть регулярными контейнерами, это много проясняет (не делается такое уточнение только потому, что и так всем ясно о чём речь). Речь, конечно, идёт о контейнерах STL, но и традиционный массив C/C++ — это такой же регулярный контейнер, и они будут фигурировать в тексте и примерах. (Структуры, а ещё более обще, классы с полями данных тоже являются контейнерами, но их никак не назовёшь регулярными.)

Хотелось бы надеяться, что эти заметки окажутся полезными кому-то из осваивающих STL, упростят этот процесс понимания. А предложения и замечания, когда они будут по существу, от тех читателей, кто уже профи в C++, позволят улучшить эти тексты на будущее, когда они смогут пригодиться ещё кому-нибудь.
Читать дальше →
Total votes 35: ↑22 and ↓13+9
Comments22

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле

Reading time11 min
Views285K


Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

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

Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.

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

TLDR:

70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
Да начнутся адские эксперименты!
Total votes 159: ↑158 and ↓1+157
Comments447

Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

Reading time7 min
Views111K

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Как телефон взаимодействует с автомобилем
Total votes 109: ↑109 and ↓0+109
Comments123

Проклятие поддомена WWW: чеклист молодого админа

Reading time4 min
Views13K

Должен ли адрес веб-сайта включать поддомен WWW и стоит ли вообще его создавать – тема многолетней спецолимпиады в этих наших Интернетах. Как «за», так и «против» приводится множество аргументов разной степени маразматичности разумности, которые я не стану воспроизводить в 100500-й раз. Отмечу лишь два момента. Первый: существуют разумные доводы в пользу обоих вариантов, поэтому следует решать, сообразуясь лишь со своими целями и обстоятельствами. Второй: не существует RFC, который явно требовал бы наличия или отсутствия поддомена WWW.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments28

Почему свинцово-кислотные аккумуляторы так сложно заряжать?

Reading time9 min
Views33K

Особенно глубоко разряженные, как в сегодняшнем опыте на видео. Особенно находившиеся какое-то время в состоянии частичной заряженности (PSoC), вследствие чего, сульфатированные. Учитывая неизбежный саморазряд при хранении и недозаряд под капотом, рано или поздно это судьба почти каждой АКБ.

Особенно изношенные AGM, склонные к сильному нагреву. Особенно, как ни странно, самые надёжные и долговечные АКБ премиум-сегмента, плотные сепараторы которых препятствуют как разрушению пластин, так и перемешиванию электролита. Особенно когда нет пробок для доступа к электролиту, как в большинстве современных аккумуляторов.

Всё потому, что АКБ, — аккумуляторные батареи наших транспортных средств, источников бесперебойного питания и систем возобновляемой энергетики, — имеют специфические особенности вольтамперной характеристики (ВАХ), обусловленные физико-химическими свойствами.

Об этом и пойдёт речь, на примере глубоко разряженной гибридной (Sb/Ca) Тюмень Стандарт 6СТ-60L.
Бонус: рассмотрим, почему ток и напряжение на клеммах АКБ при заряде не соответствуют установленным
Total votes 54: ↑52 and ↓2+50
Comments17

Побочные эффекты вакцинации: что правда, а что нет

Reading time24 min
Views59K

Иллюстрация из мультфильма «Про бегемота, который боялся прививок», Союзмультфильм, 1966. Режиссёр Л. Амальрик, Художники-постановщики: Н. Привалова и Т. Сазонова.

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

Риски вакцинации несоизмеримы с рисками смерти и тяжелых осложнений covid-2019. Официально в России на конец июля зарегистрировано 154 тыс смертей на 6,140 млн заболевших, это соответствует летальности 2,5% (цифры по избыточной смертности намного печальнее). Эпидемия не остановится пока не сформируется коллективный иммунитет, но у нас есть выбор между минимальными рисками, связанными с вакцинацией, и высокими рисками covid-2019.

Длительность иммунитета
Total votes 133: ↑100 and ↓33+67
Comments1468

30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 2

Reading time6 min
Views16K


Первая часть интервью.

Распределенная система контроля версий Git


Дж.А.: Linux – только первая из ваших работ, глобально повлиявших на мир опенсорса. В 2005 году вы также создали Git, исключительно популярную распределенную систему контроля версий. Вы быстро перенесли дерево исходников ядра Linux из проприетарного хранилища Bitkeeper в новоиспеченный Git, который сделали опенсорсным, и в том же году передали поддержку Git Джунио Хамано. История этих событий увлекательна, расскажите, что побудило вас передать этот проект так быстро, и как вы нашли и выбрали Джунио? 

ЛТ: Итак, ответ на этот вопрос состоит из двух частей.


Во-первых, я совершенно не хотел создавать новую систему контроля исходников.  Linux был создан, так как мне очень интересен низкоуровневый интерфейс между аппаратным и программным обеспечением — в принципе, эта работа была выполнена из любви к предмету и личного интереса. Напротив, Git был создан из необходимости: не потому, что я интересуюсь контролем исходников, а потому что большинство имевшихся на тот момент систем контроля версий вызывали у меня подлинное отвращение, а та единственная, что показалась мне наиболее терпимой и при этом действительно весьма хорошо сочеталась с моделью разработки Linux (BitKeeper) стала несостоятельной.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments7

30 лет Линукса. Интервью с Линусом Торвальдсом. Часть 1

Reading time23 min
Views37K


Тридцать лет назад Линусу Торвальдсу был 21 год, он был студентом Хельсинского университета. Именно тогда он впервые выпустил ядро Linux. Анонс этого события начинался так: «Я делаю (свободную) операционную систему (просто в качестве хобби, большой и профессиональной она не будет…)». Три десятилетия спустя все топ-500 суперкомпьютеров в мире работают под Linux, равно как и более 70% всех смартфонов. Linux явно стал и большим, и профессиональным. 
Читать дальше →
Total votes 100: ↑99 and ↓1+98
Comments24

Пишем «Змейку» для клавиатуры с подсветкой

Reading time13 min
Views18K


Введение


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

Разумеется, жизнь большинства клавиатур не вечна. (Хотя я сильно подозреваю, что моя домашняя IBM Model M практически бессмертна.) Однажды я заметил, что клавиша Shift моей рабочей клавиатуры начала отказывать. Из-за этого мои электронные письма начали выглядеть более ленивыми, а в коде воцарился хаос, поэтому мне понадобилась новая клавиатура. Старая клавиатура была вполне неплохой, но в целом довольно стандартным устройством с резиновыми прокладками переключателей, поэтому у меня появилась неплохая возможность взять что-нибудь получше, например, механическую клавиатуру.

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

Самой дешёвой клавиатурой, удовлетворяющей всем этим требованиям, оказалось устройство с довольно длинным названием: Coolermaster Quickfire Rapid-I.
Total votes 48: ↑47 and ↓1+46
Comments6

Механические клавиатуры

Reading time17 min
Views761K
Все мы давно ждем массового появления всевозможных кибер-перчаток и виртуальной реальности на каждом шагу, но все равно каждый день в офисе и дома нам приходится работать за такой банальной вещью, как обычная клавиатура.

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

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

Механические клавиатуры. Путеводитель.

Читать дальше →
Total votes 323: ↑313 and ↓10+303
Comments331

Глубокое погружение в принципы работы Wi-Fi 6: OFDMA и MU-MIMO

Reading time11 min
Views25K
В своих разработках Huawei делает ставку на Wi-Fi 6. И вопросы от коллег и заказчиков о новом поколении стандарта подтолкнули нас к тому, чтобы написать пост о теоретических основах и физических принципах, заложенных в него. От истории перейдём к физике, подробно разберёмся, зачем нужны технологии OFDMA и MU-MIMO. Поговорим и о том, как принципиально переработанная физическая среда передачи данных позволила добиться гарантированной пропускной способности каналов и такого уменьшения общего уровня задержек, что они стали сопоставимы с «операторскими». И это при том, что современные сети на основе 5G дороже (в среднем в 20–30 раз) аналогичных по возможностям indoor-сетей на Wi-Fi 6.


Читать дальше
Total votes 10: ↑9 and ↓1+8
Comments10

Сходства и различия между Wi-Fi 6 и 5G

Reading time4 min
Views11K
Очень часто слышу споры в профессиональной и обывательской среде про Wi-Fi 6 и 5G. Что лучше? А какая разница? Как придёт 5G — WiFi 6 уже будет не нужен.

Очень напоминает детство с насущными темами:

  • Кто сильнее кит или слон?
  • Кто из актеров сильнее Ван-Дамм или Шварценеггер?
  • Мое кунг-фу сильнее твоего карате!

Решил поделиться краткими тезисами для ликбеза в духе 20х годов прошлого века. 

Disclaimer: Статья не претендует на всеобъемлемость и фундаментальность.


Читать дальше
Total votes 18: ↑16 and ↓2+14
Comments16

Сeph — от «на коленке» до «production»

Reading time22 min
Views20K

Выбор CEPH. Часть 1


У нас было пять стоек, десять оптических свичей, настроенный BGP, пару десятков SSD и куча SAS дисков всех цветов и размеров, а ещё proxmox и желание засунуть всю статику в собственное S3 хранилище. Не то чтобы это всё было нужно для виртуализации, но раз начал использовать opensource — то иди в своём увлечении до конца. Единственное, что меня беспокоило — это BGP. В мире нет никого более беспомощного, безответственного и безнравственного, чем внутренняя маршртутизация по BGP. И я знал, что довольно скоро мы в это окунёмся.



Задача стояла банальная — имелся CEPH, работал не очень хорошо. Надо было сделать "хорошо".
Доставшийся мне кластер был разнородным, настроенным на скорую руку и практически не тюнингованным. Он состоял из двух групп разных нод, с одной общей сеткой выполняющей роль как cluster так и public network. Ноды были набиты четырьмя типами дисков — два типа SSD, собранными в два отдельных placement rule и два типа HDD разного размера, собранными в третью группу. Проблема с разными размерами была решена разными весами OSD.


Саму настройку разделили на две части — тюнинг операционной системы и тюнинг самого CEPH и его настроек.

Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments18

Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?

Reading time10 min
Views63K


Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.


Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.


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


Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments16

CAN sniffer

Reading time9 min
Views78K
Непосредственно сама CAN шина используется уже много где, мне интересно её использование в автомобиле, хотя этой сферой можно и не ограничиваться. Тем более пару лет назад подвернулась такая возможность. Я посмотрел на общие спецификации — вроде бы ничего особо сложного нет. Посмотрел на программы, которые встречаются в интернете — и ни одна мне не приглянулась, у каждой не хватало чего-то такого, что казалось мне нужным на тот момент. Буду изобретать свой велосипед. Делаю свой CAN sniffer далее под катом.
Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments57

Заметки обо всем. Простые и опасные источники питания

Reading time11 min
Views57K


О чем эта статья


В этой статье рассказано о принципах построения простейших бестрансформаторных источников питания.Тема не новая, но, как показал опыт, не всем известная и понятная. И даже, некоторым, интересная.

Прошу желающих и интересующихся читать, критиковать, уточнять и дополнять на почту shiotiny@yandex.ru или на мой сайт в раздел «Контакты».

Вступление


Не так давно один мой знакомый влез пальцами в некую схему, которую собирался починить (проводок отвалился — так что просто припаять его надо было на место). И его ударило током. Не сильно ударило, но ему хватило, чтобы удивиться: «как так — тут микроконтроллер стоит, что тут может стукнуть? Он же от 5 вольт питается!».

Его удивление быстро разъяснилось: схема оказалась с бестрансформаторным питанием и без гальванической развязки от сети.

Далее последовали вопросы уже в мою сторону. Сводились они к двум вещам: «А чё? Так можно делать?!» и «А как оно работает?».

Хотя я и не считаю себя экспертом в электронике, но делать подобные блоки питания мне приходилось. Так что пришлось взять ручку и листок и объяснить как оно работает. Благо это совсем не сложно.

Возможно, что и вам покажется интересной тема «бестрансформаторных» источников питания или, сокращённо, БИП. Кому-то для общего развития, а кому-то и для практического применения.
Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments130

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

Reading time10 min
Views31K


Когда мы были маленькими, нашим родителям приходилось отвечать на сотни вопросов: почему небо синее, почему трава зеленая, почему кипяток горячий, почему нельзя кушать только сладкое и т.д. Любопытство и желание понять окружающий мир сопровождают нас всю жизнь. Кто-то вырастает и эти вопросы становятся для него вторичными, а кто-то начинает искать ответы в физике, химии и других науках. Сегодня мы с вами рассмотрим исследование ученых из Парижского университета, в котором они решили детальнее рассмотреть скользкую природу льда. Какие интересные открытия сделали ученые, мы узнаем из их доклада. Поехали.
Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments17

Wi-Fi и много других аббревиатур. Как в Android приложении получить данные об узлах Wi-Fi и не опухнуть

Reading time10 min
Views14K
Однажды мне понадобилось сканировать из Android приложения сети Wi-Fi и получать подробную выкладку данных о точках доступа.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Протокол WS2812B на STM32 без пустых циклов и прерываний. И как сделать правильную радугу

Reading time6 min
Views100K


На Хабре уже есть пара статей о работе с RGB светодиодами WS2112B, но почему-то они все используют довольно архаичный способ формирования битовой последовательности. Способ заключается в формировании точных интервалов времени с помощью пустых программных циклов. Возможно, это издержки использования Arduino, но мы, конечно, уже давно перешли на ARM Cortex-M4 в лице STM32 и можем себе позволить сделать красивее.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments14

Невидимая фотография

Reading time4 min
Views72K


О чём речь?


Знакомые часто интересуются: зачем я занимаюсь невидимой фотографией? Инфракрасной, ультрафиолетовой, тепловой. Неужели там есть что-то интересное?

Поскольку лучше один раз увидеть, чем сто раз услышать, то вот вам небольшая демка. С 15-ю предметами. Здесь они в видимом спектре, а дальше мы на них посмотрим в других диапазонах:

[Видимый свет, 400-750 нм. F/6.3, 1/2500 сек, ISO 200, стеклянная 35-мм линза Nikkor. Снято на модифицированный Nikon D90 с удалёнными внутренними ИК/УФ фильтрами через светофильтр видимого света Kolari Vision Hot Mirror UV/IR Cut filter.]
Читать дальше →
Total votes 309: ↑307 and ↓2+305
Comments96

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity