XKCD прекрасен как всегда. Особенно понравились Owl Stuffing и Snake Shaming 🙂

Tori's Musings
XKCD прекрасен как всегда. Особенно понравились Owl Stuffing и Snake Shaming 🙂

Таки доделал програмку на Питоне, рисующую спектр сигнала и автоматически считающую КНИ+шум и ОСШ. Попутно узнал, как водится, много нового. За что люблю Питон — так это за то, что программа занимает менее 40 строк. На тех же Сях я бы усрался это рисовать. Даже на Шарпах бы усрался.
Программе скармливается звуковой файл с сигналом частотой в 1 kHz, сгенерированный программой Adobe Audition (в девичестве Syntrillium CoolEdit). Но можно взять и бесплатный Audacity, результат будет точно такой же. Программа читает файл, берёт значение с наибольшим пиком и даёт ему обозначение в 0 децибел. Остальное, соответственно, отрицательные величины. Подсчитывается среднеквадратичное значение всего, что не сигнал, и делится на уровень сигнала. Получается КНИ+шум (THD+N). Потом считаем ОСШ (отношение сигнал/шум, SNR) в децибелах: 20log10(сигнал / шум)
Вот так выглядит анализ звукового файла с сигналом 1 kHz, разрешением 16-бит, частота дискретизации — 48 kHz:
Это весьма близко к теоретическому идеалу — в идеале, разрешение 16 бит может дать ОСШ в 96.3 dB. Но у меня не идеал, так как я использую чуть менее, чем 16 бит — ибо если генерировать синусоиду с уровнем в 0 dB (т.е. по-максимуму), то почему-то уже лезут нелинейные искажения. Так что я создаю её с уровнем в -0.1 dB, минимальным отступлением от максимума, которое мне даёт делать Audition. В любом случае, 94 dB — это дохрена.
КНИ в 2 тысячных процента это тоже прекрасно. Без приборов этого никто никогда не увидит, искажения начинают быть слышимыми, когда уже вплотную приближаются к 1%, хотя это сильно зависит от того, что именно слушаем: если чистые синусоиды, то искажения начинают быть заметными гораздо раньше, а если в качестве тестового материала брать альбомы фифтисентов и прочих, то там можно и 10% искажений не услышать. Что не означает, что аппаратура, дающая КНИ в 0.05%, ничем не лучше аппаратуры, дающей 0.1% — она лучше; просто в реальности ушами этого ни один живой человек не услышит.
А теперь — снова пнём формат MP3 🙂 Никто как-то вот не задумывается о том, что они слушают в тысячедолларовых деревянных наушниках, подключённых к внешним усилителям класса А за семьсот долларов, обещающим КНИ в 0.00045%
А между тем это реалии MP3 с битрейтом в 192 килобита/сек:
А это — 320 килобит/сек:
Получше, конечно, чем 192 kbps, но всё равно проседание качества очень налицо — происходит серьёзное ужимание динамического диапазона (я в курсе, что ДД и ОСШ это не вполне одно и то же, но они связаны). На некотором материале (например, классическая музыка, обладающая большим динамическим диапазоном) это может быть очень заметно. На 192 килобитах так это точно заметно, тихая партия скрипки сопровождается скрежетом артефактов сжатия с потерями — собственноушно, так сказать, слышал. Дальнейшее увеличение битрейта после 320 килобит/с, кстати, уже ничего не даёт — ОСШ так и остаётся в районе 55 децибел.
Ещё надо будет попинать винилофильство и прочее плёнколожество, но это в другой раз 🙂
Видео самого побега — отвал башки. Как в кино.
“У свободы много трудностей, и демократия не безупречна, но нам никогда не приходилось строить стену, чтобы удержать собственный народ от побега”
-Джон Фитцджеральд Кеннеди
Уязвимость-то, в общем, ерундовая — злонамеренное приложение может записать звук и происходящее на экране без уведомления владельца. То-есть, чтобы сработало, надо ставить это самое злонамеренное приложение. Но КМК, на самом деле тут подчёркивается проблема не с наличием багов (баги есть везде, в том числе и в iOS), а в том, что из-за зоопарка производителей и отсутствия единоначалия баги лечатся очень неравномерно. Если у тебя Гугл Пиксель, то без проблем. А если укитаенный в Китай китайский телефон, купленный за двадцатку на Алиэкспрессе — то упс. И последних, из-за цены, намного больше — по прикидкам в статье, уязвимых телефонов около 78%.
Я сначала подумал, что это человек в костюме робота. А потом пригляделся — не, реально робот.
Движения просто пугающе органичны. Впрочем, это неудивительно — робот-то ведь антропоморфный, с присущей именно такой форме корпуса моторикой.
Какое прекрасное видео для любителей старых железяк. Редко такие бывают. Показан весь процесс запуска американского узкоколейного паровоза К-37 Микадо, что называется, “с нуля” — разжигание топки, смазывание, пуск турбогенератора, и т.д. Видео длится 37 минут, но на деле весь процесс занимает 6-7 часов. Очень трудоёмкая и кропотливая работа — совершенно неудивительно, что с появлением тепловозов паровозы так быстро вымерли. На машиниста тепловоза нужно учиться 2 года. Сколько надо учиться на машиниста паровоза — я себе даже не представляю. Лет пять минимум, наверное.
Примерно 50% сисадминской работы составляет ожидание того, когда что-нибудь произойдёт — сервер, наконец, просрётся и загрузится, сервиспак закончит устанавливаться, бекап забекапится, и т.д.
Хорошо, когда есть тыщ на 80 разного оборудования, куда можно приткнуть сапоги на время ожидания!
PS: DELL R710, кстати, реально может просираться минут 10 пока начнёт загружаться ОС.
Ради интереса узнавал цены на б/у сельскохозяйственное оборудование. Как для фототехники есть keh.com, для тракторов есть tractorhouse.com
С удивлением увидел, что Ламборгини изготавливает не только суперкары, но и тракторы.
Купи Ламборгини и все тёлки твои!!!
PS: Кстати, не только Ламборгини делает тракторы. Феррари тоже: http://www.ferrariagri.it/
PPS: Интересно, как оно по надёжности. Барахло поди, типа Фиата.
За два десятка лет жизни в США я видел много изменений в стране. И в основном это были улучшения к лучшему, хотя некоторые вещи и стали хуже. Японские автомобили, например, стали хуже. Представители власти стали хуже. Но многое стало лучше — дома, например, стали доступнее. В 1997 году проценты за ипотечный займ составляли около 8% (и это ещё ничо, в 80е было ещё хуже), а сейчас немного ниже 4%. Но не деньгами едиными. Намного лучше стала жратва. Раньше в магазинах было два вида сыра — “американский” и “швейцарский”. А щас даже в дешевейшем сельском Волмарте можно купить и гауду, и бри, и даже грюйер (ну, не лучшие и дорогущие марки, но всё же). Вот с йогуртами похуже, это правда. Такого обилия йогуртов, как в той же Германии, я тут не видел. ИЧСХ, все немецкие йогурты вкусные — какой не купи. Но хлеб можно купить нормальный, а не запаянную в пластмассу вату. Мороженое стали выделывать вменяемое.
И среди всего этого благолепия одна вещь как была отвратительным говном, так и осталась отвратительным говном — это американский майонез.
С хорошими соусами в США вообще напряжёнка до сих пор. Даже в полуголодные 90е годы в Москве можно было купить больше разнообразных кетчупов, чем сейчас в США. И даже советский майонез, в маленьких банках с жестяными крышками, был вкусным — его можно было намазывать на хлеб и сразу есть.
Основная проблема американских соусов в том, что в них кладут слишком много уксуса. Не то боятся ботулизма, не то тяжёлое наследие английской кухни, где уксус является приправой нумер один, не даёт делать нормальные соуса. Майонез, может быть, и обладал бы вкусом и ароматом, но его вусмерть забивает кислятина и запах уксуса. Со столовым хреном та же история — дикая кислятина, воняющая уксусом. С горчицей абсолютно аналогично — американская горчица чудовищна в своей уксусности. Поэтому вместо горчицы я покупаю васаби в корейском магазине — туда хоть уксус не кладут, хотя это и не настоящий васаби, а крашеный хрен.
С майонезом ситуация также осложняется тем, что практически все производители делают его с соевым маслом. С этим отвратительным бурлом с тошнотворным вкусом и запахом. Почему они так делают? Обратите внимание на ценник, когда будете покупать растительное масло в магазине в следующий раз. Самое дешёвое — это то, которое стыдливо называется “овощным маслом” (vegetable oil). И только прочитав этикетку, можно понять, что оно соевое. Я всегда ненавидел это масло, и никогда его не покупаю. Подсолнечное, арахисовое и моё любимое масло из виноградных косточек — вот это совсем другое дело, вот это вкусные нормальные масла.
Кстати, тот майонез, на котором гордо пишут, что он из оливкового масла — на деле сделан тоже из соевого. Этикетку почитайте внимательно.

