auto в Си и Си++
Несмотря на неприязнь к Си++,
Одна из таких мелочей — ключевое слово auto. Оно есть и в Си, но значение у него совершенно другое, в современном коде, как будто бы, его использовать негде.
В Си++ оно означает автоматический вывод типа, вместо его явного указания. Клёвая штука, позволяет делать например такое (пример из кода
auto old_mode = set_tty_special_mode();
// тут какой-то код
restore_tty_mode(old_mode);Фишка тут в том, что у set_tty_special_mode и restore_tty_mode две реализации — под «Виндоуз» своя. Эти две реализации работают с разными типами, под «Виндоуз» там DWORD, в остальных случаях — структура termios.
В Си было бы
#ifdef __MINGW32__
#typedef DWORD terminal_mode
#else
#typedef struct termios terminal_mode
#endif
terminal_mode old_mode = set_tty_special_mode();
// тут какой-то код
restore_tty_mode(old_mode);А в Си++ можно просто поставить auto и обойтись без шаблонного кода. Очень хочется иметь такую клёвую примочку и в Си.
Самокатное
Два дня ездил на работу и с работы на арендованном самокате, — учитывая пробки и погоду, так быстрее и приятнее. Был неприятно поражён разнообразием зон ограничения скорости — на небольшом участке она может прыгать
Я так понял, это некая забота о пешеходах, не зря же на карте арендного приложения в этих местах расположены «пешеходные зоны». Беда в том, что тот, кто их вводил, сам, похоже, на самокате не ездит. Так как скорость арендованных самокатов сильно зарезана, я всегда езжу с ручкой «газа» открытой до упора. Не знаю никого, кто бы делал иначе — ровный «газ» держать просто бессмысленно.
В таком положении резкое увеличение скорости при выезде из пешеходной зоны может быть просто опасным — ты этого совсем не ожидаешь, а звуковой сигнал, который подаёт самокат, не всегда даёт достаточно времени, чтобы скинуть скорость.
Пока я ни в кого не врезался и надеюсь избегать этого и в будущем, но очень неприятно, что приходится ехать по этим зонам в постоянном напряжении.
Неубиваемые вещи
На закрытом форуме «Вастрика» два года назад появился очень полезный тред «Неубиваемые вещи», где люди рассказывают про всякие штуки, которые служат годами без особого ущерба. При этом важно, чтобы эти штуки можно было купить, то есть сделанное собственными руками или старинное не подходят.
Я этот тред
Первым номером купил две доски Epicurean для кухни, — у нас как раз не осталось ни одной годной, хорошая развалилась в посудомойке, а на остальные без слёз не глянешь, пора менять.
Доски Epicurean делаются из того же материала, что покрытие скейтпарков, лёгкий, прочный, посудомойка ему нипочём.
Жена очень хвалит, я тоже очень доволен приобретением, пользуемся уже две недели, можем рекомендовать к покупке!
Бархат
Переписываюсь со вчерашнего с одной мастерской в Кирове, — хочу заказать у них бескаркасное кресло в детскую. Дочка сдружилась с соседской девочкой, они нередко ходят к друг другу в гости, надо организовать
Мастерская предложила несколько материалов на выбор — велюр, шенилл или рогожка, и пока я разбирался что это за названия, понял, что не люблю касаться бархата и всего, что на него похоже. Велюр и шенилл, насколько я понимаю, как раз на ощупь, как бархат.
Все эти материалы моментально впитывают воду, руки становятся сухие, от этого мне очень дискомфортно. Ненавижу это чувство пересушенных кончиков пальцев.
Агриппина Сергеевна Миронова (Макридина)
Не так давно на меня вышла четвероюродная сестра, — нашла меня «Вконтакте». Мы с ней прежде знакомы не были, она меня разыскала по случаю, из интереса к поиску информации о своих предках, — начала искать по фамилиям и вышла на мои заметки.
Позже она дала контакт своей бабушки, с которой мы тоже списались, — в свои 75 бабушка бодро пользуется «Телеграмом».
С ней мы довольно долго говорили о прошлом, она многих из моих предков застала в живых, поэтому очень интересно было узнать
К сожалению, как это обычно и бывает, все воспоминания очень фрагментарны. Выкладывать их как есть мне не очень хотелось, а собрать из них связный рассказ не получалось.
А куда мы идём
После обработки получилось вот такое эссе о семье Макридиных. К этой семье принадлежала моя прабабушка Груня (1895—1968). Она на фотографии в центре снимка.
Когда-то давно, в далекой деревне жила замечательная семья Макридиных. У деда Сергия было много земли и пасека, где они выращивали лён, пшеницу, рожь и ячмень. Они были известны своим умением выращивать урожай и даже экспортировать его за границу.У Макридиных было своеобразное правило: у них не было постоянных работников, так как в роду было много мужчин, которые помогали на полях. Они нанимали работников только во время срочных работ, таких как посев и уборка. Для этого они приглашали всех желающих мужчин, хорошо их кормили, и тех, кто первым закончит есть, брали на работу. Работников кормили три раза в день и даже платили за их труд. Те, кто не попадал в число нанятых, умоляли Сергия дать им возможность поработать бесплатно, лишь бы трижды хорошо поесть.
Макридины были известны своей мудростью, скромностью и терпением. Они не были многословными, но всегда проявляли доброту и заботу о ближних. Даже воспитание детей было особенным — наказание заключалось в строгом взгляде или просто в том, что не разговаривали с непослушными детьми.
Особенно замечательно было видеть старших Макридиных на праздниках. Они собирались вместе, сидели на печке, и молодые родственники наблюдали, как они красиво пели и плясали под своё пение. Брат Груни, по имени Тимофей Миронов, был особенно талантливым певцом и танцором. Он и его брат Григорий были непревзойденными мастерами русских народных плясок. Их танцы были так великолепны, что даже профессиональные артисты не могли сравниться с ними.
Тимофей был не только талантливым артистом, но и предпринимателем. Он собирал ветошь за копейки и продавал ее на рынке. Он также разводил кур и продавал свежие яйца. Тимофей был известен как мастер торговли и всегда с улыбкой обслуживал своих клиентов.
Учитывая исходный материал, вышло очень хорошо. Надо будет ещё помучать ChatGPT подсказками, поперебирать стили, вполне возможно удастся сделать ещё лучше.
Дополнено: родственные связи в тексте не вычитывал, вполне может быть, что при трансформации текста истина в этом месте пострадала.
Минимально интеллигентный человек
Смотрел тут недавно шуточную сценку «Вступительные экзамены в театральное училище» (1980 год) с Яковлевым, Мироновым и Этушем. Не знаю с какой радости мне её порекомендовал «Ютуб», но рекомендация была верная — зацепило.
В самом начале Миронов рассказывает вступление, цитата оттуда:
…и, значит, для того, чтобы поступить в это театральное училище, нужно прочесть прозу, басню и стихотворение. И действительно, ну в голову не придёт человеку, проходя мимо архитектурного института или бауманского института, увидя тот чудовищный перечень предметов, наук, — ну зайду, попытаю счастья, а вдруг!..
А естественно, так сказать, минимально интеллигентный человек одно стихотворение, одну прозу и одну басню, естественно, знает.
Мне всегда хотелось считать себя хотя бы минимально интеллигентным человеком, но увы мне. Из стихов я знаю «Лиличку!» Маяковского, но ни басни, ни какого завялящего куска прозы на память рассказать не смогу. Тест провален!
«Гопник-2»: версия 1.24
У меня тут небольшая веха в игре
Там универсальный бинарник под МакОС и статически собранные файлы
Поддельные деньги
Как я уже писал, в субботу ездили с друзьями походить с металлоискателем и самое интересное что нашлось — поддельный полтинник и оттиск советского рубля
В выходные всё почистил, смазал вазелиновым маслом, чтобы блестело и сфотографировал на подоконнике, пока было утреннее солнце. Кажется вышло достаточно контрастно. Внизу ещё пририсовал инвертированную и увеличенную часть оттиска, где угадывается фраза «РСФСР пролетар…».
Рядом положил 20 копеек 1921 года, чтобы было наглядно видно отличие по цвету серебряной и поддельной монеты. Интересно, когда её изготовили, она была похожа
Со всех сторон очень любопытная находка, конечно. Надо бы ещё
Конный спорт
Как я уже неоднократно писал, дочка и жена — фанаты лошадей. Обе уже несколько лет занимаются конным спортом. Занимаются для души, но несколько месяцев назад тренер решил дал дочке возможность выступить. Выступление прошло без особого старания и, как следствие, успеха.
Еву это неожиданно подстегнуло к занятиям, и сегодня, на втором своём выступлении, она заняла второе место. Говорит, что это лучший день в её жизни.
Выступила без малейшего волнения, но очень сильно нервничала на вручении, — настолько, что не дождавшись своей фамилии, убежала плакать, думая, что ей ничего не досталось.
Похоже конный спорт из лёгкого увлечения перерос
Жена, кстати, глядя на дочку, сегодня тоже решила выступить, тоже второе место. У неё всё наоборот — перед выступлением сильно переживала, а про награду даже и не думала, так что медаль стала приятной неожиданностью.
Поддельное серебро
Недаром я на неделе торопился с ремонтом металлоискателя, — сегодня впервые в этом году выехал покопать. Один из друзей прикупил недавно участок за городом, вот в ту стороны мы и съездили.
Очень урожайный выезд, много находок, но всего интереснее из них две. Первая — советский полтинник, который должен был быть серебряным. Давно хотел такой поднять, сбылось желание, только этот замечателен ещё и тем, что он оказался поддельным.
Я его ещё сильно не ковырял, но похоже, что он из железа
Вторая находка интересно тем, что родственна первой, да и нашлась рядом — оттиск аверса советского серебряного рубля. Получился явно не очень, видимо поэтому и выбросили. Сфотографировать не выходит — буквы можно разглядеть только с сильным боковым светом, если придумаю как всё закрепить так, чтобы можно было
Смотрите что получается — в земле недалеко друг от друга валяются поддельные 50 копеек и оттиск рубля. Непонятно в точности как они туда попали, но интереснее всего, разумеется, думать, что там жил фальшивомонетчик, который в советские годы пытался подделывать монеты.
«Гопник-2»: теперь «Андроид»
В полку не совсем обычных платформ, где я попробовал собрать
Решил попробовать скомпилируется ли. В принципе проблем почти не возникло. Всё необходимое поставил командой pkg install make clang git, после чего выписал проект и поправил путь до заголовочного файла — в «Андроиде» он находится в другом месте.
Правки в репозиторий внёс, теперь всё будет собираться ещё и под «Андроид». Проверять в будущем я не буду, вряд ли
Отломались уши
Читатели, которые тут давно, помнят, что я люблю на досуге помахать металлоискателем — есть у меня такое хобби. Для пользы я с ним участвую
У всех металлоискателей есть слабое место — «уши» катушки. На боковые нагрузки они не рассчитаны и при неловком движении их легко отломить.
В прошлом году я провалился одной ногой в болото и в момент падения опёрся на рукоятку металлоискателя. Крепления катушки моей туши не выдержали и отломились оба. Но так как сезон кончался, я с этим ничего не сделал.
В этом сезоне я глянул было на цены на новые катушки,.. но они
Оказалось, что на «Авито» существует целая индустрия — люди в промышленных масштабах печатают площадки для усиления «ушей» катушек. У меня усиливать уже нечего, но мне кажется, что сама по себе эта штуковина будет держать всё вместе вместо сломанных «ушей».
Приклеил вчера всё на эпоксидку, сегодня ещё хочу залить оставшиеся
«Гопник-2»: фан-клуб
Тем временем, у игры
Когда будет готово, надо будет это должным образом оформить, снабдить скриншотами и перенести в вики проекта.
В принципе уже почти всё готово,
Надо бы поторопиться, а то бесплатная лицензия на среду разработки кончится в начале мая, не так много времени осталось, дальше разрабатывать будет сложнее.
Инфляция восклицательных знаков
Не могу отделаться от мысли, что за время моей жизни произошла инфляция восклицательных знаков. Помню, в школе нас учили, что три восклицательных знака, это
Действительно, не помню чтобы в классической русской литературе
Сейчас эти три восклицательных знака — на каждом заборе, я и сам нередко ставлю их пяток, а то и больше подряд. В трёх
Программируем с GPT
Мне
Нужно было переписать вот такой код с «Пайтона» на «Си++»:
{72: 65, 80: 66}.get(value, 0)Что тут происходит? Если value равно 72, вернуть 65, если 80, то 66, иначе ноль. Нужно мне это, если вкратце, для преобразования виндовых кодов в линуксовые.
Так как Си++ я не знаю, описал на Пайтоне — так быстрее и проще показать, что код мне нужен компактный — хочется не городить switch, а добавлять новое правило как можно проще.
Вот что мне сгенерировал
int value = 72;
std::map<int, int> mymap = {{72, 65}, {80, 66}};
int result = mymap.count(value) ? mymap[value] : 0;После консультации с живыми людьми, выяснилось, что плохо тут примерно всё.
В итоге, код стал выглядеть следующим образом:
const static std::unordered_map<int, int> win2lin = {{72, 65}, {80, 66}};
auto it = win2lin.find(_getch());
ch = it == win2lin.end() ? 0 : it->second;Плитка в хрущёвках
Я часто бывают в «хрущёвках» — в некоторых из них у меня живут друзья,
Всегда было интересно как так получилось. Вряд ли к проекту каждой новой партии домов
Наверное так, да. Моя теория — на строительстве сильно экономили, плитку брали какую найдётся, а так как проект на все случаи не нарисуешь, так что строителям говорили класть так, как им нравится.
Лингвистическая физиогномика
Как известно, наш речевой аппарат всё детство привыкает правильно произносить звуки тех языков, на которых мы говорим. В одной
После этого всё, якобы, «твердеет» и новые звуки, в среднем, будут вызывать у нас трудности — на их правильное произнесение придётся затрачивать усилия всю жизнь.
В этой связи меня давно мучает вопрос, — не видно ли на лицах последствий этих процессов? Ну, знаете, нельзя ли по фотографии сказать, что вот эта бабушка всю жизнь «окала», поэтому у неё губы куриной гузкой, а этот дедушка — «акал», поэтому у него рот выглядит шире?
Возможно это должно откладываться в постановке губ,
Знаю, что то ли две, то ли три заметки из моего дневника превратились в дипломные работы, может и эту
36,2°
У людей
У меня сейчас 36,2, что на фоне болезни для меня не редкость. Ощущения, как всегда, отвратительные — слабость, бросает в жар, голова болит. Но кому скажи «36,2», никакого понимания в глазах, один даже спросил — «выздоравливаешь, значит»?
Да откуда? Даже не близко!
То, что тебя не убивает, то — дверь
Недавно зашиб немного нашу собаку, открывая дверь в дочкину комнату. Несмотря на то, что я и стучал, и дверь открывал довольно медленно, ей всё равно досталось, — она с той стороны лежала вплотную. Сразу вспомнился отрывок из «Маугли»:
…даже собака, которой далеко до дикого волка, её прапрадеда, может проснуться от крепкого сна, когда колесо телеги слегка коснётся её бока, и отпрыгнуть в сторону невредимой, прежде чем это колесо наедет на неё.
Наша собака, по всей видимости, слишком далеко ушла от дикого волка.
«Гопник-2»: разные mingw
Надо
Сильнее всего меня удивило в процессе, что поведение mingw, — инструментария для компиляции приложений под «Виндоуз», различается под разными операционными системами.
Поскольку мне не хотелось заморачиваться с установкой софта на виртуальную машину, я развернул mingw у себя под «Маком» и внёс правки, чтобы всё благополучно компилировалось именно на этой ОС.
Запустив получившееся на первой попавшейся виндовой виртуалке, я успокоился. Но оказалось этого недостаточно — под самой «Виндоуз» приложение не собиралось!
После этих правок игра начала собираться под «Виндой» тоже.
Недавно прочитал в одной из статей на Хабре, что «язык Си++ достаточно сложен, чтобы позволить нам писать на нём просто», как же это верно! Неожиданно много времени занимает борьба