Если пробка произошла из-за ДТП, то в ней важно занять правильный ряд. Можно посмотреть по яндекс-пробкам, но там не всегда понятно указано. Что же можно сделать?
Можно следить за другими машинами. В первую очередь -- за скорыми помощами, потому что их хорошо видно. Когда место ДТП уже более-менее видно, но ещё непонятно, какой ряд свободен -- можно посмотреть, как проехала скорая. Это позволит опознать хотя бы один работающий ряд.
Тут будут спойлеры. Если вы хотите обзор без спойлеров, то я его уже написал в 2014 году.
Итак, далее спойлеры.
Soul Cloud -- это система, позволяющая загружать мертвецов в компьютер. После этого их родственники могут надевать VR-шлемы и общаться с ними как с живыми. Есть ли у этих мертвецов сознание -- вопрос открытый. Тем не менее, сюжет очень актуальный. В фантастике идея загрузки мертвецов в компьютеры присутствует давно. А в реальности она появилась как раз сейчас -- благодаря нейронкам.
В чём же конфликт в данной игре? Как известно, люди делятся на тех, кто делает бэкапы, и тех, кто ТЕПЕРЬ делает бэкапы. А что ещё важно помнить, когда делаешь бэкап? 1) бэкап должен быть максимально изолирован от основной системы 2) бэкап должен быть проверен, что он действительно содержит в себе то, что предполагалось. А ещё -- что содержимое можно развернуть, как было.
Те, кто не делают бэкапы, или делают, но не проверяют их, могут оказаться в ситуации незадачливых администраторов Soul Cloud. Скажем так, немногие родственники оказались довольны, узнав, что их мертвецы умерли повторно.
Главная героиня, Мэдиссон, путешествует по воспоминаниям мертвецов и ничтоже сумняшеся пытается починить то, до чего дотягивается. Когда же починка, казалось бы, завершена, оказывается, что есть ещё пара дел, которые надо сделать. Но на их выполнение уже нету времени. По неизвестной причине в VR можно пребывать четыре часа максимум. Те, кто пытаются остаться дольше -- ту-ду-дум! -- умирают в реале. При этом в Soul Cloud они, по-видимому, не остаются. Защиты от этого никакой не предусмотрено, хотя о баге известно много лет (тоже, можно сказать, классическая ситуация в разработке ПО).
Ну и вот, Мэдиссон предстоит решить -- то ли спасти себя, допустив смерть всех персонажей (включая собственного мужа, убитого пару лет назад), то ли спасти персонажей -- но отказаться от собственного существования. Мгновенно выбор делать вас не заставляют. У вас на это есть пять минут.
Если вы выходите из системы, то получаете только короткую заставку, и всё. Этим авторы подсказывают, что хорошая концовка -- это победить финального босса и умереть. Но действительно ли эта концовка так хороша? Стоят ли виртуальные покойники спасения? Это похоже на дилемму вагонетки, но всё же это не она.
У меня нет однозначного ответа, как следует поступать. Но вариант выхода из системы, приводящего к полному формат цэ, мне нравится больше. В одной из последних уточек Мэдиссон читает стишок на тему того, умеет она отпускать или нет. Все пользователи Soul Cloud, включая её саму, отпускать не умеют. А Мэдиссон не умеет настолько, что сама готова умереть. Это вредно для психики. И, как показывает её собственный опыт, опасно для жизни. Не надо так.
***
А ещё я хотел написать про память. Про собственную память. Я играл в эту игру много лет назад (в 2014). И вот я прохожу те же уровни, что и тогда. Помню ли я их? Когда как. Некоторые уровни я помню очень хорошо. Я помню, что где надо делать, как что устроено. А вот другие уровни я не помню абсолютно. Даже разгадав все загадки, я не вспоминаю ничего. Я бы вообще решил, что я игру в тот раз бросил, если бы я чётко не помнил, что сражался с финальным боссом. Вот так странно устроена память.
Оказывается, разработчики выпустили ещё несколько игр, в т.ч. хорроров (а мастер ребут -- страшный). Так что буду пробовать Maid of Sker.
Сначала я читал "пиши, сокращай". Авторы писали, что их книга во многом основана на книге Норы Галь. Это наводит меня на печальные мысли о том, что книг, в которых написано о создании текстов, очень и очень немного. Книга написана в 1972 году. "Пиши, сокращай", скажем, в 2015. Перерыв -- сорок лет. Это долго. Если вы знаете другие книги о создании текстов (в первую очередь, русскоязычных) -- сообщите, пожалуйста.
Да, есть ещё подборка книг о том, как писать художественную литературу, как прорабатывать сеттинг, как придумывать персонажей и сюжет. Таких книг больше. Сейчас же я говорю о книгах, помогающих исправить стиль и грамматику, помогающих писать красивый и энергичный текст.
"Слово живое и мёртвое" хотя и имеет нечто общее с "Пиши, сокращай", но у этой книги совершенно другая специализация. Потому что Нора Галь не писатель и не маркетолог. Она -- переводчик.
Примерно три четверти книги Нора Галь в образе злой бабки стучит кулаком по столу и кричит: "Ироды, что же вы с русским языком делаете!" И показывает на примерах, как не надо, и как надо. Это очень полезные советы, но они не составляют систему. "Пиши, сокращай" в данном случае смотрится гораздо выгоднее, потому что содержит гораздо больше информации, причём структурированной. Эта информация, однако, предназначена для других писателей. Не для переводчиков, не для авторов художественной литературы. "Пиши, сокращай" -- для копирайтеров и маркетологов. Частично -- для журналистов и блоггеров.
Последняя четверть книги совершенно о другом. Там Нора Галь хвастается, какие умнички были переводчики кашкинской школы. С примерами. И вот эта часть гораздо ценнее первой. Для её полного понимания требуется знание английского языка, поскольку примеры переводов сравниваются с оригиналами. Глядя на методику перевода кашкинцев, я понял, насколько плохо я знаю русский язык. Пассивное знание языка даёт огромный словарный запас, знание фразеологизмов и прочего. Активное знание, даже для носителя, в разы сложнее. Чтобы качественно переводить, надо хорошо знать язык в активном смысле. Я же пишу всё время одними и теми же словами. При переводе художественной литературы это очень, очень плохо.
Ещё последняя четверть книги была для меня интересна, потому что я узнал о тех иностранных авторах, и их знаменитых книгах и рассказах, о которых я раньше только слышал, но ничего не знал. Хемингуэя я теперь читать точно буду.
***
Теперь, когда смотрю аниме с субтитрами, я слышу, как сделан перевод -- буквально, или образно, в стиле кашкинцев. Это бросается в глаза. Идея образных переводов мне нравится, за исключением метода перевода имён, фамилий и некоторых терминов.
Я понял, в каком направлении мне надо работать, чтобы улучшить свой русский язык. К сожалению, я пока не понял, как это сделать!
-- Поешь супцу, -- сказал Билл. Мы пообедали втроем, и казалось, что за нашим столиком не хватает по крайней мере шести человек.
Найти 100% секретов в играх бывает довольно сложно. Но некоторые секреты находятся на виду. Другие спрятаны, но слабо. Годами играя в разные игры привыкаешь к тому, как секреты спрятаны. Если у тебя 2д-платформер или бродилка слева направо, то после материализации на уровне надо сразу идти налево, а не направо. За границей экрана почти наверняка что-то есть. В трёхмерных играх надо всегда проверять пространства под лестницами.
Кроме привычки искать секреты привыкаешь ещё к одной вещи -- в зоне может быть только один секрет. Заходишь в комнату -- там пусто. Ни одного интерактивного элемента. Значит тут точно есть секрет! Шаришь-шаришь, находишь. Всё, больше тут ничего нет, можно идти дальше.
Тем сильнее удивление, когда в некоторых играх оказывается, что в зоне не один секрет, а больше, но спрятаны они по-разному.
Хотел я записаться к врачу -- и записался. Прошло несколько дней. Я решил уточнить информацию о записи.
Зашёл на мос.ру, открыл окошечко, там всё написано -- дата, время, кабинет -- и карта нарисована. Решил окошечко закрыть.
Внизу были две кнопки -- синяя "Перенести" и серая "Отменить". Какая из них закрывает окошко? Я нажал "Отменить".
Запись успешно отменена.
#$!&$#&!$%#&$%! -- грязно выругался я.
Сначала я растерялся, а потом полез записываться заново, но старое время было уже недоступно. А следующее доступное -- через десять дней. Хвала богам, что направление не "сгорело", поэтому хоть через десять дней, но записаться заново я смог.
Что я хочу сказать по этому инциденту?
1. Конечно же, для закрытия окошечка был крестик в правом углу. Им я не воспользовался. 2. Впервые я вижу, чтобы кнопка "отменить" делала необратимые деструктивные действия. Да, было написано "отменить", а не "отмена". Но на любых других сайтах в этом случае написано, к примеру, "отменить заказ", а не просто "отменить". 3. Это как раз то место, где необходим вывод предупреждения. Да, мы можем ругаться, что винда задаёт слишком много вопросов, когда не надо, а когда надо -- делает не спрашивая. Но хороший UX требует, чтобы разрушительные действия не выполнялись моментально.
Отмечу также, что чтобы записаться к врачу, надо сделать минимум три клика -- выбрать время, нажать "записать" и нажать "подтвердить". А чтобы отменить запись -- ничего делать не надо. Клац -- и ты без записи. Бля!
В Москве были выборы муниципальных депутатов. Я дошёл до избирательного участка в воскресенье, около 19:00.
Перед входом стоял мужик из нашего двора.
-- Оооо, привееет! А отец твой придёт? -- Не знаю, думаю нет. -- А за кого голосовать будешь? -- Я вам не скажу. -- А ты уже решил, за кого голосовать будешь? -- Я вам не скажу. -- Смотри, вот есть два человека, за которых ты просто обязан проголосовать! Иванов и Петров! -- ... -- Иванов поликлиникой заведует. Когда ты идёшь в поликлинику, ты идёшь к нему! -- ... -- А Петров у нас во дворе детскую площадку сделал! Кстати, ты только что с ним поздоровался, вон он там стоит! -- ... -- Короче, остальных каких хочешь выбирай, а вот Иванова и Петрова обязательно! А отец твой придёт?
***
Зашёл на участок. Члены избирательной комиссии сразу хором -- "оооо, кто-то к нам пришёл!"
Амбарных книг со списком избирателей больше нет. Всё смотрят в компьютере. После этого надо расписаться стилусом на специальном терминале. К сожалению не помню, что отображает терминал перед росписью, но он точно должен отображать хотя бы ФИО избирателя, чтобы он понимал, что расписывается за себя. В амбарной книге с этим проблем не было.
-- Вот, можете посмотреть на стене список кандидатов. -- Да я его уже изучил. -- Оооо, уже изучили!
Почему-то отсутствуют фото кандидатов. Я вообще-то хотя бы лицо хотел бы видеть!
Я узнал, что в Перекрёстке на кассах самообслуживания можно сэкономить пару нажатий. Чтобы применить скидочную карту, её не надо выбирать в "скидки и купоны" → "скидочная карта". Достаточно просто поднести штрих-код, будто бы это ещё один товар. Интересно, работает ли такая же схема в других магазинах...
-- Я собрал устройство, но оказалось, что контроллер не отвечает. Я позвонил разработчику, но он не отвечает тоже.
***
При изготовлении, а также при составлении разводок кабельных сборок никогда не делайте одинакового цвета провода одинаковые по протоколу, но различные по смыслу. Я был весьма озадачен, когда обнаружил, что на входе и на выходе у кабеля имеется по две витые пары оранжевый/бело-оранжевый. Да, они обе должны передавать RS-485, но из разных мест -- и в разные места. Кто из них кто? Позвал автора, он признал косяк и предложил прозвонку. А потом просто дёрнул одну из витых пар с одного конца кабеля и посмотрел, которая из них шевелится с другого.
Осторожно, в тексте присутствуют физиологические подробности.
Однажды к нам на работу пришли стоматологи (так бывает) и попросили исследовать их зубы.
Зубы они принесли в стеклянной банке. Их там было более 50 штук. Мы пересыпали эти зубы в свои ёмкости. И вот звук сыплющихся зубов -- это было что-то неописуемое.
Ну, то есть, звук был самым обычным. Необычным его делало знание о том, что происходит.
Этот пост не про коней, а про машины. Кони живут в десяти минутах езды от работы. Поработал и... вперёд!
Еду я туда на машине. И обратно тоже. И вот возвращаюсь я уже домой на прошлой неделе -- и вижу, что-то на дороге какое-то слишком затруднённое движение. Ехать мне в нём было лень. Я вспомнил, что вроде как есть альтернативный маршрут, чтобы выехать из того микрорайона, в котором я находился. Дороги я не знал. Навигатор остался дома. Но я захотел попробовать.
Я свернул на ближайшем перекрёстке в сторону и поехал. Частично я поворачивал наугад, а частично -- ехал за основным скоплением машин. И всё-таки вывернул туда, куда надо, и попал на трассу. Ура.
Проходит неделя. Я поехал с работы к коням. И вот тут уже движение было не просто затруднённое. Я попал в пробку в том месте, где её не бывало. Я открыл на смартфоне яндекс-что-то-там, и обнаружил, что та улица, по которой мне предстояло проехать, была вся тёмно-бордовой. Там было ДТП. В самом конце. Я позвонил в КСК и спросил, что там насчёт опозданий. Они сказали, что дело строго: на сколько опоздал, на столько меньше занимаешься. А если опоздал больше, чем на 10 минут, то занятие отменяется.
А до занятия оставалось 20 минут.
Тут-то я и вспомнил про об'ездной маршрут. Это был крюк длиной семь километров. Но потенциала в нём было гораздо больше, чем в тёмно-бордовой улице. Я развернулся и поехал в обратную сторону.
В отличие от лошадей, на машине я езжу хорошо. В общем, приехал я за 5 минут до начала, а на само занятие опоздал всего на одну минуту. Это мне простили.
Путь, который занимал обычно десять минут, занял сорок. Но зачем я обо всём этом рассказываю?
Из-за мистики, конечно. Альтернативный маршрут вовсе не очевиден. Если бы я на той неделе не изучил его, сегодня я бы с большим шансом заблудился, и свернул куда-нибудь не туда. И если на прошлой неделе цена ошибки была нулевой -- ну поезжу кругами, ну и что? То на этой неделе цена ошибки была гораздо выше. Да, я ехал не в ту же сторону, а в обратную, но мозг вовремя вспоминал, что как выглядело, и подсказывал, как ехать.
Но почему на прошлой неделе я вообще решил изучить этот маршрут, который мне так пригодился сегодня? И о котором я не задумывался раньше, хотя ездил там много раз? Я не знаю. Это была интуиция.
Если программировать достаточно долго, то рано или поздно на них наткнёшься. Ошибки в компиляторах редкость, но иногда они всё же есть. Нахождение такой ошибки -- целое событие. А искать её можно очень долго. Это самые поганые ошибки, потому что компилятор -- последнее, на что думаешь, когда что-то идёт не так. Но сбрасывать его со счетов нельзя.
В одних компиляторах ошибок больше, в других меньше. Часто жалуются на ошибки в компиляторе для PIC32.
У меня было две ситуации.
Первая оказалась багом интерактивного отладчика, а не компилятора. Суть бага была в том, что я присваивал переменной значение, а оно при наведении мышкой не отображалось (отображалось старое или вообще постороннее). Всё работало правильно, но на ходу я не мог посмотреть значения переменных. ОКАЗАЛОСЬ, что отладчик иногда неверно находил адрес переменных. Он считал, что переменная расположена в регистре процессора, и отображал значение оттуда. А переменная на самом деле располагалась в памяти. Долго я думал, что дело в компиляторе, поэтому путём махинаций менял расположение переменных. После этого отладчик начинал воспринимать адреса правильно и всё показывать.
Вторая ситуация произошла недавно, и я так и не знаю, что это было и в чём причина. Функция математической обработки работала правильно год или два, но внезапно стала выдавать дичь. Несколько часов отладки выдали удивительный результат. ОКАЗАЛОСЬ, что float-значение, передающееся через параметр, не доходит до внутренностей функции. На входе никель, а на выходе -- пуговица. Конкретнее, я передаю, скажем, 5.0f, а в начале выполнения функции в переменной находится -3.2e19f. Это просто непостижимо. Я убрал все вычисления, все преобразования типов, стал просто передавать в функцию число -- но это не помогло. Я залез в дизассемблер, но увидел там фигу, потому что ассемблера PIC32 я как раз и не знаю (этот пробел надо восполнить; код вызова я сохранил). После некоторых колебаний я заменил аргумент с типа float на long double, тем более что все вычисления делались именно с long double. И... всё заработало.
Это однозначно указывает на ошибку компилятора, но что конкретно происходит, почему, и при каких условиях -- я пока не знаю.
Администраторы крупных телеграм-каналов это давно знают. А администраторам мелких это не нужно. Но я запишу.
Чтобы понять, как это сделать, надо вспомнить, как устроено комментирование в телеграме. К каждому каналу с комментариями привязана группа (чат). Все посты с канала автоматически репостятся в группу. Сообщения из группы, которые являются ответами на такой репост (а также ответами на ответы -- по цепочке) отображаются как комментарии.
Сообщения в группе, которые не привязаны ни к одному сообщению-репосту, будут видны только участникам группы. Они не будут отображаться как комментарии ни к одному посту.
Как правило, лишь немногие комментаторы вступают в группу, потому что а) немногие знают, что это можно сделать б) люди хотят комментировать, а не в чате сидеть. Но если вы в чате сидите, вы должны про это помнить. Ваши сообщения, которые не являются ответом на репост или на другой ответ не будут видны другим комментаторам. Только коллегам по чату.
Короче говоря, если нет сообщения-репоста, то ни одно сообщение в группе не будет считаться комментарием. А сообщение-репост можно с лёгкостью удалить из группы. Оригинальное сообщение в канале при этом НЕ исчезнет. А вот все комментарии, которые были сделаны, потеряют связь с постом -- и будут видны только если зайти в группу. Более того, под постом в канале пропадёт кнопка Leave a comment. А это-то нам и надо было!
Этот метод работает отдельно для каждого поста. При этом невозможно отключить обсуждение как таковое. Члены группы могут продолжать обсуждать что хотят. Но подписчики канала этого видеть не будут, если не понимают, как это работает.
Если бы порядок или расположение во времени у инцидентов был иной, результат был бы тоже иной. Но всё произошло именно так, как произошло. Это пост о том, как я не починил машину.
Ситуация 1. Сначала у машины сел аккумулятор. Я поставил запасной. Он тоже сел, хотя и не сразу. Я к тому моменту уже зарядил первый и поставил его. Машину завести удалось, но на следующий день он тоже сел. Каким-то чудом удалось завести машину и уехать.
Ситуация 2. Почему садится аккумулятор? Наверное, у меня в машине возник неавторизованный потребитель тока!
Беру мультиметр, начинаю мерить ток. Показывает 1 ампер в покое. Это очень много. Вытаскиваю по очереди все предохранители -- ток пропадает только на последнем. "Освещение салона". Да, я мерил ток с открытой дверью, поэтому светила лампочка. Это я лох. Я закрыл дверь, вставил предохранители. 15 миллиампер. Окей.
Ситуация 3. Меня всё же беспокоила посадка аккумуляторов. Поэтому я решил ещё раз проверить, уже ночью. Мультиметр стал показывать зашкал. Дверь была закрыта. Это меня очень встревожило. А ещё меня встревожило то, что аккумулятор сразу же сел (на тот момент это был первый аккумулятор). Я опять проверил все предохранители, но ничего не нашёл.
Тогда я взял другой мультиметр. Он показал 15 миллиампер. Да. Тот мультиметр, который ещё утром показывал правильный ток, сломался. Но почему сел аккумулятор? Может быть, где-то возникает нестабильное короткое замыкание? Вопросов было больше, чем ответов.
Ситуация 4. На следующий день я поставил второй, заряженный аккумулятор и поехал. Через 10 минут я услышал писк. У меня установлен "бортовой компьютер", который фактически является диагностическим прибором для подключения к контроллеру инжектора (K-линия). Он показывал 11.0 . Я решил, что это генератор не может вытянуть короткое замыкание. Но что-то было не так. Я никогда не видел такого напряжения. Пробежав глазами по остальным приборам я остановился на термометре. Он перешёл в красный сектор. Тогда до меня дошло, что это не 11.0, это 110. Сто десять градусов. У меня был перегрев двигателя!
Совет про перегрев двигателя нам давали ещё в автошколе. Надо включить печку! Что я и сделал. Это помогло снизить температуру до 105 (нормальная температура без перегрева -- 98 градусов). На улице было +30. Я почувствовал себя медведем из анекдота.
Ситуация 5. Доехав до относительно спокойного места я остановился и решил заглянуть под капот. Там я обнаружил, что электровентилятор охлаждения двигателя не вращается. Бачок с охлаждающей жидкостью был заполнен нормально. Было ясно, что дело в вентиляторе, но я решил на всякий случай проверить его реле. Почему я решил проверить реле? Потому что я по иконкам в блоке предохранителей не видел, какой предохранитель заведует за этот вентилятор. А про реле подсказка была. Я поменял реле (у меня было запасное), но эффекта не было. Поэтому я вытащил запасное реле и опять поставил старое.
На основании всех происшествий ранее я составил гипотезу, согласно которой у меня отказал вентилятор, но не сразу, а пока он только пытался отказать -- он потреблял излишне большой ток, что и вызывало разрядку аккумулятора.
Я был в 10 минутах езды от автосервиса, где я обычно обслуживаюсь, поэтому я решил просто загнать машину туда и пусть чинят. К сожалению, в этот день они посмотреть машину не могли, поэтому я машину оставил им, а сам поехал на работу на метро. На следующий день я приехал смотреть, как они будут чинить машину, а значит мы переходим к рубрике
ОКАЗАЛОСЬ
1. Токи утечки отсутствуют. 2. Второй аккумулятор не садится, нагрузку держит 3. Предохранитель вентилятора совмещён с предохранителем гудка! И обозначен символом гудка -- поэтому-то я его не нашёл. 4. Этот предохранитель был сгоревшим. 5. Замена реле не давала эффекта, потому что предохранитель был сгоревшим. 6. Замена предохранителя приводила к его мгновенному сгоранию (!). 7. Замена реле И предохранителя привела к работающей машине.
То есть, во всём виновато было неисправное реле, которое утягивало за собой предохранитель. Сам вентилятор был исправен.
Таким образом, если бы я подумал на пять минут дольше, и догадался проверить предохранитель тоже, я бы сэкономил кучу денег, времени и нервов. Сука! Это же моя специальность! Я и более сложные неисправности находил и устранял. Но не в этот раз. Находясь в панике я сразу составил правдоподобную гипотезу и на основании неё принял решение. Вместо того, чтобы подумать и поискать другие варианты. Путеводитель "Автостопом по галактике" не зря имеет на обложке ту надпись, которую имеет.
Оставалась последняя загадка. Почему садились аккумуляторы? Я опять поставил первый аккумулятор на зарядку, зарядил, однако уже на следующий день он разрядился -- прямо в квартире, не будучи никуда подключённым. Отгадка была в том, что он просто умер. Было ли умирающее реле причиной его разрядки и умирания -- я не знаю.
А второй аккумулятор? Он сел только один раз. Это произошло после недельного простоя машины, потому что я простудился. И перед тем, как заболеть, я забыл отключить питание автомагнитолы. А она жрёт 150 миллиампер в выключенном состоянии. Этого как раз хватает на то, чтобы посадить аккумулятор за неделю.