Первый турнир по шахматам у дочки
Дочка сегодня участвовала в первом турнире по шахматам. Я
В первом туре я издалека почувствовал, что её противник играет более серьёзно — он записывал в тетрадку ход партии, видимо чтобы разобрать её позже, значит у него опыта больше — Ева
Во втором туре она сидела ближе и я заскакивал иногда посмотреть как идут дела. Когда увидел перевес в фигуру немного расслабился, а в следующие заход понял, что уже всё предрешено — она методично чистила доску, а в конце поставила линейный мат двумя ферзями.
Perl 1
Перл — один из языков, которые помогли мне
Я тут недавно сообразил, что программирую на ПХП с третьей версии, однажды попробовал в действии вторую версию
К счастью, его исходники довольно просто найти, причём
К первой версии идёт пятьдесят тестов, написанных на Перле тех времён. Я бегло их просмотрел и, на первый взгляд, язык как будто мало изменился, тем не менее
Для интереса попробовал запустить небольшую программульку для подсчёта количества счастливых билетов, которую я
for ($i = 0; $i <= 999999; $i++)
{
$a = ('0' x (6 - length($i))) . $i;
$c++ if (substr($a, 0, 1) + substr($a, 1, 1) + substr($a, 2, 1)) ==
(substr($a, 3, 1) + substr($a, 4, 1) + substr($a, 5, 1));
}
print "$c\n";Вот что пришлось исправить: изменить синтаксис цикла, ну и скобок побольше наставить.
Производительность, кстати, изменилась значительно — первая версия выполняет эту программу за 1,7 секунд, а современный Перл на том же оборудовании — за 0,8 секунды.
Снимки с Casio WQV-3
Боже мой, я прямо не верю! Успешно удалось переписать фотографии с часов! Спасибо одному из читателей, который
В итоге, чтобы переписывать снимки с этих часов, необходимо следующее:
- собственно часы;
- программа Casio WQV Link 2;
- компьютер или виртуалка с ОС, на которую эта программа поставится; я ставил Windows XP;
- адаптер IrDA, на которые надо найти драйвера; на мой Ark3116T (PCIID: 18EC 3118) драйвера нашлись.
Подсоединяем адаптер IrDA к компьютеру, запускаем Casio WQV Link 2, открываем там контрольную панель, кнопкой сверху выбираем папку, в которую будут сохраняться картинки, кладём часы напротив адаптера, запускаем там передачу (Select → Select → IR Beam), нажимаем в контрольной панели «Save All».
После этого снимки можно посмотреть в указанной папке.
Тип «‟char”»
Недавно я узнал, что, кроме text, varchar и char, в Постгресе есть ещё и строковый тип "char", именно так, в кавычках. Используется во внутренних таблицах Постгреса для простого перечисления. Интересен тем, что занимает ровно один байт, в отличие от более известных типов, которые во внутреннем представлении хранят ещё и свою длину, поэтому всегда занимают больше.
Использования его в своих таблицах, наверное, лучше избегать, но знать про него интересно. Кстати, есть ещё и тип name, который всегда занимает 64 байта и используется для хранения имён объектов, но, как по мне, он не такой интересный.
Лица
Очень смешной мем нашёл! Ведь все знают, что первое лицо — это «я», а «вы» — это второе. Наоборот же всё! Кого они этим обмануть хотят?
Bash HTTPd
У писателя Леонида Каганова, который в последние годы ушёл в айти, началась
Я ему сегодня утром пытался хоть
В процессе там понадобился
Обошлись
В общем, мне стало
В процессе код стал занимать меньше места (моя минифицированная версия на 25 байт короче), научился обрабатывать имена, содержащие пробелы и национальные символы и заработал не только под «Линуксом», но и под «Макосью».
UTM и Casio WQV-3
Окрылённый успехом с часами Casio
Но,
В общем, решил дать шанс. Скорость работы оказалась отличной, ничего не тормозит и не зависает, а вот с часами — фиаско. Не работает. Сначала показалось, что дело в батарейке —
Батарейку я заменил, но ситуацию это не изменило — приложение после запуска сообщает, что часы оно не обнаружило. Грешу теперь на урезанный дистрибутив. Попробую найти и поставить полный. Если и тут меня будет ждать неуспех, придётся купить
Прошлое: Дни Интернета в Казани ★
Вчера встретил в кафе нашего офисного центра своего друга А. Х., который общался
А. Х. попросил меня помочь, но сначала мне пришлось отказаться — меня ждали на встрече. Позже выяснилось, что встречу передвинули и у меня есть минут 15—20, чтобы спринтом пробежаться по памяти
События очень давние, поэтому вспомнить удалось не так много как хотелось бы, но зато в памяти всплыл один забавный случай, про который я нигде не писал. Журналисткам он не подошёл по тематике, поделюсь здесь.
В конце девяностых—начале двухтысячных в Казани проводились Дни Интернета. Событие, насколько я помню, должно было стать ежегодным, но не стало. Его провели не менее двух раз
В интернете об этом упоминаний не сохранилось,
Я был на двух «Днях». Один из них проводил на свои деньги известный тогда в казанском интернете деятель Daddy Hab, а второй, если мне не изменяет память, провайдер
Кажется оба раза это было в зале НКЦ «Казань», но что там конкретно было, я уже и не помню. Вероятно, просто тусовка с алкоголем. Но что я помню хорошо, что перед одним из этих событий в качестве приглашённого гостя был анонсирован Артемий Лебедев, в те годы — абсолютная суперзвезда в интернете.
На беду организаторов я тогда с ним активно переписывался, поэтому не постеснялся узнать правда ли его пригласили. Он сказал, что в первый раз об этом слышит и я, для смеха, выслал ему фотографию флайера с его именем. К сожалению, электронная почта того времени работала иногда из рук вон плохо и файл с картинкой никак до него не доходил. На третьей попытке я его сконвертировал, для надёжности, в несколько форматов и выложил на свой сайт ссылками, которые и отослал ему в письме.
Как пошутил А. Х., я делился файлами через облако до того как это стало модным.
Разумеется я не помнил этого в таких подробностях, но вчера написал Артемию, в надежде, что у него осталось это письмо и не обманулся — он мне его переслал, после чего эта история проступила в памяти более ясно.
Организаторы так и не признались, что не стали приглашать Лебедева и на самом событии интригу тянули до последнего. Я бродил в толпе и вносил смуту среди своих знакомых, но и у меня, думаю, теплилась надежда.
К сожалению, чуда не случилось. В итоге
Продолжение турнира по шахматам у дочки
Сегодня у дочки были следующие четыре тура по шахматам. В прошлый раз было всего два. Такой перекос — следствие плохой организации. В первый день было столпотворение, потеряли час, поэтому игру сократили.
Тут надо сказать, что турнир организовывала школа, поэтому, естественно, о нём нам стало известно буквально за день до начала. Это было ещё в прошлые выходные и в тот раз всё сложилось удачно — у дочки на тот же день было запланировано выступление на пони и оно, к счастью, разошлось по времени с шахматами.
В эти выходные у нас в планах была туристическая поездка в Елабугу, причём там был оплачен отель по невозвратному тарифу. Поэтому мы съездили, но сегодня встали в шесть утра, чтобы успеть к началу следующих туров.
Первую игру она выиграла, взяв противника измором. У него оставался король, а у Евы король и ладья. Как с их помощью поставить мат она не знала, поэтому просто гоняла его по доске, пока тот не устал настолько, что
К сожалению, сама она на той доске тоже оставила много сил, да и следующий противник оказался слишком сильным, проиграла быстро. Расстроилась, конечно, одно наложилось на другое и в следующей партии упустила шанс сыграть ничью. Расстроилась ещё больше и к четвёртому туру была уже совершенно никакая — голова болит, мораль на нуле.
Без особой надежды я уговорил попробовать доиграть и предложил сдаться, если окажется, что партия ей не по силам. Она посидела буквально несколько минут, поняла, что сил нет и подставилась под мат.
Четыре тура — это
Пальцы Ёлки
Мне сложно поверить, но, видимо, так оно и есть — большинство людей, похоже, вообще не замечает, что с картинками, которые сейчас генерируют нейросети,
Сегодня, пока ехали из Елабуги, на экран автомобиля аудиоплеер вывел обложку альбома певицы Ёлки «Точки расставлены». Я её обычно не слушаю, поэтому и обложку эту вижу в первый раз. Сразу бросилось в глаза, что с рукой на переднем плане
Судя по информации в «Википедии», это альбом
Casio WQV-3 и виртуалка
Ура! Дело было не в бобине!
Хорошо, что купил тогда на всякий случай ещё и второе устройство.
Это инфракрасный приёмопередатчик компании SigmaTel. При подключении «Виндоуз» его сразу узнала и радостно поставила драйвер
Пальцы Ёлки: контраргументы
Всем читателям большое спасибо за великолепную дискуссию по поводу длины пальцев Ёлки, я получил удовольствие. Пост вызвал довольно заметное оживление, породив по всем площадкам совокупно более десятка комментариев. Вроде это и немного, но по сравнению с обычной реакцией — небывалый всплеск.
Мне особенно понравилось, что дискуссия была не голословная, некоторые читатели заморочились — поискали другие картинки или изготовили доказательный материал самостоятельно. Прямо здорово.
Напоминает
Приходится признать — по всей видимости, это не брак, вышедший
Шахматы: разобрали мат ладьёй
В качестве работы над ошибками, совершёнными в прошлый раз в турнире по шахматам, разобрали с дочкой мат ладьёй. Посмотрели два способа — длинный, где король ставится в оппозицию и покороче, «квадратный».
Первый даже сыграли пару раз, второй не стали, только разобрали — дочка была уставшая, после занятия с репетиторами по русскому и по гитаре, так что я не стал настаивать.
Плюс она сыграла одну партию с ботом. Странно, но через интернет с живыми людьми ей играть не хочется. Непонятно почему, то ли есть
Попробуем в этот раз готовиться к турниру, а не просто в нём участвовать. Плюс я сделал
Заболел
Заболел я
Полежу до конца недели дома, надеюсь быстро поправлюсь.
PowerShoot
Ну
Играть, правда, получится только на «МакБуке». Думаю, несложно будет адаптировать игру под терминал любой операционной системы, было бы желание.
Геймплей простой — на вас бегут враги, надо убивать их бомбами. Игрок бросает бомбу, когда «МакБук» подключается к зарядке. Чтобы бросить две бомбы, надо подключить его, потом отключить, потом снова подключить.
Врагов больше двух не бывает, но сложность в том, что игра реагирует на подключение зарядки с задержкой. Кроме того, можно в теории убиться собственной бомбой — пространство зациклено.
Добавлено: как справедливо заметил один из читателей, такие действия могут влиять на оставшееся количество циклов зарядки батареи ноутбука, но прошу не относиться к этой игре серьёзно, она, конечно же, сделана была в шутку, чтобы развеяться.
7000 и кафе ★
Формально эта заметка — семитысячная на этом сайте. Формально, потому что некоторые посты я пишу задним числом, копируя их из «Дневников жизни», которые я вёл с 1989 года
Тем не менее, это знаковое число и я, по подсказке одного из читателей, планировал написать её
К сожалению, я заболел и с задачей не справился — список пока находится в зачаточном состоянии. Был выбор — не писать
Честно говоря, я планировал выбрать первый вариант, но вчера случилось событие о котором невозможно молчать, — мы с ещё двумя друзьями подписали договор, условия которого обсуждали почти месяц. В скором времени мы будем открывать кафе, даже два — одну точку в виде киоска недалеко от одной из центральных улиц Казани и ещё одну на фудкорте строящегося торгового центра.
По мере успеха предприятия, буду сюда об этом писать, пока же вперёд забегать не буду — помимо подписи на трёх экземплярах договора мной пока ничего не сделано.
Батарейки CR2032 ★
Я, как и многие, наверное, подозревал, что с плоскими батарейками
А тут недавно в одном из каналов попалась ссылка на тестрирование батарей CR2032. У меня на картинке лишь вершина айсберга, загляните сами — разница между лидером и аутсайдером в 11 раз! Что, кстати, неплохо укладывается в мои ощущения в год и месяц работы.
Что расстраивает, батарейки известных брендов, согласно этому сравнению, работают средне. Надеюсь дело в том, что их не стесняются подделывать.
Из хорошего. Приятно удивили батарейки «Фотон» — они на втором месте, что тоже логично — подделывать местный бренд опаснее. Буду теперь, пожалуй, покупать именно их.
128-битный тип в Си
В одной из программ на Си мне понадобился
Мой компилятор _BitInt(128) прекрасно поддерживает, казалось — счастье так близко, но…
Каково же было моё удивление и разочарование, когда оказалось, что в языке нет ни способа вывести его на экран (у printf нет необходимого спецификатора формата), ни способа задать константу такого размера!
( (_BitInt(128) ) 0xFFFFFFFFFFFFFFFF << 64) | 0xFFFFFFFFFFFFFFFF
Нечётные числа
Что же я там считаю такое, что мне понадобились
Коллега в офисе, который
Формулировка у неё была очень простая.
Дано множество X. Единица принадлежит X. Если 3×x принадлежит X, то и x принадлежит X. Если x принадлежит X, то и 2×x + 1 принадлежит X. При этом x — натуральное, разумеется.
Требуется доказать, что таким образом можно получить множество всех натуральных нечётных чисел. Авторы статьи, кстати, были убеждены, что найти доказательство у читателей не получится.
Упомянутый коллега у себя в университете при помощи студента, Фортрана и Пролога пытался проверить эту теорему по следующему алгоритму.
Берём число, например, «9». Оно могло быть получено, согласно перечисленным утверждениям, двумя путями: либо
В этой задаче очень быстро растёт разрядность, поэтому в те времена рассчитать даже первую сотню чисел было достаточно проблематично.
В общем, я решил с этой задачкой побаловаться.
Для начала написал программу, которая вычисляет эти числа перебором. Начинаем, понятное дело, с единицы, следующее число получаем по формуле 2×x + 1, потом, пока число делится на три, делим и выводим эти числа, считая для каждого ещё и 2×x + 1 и так далее. Кроме того, пришлось ещё запоминать все найденные числа, чтобы избегать циклов.
Первую версию я написал с использованием рекурсии, но программа падала примерно через полторы минуты работы — стек просто кончался. Пришлось переписать. Новая версия работает уже несколько часов на моём ноутбуке и вычислила за это время уже почти 17 миллионов чисел. Оставлю её на ночь, интересно, закончит ли она к утру.
Нечётные числа: прогресс
Пока по поиску нечётных чисел прогресс такой. Программа работает уже чуть больше 25 часов. Самое большое найденное на этот момент число — 340281726619687019118949463859138658303 или 0xFFFFE06E43129C9EBA1E335BA7FFFFFF в шестнадцатеричном виде. Как мы видим, предел точности близок.
Всего пока найдено 36,5 миллионов чисел, список чисел занимает 1,2 гигабайта.
Добавлено:
Добавлено:
Добавлено:
Добавлено: 63 часа работы, найдено 57,3 миллиона чисел, новое самое большое число — 0xFFFFE0EC9B9F17FFFFFFFFFFFFFFFFFF или 340281736629840009040727513758703812607.
Нечётные числа: uint32_t
В программе есть место жёстко завязанное на тип, — печать числа, а мне хотелось сделать так, чтобы при смене типа ничего не ломалось. Поэтому я решить попробовать обобщённое программирование. Его в Си мне использовать ещё не приходилось, вот и выпал случай.
Заодно попробовал в действии функции __builtin_*_overflow, позволяющие использовать математику с контролем переполнения. Я только недавно задумался о том, что они должны бы быть в языке, а до этого переполнение я проверял дедовским способом — смотрел не стал ли результат меньше аргумента.
Обобщённое программирование выглядит следующим образом:
#define PRINT_U(x) ({ \
_Generic((x), \
uint128_t: printf_u128, \
uint64_t: printf_u64, \
uint32_t: printf_u32 \
); \
})(x)Тут у меня макрос PRINT_U зависит от типа аргумента, а выбор делается при помощи стандартной конструкции _Generic — она принимает аргумент и, в зависимости от того выражение какого типа было передано, возвращает одно значение из указанного списка.
static void printf_u128(const uint128_t v) {
unsigned long long low, high;
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
low = MASK64(v);
high = MASK64(v >> 64);
#else
high = MASK64(v);
low = MASK64(v >> 64);
#endif
printf("0x%016llX%016llX\n", high, low);
fflush(stdout);
}
static inline void printf_u64(const unsigned long long v) {
printf("0x%016llX\n", v);
fflush(stdout);
}
static inline void printf_u32(const unsigned int v) {
printf("0x%08X\n", v);
fflush(stdout);
}Пока отлаживал, нашёл пару досадных багов в исходной программе. Получается, зря мой ноутбук трудился, результат всё равно можно было бы выкинуть.
Функции переполнения у меня используются вот так:
#define MUL2_ADD1(x) ({ \
typeof(x) y; \
__builtin_mul_overflow(x, 2, &y) || __builtin_add_overflow(y, 1, &y) ? 0 : y; \
})Были сомнения будут ли они работать
Любопытно, что мой ноутбук на процессоре M3 Max справился с перебором за 57 минут, тогда как компьютер с Intel Core
В результате нашлось 14434686 значений, из них нечётных подряд — 172 значения, потом появляются «дырки».
Походное кресло
Коллеги ещё в сентябре, на день рождения подарили шикарное походное кресло. Я тогда активно ездил с ночёвкой с друзьями на острова, фактически необитаемые. Естественно, удобств там не было, а с собой мы брали самый минимум, но про раскладные стулья не забывали. Любоваться, когда стемнело, около костра на воду, сидя на стульях — бесценно.
Правда у нас их было два на троих, так как своего у меня не было. Так что коллеги с подарком угадали.
Думаю, подразумевалось, что подарок я буду использовать в походных условиях. К сожалению, по разным причинам мы с ночёвкой больше не ездили, а потом похолодало.
Конечно в следующем году будут ещё походы, но кресло мне пригодилось гораздо скорее. У дочки тут
Как я быстро убедился, присесть на таких мероприятиях обычно некуда, разве что на пол, поэтому стал брать с собой кресло. Тем более в его карманы можно положить термос свысока снизу вверх, довольно похлёбывая горяченькое.
Шахматы Алана Тьюринга
Читал тут
В 2012 по этому описанию написали программу в которую можно поиграть. Реализаций сейчас — куча, есть и для игры онлайн.
Я в шахматы играю очень плохо — в детстве
В общем, алгоритм 1948 года разделал меня, как бог черепаху, я просто ничего не смог сделать.
Музыка на компьютере «Ферранти Марк 1»
До сего момента я ничего не знал об истории проигрывания музыки на компьютере. Если бы меня ещё вчера спросили — когда компьютер впервые проиграл хоть
Но как я сегодня узнал, впервые это произошло в 1951 году. В июне того года австралийский компьютер «CSIR Mark I» исполнил популярный военный марш «Марш полковника Боуги».
Запись этого исполнения не велась, но в октябре того же года компания БиБиСи записала отрывки из трёх других композиций — гимна «Боже, храни короля», популярной английской детской потешки «Baa Baa Black Sheep» и песни «In the Mood». Правда в исполнении другого компьютера — «Ферранти Марк 1», который я уже упоминал в связи с шахматами Алана Тьюринга.
Разумеется, никакой звуковой карты у компьютеров тех времён не было. Как же они проигрывали мелодии?
Звуковой карты не было, но к компьютеру был подключен динамик, которым можно было подавать сигнал оператору. Например, он мог сигнализировать об окончании работы программы. Для этого у компьютера «Ферранти» была специальная команда — /V.
В 1948 году Тьюринг заметил, что если повторять эту команду с заданной частотой, то компьютер начинает проигрывать определённые ноты.
В 1951 году Тьюринг пригласил в Манчестер Кристофера Стрейчи, ещё одного видного пионера вычислительной техники, который запрограммировал «Ферранти Марк 1» для игры
Копия записи была передана университетскому инженеру Фрэнку Куперу. Когда через
После периода длительного забвения запись была восстановлена с помощью технологии цифровой обработки и анализа частот. Для восстановления было необходимо откорректировать скорость воспроизведения, а также устранить шумы и поправить высоту тона. В результате восстановленная запись теперь звучит так, как она должна была звучать более полувека назад.
99 бутылок: язык B («Би»)
В последнее время я довольно много пишу на Си,
При этом ни в одной проштудированной мной статье нет ни одной даже самой простенькой программы на Би, а я человек любопытный. В общем, я решил сам посмотреть и вам показать.
81. B (язык «Би»), после появления Си, был полностью вытеснен последним и сейчас совершенное не используется. В отличие от, например, Кобола, который старше на десять лет, но при этом вполне ещё встречается.
Думаю, причин тут несколько.
Язык Би и правда очень похож на Си, в этом можно убедиться, взглянув на написанную мной программу. Что тут режет глаз сишному программисту? Прежде всего — отсутствие типов у заголовка функции, импорта функции printf и странное ключевое слово extrn внутри функций. extrn означает, что этот символ (в терминах компилятора) пришёл из внешней зоны видимости. Современное extern явно произошло от него, только значение немного поменялось.
Немного непривычно, что все переменные объявлены как auto, но в современном Си так тоже можно. auto, в данном случае, — класс хранения. В современном Си это класс хранения
Впрочем, в стандарте Си23 auto теперь означает автоматический вывод типа, что для совместимости с Би подходит ещё больше, так как, если приглядеться, строковые массивы («строки») в Би не выделены в отдельный тип.
Из того, что заметить чуть сложнее — экранирующий символ в строке не обратный слэш, а «звёздочка» (*), поэтому символ перевода строки не \n, а *n.
Ещё немного странно, что тут цикл while, а не for, но сильно это в глаза не бросается. В «Би» цикла for просто нет, поэтому вот так.
Вообще, ощущение такое, что Си взял от Би буквально всё, но, как ни странно, это не так. В Би есть конструкции ===, =!=, =<= и =>=. Наверное они
Кроме того, другая почти вся стандартная библиотека. Совпадают всего несколько функций, по больше части это
/* Beer song. Evgeny Stepanischev, Dec 2024 */
print_bottles(b, tail) {
extrn printf;
auto s;
s = "s";
switch (b) {
case 0: printf("No"); break;
case 1: printf("%d", b); s = ""; break;
default: printf("%d", b);
}
printf(" bottle%s of beer%s", s, tail);
}
main() {
extrn printf, print_bottles;
auto beer;
beer = 99;
while (beer) {
print_bottles(beer, " on the wall, ");
print_bottles(beer, "!*n");
beer--;
printf("Take one down, pass it around.*n");
print_bottles(beer, " on the wall!*n*n");
}
printf("No more bottles of beer on the wall, ");
printf("no more bottles of beer.*n");
printf("Go to the store and buy some more,*n");
printf("99 bottles of beer on the wall...*n");
}Я долго пытался найти хоть
В итоге, остановился на
Купил себе паяльник
Долго ломал голову над подарком себе на Новый год. Вещи, которые
Поэтому пришлось искать
Не то, чтобы я часто паяю, но бывает. При этом каждый раз у меня беда с проводом, потому что подставки под паяльник у меня нет. Дарить её себе на новый год
Оказывается, не просто существуют, а существуют в изобилии, хвала китайцам, выбрать есть из чего.
Долго смотрел всякие видеообзоры, достойных моделей сейчас очень много, но между собой современные паяльники мало чем отличаются. В итоге, подарил себе паяльную станцию TS1C. Решающим было наличие внутри суперконденсатора вместо аккумулятора, это огромный плюс, так как аккумуляторы со временем деградируют по мощности, а суперконденсатор — нет.
Обязательный для современных паяльников набор фич тоже на месте — небольшая, очень аккуратная станция, где можно всё настраивать, защитная юбочка, чтобы не обжигать пальцы, сменное жало, удержание температуры.
Паять пока не пробовал, — нечего. Но я написал письмо Деду Морозу, чтобы он мне подарил
Загадки из музея частных коллекций
Повезло на днях побывать в казанском Музее частных коллекций. Туда сейчас
В музее нам задали несколько загадок, ни на одну из которых я не дал правильного ответа. Возможно читателям тоже будет интересно оценить свою эрудированность или смекалку, так что я привожу эти загадки здесь. Даже если желающих испытать себя не найдётся, завтра допишу сюда же правильные ответы.
Ответы на загадки эксурсовода:
1) Что это за ящик, для чего он предназначался? Почему он подвешен?
Это хлебница, подвешена, чтобы не добрались грызуны. Да, такая большая, так как семьи были большие и хлеба было принято есть много.
2) В чём особенность этого стула?
Если присмотреться, в центре стула есть дверца, под неё помещали сосуд с углями для подогрева, на стул садилась дама, стул ставился на лыжи, в конструкцию впрягался кавалер, который мог таким образом развлекать даму зимней прогулкой.
3) Что это такое? Для чего предназначалось?
Это средневековая ванна. Уникальная штука для России, кстати. Первый экземпляр стоял в Эрмитаже, но в Великую Отечественную, когда спасали экспонаты от бомбёжки, бомба попала в баржу, где плыла, в частности, ванна из Эрмитажа, и она затонула.
4) Этот шкаф
Шкаф стоял на корабле и был прикручен к стене
5) Что хранили в этих вазах?
Табак.
«Всё об АСУ»
Оказываются некоторые считают реально издававшуюся книжку «Язык программирования Ада» выдумкой, — мол, никто бы так книжку не назвал, слишком очевидный каламбур. Ничего подобного, книга не выдуманная, я сам её видел, да и в интернете, легко ищется в букинистических магазинах. И язык программирования «Ада» существует на самом деле, назван в честь Ады Лавлейс.
Это мне напомнило про другую книжку,
Не помню поверил ли я тогда в существование этой книги,
Кстати, не все, оказываются понимают в чём смех названия «Всё об АСУ». Попробуйте произнести быстро и вслух.
Дора
Я очень не люблю тренд на достигаторство, мне кажется, мы слишком в него заигрались. Я сужу об этом по количеству депрессий и предновогодних выгораний среди моих друзей и знакомых. Мне кажется, что подведение итогов перед Новым годом — это продолжение этого тренда, получение публичного одобрения достигнутому за год. Будем больше достигать, чтобы получать больше одобрения.
Поэтому несколько лет назад я придумал делать перед Новым годом нечто совсем противоположное — показывать свои небольшие недостатки или провалы. Ничего скандального, просто
Сегодня на арене моё постыдное удовольствие.
Мои музыкальные вкусы достаточно разнообразны, но я стараюсь держаться в рамках хорошего вкуса. Это не требует
Иногда, после дня в офисе, когда я еду в такси, мне совсем тяжело и мозгу хочется расслабиться, я ставлю
UnSnow 2
Полтора десятилетия назад я написал скрипт «UnSnow», выключающий снежинки, которыми иногда украшают сайты. Мне очень нравится Новый год и новогодняя движуха, но эти снежинки частенько раздражают, тем более, что их нередко делают крупными и навязчивыми.
За столько лет способы, которыми фронтендеры добавляют на сайт снежинки, сильно изменились, поэтому прежний скрипт перестал работать, но снежинки никуда не делись. Так как за эти годы никто не поднял упавшее знамя борьбы с визуальным безумием, придётся мне.
Новая версия скрипта можем замедлять некоторые сайты, зато, кажется, справляется с любыми случаями падения вкуса. В браузер скрипт можно установить при помощи плагина Tampermonkey или любого другого, умеющего выполнять UserScript.
// ==UserScript==
// @name UnSnow
// @author Evgeny Stepanischev aka Bolk
// @version 2024-12-31
// @namespace /files/unsnow2.js
// @description Turn off stupid snow
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
if (window.location.hostname === 'aliexpress.ru') {
return;
}
Array.from(document.querySelectorAll('*')).forEach(e => {
for (let a of e.attributes) {
if (/(?<!un)snow/i.test(a.name + a.value)) {
e.style = 'visibility:hidden;position:absolute;margin-left:-10000px;' +
'display:none;transform:translateX(-100vw);opacity:0';
}
}
});
})();