zHz00 Untitled

среда, 31 июля 2024
05:19 Липпман, Лажойе, Му // Язык программирования C++. Базовый курс (5-е издание)
Для меня одной из особенностей этой книжки является то, что когда я начал её читать, автор (Липпман) был ещё жив, а когда дочитал -- уже умер. Так долго читал.

Про книжку

Хотя по работе у меня задачи разные, но для их решения не надо использовать сложные приёмы. Нам вполне достаточно Си++ стандарта 2003. Но годы идут, язык развивается, и надо быть подкованным с профессиональной точки зрения.

Данная книжка часто позиционируется как книжка "для начинающих". Это не так. Вам устроят прогон по таким дебрям, которые мало кто видел. Я в курсе многого, но я сидел с пухлой головой, пока во всём разбирался. И так и не разобрался. Если вы видели книжки для начинающих по Питону, например, то они обычно рассматривают базовые конструкции языка и несколько пакетов. Тут всё гораздо хуже. Вы не осилите эту книжку, если не знаете Си++ хотя бы "средне". И в этом заключается загвоздка. Какую книжку по Си++ советовать начинающим? Сейчас у меня нет ответа на этот вопрос. Если у вас есть идеи, сообщите, пожалуйста. Эта книжка хороша, но она для людей типа меня.

Авторы в книжке очень дотошны. Они указывают на множество нюансов как на месте, так и в виде перекрёстных ссылок. Огромное количество раз текст выглядит как "это правило действует за одним исключением, описанным на стр. 1015". Это делает книжку не только хорошим учебником, но и справочником. Но затрудняет её чтение подряд. Для тупых и читающих по диагонали в книжке есть другая фишка: повтор одной и той же мысли дважды. Сначала идёт описание важной вещи длиной в абзац, а потом идёт короткая врезка "На заметку", где то же самое написано одной фразой.

Примеры в книге более внятные, чем бывают обычно. Это не сложение двух чисел, не абстрактные классы A и B, а что-то более приближенное к реальности. По большей части авторы допиливают одну и ту же модель книжного магазина, с которой начали, модифицируя её с применением всё более новых средств языка. К сожалению, в особо сложных местах авторы всё-таки скатываются до классов A и B, а в проекте книжного магазина есть некоторые странности.

Интересным показался фокус внимания авторов. Я учил студентов Си++ в той степени, в которой знал сам. Но те вещи, которые я сам считал важными (система ввода-вывода, ромбовидное наследование) вынесены авторами в короткие главы, расположенные поближе к приложениям. Зато очень много внимания уделено, например, перегрузке функций и операций.

Невозможно рассказать Си++ за один семестр. Поэтому в любом случае придётся выбирать, что рассказывать. Я очень не уверен, что когда-нибудь буду опять учить студентов Си++. Но некоторые преподаватели у нас в институте тоже рассказывали, что попадание за кафедру оказывалось для них неожиданностью. Поэтому, делаю себе пометку. Если я буду учить детей Си++, то надо подумать внимательно, что действительно надо рассказывать, что нет, и в каком порядке всё это делать.

Немного про язык книжки и про перевод. Очень хорошо, что переводчики в скобках разместили оригинальные английские термины, потому что это облегчает дальнейший поиск информации и защищает от "остроумных" переводов. Мысли сформулированы хорошо, но к концу книжки (больше 1000 страниц!) переводчики явно устали, появилось больше ляпов. Тем не менее, эту книжку читать в переводе очень даже можно.

Теперь не про книжку, а про сам Си++.

Си -- очень маленький язык. Его можно знать досконально. Знать Си++, мне кажется, задача нереальная. И я узнал, что кроличья нора глубока, но так и не узнал, насколько. Потому что в книжке описаны вещи, касающиеся Си++ до версии 2011 года (Си++11). А у нас ещё 14, 17 и 20. Это ещё очень много всего.

На самом деле, Си++ это очень плохой язык. Он всегда старается сохранить обратную совместимость с Си, поэтому новые средства могут не помогать, если вы просто будете работать по старинке (например, умные указатели против обычных указателей; я никогда не использовал умные указатели...). Кроме того, с годами Си++ превращается в конгломерат по принципу "чего изволите". Всё новые библиотеки включаются в стандарт. И развитие идёт во всех направлениях.

Изначально, Си++ задумывался как язык для ООП с нулевым оверхедом. Но как раз ООП-часть языка, похоже, не развивается. Зато у нас теперь завезли функциональное программирование.

Отдельное моё фе системе вывода с cin/cout (той самой, которой я учил студентов). Её запись очень громоздка. При этом она не является более понятной, чем система printf/scranf. Я не пользуюсь этой системой, и вряд ли буду (и да, несмотря на это я учил ей студентов, потому что считал, что это важная часть Си++). Пишут, что в Си++20 завезли библиотеку форматного вывода, но она использует иной синтаксис, чем в Си. А зачем? Даёт это новые возможности? Становится использование проще? Пока не знаю, буду разбираться.

