zHz00 Untitled

суббота, 15 мая 2021
03:27 Третий метод отладки
Есть два основных метода отладки:
1. Отладочная печать ("дедовский метод");
2. Интерактивная отладка.

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

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

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

***

Был когда-то такой анекдот:
-- Как отлаживать программу на ассемблере?
-- При помощи долгого и вдумчивого взгляда.

Так вот, сейчас я понимаю, что это не анекдот.

3. Третий метод отладки -- это долгий вдумчивый взгляд на код.

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

P.S. Некоторые среды разработки в сочетании с некоторыми типами микроконтроллеров позволяют выводить сообщения через программатор в специальное окно в среде разработки. Поэтому если это можно настроить то, конечно же, так и следует сделать.

@темы: Программирование, Мысли, Очевидное-невероятное

URL
пятница, 14 мая 2021
04:22 Обратитесь к разработчику
Петя учит Машу работать с альтернативной версией одной из наших программ.

Петя: А теперь надо нажать "Normalize".
Маша: Где?
Петя: Да вон, правее, правее.
Я (с другого конца комнаты): Галочка там!
Маша: Действительно. А ты откуда знал, что это галочка?
Петя: Да он сам небось эту галочку и написал.
Я: ¯\_(ツ)_/¯

@темы: Случай из жизни, Программирование

URL
четверг, 13 мая 2021
03:57 Life is Strange: Before the Storm + Эпилог-пролог
Игра имеет смысл только для тех, кто играл в оригинальную Life is Strange (и полюбил её). И вот что я могу сказать.

1. История более слабая, чем основная. В ней, безусловно, много информации, но масштабы происходящего меньше. Основной конфликт интересный. Догадаться о нём можно только когда прямо про него скажут. В конфликте много сторон -- и я в итоге так и не понял, кто же главный мудак.
2. Здесь у Клое нет сверхспособностей, как нет их и у Рейчел (хотя один инцидент вызывает подозрения). Это скомпенсировали мини-игрой, где Клое может быковать. Это вызвало у меня то, что называется кринж. Сам я конфликтовать не люблю, а тут это делать приходится, потому что всё интересное показывают только после победы в баттле. Баттлы выигрывать довольно просто. Проблема в том, что время на раздумья ограничено -- не успеваешь прочитать все варианты реплик. Поэтому смотришь одним глазом -- отбрасываешь вариант, состоящий из самых терпильных слов, а из оставшихся двух выбираешь случайный. Если не выгорело, загружаешься. Механика довольно интересная, но, опять-таки, в сравнеии с оригинальной игрой -- не катит.
3. SJW-тематика. На самом деле, она была и в первой игре. И дело не просто в наличии ЛГБТ и негров. Дело в том, кто у нас как бы главный мудак. Подозреваемых несколько, но все они -- белые гетеросексуальные мужики. И они показаны действительно угнетателями. Особенно порадовал паренёк во френдзоне, который является практически клоном паренька из основной игры.

Во всей игре главное -- это пролог-эпилог. Это действительно как последний кусочек паззла, кажется так высказывался Hikedaya.

Есть пара моментов в игре, которые я не понял. Первый -- почему мама Клое готовила завтрак, но отправила её в школу с Девидом? Кому она готовила? Второй -- в основной игре мы узнаём, что Рейчел встречалась с водителем фургона (я забыл его имя). Однако в дополнении нет даже намёка на то, что такое развитие событий вероятно.

Скриншоты:
(скриншоты)

@темы: Игры

URL
среда, 12 мая 2021
01:10 Вы уже бросили пить коньяк по утрам?
int nRes=GetData();

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

if(nRes==7)
{
//...
}

И в общем выяснилось, что nRes тут равен единице. Единица обозначала совсем другую ошибку, которая не возникала. А седьмая возникала -- и там в коде так и было написано -- return 7; Это озадачивало. Выходило, что семёрка при возврате конвертируется в единицу. Но почему? И почему именно единицу?

Ответ (увы, в телеграме будет виден сразу):

(открыть ответ)

@темы: Программирование, Фейлы, Говнокод

URL
вторник, 11 мая 2021
01:16 Биться головой здесь
Когда я учился в школе, у меня было много одинаковых тетрадей. Чтобы не читать каждый раз название предмета, я придумал цветовую маркировку. Я скотчем приклеивал на обложку квадратики цветной бумаги. Каждый цвет обозначал определённый предмет.