Ничего близкого к тому прекрасному майонезу, что я покупал в России под маркой “Слобода” во время последнего заезда, в США в обычном магазине купить просто невозможно. Хорошо, что теперь есть интернет. Поискал “gourmet mayonnaise”. Выскочил майонез “Сэр Кенсингтон”, и прямо-таки елейный отзыв не где-нибудь, а на сайте журнала “Bon Appetit“. Хвалили ну просто как девку перед выданьем — мол, настолько вкусный майонез, что хочется прямо из банки употреблять. Смотрю состав — на подсолнечном масле. И доступен в нашем местном Whole Foods. Разлысил лоб, поехал в Хулефудз. Укупил, приволок домой, достал ложку, пробую. БЛДЖАД, всё то же самое — отвратительное перекисленное уксусное говно. И всё окончательно стало ясно с журналом Bon Appetit — вкусовые пупырышки у них атрофированы точно так же, как у большинства американцев.
Видимо, таки придётся как с чёрным хлебом и многим прочим — осваивать технологию изготовления майонеза и прочих соусов самостоятельно. Достопочтенный Илья Исаакович Лазерсон в помощь:
По совету ув. ny-quant попробовал использовать формулу x = r * x (1 – x) в качестве генератора случайных величин. Одного преобразования мне показалось мало, так что делал два кряду.
“В домашних условиях” проверить, качественная ли случайность не очень просто, надо вспоминать основы статистики и правильное применения хи-квадрата. Но есть неплохой способ — представить полученные значения в виде изображения. Если картинка выглядит шумом, то шансы на то, что значения действительно случайны, неплохи. Человеческий глаз очень неплохо натренирован на то, чтобы различать неслучайные узоры — миллиарды лет эволюции, чтобы издалека узнавать хищников или отличать ядовитых змей, даром не проходят.
Ну, как грица, pics or it didn’t happen.
Результат использования функции NumPy.random.random():

И результаты, полученные из двойного применения x = r * x (1 – x) с двумя разными значениями r:

Вообще — неплохо, должен признать.
Но если приблизить и рассмотреть детальнее, становится заметной разница. Справа — x = r * x (1 – x), слева — NumPy.random.random()

Как видно, x = r * x (1 – x) чаще принимает граничные значения, там много белого и много чёрного, и мало серого. Из-за этого, кажется, что есть узоры, как на булатной стали. Я не математик, но мне кажется, что большая равномерность является желательной.
Но вообще — для такой простой формулы должен признать, впечатляет.