И тем не менее, несмотря на моё нытьё, я буду продолжать заниматься Си++. Это интересно.

@темы: Книги

URL
вторник, 30 июля 2024
05:55 Надо было брать с собой
История произошла, когда я ещё был маленький, но год я даже приблизительно не помню. Тем не менее, из истории понятно, что папа уже тогда купил машину (а купил он УАЗ) и мы ехали на ней на дачу. Все вместе. С бабушкой.

Мне эта история запомнилась, но я спрашивал папу -- он не помнит.

В середине поездки мы остановились в промежуточном городе, чтобы зайти в магазин. Мы спросили у бабушки, пойдёт она с нами или нет. Она сказала, что не пойдёт и посидит в машине.

И мы её в машине... заперли. Сейчас-то много социальной рекламы на тему, что не надо запирать в машине детей и животных. Может случиться тепловой удар. Тогда о таком не говорили.

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

Мы вернулись, открыли машину, и она нам сказала:

"А я вот тут сижу... машины считаю"

@темы: Случай из жизни, Автомобили

URL
понедельник, 29 июля 2024
05:33 Это ли не Янус?
У всех современных смартфонов есть камеры с обоих сторон. Даже больше одной.

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

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

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

Но я лично в смартфонах больше боюсь микрофона, чем камер.

@темы: Мысли

URL
воскресенье, 28 июля 2024
05:34 Очередной фрустрирующий интерфейс
При заполнении заявок на сайте Россетей (электричество) надо указывать адрес, и не один раз. И с этим проблемы.

Можно ввести адрес целиком, но он проверяется на допустимость по внутренним словарям. Можно ввести по частям -- отдельно улица, отдельно дом.

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

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

При переходах между полями весь сайт темнеет, а в центре экрана начинает вращаться кружок. Это проверка ввода с такими спецэффектами. Создаёт впечатление, что всё зависло и отвалилось.

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

Есть и плюс. Если в форме есть ошибка, то форма не очищается полностью, и ошибку можно исправить.

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

URL
суббота, 27 июля 2024
05:13 Держите карманы
Несколько лет назад я на велосипеде заехал дальше, чем ожидал. Обратно ехал в темноте -- по неосвещённому шоссе. Это было не только опасно, но и страшно.Один из грузовиков проехал от меня очень близко -- и я чуть не свалился в кювет, потому что обочина именно в этом месте была очень плохая. Я не уверен, что он вообще меня видел.

С тех пор я вожу с собой налобный фонарь, даже если полагаю, что вернусь до темноты. У него есть и белый цвет, и красный. Если я еду по правилам, я переворачиваю его на затылок и включаю красный. Если я еду по обочине встречки -- то включаю белый спереди. Чтобы меня было видно тем, кто едет ко мне ближе всего.

И вот, я решил проверить, а мой фонарь вообще видно-то? А как проверить?

Я решил положить его на асфальт и от'ехать подальше. Потом развернуться и посмотреть.

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

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

И вижу, что машина, которая только что проехала мне навстречу -- начинает тормозить и останавливается как раз около моего фонаря.

Я моментально разворачиваюсь и срочно еду обратно. Под'езжаю как раз в момент, когда водитель уже вышел из машины и пошёл к фонарю.

-- Вы потеряли!
-- Нет, я специально выложил, чтобы посмотреть, хорошо ли его видно.
-- А, ну ладно.

Я... я не буду обвинять кого либо в чём либо, не имея доказательств злого умысла. Но попробуем представить себе... как водитель собрался мне возвращать этот фонарь?

Допустим, так. Вот он его подобрал, потом... развернулся и поехал меня догонять? Но мы были бы на разных сторонах шоссе, потому что я как раз ехал по обочине встречки. Потом он бы ещё раз развернулся и тогда уже со мной бы встретился -- и вернул фонарь. Так? Реалистична ли такая схема?

А вывод-то какой? Фонарь видно хорошо.

@темы: Случай из жизни, Автомобили

URL
пятница, 26 июля 2024
06:09 А говорите -- Замкадье
Что происходит у нас "на районе" в Москве: один продуктовый магазин закрылся совсем, другой на ремонте, третий перепрофилировался. Зайти всё ещё есть куда, но это стало сильно сложнее.

Что происходит в "деревне": в ближайшем ПГТ за пару лет построили три ТЦ, в каждом по несколько магазинов, как сетевых, так и ноунейм фигни из Турции.

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

URL
четверг, 25 июля 2024
05:10 А крышечки -- в маленький мешочек
В Москве введена двухпоточная схема сбора мусора, перерабатываемое-неперерабатываемое. Я уже писал кое-что про это пять лет назад. Визуально ничего не изменилось. При этом ситуации, когда перерабатываемый контейнер по разным причинам недоступен, стали редкостью.

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

