Спекулятивное исполнение

Вот как вы думаете, современные процессоры, встретив в коде условный переход типа if () {} else {}, какую ветвь кода выполняют?

Правильный ответ: обе.

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

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

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

https://www.bleepingcomputer.com/news/security/new-inception-attack-leaks-sensitive-data-from-all-amd-zen-cpus/

Когда же всё это починят? Да никогда. Убирание спекулятивного исполнения стоит огромного падения в производительности. Поэтому оно с нами будет как минимум до тех пор, пока память типа SRAM не будет стоить как обычная оперативка RAM.

Почему Дженерал Электрик делает говно

Помимо техники “Самсунг”, я также глубоко ненавижу технику “Дженерал Электрик”. Даже их дорогущие светодиодные лампочки — полное фуфло. Служат год, потом в них перегорает драйвер (там нечему больше ломаться) и до свиданья. Дома поменял всё на Feit, Cree, и Филипс — и с тех пор забыл про перегорающие лампочки как про страшный сон.

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

Их отделение бытовой техники в 2016 году купили китайцы Циндао Хайэр. Вот и вся отгадка. Инженеринг раньше был нормальный американский, а стал — китайский, сиречь, одноразовый.

Нет, я не хочу сказать, что всё, сделанное в Китае, плохого качества. У многих товаров есть разная сортность. Если тебе захотелось купить дешёвого говна — будь уверен — уже дешёвое говно ты завсегда найдёшь, типа вот таких свёрел:

Картинка украдена из Реддит-группы Chinesium. Там богато.

Но когда что-то продаётся за много денег, типа холодильника, китайского качества в плохом смысле не ожидаешь.

PS: В 2020 году GE продали своё отделение осветительных приборов компании Savant Systems. Не знаю, может быть, с тех пор их лампочки стали нормальными — возможно. Но проверять не стану 😀

Неметрическое

Читаю ругательный пост про Сухой Суперджет от авиационного механика. О том, что самолёт сильно страдает от “нестандартных технических решений”, хотя иногда создаётся впечатление, что он его хает только потому, что Сухой — не Боинг 🙂 В частности, он сильно возмущается наддувом бака с гидравлической жидкостью. На Боингах и Эрбасах она делается при помощи сжатого воздуха, отбираемого от компрессора, или азотом. А на Сухом она делается поршнем, что вызывает сложности — поршень давится азотом высокого давление, и никак иначе, поэтому если почему-то азота нет, то бак ты не наддуешь, и гидравлика может не работать.

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

На сугубо гражданском самолёте это, конечно, нафиг не надо, но то отдельный разговор. Эмбраер тоже так делает, “по-нашему, по-бразильски”.

Всё это была присказка. Удивило меня в этом посте не это. Вот что меня удивило:

Нет, не скалывающаяся краска. И даже не то, что на русском самолёте стоит американский манометр калифорнийской компании Роджерсон-Кратос.

Удивило меня то, что давление на русском ероплане меряется в наших посконных фунтах на двадратный дюйм (PSI). Только позавчера я поддувал шины своего пикапа до пятидесяти фунтов на квадратный дюйм 🙂 Гляди-ка, и на иностранных еропланах точно так же. И на европейском Эйрбасе давление тоже меряют в PSI.

Рехнуться. А вы всё спрашиваете, “когда же, наконец, Америка перейдёт на метрическую систему?” Полагаю, что в отдельных нишах на метрическую систему даже зарубежные страны не перейдут никогда, как водопроводные и газопроводные трубы в России до сих пор меряют в дюймах.

Игры с акселерометром

Решил немного попробовать поиграться с акселерометрами. Чисто по приколу. Оказалась весьма занятная вещь.

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

Взял совсем недорогой и простенький акселерометр ADXL335 (картинка с Adafruit):

ADXL335

Даже тупо по надписям на плате сразу понятно, как с ним работать.

В качестве интерфейса между компьютером и акселерометром взял свою старенькую Arduino UNO (чего ж ещё, для исследовательских-то целей).

