То, что я напишу ниже, не очень полезно, но зато приятно!
Вы заходите на телеграм-канал, там есть комментарии. Вы оставляете комментарий. Его читают другие и ставят свои плюсы и минусы. Но вы про них просто так не узнаете! Если на ваш комментарий отвееетят, и если вы перейдёте в конкретную дискууууссию, то вы увидите, что вам понаставили. Как же узнать о своих поклонниках в ином случае?
Зайдите на канал и нажмите три точки -> View discussion (а на смартфонах ткните в название канала, а потом на круглую кнопку с иконкой в виде реплики). Видите в правом нижнем углу сердечки? Прокликайте их. Это ваши сердечки.
Было у меня две железки, изготовленных в соседней организации. Одна чуть более старая, другая чуть более новая.
Старая находилась внутри установки и работала неправильно. У меня было джва варианта: 1. Перепрошить старую железку новой прошивкой, надеясь, что там баг исправлен. 2. Заменить старую железку новой железкой, где прошивка уже новая.
Я решил пойти по второму пути, но старую всё равно пришлось бы прошивать, поэтому я связался с разработчиком и попросил последнюю версию прошивки. Когда-то, несколько месяцев назад, мы отлаживали эту железку, и разработчик присылал мне этих прошивок очень много. Но какая же из них была правильная? Последняя по дате-времени? Не факт! Лучше пусть сам мне пришлёт то, что надо.
Разработчик предложил мне своеобразное решение. Прошивка в данном устройстве не шифруется и не заблокирована от считывания. Можно скачать прошивку с новой железки и прошить в старую.
Тем не менее, я настоял на свежей сборке.
Сначала это показалось мне капризом. Типа, борьба за перфекционизм. Или желание перевесить часть работы на другого.
Но потом я обнаружил целых две причины, почему прошивать заведомо известные версии прошивок -- это правильно.
Первая причина: оказалось, что баг присутствует в новой железке тоже. Это означало одно из двух: либо прошивка новой железки всё же недостаточно новая, либо баг сохранился в новой прошивке. И при том, и при другом случае копирование прошивки из одной железки в другую не улучшило бы ситуацию. Поэтому лучше сразу заливать заведомо известную новую версию. Это исключит вероятность проявления тех багов, которые уже были исправлены ранее.
Вторая причина: если баг сохраняется даже в последней версии прошивки, тогда мы будем знать, что именно эта версия прошивки содержит баг. И, та-дам! У нас есть исходный текст, из которого мы только что прошивку собрали. С этим можно работать.
Частично такие проблемы можно (и нужно!) решать административным способом: а именно, каждая "стабильная" версия прошивки должна внутри себя содержать свой идентификатор, а разработчик должен иметь возможность вернуться к любой из выпущенных версий. Но мы живём не в сказке, а в реальности. И, увы, в реальности разработчики могут следить за коммитами, но могут не следить за их нумерацией в тексте прошивки. Эта ситуация усугубляется, если разработчик находится в отладочном угаре. В таких случаях я и сам номер версии не ставлю. Не до того.
Евгений Евгеньевич, наш доктор наук, иногда пишет стишки. Я тоже пишу, но никому не показываю. А он показывает.
Я с ним поговорил на эту тему. Оказалось, что наш подход радикально отличается. Таланта у меня нет, я могу на четверостишие потратить час, и для меня это сборка паззла. "Так, эта деталька не подходит, меняем. Что у нас ещё в коробке?" Он же может написать четверостишие за 15 минут.
Но интереснее эффект, который у него происходит после написания стишка. Он говорит, что когда уже всё готово, то у него появляется ощущение, что день прожит не зря, поэтому пропадает мотивация делать какие-либо другие дела...
Чтобы узнать, какой ты капибара, надо ответить на несколько вопросов.
Ну и вопросы типа э... "Считаете ли вы, что смысл жизни в том, чтобы вкусно покушоц? Ответьте от по шкале 1 до 5".
И ты начинаешь думать. Так, я всегда всем рассказываю, что если смысл жизни и есть, то он в еде. Я сам пришёл к такому выводу пять лет назад и записал тезис у себя в голове. Так что надо отвечать 5.
Но постойте, давайте подумаем, действительно ли я так думаю сейчас? Если начать логическую цепочку, которую я крутил тогда, то окажется, что она уже давно рассыпалась. Пора ли менять записанный в голове тезис? Наверное, надо отвечать 1. Смысл жизни в том, чтобы голодать.
А если рассуждать не логически, а эмоционально. Что я чувствую? Там вообще что-то третье. И хорошо, если оно там есть. Некоторые вопросы такие, что сколько их не верти, ответ будет "не знаю", "не понимаю вопрос" или "никогда не задумывался". Но такого варианта нет.
Когда-то я начинал "Процесс", но бросил, потому что слишком страшно было. Времена меняются. Возможно, сейчас будет читать не так уж и страшно.
Но ладно. "Превращение". Проснувшись утром после беспокойного сна, Грегор Замза обнаружил, что превратился в страшное насекомое.
Что же дальше? Грегор сохранил сознание, но лишился тела. Вся семья вынуждена из-за этого поменять свои привычки. За ним следят как могут. Я очень хорошо знаю этот бытовой сюжет. Я сам в нём участвовал. Моя бабушка в последние годы жизни страдала от деменции. А последние её месяцы были весьма похожи на сюжет "Превращения". Только у неё всё было наоборот -- сохранив тело, она лишилась разума. Но так ли существенна для семьи Замзы была разница? То, что Грегор сохранил сознание, для них совершенно неочевидно.
Второй слой истории -- это переживания самого Грегора. Думаю, тут тоже можно придумать какой-нибудь бытовой сюжет, но давайте не будем о грустном. Превратившись в насекомое, Грегор узнает о семье и о себе то, что он бы не узнал другим способом. Он мнил себя всеобщим благодетелем, благодаря которому вся его семья процветает. На деле -- семья сидит у него на шее. Его успехи на работе малы, а отношение начальства очень плохое.
Ну и вот, теперь он -- насекомое. Теперь он может э... "пожить для себя". По работе ничего не требуют, семью обеспечивать не надо. Свободы у него, правда, тоже нет. И я всё-таки скажу, что это за бытовой сюжет. Это японский хикикомори.
Я, безусловно, домысливаю. Но у меня появилась идея о том, почему же он превратился. Это не внешние обстоятельства. Это внутреннее превращение. Он всю жизнь находился под психологическим давлением и... не выдержал.
Сколько я анимы посмотрел, а описаний не сделал. Надо себя заставлять! Читателям обзоры не очень интересны, но они интересны мне самому. Это учёт.
О чём
Это второй сезон сериала про злую девочку-волшебницу и добрую демоницу, которые должны враждовать, но вместо этого няшно дружат.
Что думаю
От первого сезона я был в восторге. Со вторым всё не так. Он какой-то рваный. Нам показывают несколько важных сюжетных моментов -- приблизительно в начале, в середине и в конце. Но все эти моменты очень плохо склеены какими-то филлерами. Кроме того, они не об'единяются в общую картину. Может быть, меня уже память подводит, но мне кажется, что первый сезон был структурирован гораздо лучше.
Я был рад провести время с любимыми персонажами, но вынужден сообщить, что качество сезона упало.
Рекомендации
Ну, тем кто первый сезон не видел -- точно можно не смотреть. Тем же, кто первый сезон видел... не уверен, что стоит смотреть второй.
Если мы в программе хотим посчитать большой интервал времени, можно обратиться к системным часам. Прошло пять лет с момента запуска программы или не прошло? Сейчас узнаем.
Если мы измеряем небольшие интервалы -- к нашим услугам таймеры. В Windows это, как правило, QueryPerformanceCounter().
В микроконтроллерах "человеческие" часы с минутами и часами не всегда доступны и не всегда удобны. Есть отдельные блоки таймеров, позволяющие считать промежутки времени и с увеличением счётчика, и с уменьшением, и с подвывертом. А есть счётчик тактов процессора.
Вот это убойная вещь. Блоки таймеров сначала надо настроить, потом запустить, потом за ними следить. Или настроить прерывание.
Счётчик тактов работает проще. Считываем первый раз -- начало интервала. Считываем второй -- конец интервала. Вычитаем и получаем искомое.
Мне надо было отмерять таймаут по 30 секундам. Прошло 30 секунд -- завершаем операцию. Частота МК -- 200 МГц. Сколько тактов мы насчитаем за 30 секунд? Очевидно, 30*200'000'000=6'000'000'000. И да, я поставил разделитель между тысячами.
Счётчик я сделал, но от срабатывал неправильно. Когда я получал число миллисекунд, оно оказывалось равно 21474. Это слишком мало.
21 секунда... а сколько это в тактах процессора? И это было 4'294'800'000. Хм, четыре с небольшим миллиарда. Где я уже видел это число?
А число 4'294'967'296 вам ни о чём не говорит? Это двойка в 32 степени.
Счётчик тактов процессора 32-разрядный и переполняется каждую 21 секунду! А 30 секунд это 6 миллиардов, и такое число не помещается в 32-разрядную сетку.
То есть, засечь более длинные интервалы таким способом попросту невозможно. В этом и была причина ошибки.
И эта ошибка не исправима. Надо переделывать подход. Скорее всего, придётся настраивать "настоящий" таймер.
Когда я много лет назад тусил на ннм-клубе, там был модератор, который в общении был очень мягким. Но это не значило, что его требованиями можно было пренебрегать.
"А можно ли в релизе сделать так-то и так-то?" "Не стоит"
Неподготовленный человек может подумать, что такая формулировка половинчатая: вроде и нельзя, но если очень хочется, то можно. Но это было не так. Каждый, кто не соблюдал мягкие требования модератора, узнавал, что такие "советы" к исполнению обязательны. И у модератора было достаточно возможностей, чтобы это обеспечить.
***
Но давайте поговорим о другом. О юзер мануалах. Читатель юзер мануала не знаком с автором юзер мануала. Поэтому он не знает, это у автора просто стиль такой мягкий, или действительно рекомендации -- всего лишь рекомендации? Вот какой у меня пример.
Открываю альфа-версию руководства к одной из железок, которую мы сделали. Читаю:
"При проведении измерения рекомендуется избегать сейсмических воздействий на установку, поскольку это может привести к некорректным результатам"
Может привести... а может и не привести. Рекомендуется избегать... но можно и не избегать? А что на самом деле?
А на самом деле -- если вы хоть пальцем по столу проведёте, то установка с ума сойдёт и прервёт измерение. Или нужна виброзащита, или нужно во время измерения стоять и не дышать. То есть, такая мягкая формулировка сбивает с толку. Она не отражает реальный уровень влияния сейсмики на процесс измерения. По моему настоянию эту формулировку изменили. Теперь там написано:
"Во время измерения недопустимо сейсмически воздействовать на установку. При наличии сейсмических помех результаты будут ошибочными, а измерение прервётся досрочно".
Зашла девушка из соседнего отдела (но другого, не того, где сильные программисты).
-- А где ваш начальник? -- Он ушёл пять минут назад. -- А где студенты? -- Они ушли одну минуту назад. -- Да что ж такое! Мне сегодня весь день не везёт!
И ушла. Вернулась она через джва часа. К тому моменту я остался один. (гусары, молчать!)
-- А можно у вас два листочка напечатать? У нас принтер не работает. -- Можно. Но... с принтером у нас тоже могут быть проблемы.
У нас действительно принтер печатает не каждый раз. Он сетевой, и иногда с некоторых компьютеров документ просто висит в очереди, а эффекта нет. В этом случае единственный способ -- перезапустить компьютер.
У меня уже был такой висящий документ, поэтому я сразу начал с перезагрузки компьютера. Перезагружалось всё очень медленно. Потом медленно открывался браузер.
-- Ты же программист! Почему у тебя всё так медленно работает?
С одной стороны, мне стало стыдно. А с другой стороны... я тебе по доброте душевной пытаюсь документ напечатать, а у тебя ещё и претензии? Это что такое? Я ответил:
-- Именно поэтому медленно и работает.
Но на самом деле поведение компьютера было нетипично. Браузер открывался раз в пять медленнее обычного. Потом я не мог открыть почту, куда она прислала документ. Потом почту я открыл, но документ не удавалось скачать. Я открыл диспетчер, там оказалось, что браузер занял уже 4 гб памяти и 1 ядро целиком, это спустя 5 минут после старта! Кончилось это тем, что мне пришлось запускать другой браузер, который предназначен для других целей. Там всё получилось. Я напечатал листочки и она ушла.
И после её ухода всё стало летать.
***
Я могу только подозревать, в чём было дело. Но как оккультист могу сделать предположение. Эта девушка занимается йогой. Надо было её спросить, не проводила ли она в последнее время медитаций в местах... скажем так, подозрительных? О кладбищах я даже не говорю. Какая-нибудь лесная полянка, которая симпатично выглядит, но почему-то никем не используется, как вам такое?
Я не раз писал, что у меня арахнофобия. А точнее, меня пугают только сенокосцы.
У меня подозрение, что это связано со сценой из первой Матрицы, которую я смотрел в детстве. Помните, когда Нео устанавливали жучок в пупок? Это и представить-то страшно.
Что вызывает у меня страх кроме сенокосцев? Всё, что похоже. Водомерки. Длинноногие комары. Однажды я испугался летающей пушинки от растения.
А недавно я смотрел видео с жирафами. Пока жирафы стояли на месте, всё было нормально. Но когда жирафы побежали -- и стали перебирать своими длинными тонкими ногами, то я почувствовал, что да. Что это огромный сенокосец!
В соседнем отделе понадобился функционал, близкий к тому, что мы уже сделали. Мы добрые, мы дали им несколько файлов с исходным кодом, который делает то, что им надо, и готовую DLL-библиотеку. В исходном коде есть тёмные места, с которыми не разобраться без наших об'яснений, но нам сказали, что у них сильный программист. DLL-библиотека двоичная, но как раз та часть, которая касается её использования, у них была полностью.
Потом зовут, нужен совет. Я пришёл, смотрю, что они написали. А там написано:
Сначала Евгений Евгеньевич, наш доктор наук, что-то рассказывал про атомную энергетику, и в этом-то и была причина последующего казуса.
Потом он рассказывал про что-то ещё, я не помню, про что.
Потом он неожиданно перешёл к Японии.
-- Как говорят японцы, кто ни разу не был на Фукусиме, тот не жил. А кто был там дважды, тот дурак.
У меня ушло какое-то время, чтобы переварить то, что он сказал.
-- Что-что вы сказали? -- Народная мудрость. -- Какая? -- Что на Фукусиме надо побывать хотя бы раз, но два раза -- уже перебор. -- Может быть, на Фудзияме?
Продолжаю (а точнее, заканчиваю) знакомиться с творчеством фантаста-аутиста, который любит описывать технические подробности, а остальное -- не любит.
Из трёх книжек -- Марсианин, Артемида и вот это -- я выбираю вот это. Это произведение самое масштабное, самое навороченное, и тут много сюжетных ходов.
Нет, в других тоже много сюжетных ходов но... не таких. Здесь ходы с откровением, если можно так сказать.
Я начал читать, ничего не зная о сюжете -- и это было отлично. Так что всем советую бросать читать этот пост и переходить к самой книге.
Оставшимся сообщаю для информации. В Марсианине герой спасал себя. В Артемиде -- город. Тут мы добрались до планетарного масштаба. Герой с помощниками отправляется в космическую научную экспедицию, чтобы провести in situ наблюдение одного явления, которое надо срочно прекратить, иначе все погибнут. Но вот как его прекратить -- это и предстоит выяснить, попутно выяснив много всего другого весёлого.
Комментария к книге у меня три.
Первый -- излишний оптимизм по поводу того, как человечество может об'единиться при подготовке такой миссии. ДА, человечество способно к кооперации, но показанный уровень примерно в 10 раз превышает то, что я себе представляю. Я буду рад, если на практике всё будет действительно так.
Второе -- для меня главным тезисом книжки стало "мы должны использовать только проверенные технологии". Мы по работе делаем приборы различной степени серийности. Поэтому я по опыту знаю, что первые экспериментальные образцы -- это кринж. Нужны месяцы или годы, чтобы устройство начало работать стабильно и правильно. (поэтому меня веселит, когда, к примеру, Донателло из Черепашек-Ниндзя на коленке собирает крутую штуку, которая сразу правильно работает и не ломается)
Третье -- баланс главных героев. Союз меча и орала. Учёного и инженера (который кстати по способностям близок к Донателло). На первый взгляд, баланс выглядит симпатично. Но у меня он вызывает какое-то чувство неудобства. Инженер смотрится как-то приниженно по сравнению с учёным. Его гениальные конструкторские навыки должны компенсировать недостаток знаний и интеллекта, но почему-то не компенсируют. Возможно потому, что способности учёного продемонстрированы в натуре, то есть -- в виде мыслительного процесса. Работу инженера тоже ведь можно было так показать, верно? Вместо этого мы видимо только результат работы. Получается Мэри Сью. Это неестественно.
Надеюсь, Вейер ещё что-нибудь напишет. Текущие три произведения показывают, что он может писать достаточно разнообразно, хотя основной жанр один -- производственный роман.
Яйца к Пасхе красили без меня. Все яйца стали тёмные, а потом их обернули термонаклейкой. Разложили на специальном блюде с углублениями.
Я пришёл, смотрю.
Я: А почему не все яйца покрашены? Мама: Как это не все? Я: А вот одно, белое! Папа: Оно от салата осталось. Мама: Ох, куда это годится? Оберните его, а то оно одно перед остальными голое!
Вышел ночью после работы на стоянку -- вижу на стене свет фар. Как будто бы светит со стороны моей машины!
"Блин, неужели я забыл выключить фары?" "Целый день светили -- должен был аккумулятор сесть" "И как я уеду? Не заведётся ведь" "Но у меня же есть пускач! Вот и протестирую" "Что-то слишком ярко светят для целого дня работы" "А вообще мои ли это фары?"
Это была соседняя машина. Там сидел водитель.
***
Самые частые вопросы про мою машину: -- Какого года? -- Инжектор или карбюратор? -- А сменить не хочешь? -- За сколько продашь?
(насколько я понимаю, последние два вопроса периодически значат одно и то же)
Стою на заправке, жду пока зальётся бензин. Тут за мной под'езжает жигуль абсолютно такого же цвета (и той же модели). Но выглядит немного не так. Тарахтит невозможно. Бампер мятый и ржавый. И фары разного цвета. Выходит бурят.
-- А у вас какого года? -- 2009. -- Охуеть. Инжектор или карбюратор? -- Инжектор. А у вас какого года? -- 2007. -- У вас карбюратор? -- Да нет, тоже инжектор. -- А почему такой звук? -- Клапан прогорел. -- Что ж... чинить надо...
В Леруа Мерлене плохо сделана система ввода нескольких товаров. Нужно: 1. Нажать "ввести количество" 2. Выбрать количество 3. Приложить товар
В других магазинах на кассах самообслуживания сделано не так: сначала прикладываешь товар, потом либо жмёшь плюсик, либо выбираешь количество.
Тут из-за того, что всё сделано наоборот, а после ввода количества не выдаётся никакой информации, есть риск пробить неправильное количество, а потом искать, кто может отменить (потому что на таких кассах всегда можно увеличить число товара, но уменьшить можно только с помощью Галины).
Например, пробиваю пять лампочек. Пробил первую. Потом жму "ввести количество". Ввожу пять. Не работает. Ладно, пробью по одной. Прикладываю, и вижу в чеке:
1 лампочка 5 лампочек
*пингвин кланяется*
ВЫВОД. Если число товара не применяется, то нажмите ещё раз и выберите НА ОДИН МЕНЬШЕ.