Когда я выношу мусор, у меня оказывается два пакета. И второй пакет -- это вот эти самые упаковки. И... блин, они ведь все идут в перерабатываемое!

Таким образом, я неожиданно обнаружил, что я на практике являюсь сторонником экологии.

@темы: Восприятие, Наблюдения

URL
среда, 24 июля 2024
05:30 Maou no Ore ga Dorei Erufu o Yome ni Shita ndaga, Dou Medereba ii? 01-12 END
О чём

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

Что думаю

Начали за здравие. Был похожий сериал, Konyakuhaki Sareta Reijou o Hirotta Ore ga, Ikenai Koto o Oshiekomu. И он был лучше, потому что там была какая-то психология, развитие (я не шучу). Тут ситуация следующая. Первая половина сериала довольно симпатичная. Эльфийка миленькая, но там омут тихий. Её историю рассказали, Загана рассказали, про архимагов рассказали. Замечательно. Первая половина даже лучше чем в том сериале, про бесхозную в лесу.

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

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

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

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

Как приключения -- пожалуй. Как романтику или комедию -- скорее, нет.

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

@темы: Аниме

URL
вторник, 23 июля 2024
04:29 Обратная сторона коммунизма
Мама: Ты с'ел шоколадку?
Я: Нет.. Ты просила принести -- я принёс. Я думал, это твоя.
Мама: Это для всех. То, что моё, я ем под одеялом.

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

URL
понедельник, 22 июля 2024
05:14 Теперь это всё отмывать
Взорвал мясо в микроволновке.

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

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

Но результат один и тот же: мясо размазало тонким слоем по внутренней поверхности микроволновки.

@темы: Фейлы, Еда

URL
воскресенье, 21 июля 2024
03:54 Блокпост?
Сижу в отпуске на даче. Сел на велосипед. Рука вроде нормально держит.

Еду по просёлочной дороге. Вижу впереди: три женщины, две собаки и одна девочка. Распределились равномерно поперёк дороги и стоят, о чём-то разговаривают. Я думаю, как их об'ехать? При моём приближении собаки начинают волноваться.

Потом принимаю другое решение. Прямо перед ними есть поворот на другую дорогу. Я не буду через них прорываться, просто поеду другим путём.

Сворачиваю, и слышу сзади голос одной из женщин: "Ну вот... проехал".

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

URL
суббота, 20 июля 2024
02:38 Категория Б
Выпускник медицинского института пришел работать в больницу онкологом. Долго, хорошо работал, зав. отделением стал. И была у него всю жизнь одна привычка: каждое утро он открывал левый верхний ящичек стола, заглядывал в него, а потом закрывал на ключик. Когда он ушел на пенсию, другие врачи бросились к столу и вскрыли этот ящичек - там лежала старая-старая, потрепанная бумажка, на которой было написано: "гемоглобин должен быть ВЫСОКИЙ, а креатинин НИЗКИЙ".

@темы: Викторика

URL
пятница, 19 июля 2024
06:26 Никогда такого не было, и вот опять.
Мама жалуется, что у неё на читалке книжки не открываются. Обычно книжки ей закладывает сестра. Сестра говорит, что у неё всё открывается.

Беру читалку, беру карту памяти. Файлы на карте показывают мусор (все состоят из латинской буквы U). Беру нормальный файл, записываю -- открывается.

Вставляю в читалку -- не открывается. Вставляю обратно в комп -- буква У. Это что, читалка портит файлы?

Ещё один эксперимент. Записываю файл. Читается. Вытаскиваю карту и сразу вставляю обратно. Буква У!

Да, это отказ карты. Или, постойте?..

Проверка при помощи h2testw показывает ёмкость носителя 82 МЕГАбайта. Может ли это быть очередной историй с поддельной картой памяти? Может. Книжки весят немного и, к тому же, периодически стираются. Мама только дошла до предельного об'ёма, поэтому раньше не знала про косяк.

Но против этого варианта говорит странный размер. Карты и флешки с перебитыми размерами имеют кратный об'ём, потому что кратный об'ём имеют флеш-кристаллы, на которых флешки сделаны. Например, 64 гигабита -- это флешка на 8 Гб. 82 мегабайта же не кратно ничему.

Может, это и обычный отказ карты.

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

URL
четверг, 18 июля 2024
04:29 Может, есть какой-нибудь третий вариант?
В общем, ми банду настал окончательный кирдык. Предыдущая серия: zhz00.diary.ru/p222038690_chto-nas-ne-ubivaet-t...

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

Но пост не об этом.

Когда я смотрю на цифровые часы и вижу 16:23, то я у себя в голове автоматически конвертирую цифры в циферблат, чтобы понять, сколько же время на самом деле. И вот, теперь циферблат постоянно передо мной.