***

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

@темы: Лайфхак, Тухлые идеи

URL
понедельник, 10 мая 2021
01:53 Machikado Mazoku 01-12 END
Автопостинг заработал, так что немного про аниме. Также тестирую загрузку картинок на радикал вместо имгур, поскольку имгур не показывает картинки незалогиненным на дайари, а мне это не нравится. Кто знает хорошие имедж-хостинги -- сообщите, пожалуйста.

О чём

Добрая начинающая демоница познакомится со злой опытной девочкой-волшебницей без в/п с целью совместного времяпрепровождения. Писать а/я 173.

Что думаю

Это cute girls doing cute things -- но с ноткой серьёзности. И это этой серьёзности сериал становится гораздо лучше. Повседневность это просто замечательно, но в ней должна быть какая-то осмысленность. И тут она есть.

Далее, сериал ржачный. У шуток есть разные виды. В аниме популярны мандзай-шутки (боке-цуккоми), когда один из персонажей творит хуйню, а другой ему говорит -- "ну и хуйню ты творишь". И типа это смешно. Для этого один из персонажей должен быть тупым. Такие шутки действительно могут быть смешными, но они выключают одного из персонажей из сеттинга. Персонаж становится функцией для генерации юмора. Тут главная героиня тупая. Но авторы каким-то образом удержались от мандзая и сделали нормальные шутки с панчами, что, как мне кажется, сложнее.

Из-за этого главная героиня не выключена. У нас нормальные персонажи с нормальными взаимоотношениями.

В общем, всё в сериале очень хорошо.


Рекомендации

Да.


Скриншоты
(скриншоты)

@темы: Аниме

URL
воскресенье, 09 мая 2021
04:02 Икота, перейди на Федота
Владелец Доджа поставил во дворе машину э... на моё место. Оно как бы не моё, но обычно у нас во дворе машины ставят в одни и те же места. Места никакой формальной привязки не имеют, поэтому никаких претензий у меня к Доджу быть было не должно. Но были две проблемы:

1. Он поставил машину на метр в сторону, что затрудняло парковку на соседние места;
2. Он поставил машину на прикол, т.е. никуда не ездил по крайней мере два месяца.

Распустились листья. Липкие тополиные (?) почки стали падать ему на машину. Возможно, с владельцем что-то случилось, потому что почки он не чистит, и машина вся ими облеплена. Сначала я позлорадствовал, что, типа, получи, чувак! Нечего на моём месте стоять.

А потом я понял, что лох тут не он, а я, ибо я годами стоял на этом месте и каждую весну мучился с этими почками. А где я сейчас стою -- никаких почек нет. И мне клёво.

@темы: Фейлы, Автомобили

URL
суббота, 08 мая 2021
03:19 Тогда вычёркиваю
-- А это что за прибор?
-- Да там контора закрылась. Решили избавиться от оборудования -- и нам вернули.
-- А денег с нас за это не попросили?
-- О деньгах вопрос шёл. Нам предлагали, но мы отказались.
-- Не понял, нам предлагали деньги, чтобы мы забрали свой прибор?
-- Нет. Нам предлагали, чтобы мы заплатили и забрали свой прибор. Но мы отказались. Поэтому нам просто вернули прибор.

@темы: Случай из жизни

URL
пятница, 07 мая 2021
01:06 Android и приложения по умолчанию
Это текст о том, как я боролся с рекламой в ютьюбе.

В каждой версии ведроида всё немного по-разному, поэтому тут я описываю суб'ективный опыт для MIUI 10.2 Global (Android 6.0.1). Также сообщаю, что под "ютьюбом" в следующем тексте понимается не сам сервис, а именно ведроид-приложение по умолчанию.

***

UPD. Мне сообщили, что в нормальных прошивках приложения по умолчанию настраиваются гораздо проще: Settings -> Apps -> Default apps -> Opening links -- и там шарьте.

Я был недоволен бесконечной рекламой в ютьюбе. Мне посоветовали альтернативный клиент -- YouTube Vanced версии 14.10.53 . Эта штука сработала. Ютьюб без рекламы -- это божественно.

Но решение не было полным. Открытие ютьюб-ссылок из телеграма и других источников по-прежнему приводило к запуску стандартного клиента вместо вансед.

Шаг 1. Костыльное решение.

Скопировать ссылку в буфер, вставить в поиск Vanced, выбрать ролик в результатах, запустить.

