Нуль без палочки

Компьютеры не умеют вычитать числа. Внутри процессора нет “вычитатора”, есть только сумматор (adder). Поэтому когда надо посчитать, например, 3 – 2, компьютер внутри себя переписывает это выражение как 3 + (-2), то-есть, складывает тройку с минус двойкой.

Числа внутри компьютера, конечно же, двоичные. Самый значимый бит в числе — знаковый, если он 0, то число неотрицательное, а если 1 — то отрицательное. Если мы пишем слева направо, так что самый значимый бит — самый первый слева (к слову, внутри себя компьютеры же пишут по-еврейски, справа налево (little endian)).

Так, знаковое целое число 3 записывается как 0011 (пусть у меня будет четырёхбитный процессор), а знаковое целое число -2 пишется как 1110 (т.н. дополнительный код, two’s complement). Ну, и складываем эти числа, пользуясь двоичной математикой, получаем искомый 0001 (вернее, 10001, но процессор у нас четырёхбитный, так что мнимое переполнение идёт в игнор).

Все современные процессоры (x86/AMD64, процессоры ARM, и так далее) записывают отрицательные целые числа, пользуясь дополнительным кодом. А вот на некоторых более ранних компьютерах, типа PDP-1 или советской ЭВМ БЭСМ-2, для записи таких чисел использовался более простой обратный код. Получить обратный код из двоичного числа проще — надо просто поменять единички на нолики и наоборот. Так, чтобы записать -2, берём +2 — это 0010, и меняем единички на нолики, а нолики на единички: 1101, вот вам и обратный код.

И на этом месте появляется хохма!

Вот, например, обыкновенный нуль: 0000

Можно из него сделать отрицательный нуль: 1111

Таким образом, у тебя в системе есть два нуля — положительный и отрицательный, и записываются они по-разному 🙂 И если арифметические действия с ними проблем не вызывают, так как на таких компьютерах (-0 == +0) было TRUE, то с побитовыми операциями, хешированием, сортировкой уже возникают эффекты, и к концу 1970х от простого обратного кода (one’s complement) для записи знаковых целых чисел отказались, перейдя на запись дополнительным кодом (two’s complement), в котором нуль как Аллах — один 🙂

Забавно.

PS: А вообще я сталкивался к некоторыми задачами, где мне бы пригодилось наличие двух нулей, отрицательного и положительного. А ещё было бы прикольно записывать этими разными нулями результаты вычисления некоторых пределов — было бы понятнее, с какой стороны предел подкрадывается к нулю: lim (x → -∞) 1/x = -0 😉

Как они повидлу в карамельки засовывают

В детстве у меня был проигрыватель для виниловых пластинок с изменяемой скоростью проигрывания. Обычный диск на 33 оборота можно было запустить на 45 — уже получалось смешно. А можно было зафигачить аж на 78 оборотов — тогда пластинка проигрывалась очень быстро, и всё звучало по-мультяшному. По башке, конечно, надо было мне дать, чтобы пластинки не портил, но что было, то прошло. У меня сейчас тоже проигрыватель пластинок есть, но такой дурью я больше не маюсь. Просто играю пластинки и всё.

Так вот, всегда мучал вопрос — как это ютупчик и прочие сервисы видео- и аудиоконтента, типа подкастов, могут убыстрять (или замедлять) проигрывание звука без изменения его высоты?

Оказалось, что делают так:

1. Разбивают цифровой звук на маленькие блоки в 512-2048 байт. На частоте дискретизации в 44.1 килогерца эти блоки имеют длину всего несколько миллисекунд.
2. На каждом блоке запускают преобразование Фурье. Для тех, кто вдруг не знает — это математический способ разбить звук на индивидуальные составляющие частоты.
3. Воссоздают те же частоты, но просто укорачивают или увеличивают им длину проигрывания в нужное количество раз по желанию пользователя. Склеивают звук назад.

PROFIT!