Теперь немного технического описания и математики. ADXL335 я питаю от 3.3 вольт. При ускорении в 0g, на соответствующем выходе платы имеем VCC/2, т.е. 1.65V. АЦП на ATMEL ATmega328P — 10-битные, соответственно, получаем разрешение 5V/1024 = 4.9mv на одну единицу. 1.65V/4.9mv = 336.

Так оно и получилось: будучи положенными на абсолютно плоскую доску, оси X и Y при считывании выдавали 336, а ось Z — 403 (потому что гравитация, и там у нас не 0g, а вовсе даже 1g).

Чувствительность акселерометра составляет, при питании от 3.3 вольт, 330 милливольт на 1g. 330mv/4.9mv = 67, 336 + 67 = 403, всё правильно.

Но, блин, Ардуино, это, конечно, хорошо, но не очень. При запитывании платы напрямую от USB, на входе АЦП микроконтроллера есть очень сильный шум. У меня постоянно прыгали измерения — от 0.98g до 1.02g. Связано это даже не сколько с самим микроконтроллером, сколько с тем, что напряжение 5 вольт, выдаваемое обычным компьютером — это что-то чудовищное, с высокочастотными наводками, и прочими радостями. Поэтому если кому-то хочется на обычной Ардуино заниматься считыванием АЦП — сделайте себе одолжение, подключите сначала нормальное стабилизированное питание. Запитался от моего старого лабораторного БП с линейным стабилизатором напряжения — и наконец-то узрел нормальные непрыгающие значения.

В принципе, с шумом можно бороться софтовыми методами, считывая значения много раз, и усредняя их. Но в зависимости от задач, это делать не всегда практично. Акселерометр можно использовать, например, для расчёта пройденного расстояния. От показаний надо брать двойной интеграл, так как позиция’ = скорость’ = ускорение. Но если показания из-за усреднения доступны только раз в секунду, то получится фигня, очень неточно.

Поэтому в данном виде акселерометр для таких задач непригоден. С ним можно только приблизительно рассчитывать, как наклонена плата. Ведь при наклонении акселерометра, ускорение свободного падения на оси Z падает, и начинает действовать на другие оси. А дальше, в-общем, простая тригонометрия — проекции сил на оси, треугольники. Угол наклона оси Z — арккосинус от считываемого ускорения, никакой магии. Наклони её на 90 градусов — будешь считывать 0g, arccos(0) = 90°, всё правильно.

Дабы не мудохаться со сложными схемами питания, заказал другой акселерометр — MPU6050. У него внутри неонка свой АЦП, причём 16-битный, что круче в 64 раза, а данные он отдаёт по I2C или SPI. Кроме того, у него есть трёхосный гироскоп! Я даже не знал, что бывают твёрдотельные гироскопы, круто! Буду продолжать изыскания.

Разбор полётов

Очень интересные статьи о безопасном проектировании самолётов (ru). Очень лонгрид, довольно технический, но дьявольски интересно. Так, я узнал, как много частей самолётов проектируется не только для того, чтобы они выдержали нагрузки, но и для того, чтобы они были наиболее безопасны при аварийных вынужденных посадках. И даже не просто чтобы они эту посадку выдержали, а ещё для того, чтобы если они её не выдерживают, то нехай они ломаются так, чтобы не наделать дел. В частности, например, шасси проектируют так, чтобы если они отломились к соответствующей матери, то чтобы они не протыкали топливные баки и не устраивали пожар.

Ан
Дё
Труа

Афффтор очень любит технические решения Боинг, чуть более критически отзывается о Эйрбасах, а вот МС21 или Суперджет… увы, аварийно на них лучше не садиться. Жаль.

via lx

О фильтрации воды

Примерно год назад я поставил у себя фильтр воды на весь дом.

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

Вообще вода в США по моему опыту не очень. Самая худшая вода, что я пил, была на побережье Флориды. Она, насколько понимаю, из опреснителя — ох и редкостное говно!