Недостатки: Не все ролики так находились; геморройно. (если вы знаете, как в запущенном вансед можно октрыть видео по ссылке иначе, чем через поиск -- сообщите, пожалуйста).

Шаг 2. Временное переназначение приложения по умолчанию.

Настраиваемого списка соответствий "тип файла (адреса) -- приложение" мне в ведроиде обнаружить не удалось. s19 мне сообщил, что можно сделать следующее:
1. Открыть список приложений (у меня он расположен в Settings -> Installed apps);
2. Выбрать там ютьюб;
3. Нажать Uninstall updates;
4. Кнопка заменится на Uninstall;
5. И после этого ютьюб можно будет удалить!

Якобы тогда видео будут открываться при помощи вансед.

Общий результат этих действий был следующим:
1. Кнопка Uninstall действительно появилась, но была недоступной. Удалить ютьюб не удалось.
2. Тем не менее, результат был достигнут, поскольку после удаления всех обновлений ютьюба ведроид стал мне предлагать выбрать приложение для открытия ютьюб-ссылок! И я смог выбрать вансед.
3. Спустя примерно неделю ютьюб не спрашивая меня опять обновился и сам перезаписал себя, как программу для открытия ютьюб-ссылок.

Кстати, многие жалуются, что у них заканчивается место на вероиде (при любых об'ёмах памяти). Всему виной, в первую очередь, вотсапп, конечно. Но копаясь в настройках я обнаружил, что версия ютьюба 2019 года весила всего 43 мегабайта, а версия 2021 года весит уже 190 мегабайт!

Я какое-то время вручную раз в неделю удалял обновления, а потом обнаружил вот что.

Шаг 3. Окончательная разборка.

Я хотел отключить обновления для ютьюба, но было непонятно, как это сделать. Основные приложения у меня обновлялись через загадочное приложение Get Apps, которое является частью MIUI. Но среди приложений ютьюб не значился. Гугл плей у меня не был залогинен, а без логина он показывает только стартовый экран с кнопкой Sign In. Подсказку я получил, когда в разделе Installed apps стал прокликивать у ютьюба все пункты по очереди и читать, что там написано. Из информации о приложении я узнал, что последнее обновление он всё-таки получил через гугл плей.

Внимательно посмотрев на экран гугл плея, я обнаружил кнопку с шестерёнкой. Я её открыл, и ОКАЗАЛОСЬ, что несмотря на то, что гугл плей не залогинен, автообновление там всё-таки включено! И ютьюб входит в число обновляемых приложений.

Я отключил автообновление ютьюба (точнее, пришлось отключить автообновление полностью, т.к. раздельной настройки не было). Посмотрим, применяется ли эта настройка на практике.

@темы: Лайфхак, Борьба с техникой

URL
четверг, 06 мая 2021
01:36 Untitled [0650]
Концевик -- или концевой выключатель -- широко используемый узел в различных механизмах. Когда мотор довозит платформу (или что там у него) до стенки, то срабатывает концевик, сигнализируя, что дальше ехать некуда. Вот какой анекдот мне рассказали:

-- Пейн, я концевик не чувствую!
-- Буба, у тебя его нет!

@темы: Викторика, Электроника

URL
вторник, 04 мая 2021
23:58 Война, эпидемия, снежный буран
Раньше я на машине ездил, в основном, на дачу. За все годы вождения я обнаружил, что лучшая погода для вождения это:

-- +10 -- комфортная температура и для открытых окон, и для закрытых, и для печки;
-- пасмурно -- свет рассеянный, но ничего не слепит и всё хорошо видно;
-- сухо -- понятно;
-- день -- понятно.

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

Так вот. За год регулярного вождения я в такую погоду попадал всего пару раз!

@темы: Автомобили, Наблюдения

URL
понедельник, 03 мая 2021
23:27 Штирлиц и "Вот те раз"
Логика нам подсказывает, что предмет, падающий с высоты, будет лететь вертикально вниз. Но в физике требуется учесть и другие влияния. Из простого:

1. Ветер сдувает предмет во время полёта.
2. Предмет изначально мог иметь ненулевую горизонтальную скорость (скатился по наклонной).
3. Если у предмета хорошая парусность, он может неплохо продвинуться даже без первых двух пунктов.

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

И это всего лишь шестой этаж. Чем выше дом -- те больше становится радиус поражения.

Вероятность падения кирпича на голову -- низка. Но уж если красную ленточку повесили -- она гораздо выше. Как защищаться -- непонятно. С задранной головой ходить? По другой стороне улицы идти? Ещё есть каска.

@темы: Мысли, Наблюдения

URL
01:22 Глюки дайари с коммнтариями
Наблюдаю следующий глюк:

Мой дневник -- 1
Дискуссии -- 3
Упоминания -- 1

Жму на упоминания, попадаю на дневник1, там 1 комментарий. После этого:

Мой дневник -- 0
Дискуссии -- 2
Упоминания -- 0.

Жму на дискуссии, попадаю на дневник 2, там 2 комментария. И всё. После этого всё по нулям.

А куда делся Мой дневник -- 1? Я его нашёл вручную. Но если я кому не ответил -- а должен был -- то извините. В какие-то разы комментарий я может и не найду.

@темы: Другое

URL
воскресенье, 02 мая 2021
23:18 Ошибка умершего
Идею мне сообщила сестра, но она не собирается нигде её публиковать, поэтому публикую я.

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

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

Технически, конечно, это та же ошибка выжившего, просто "умершими" являются те, у кого всё хорошо.

@темы: Мысли

URL
суббота, 01 мая 2021
23:05 Untitled [0649]
-- А почему 12 яиц красим, это по числу апостолов?
-- Тогда бы было 24.

@темы: Случай из жизни, Викторика

URL
01:44 Квадратная порука
-- Ну что, какие там результаты?
-- Не знаю, я померил, сейчас Вован обрабатывает данные.
-- А ты что?
-- А я в обработке данных не разбираюсь, я только меряю, что мне скажут.
-- То есть, у вас узкая специализация?
-- Выходит, что так.
-- И значит, никто не за что не отвечает?

***

Вован говорит -- проведи такой, такой и такой замеры. Я провёл.

Он говорит -- ты неправильно сделал. Надо было так-то.

Переделываю. Он смотрит и говорит -- а тут почему не так?

Я начинаю звереть: а нельзя сразу всю задачу целиком выдать, а не по частям?

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

Тут есть два выхода, которые необходимо совместить:
1. Чтобы разговор проходил на общем языке, оба должны немного разбираться в работе друг друга.
2. Задачи надо формулировать письменно -- и указывать в них все необходимые условия выполнения.

@темы: Случай из жизни, Борьба с техникой, Мысли

URL
четверг, 29 апреля 2021
23:34 Без регистрации и смс
Зашёл на об'ект, где давно не бывал. Нашёл в шкафу металлическую пластинку с надписью моим почерком:

"короткий 17
длинный 18"

И я не помню, зачем это написал.

@темы: Случай из жизни

URL
02:24 А пост-то я сделать забыл!
Студент так плохо отвечал на экзамене, что он смог бы победить в чемпионате по плаванию.

@темы: Студенты, Викторика

URL
вторник, 27 апреля 2021
23:53 Удаление чатов в телеграме: что вас ждёт
Удалить чат легко, а вот вернуть его -- сложно.

Люди удаляют чаты по разным причинам. Одна из них -- переведение чата в приватный режим. Насколько мне известно, публичная ссылка на чат после этого освобождается.

И эту ссылку могут занять. Цели могут быть разными, но киберсквоттинг -- одна из них (не шучу).

Естественно, никто не помешает сквоттерам занять все похожие названия, отличающиеся на 1-2 буквы. Но оригинальный адрес можно защитить.

Просто не удаляйте чат.

Если вы не собираетесь его больше использовать, то можно почистить его историю, удалить пользователей или отобрать у пользователей разрешение на постинг.

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

Всё, что я написал, также касается и каналов.

@темы: Лайфхак, Telegram

URL
понедельник, 26 апреля 2021
23:51 Untitled [0648]
Из математики известно, что при значениях икс, близких к нулю:

sin x примерно равен x
cos x примерно равен 1

Это, конечно, так, но всё зависит от необходимой точности. Когда мы на работе собирали разные механические установки, где надо было мерить с точностью 1...10 мкм на масштабах 1 метра, всегда оказывалось, что эти приблизительные равенства недостаточно точные.

"Да эти детали почти перпендикулярны, ну какая там будет погрешность?"
"Да они там почти параллельны, погрешности не будет"

А вот и нет.

@темы: Борьба с техникой, Наблюдения

URL