Ну, немного посложнее, конечно (обычно там не тупо дискретные блоки по 512 байт, а т.н. “скользящее окно” (sliding window) размером в 512 байт, например, но основа алгоритма Phase Vocoder (“фазовый вокодер”, что ли?) именно такая.

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

Теоретическій ​Телеграфизмъ​

В одном своём посте человек поинтересовался, может ли стук передавать азбуку Морзе (я, к слову, не люблю неправильное название “Морзе” — изобретателя звали Сэмюэл Морс, а не “Морзе”, но “тут теперь так принято”).

Я в комменте заявил, что нет. Основой кода Морзе являются точки и тире — разную длину которых не передать одинаково коротким стуком.

Однако мне возразили, что можно, дескать, на основе ритма. И что потенциальный затык может возникнуть только в последнем тире последнего слова. Меня эти слова ничуть не убедили.

Ну, хорошо, давайте тогда перейдём от теории к практике, и попробуем сами.

Вот спецификация самого кодирования:

“В стандартном коде Морзе за единицу времени принимается длительность самого короткого сигнала — точки. Длительность тире равна трём точкам. Пауза между элементами одного знака — одна точка, между знаками в слове — 3 точки, между словами — 7 точек.”

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

Вот, возьмём, например, букву L. В коде Морзе она обозначается как ._..
Если передать это стуками, то получится тыц-тыц — потом пауза именно что на три точки — тыц-тыц. Почему пауза именно на три точки? Потому что длина тире три точки, плюс пауза на точку между буквами. 4 – 1 (один стук) = 3.

Ну, а теперь ответьте, дорогие, мои, что перед нами — буква L или II? А вот не сможете ответить. Букву E (одна точка) вы в слове hello тоже от T (одно тире) не отличите, по той же самой причине — после одного стука расстояние до следующей буквы будет точно таким же. Да вы даже букву O (три тире) не прочитаете правильно — а вдруг это EEE, или EET, или вообще TTT.

Не буду голословным. Лучше показать наглядно. Вот я пошёл на сайт-генератор кода Морзе, и вбил туда слово hello, снизив темп до пяти слов в минуту. Полученный код можно сгрузить в виде wav. Открыл я его в звуковом редакторе, добавил ещё один трек, где заменил точки и тире стуками. Вот скриншот:

Вот и попробуйте, используя только нижний трек, прочитать слово. И не выйдет нифига. Хотите попробовать на слух? Да легко, вот mp3 (грёбаное ЖЖ, разумеется, ничего этого не показывает, щас буду репу чесать):

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

“Да, но ведь мы знаем, что в тюрьмах люди перестукиваются. Как они это делают?”

–Элементарно, Ватсон! Они не используют код Морзе. Они используют тупо алфавит. Первая буква алфавита — А, значит, стукнуть один раз. Б — два стука, В — три, и так далее. Соответственно, пять стуков, а потом один — это слово “ДА”. Вот и всё, и никакого Сэмюэля Морса.

Интересно девки пляшут

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

В нашей стране людям разрешается владеть огнестрельным оружием (если вдруг кто-то не знал), и ущемление этого права запрещено по Конституции. Однако, оружием можно владеть не всяким — например, без специального разрешения нельзя владеть автоматами, пулемётами, гранатами, пистолетами-пулемётами, глушителями, и т.д. Это регулируется актом Конгресса 1934 года под названием “национальный закон об огнестрельном оружии “(National Firearms Act), который ныне является частью Уголовного Кодекса США — статья 25, глава 53.

Изначально этот закон был принят, когда наше федеральное правительство пыталось бороться с бандами контрабандистов спиртного (которых они, к слову, своими же руками и создали, введя сухой закон — это уж как у нас водится). Это они перебздели вооружённых ручными пулемётами “Бар” и пистолетами-пулемётами “Томми” мафиози — тогда полицейские были вооружены шестизарядными револьверами и дробовиками в лучшем случае. И с пуленепробиваемыми жилетами тогда был швах. Мафиозов, оно, конечно, не остановило, но не суть.

Суть в том, что в Луизиане агенты бюро по контролю за оборотом алкоголя, табака и огнестрельного оружия (ATF) провели обыск у гражданина Джорджа Питерсена, нашли у него незарегистрированный глушитель (по вышеупомянутому NFA они подлежат регистрации), и взяли Питерсена за жопу. Питерсен — в суд: это ущемление моих прав, защищённых Второй поправкой к Конституции.

Далее начинается этот самый интересный казус. Суд сказал, что Вторая поправка защищает право людей на владение оружием. Глушитель же оружием не является (ну, если только им не кидаться в людей), и поэтому право на владение им Второй поправкой не защищено, и Питерсен нарушил этот самый УК США, статью 25, главу 53.

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

С интересом жду дальнейшего развития событий. Действительно, если глушитель не является оружием, тогда он такой же предмет как я не знаю там, морковка или картошка. А если таки является, то должен защищаться Второй поправкой. Либо трусы, либо крестик.

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

Судебное дело: https://www.ca5.uscourts.gov/opinions/pub/24/24-30043-CR0.pdf

Умные часы

Наконец-то люди сделали нормально выглядящие умные часы.

Я вот часто вижу мнения в сети — ах, зачем нужны часы “Лонжин” за три тыщи бакинских, если “Касио” за пять монет показывает время ничуть не хуже?

Фактически, конечно, это мнение не обязательно неправильное — часы “Касио” за пять монет показывают время исключительно качественно. Но есть ньюанс. И ньюанс этот в том, что мужчины в наше время, в отличие от, ну я не знаю, начала 19 века, не носят ювелирные украшения. И красивые часы — это единственная социально приемлемая ювелирка для современных мужчин. Ну, если мы не хотим выглядеть як цигани:

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

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

Может быть, и другие подтянутся.

Не бывает здоровых, бывают недообследованные

Совсем недавно я узнал, что многочисленные исследования говорят о том, что в 80-90% случаев аутизм передаётся по наследству. Да, безусловно, есть масса факторов окружающей среды, например, возраст матери. Между возрастом матери и наличием аутизма есть положительная корреляция — т.е. чем старше мать ребёнка, тем выше вероятность того, что у ребёнка будет диагностирован аутизм. Но всё же генетические факторы, наследственность — встречаются чаще.

Мой младший — аутист. Не в тяжёлой степени, но множество симптомов в наличии. Аутизм — это не чёрно-белое заболевание, а спектр. Бывает прямо тяжёлый аутизм — это довольно суровое расстройство, такие многие граждане даже невербальны. Бывает так, лёгкий налёт аутизма, ранее его называли “аспбергером”, но теперь “аспбергер” — это уже не диагноз, так как оно тоже считается таким же расстройством аутистического спектра. Многие люди с легкой формой аутизма живут нормальной жизнью, хорошо принимают социальное кондиционирование — “реагировать на раздражитель Х принято вот так” (“дитям — мороженое, его бабе — цветы!”), могут даже не подозревать о том, что они аутисты, и находят себе хорошую карьеру в ИТ 🙂 ИТ, кроме дураков, реально рай для аутистов: внимание к деталям, гипер-сфокусированность, нахождение паттернов, и прочее, что легко даётся аутистам, именно в ИТ и ценятся.

Поэтому, узнав о том, что он часто наследуется, я призадумался — в кого, не в меня ли. Выяснилось, что тестов на расстройства аутистического спектра довольно много. Наиболее точный — ADI-R, но правильно его провести и интерпретировать результаты может только специалист, а это денег стоит (дешевле, чем за пятьсот монет, я не нашёл).

Но есть много тестов, позволяющих хотя бы определиться на тему “стоит ли тут копать глубже”. Мне очень приглянулся тест AQ. Он состоит из 50 вопросов, проходится быстро, получаешь результаты мгновенно, и можно прикинуть вероятность того, что у тебя расстройство аутистического спектра. Чем больше баллов, тем выше вероятность того, что ты аутист. Балл выше 26 уже необычен, а всё, что больше 32 — это уже повод серьёзно призадуматься.

Пройти на английском:

https://embrace-autism.com/autism-spectrum-quotient/

Есть перевод на русский:

https://www.aspergers.ru/aq

А что у меня? А у меня лапки:

Привет нейродивергентам от нейродивергента.

PS: Не то, чтобы в моей жизни что-то это сильно поменяет; но многие особенности собственного поведения стали понятными. Во всяком случае, на вопрос “а почему я такой мудак” в отдельных областях теперь могу внятно ответить.

PPS: Расстройства аутистического спектра имеют корреляцию с другими расстройствами. Например, дефицит внимания. И там много ещё прочих разных.

Игра

Оказывается, существует такая вещь как профессиональная игра в салочки (tag). Даже целая организация есть — World Chase Tag, которая занимается регистрацией команд, организацией турниров, вручением призов, и так далее. Даже по телевизору их показывают.

Представляешь, встречаешь так человека, и заходит разговор про работу.

–Ты чем по жизни занимаешься?
–В салочки играю!!!

Прочитал интересное

Как отличить реально разумное существо от обычного животного? Речь? Её может не быть, вдруг это немой. Одежда? Многие племена ходят голыми, если климат позволяет. Использование инструмента? Животные тоже используют инструменты. Как камни, так и палки. Совместные действия? Да в любом муравейнике их навалом.

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

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

Кто хочет делать дома алмазы?

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

За машину системы HPHT просят двести киломонет.

Осаждение алмазов из газовой фазы уже подороже — почти пол-миллиона монет.

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

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

Полудрагоценное

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

Данный “минерал” называют… Фордит 🙂

Ну, а нынешная покраска производится не из пульверизаторов, а электростатическим методом, который не даёт таких слоёв лишней краски. Поэтому цвета этих “агатов” — это цвета старых машин ещё прошлого века. Впрочем, это видно.

via https://www.fordite.com/