И везде обожают лить в воду хлорку. Вот недавно пришёл рапорт о качестве воды. Не то, чтобы я ему сильно доверял, но если даже доверять, то с хлоркой у нас полный атас. Так, в воде для бассейнов положено держать минимум одну часть на миллион хлорки (1ppm). Содержание хлорки в питьевой воде у нас — две части на миллион, т.е. вдвое больше. Допустимый максимум — четыре части на миллион.

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

Первый пошёл

Желѣзныя​ машины нападаютъ на людей. Первая жертва произвола полупроводниковъ.

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

Оригинал (en français).

Протёр шары и перепроверил дату публикации — нет, не первоапрельский прикол.

Хочу чинить

Мои основные компьютерные колонки — Klipsch ProMedia 2.1.

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

1. Каналы перепутаны местами. Левый звук идёт в правый канал и наоборот. Это лечится легко.
2. Переменный резистор, регулирующий громкость звука, работает через задницу. Когда громкость почти на нуле, кручение его буквально на три градуса меняет громкость очень сильно. Плюс он трещит.

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

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

Яндекс-карты

А прикольно, в Яндекс-картах нынче есть не только спутник, но и снимки с дронов, отмеченные вот такими значками Можно поглядеть на всякое поближе, не с орбиты.

Вот в этой вот жёлтенькой хрущёвке справа Плотнег, будучи ещё тинейджером, потерял свою невинность с 25-летней очаровательной дамой по имени Татьяна Ким 😏

С тех пор я такой, мешком из-за угла вдаренный!!!🤣

Ну, а Яндекс прикольный. Похожий функционал был в Bing (birds-eye view), и там реально было не только 360 фото с дрона с одной точки, а настоящая аэрофотосъёмка. Но стоило дохреналлиард долларов, так что убрали. Или, может быть, по каким-то соображениям безопасности сняли, не знаю.

Наконец-то! (игровое)

Начну издалека. В далёком 1990 году, когда Советский Союз уже благополучно сдыхал, а из магазинов исчезло практически всё, кроме морской капусты, моему отцу выпало поехать в капиталистическую страну Японию. Контраст с нищим СССР, конечно, был разительным.

Ну представьте себе сами, вот из этого:

Вдруг попасть сюда (Токио Гинза):

Но помимо квадратных глаз и обрушившейся веры в коммунизм и руководящую роль партии (отец был членом КПСС), кассеты с записью поездки (которую я, уже давно в душе решивший к тому времени рвать когти из страны, засмотрел до дыр) папа также привёз мне портативный игровой компьютер “Нинтендо ГеймБой”.

Лучшего подарка нельзя было желать. В СССР разлива 1990 года я сразу стал крутейшим парнем на раёне! До сих пор жалею, что не взял эту игрушку с собой. С ней связано столько воспоминаний! Компьютерные игры разбудили во мне интерес к компьютерам вообще, и я бы не занимался тем, чем я занимаюсь сейчас, если бы не папин подарок.

Компания Нинтендо, конечно же, не остановилась на ГеймБое, и продолжала выпускать всё новые и новые игровые консоли. Не так давно я купил старшему сыну Нинтендо Свитч, на котором мы с удовольствием режемся в Марио Карт 8. Но помимо игр, выпускаемых специально для Свитча, консоль может запускать игры для более старых приставок Нинтендо через эмулятор. До сих пор там были игры для Нинтендо 64 и прочих, а сегодня они наконец-то добавили туда игры для старенького ГеймБоя! С огромным удовольствием буду в них резаться.

Да, я в курсе про BGB и прочие эмуляторы. НЕ ТО. Хочу натурпродукт 🙂 Самый настоящий натурпродукт — это, конечно, купить подержаный ГеймБой на иБее. Но и тут должно получиться шикарно. Жаль, пока недоступна игра Super Mario Land. Именно она шла в комплекте с оригинальным ГеймБоем, как showcase title (как сказать по русски? Товар для витрины? В-общем, лучшее из лучшего). Но, я думаю, что появится.

Спасибо, Нинтендо!