Я обнаружил, что я теперь наоборот -- конвертирую циферблат в цифры... Это что такое?!

@темы: Восприятие

URL
среда, 17 июля 2024
05:31 Shuumatsu Train Doko e Iku? 01-12 END
О чём

Девочки хотели с'ездить в гости к подружке в Икэбукуро, а попали на Курский вокзал. На чём лучше всего ехать в Икэбукуро? Конечно, на поезде!

Только весь мир переколбасило, и он стал напоминать бред наркомана. Расстояния увеличились примерно в десять раз. Большинство людей превратились в животных, в разумные грибы или мячики для тенниса. Это мир-фантазия, в котором поездка может закончиться успешно только если этого захочет автор.

Что думаю

Сюжет о путешествии героя вечен. И одна из его модификаций -- это путешествие на поезде. Кто-то едет в Петушки, а у кого-то такой билет, с которым можно попасть даже в рай. Кто-то верит в У-тризм.

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

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

Как правильно вести переговоры -- я не знаю. Тем более -- как их вести в их ситуации. Но смотреть мне на это было неприятно.

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

Не знаю. Под пивко пойдёт.

Скриншоты

(скриншоты)

@темы: Аниме

URL
вторник, 16 июля 2024
06:15 Обе таблетки
Когда мне надо перенести ноутбук с основного места куда-нибудь ещё, я всё отключаю.

Я отключаю провод питания.
Мышку.
Винчестер.
Наушники.

При этом у меня странное ощущение. Мой ноутбук... выходит из матрицы.

@темы: Восприятие

URL
понедельник, 15 июля 2024
04:42 Самый умный
Перед нами запаянная пачка нарезанной колбасы.

Я: *Беру нож.*
Мама: Ты чего, ножницы возьми!
Папа: Берёт упаковку за край, где нарисована стрелка -- и снимает плёнку рукой.

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

URL
воскресенье, 14 июля 2024
05:07 Рабочее место
За время моей работы в организации (а это 10 лет с гаком) моё рабочее место неоднократно менялось.

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

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

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

Теперь у меня ДВА стола, стоящих рядом. Полки убрали. Я могу подойти с любой стороны, и всё хорошо видно. И уже ВОТ ЭТО действительно офигенно. Наверное, полки возвращать и не надо, а организовать хранение как-то иначе...

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

URL
суббота, 13 июля 2024
05:09 Он живой и светится
Раньше я любил поговорить со спаммерами, но теперь почти никогда не поднимаю трубку, если звонит незнакомый номер.

Тем не менее, я и не отбиваю. Оказалось, что у всех телефонов можно отключить мелодию звонка, не отбивая вызов. Достатожно нажать понижение громоксти или иную обозначенную кнопку.

Не отбиваю я по двум причинам:
1. Хотя телефон включён, но я не хочу давать информацию о том, что тут кто-то есть.
2. Поскольку это почти наверняка спам, то заставляя телефон продолжать звонить я увеличиваю время, потраченное на меня. А значит спаммер позвонит меньшему числу людей.

Это немного, но это честная работа.

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

URL
пятница, 12 июля 2024
06:17 Ошибка: операция успешно завершена
Многие видели такие сообщения на сайтах или в программах. Видел их и я. А иногда даже делал. Сейчас расскажу, как такое может произойти.

Конкретно у меня был случай такой. Когда возникает ошибка, у неё есть код. Если код равен нулю, то ошибки нет. Начиная с единицы идут реальные коды ошибок.

Далее, произошла ошибка или нет, определяется не её кодом, а возвращением true или false из определённой функции, в которой ошибка и произошла. Если функция сообщила, что ошибка есть, происходит запрос кода ошибки.

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

У меня всё было наоборот. Я сообщаю в соседнюю программу об ошибке, потом получаю код у ошибочной функции. Соседняя программа, узнав об ошибке, тоже запрашивает её код -- уже у меня.

В идеальном мире последовательность действий будет такая:
1. Узнаю об ошибке.
2. Сообщаю соседней программе об ошибке.
3. Получаю код ошибки у ошибочной функции.
4. Приходит запрос от соседней программы о коде ошибки.
5. Я отдаю код ошибки.

Опытные программисты уже видят, где тут косяк. Запрос от соседней программы пришёл раньше, чем я узнал о коде. То есть, последовательность оказалась такой:

1. Узнаю об ошибке.
2. Сообщаю соседней программе об ошибке.
3. Приходит запрос от соседней программы о коде ошибки.
4. Я отдаю код ошибки. (нулевой!)
5. Получаю код ошибки у ошибочной функции.

Это типичная рассинхронизация многопоточного/многопроцессного приложения. У меня косяк: я не должен был никому рассказывать об ошибке, пока не буду сам иметь её кода.

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

URL