Книги: «Возвращение Синей Бороды»
Трудно сказать, почему я до сих пор сохранял веру в то, что Пелевин ещё напишет что-то такое, что однажды меня зацепит, — какую-то книгу, настолько важную, что надо немедленно хватать всё, что выходит из-под его пера, чтобы приобщиться к ней как можно скорее.
Многие говорят, что он давно исписался, я, наверное, с этим тоже согласен, но почему-то всё равно не бросал его читать.
Не скажу, что мне каждый раз приходилось делать над собой усилие: некоторые его вещи давались мне легче, другие труднее, но ни через одну я не продирался так, как через текст его свежей книги «Возвращение Синей Бороды». Тут я окончательно завяз. Примерно на половине я сообразил, что мне совершенно не хочется её дочитывать.
Я очень не люблю бросать книги, возможно это какая-то моя обсессия, но эту постараюсь бросить. Вместе с писателем и его неудачным спектаклем.
Трудно сказать, почему я до сих пор сохранял веру в то, что Пелевин ещё напишет что-то такое, что однажды меня зацепит, — какую-то книгу, настолько важную, что надо немедленно хватать всё, что выходит из-под его пера, чтобы приобщиться к ней как можно скорее.
Многие говорят, что он давно исписался, я, наверное, с этим тоже согласен, но почему-то всё равно не бросал его читать.
Не скажу, что мне каждый раз приходилось делать над собой усилие: некоторые его вещи давались мне легче, другие труднее, но ни через одну я не продирался так, как через текст его свежей книги «Возвращение Синей Бороды». Тут я окончательно завяз. Примерно на половине я сообразил, что мне совершенно не хочется её дочитывать.
Я очень не люблю бросать книги, возможно это какая-то моя обсессия, но эту постараюсь бросить. Вместе с писателем и его неудачным спектаклем.
Книга с Некрасова
Недели две назад приезжал в отпуск бывший казанский краевед. Когда-то мы с ним на этом хобби и сошлись, а несколько лет назад он совершенно изменил свою жизнь и место жительства. Надеялись пересечься побольше, но в итоге удалось увидеться и побродить по старой Казани только в мой обед.
Зашли в дом на Некрасова, куда меня приглашали когда-то осмотреть чердак перед расселением. Сейчас он совершенно брошен и медленно разрушается. Внутри следы бытования бомжей, которые, похоже, перестали уже там бывать из-за опасности обрушения — в месте их ночёвки провалилось перекрытие и рухнула одна стена.
Мы туда соваться, понятное дело, не стали, зашли в крепкую половину дома. На наше счастье бомжи не мёрзли — в одном из углов обнаружилась солидная стопка советских книг по химии, в которой нашлись две книги 1920-х годов. Мы их поделили поровну.
Мне достался первый томик «Химии жизни» 1923 года в отличном состоянии. Книжка редкая — тираж всего 3000 экземпляров, но вряд ли востребованная — думаю за сто с лишним лет её научная ценность упала ниже нуля.
Интересно, что её автор биохимик Владимир Сергеевич Садиков был в 1942-м году эвакуирован из Ленинграда к нам в Казань, где вскоре и скончался. Как знать, может эту книжку он привёз с собой.
На двух её страницах виден круглый штамп, но он сильно выцвел, мало что можно разобрать, кроме того, что это штамп какого-то института. Садиков успел поработать в нескольких ленинградских институтах, возможно это штамп одного из них. Но не исключено, что это может быть отметка нашего химического института, куда сам автор мог выслать в своё время книгу для ознакомления.
Недели две назад приезжал в отпуск бывший казанский краевед. Когда-то мы с ним на этом хобби и сошлись, а несколько лет назад он совершенно изменил свою жизнь и место жительства. Надеялись пересечься побольше, но в итоге удалось увидеться и побродить по старой Казани только в мой обед.
Зашли в дом на Некрасова, куда меня приглашали когда-то осмотреть чердак перед расселением. Сейчас он совершенно брошен и медленно разрушается. Внутри следы бытования бомжей, которые, похоже, перестали уже там бывать из-за опасности обрушения — в месте их ночёвки провалилось перекрытие и рухнула одна стена.
Мы туда соваться, понятное дело, не стали, зашли в крепкую половину дома. На наше счастье бомжи не мёрзли — в одном из углов обнаружилась солидная стопка советских книг по химии, в которой нашлись две книги 1920-х годов. Мы их поделили поровну.
Мне достался первый томик «Химии жизни» 1923 года в отличном состоянии. Книжка редкая — тираж всего 3000 экземпляров, но вряд ли востребованная — думаю за сто с лишним лет её научная ценность упала ниже нуля.
Интересно, что её автор биохимик Владимир Сергеевич Садиков был в 1942-м году эвакуирован из Ленинграда к нам в Казань, где вскоре и скончался. Как знать, может эту книжку он привёз с собой.
На двух её страницах виден круглый штамп, но он сильно выцвел, мало что можно разобрать, кроме того, что это штамп какого-то института. Садиков успел поработать в нескольких ленинградских институтах, возможно это штамп одного из них. Но не исключено, что это может быть отметка нашего химического института, куда сам автор мог выслать в своё время книгу для ознакомления.
👍3
Коммунистический массив
Я тут в мемах, которые кинули бывшие коллеги, увидел «коммунистическую сортировку» — она каждому присваивает среднее значение, и не смог пройти мимо. Написал «коммунистический массив»:
Он делает всех равными и перераспределяет блага автоматически:
Я тут в мемах, которые кинули бывшие коллеги, увидел «коммунистическую сортировку» — она каждому присваивает среднее значение, и не смог пройти мимо. Написал «коммунистический массив»:
class CommunistArray extends \ArrayObject
{
public function __construct(array $array = [])
{
parent::__construct(self::createCommunistArray($array));
}
public function offsetSet(mixed $key, mixed $value): void
{
parent::offsetSet($key, $value);
$this->redistribute();
}
public function offsetUnset(mixed $key): void
{
$first = $this->getIterator()->key();
if ($first !== null) {
$this[$first] += $this[$key];
parent::offsetUnset($key);
$this->redistribute();
}
}
private static function createCommunistArray(array $array): array
{
if ($array) {
$avg = array_sum($array) / sizeof($array);
return array_fill_keys(array_keys($array), $avg);
}
return [];
}
private function redistribute(): void
{
(void) $this->exchangeArray(self::createCommunistArray((array) $this));
}
}
Он делает всех равными и перераспределяет блага автоматически:
$comrades = new CommunistArray([0b1, 0o0, 3e1, 0x45]);
print_r($comrades); # 25, 25, 25, 25
$comrades[2] = 4;
print_r($comrades); # 19.75, 19.75, 19.75, 19.75
unset($comrades[0]);
print_r($comrades); # 24.6875, 24.6875, 24.6875
😁8🫡1
Семидесятипятилетнее вино
Папе в марте исполнилось 75 лет — юбилей и довольно значительная дата. Поэтому хотелось поздравить его как-то небанально. Они с мамой всегда в начале мая приезжают к нам в гости из Лениногорска, и мы с братишкой хотели по приезде чем-нибудь его удивить, но всю голову сломали.
С идеей выручила жена — папа хорошо относится к качественному вину, вот она и предложила найти ему бутылочку вина семидесятипятилетней выдержки. Мне сразу показалось, что это шикарный подарок, но найти его в Казани оказалось нереально.
Хорошо, что у нас есть интернет! Искомое нашлось на одном из сайтов, правда там ничего не было сказано про доставку, но после звонка и почти двухчасового обсуждения всех деталей по «Телеграму» вино было упаковано и в тот же день поехало в Казань.
Я сильно переживал как оно доедет — консультант в магазине сказал, что не все бутылки могут пережить транспортировку, поскольку в некоторых бывают трещины. Он выбрал без видимых трещин и тщательно упаковал, но я всё равно волновался.
Доехало всё шикарно, в целостности и сохранности. Сегодня подарок вручили, надеюсь и до Лениногорска он доберётся без эксцессов.
Папе в марте исполнилось 75 лет — юбилей и довольно значительная дата. Поэтому хотелось поздравить его как-то небанально. Они с мамой всегда в начале мая приезжают к нам в гости из Лениногорска, и мы с братишкой хотели по приезде чем-нибудь его удивить, но всю голову сломали.
С идеей выручила жена — папа хорошо относится к качественному вину, вот она и предложила найти ему бутылочку вина семидесятипятилетней выдержки. Мне сразу показалось, что это шикарный подарок, но найти его в Казани оказалось нереально.
Хорошо, что у нас есть интернет! Искомое нашлось на одном из сайтов, правда там ничего не было сказано про доставку, но после звонка и почти двухчасового обсуждения всех деталей по «Телеграму» вино было упаковано и в тот же день поехало в Казань.
Я сильно переживал как оно доедет — консультант в магазине сказал, что не все бутылки могут пережить транспортировку, поскольку в некоторых бывают трещины. Он выбрал без видимых трещин и тщательно упаковал, но я всё равно волновался.
Доехало всё шикарно, в целостности и сохранности. Сегодня подарок вручили, надеюсь и до Лениногорска он доберётся без эксцессов.
👍10🔥6
ИИ: Brainfuck
Три года назад я в шутку предлагал программистам переходить на «Брейнфак» — эзотерический язык программирования из восьми конструкций, который плохо давался нейросеткам. Что-то похожее на программу на этом языке они писали, но получался мусор.
Я пропустил момент, когда модели научились на нём писать. Буквально вчера догадался снова попробовать, оказалось — могут! Программу на скриншоте мне «Курсор» написал в режиме «Авто», где выбираются, в основном, слабые модели. Топовые справляются даже с такими заданиями как написать несложный эмулятор командной строки с несколькими основными командами и небольшой файловой системой!
Для человека это уже какой-то запредельный уровень. Если бы я решал эту задачу, я бы написал себе сначала какой-нибудь макроязык с трансляцией в «Брейнфак» и уже на нём написал то, что требуется.
Две вещи, с которыми модели ещё не справляются — это написание «квайна» (программы, которая выводит сама себя) и оптимизация программ на «Брейнфаке» по размеру. Даже топовые модели наотрез у меня отказываются такое писать. Даже после прямого приказа.
Интересно будет помучить этой задачкой новую модель «Антропика», которая должна появиться летом — я считаю их модели лучшими, хотя их последний «Опус» несколько разочаровал.
Три года назад я в шутку предлагал программистам переходить на «Брейнфак» — эзотерический язык программирования из восьми конструкций, который плохо давался нейросеткам. Что-то похожее на программу на этом языке они писали, но получался мусор.
Я пропустил момент, когда модели научились на нём писать. Буквально вчера догадался снова попробовать, оказалось — могут! Программу на скриншоте мне «Курсор» написал в режиме «Авто», где выбираются, в основном, слабые модели. Топовые справляются даже с такими заданиями как написать несложный эмулятор командной строки с несколькими основными командами и небольшой файловой системой!
Для человека это уже какой-то запредельный уровень. Если бы я решал эту задачу, я бы написал себе сначала какой-нибудь макроязык с трансляцией в «Брейнфак» и уже на нём написал то, что требуется.
Две вещи, с которыми модели ещё не справляются — это написание «квайна» (программы, которая выводит сама себя) и оптимизация программ на «Брейнфаке» по размеру. Даже топовые модели наотрез у меня отказываются такое писать. Даже после прямого приказа.
Интересно будет помучить этой задачкой новую модель «Антропика», которая должна появиться летом — я считаю их модели лучшими, хотя их последний «Опус» несколько разочаровал.
Тетрис» на Brainfuck
Ну разумеется я вчера не смог уснуть без того, чтобы не посмотреть что ещё мог бы написать ИИ на «Брейнфаке»! Попробовал написать «Тетрис», тем более что у меня были готовые идеи как это сделать. Правда для этого пришлось модифицировать интерпретатор. Свой собственным, разумеется, который я начал писать ещё в 2001-м году, надо бы про него рассказать тоже однажды.
Дело в том, что у «Брейнфака» нет рандомизации и ввод устроен очень просто — есть инструкцию чтения символа и всё. Правда сам язык не определяет подробности чтения символа, поэтому реализации отличаются. В основном авторы интерпретаторов делают буферизированный ввод, дожидаясь нажатия кнопки «Ввод». Правда тут тоже есть нюансы — где-то можно ввести строку, а где-то «Ввод» надо нажимать после введения каждого символа.
Чтобы приступить к «Тетрису» пришлось сделать две модификации.
Во-первых, ввести команду
Во-вторых, я добавил специальный режим опроса клавиатуры — неблокирующее чтение. Мы передаём программе весь ввод пользователя сразу, а если он ничего не вводил, записываем в текущую ячейку ноль.
Все расширения я сделал включаемыми и отключаемыми при помощи ключей интерпретатора, тем более у меня их уже и так было немало — некоторые существующие программы отличаются в своих ожиданиях относительно деталей реализации.
Чтобы каждый раз не вспоминать какие ключи нужны программе, я придумал способ как их указывать — если в начале программы на «Брейнфаке» стоит обычный шебанг, я беру параметры интерпретатора оттуда.
Как легко догадаться по скриншотам, нейросеть (я использовал «ГПТ-5.5») отлично справилась с задачей. Но что интересно, чтобы это сделать она реализовала ровно ту идею, про которую я писал в прошлый раз — написала генератор на ПХП, при помощи которого сгенерировала программу на «Брейнфаке». Немудрено — программа получилась монументальной — под сотню мегабайт в первой попытке.
Я даже сделал в своём интерпретаторе поддержку сжатия исходников. Наверное никому раньше не приходило в голову этим заниматься — как правило программы на «Брейнфаке» пишут люди и до таких размеров они их не доводят.
Трансляция такого огромного файла и применение оптимизаций занималось около 15—20 секунд на моём ноутбуке, так что пришлось применить ряд оптимизаций — немного переписать парсер интерпрератора, сделать кеширование и поработать над уменьшением размера кода «Тетриса».
«Тетрис» работает в консоли и, надеюсь, никому не надо объяснять, что для раскрашивания блоков и позиционирования тут широко применяются анси-коды, я их использую чуть ли не в каждой консольной программе, вряд ли кого-то это удивит.
Единственное о чём надо рассказать — как регулируется скорость игры. В «Брейнфаке» нет ничего, чтобы создавать паузы заданной длительности, но некоторые программы работают ощутимо долго. Хотя у меня и оптимизирующий интерпретатор, всё оптимизировать он не может. Поэтому мы с нейросетью просто «на глазок» подобрали код, который достаточно плохо оптимизируется и тормозит на моём ноутбуке ровно насколько, чтобы играть было комфортно.
Ну разумеется я вчера не смог уснуть без того, чтобы не посмотреть что ещё мог бы написать ИИ на «Брейнфаке»! Попробовал написать «Тетрис», тем более что у меня были готовые идеи как это сделать. Правда для этого пришлось модифицировать интерпретатор. Свой собственным, разумеется, который я начал писать ещё в 2001-м году, надо бы про него рассказать тоже однажды.
Дело в том, что у «Брейнфака» нет рандомизации и ввод устроен очень просто — есть инструкцию чтения символа и всё. Правда сам язык не определяет подробности чтения символа, поэтому реализации отличаются. В основном авторы интерпретаторов делают буферизированный ввод, дожидаясь нажатия кнопки «Ввод». Правда тут тоже есть нюансы — где-то можно ввести строку, а где-то «Ввод» надо нажимать после введения каждого символа.
Чтобы приступить к «Тетрису» пришлось сделать две модификации.
Во-первых, ввести команду
@, которая записывает случайное число в текущую ячейку («Брейнфак» всё сохраняет в ячейках, двигаясь по ней при помощи специальных команд). В таком расширении языка нет ничего необычного — когда он был на волне популярности, ему постоянно придумывали всякие расширения.Во-вторых, я добавил специальный режим опроса клавиатуры — неблокирующее чтение. Мы передаём программе весь ввод пользователя сразу, а если он ничего не вводил, записываем в текущую ячейку ноль.
Все расширения я сделал включаемыми и отключаемыми при помощи ключей интерпретатора, тем более у меня их уже и так было немало — некоторые существующие программы отличаются в своих ожиданиях относительно деталей реализации.
Чтобы каждый раз не вспоминать какие ключи нужны программе, я придумал способ как их указывать — если в начале программы на «Брейнфаке» стоит обычный шебанг, я беру параметры интерпретатора оттуда.
Как легко догадаться по скриншотам, нейросеть (я использовал «ГПТ-5.5») отлично справилась с задачей. Но что интересно, чтобы это сделать она реализовала ровно ту идею, про которую я писал в прошлый раз — написала генератор на ПХП, при помощи которого сгенерировала программу на «Брейнфаке». Немудрено — программа получилась монументальной — под сотню мегабайт в первой попытке.
Я даже сделал в своём интерпретаторе поддержку сжатия исходников. Наверное никому раньше не приходило в голову этим заниматься — как правило программы на «Брейнфаке» пишут люди и до таких размеров они их не доводят.
Трансляция такого огромного файла и применение оптимизаций занималось около 15—20 секунд на моём ноутбуке, так что пришлось применить ряд оптимизаций — немного переписать парсер интерпрератора, сделать кеширование и поработать над уменьшением размера кода «Тетриса».
«Тетрис» работает в консоли и, надеюсь, никому не надо объяснять, что для раскрашивания блоков и позиционирования тут широко применяются анси-коды, я их использую чуть ли не в каждой консольной программе, вряд ли кого-то это удивит.
Единственное о чём надо рассказать — как регулируется скорость игры. В «Брейнфаке» нет ничего, чтобы создавать паузы заданной длительности, но некоторые программы работают ощутимо долго. Хотя у меня и оптимизирующий интерпретатор, всё оптимизировать он не может. Поэтому мы с нейросетью просто «на глазок» подобрали код, который достаточно плохо оптимизируется и тормозит на моём ноутбуке ровно насколько, чтобы играть было комфортно.
🔥4
Левши и ручки
Мои прописи из первого класса. Я учился в 1 «Д» средней школы №7 города Лениногорска
В первом классе я был левшой, как и папа. Не помню в точности, когда меня начали переучивать, помню только, что переучивали в школе, в начальных классах. Кажется именно тогда у меня испортился почерк. Я начал снова красиво писать к концу школы, потом позже в техникуме перешёл на чертёжный шрифт — очень любил черчение, но позже снова вернулся к своему более врачебному варианту.
Никогда не понимал почему меня переучили, думаю и родителям особо не объясняли — надо и всё, время было такое. Сегодня утром наткнулся на одно место в книге, которую сейчас читаю:
Возможно когда-то это было один из двух аргументов, почему нужно переучивать левшей. Второй я тоже знаю, он ещё древнее — ученики в школах всегда сидят справа от окон, левая рука заслоняет свет от окна. Почему этот аргумент так долго был в ходу, бог его знает. Электрическое освещение с нами уже около века.
Я начинал учиться в 1984 году, перьевые ручки пропали в школах примерно к середине 70-х, но возможно методику обновить забыли и она диктовала переучивать левшей по старой памяти — из-за освещения и перьевых ручек, которые ломались.
Мои прописи из первого класса. Я учился в 1 «Д» средней школы №7 города Лениногорска ↓↓
Мои прописи из первого класса. Я учился в 1 «Д» средней школы №7 города Лениногорска
В первом классе я был левшой, как и папа. Не помню в точности, когда меня начали переучивать, помню только, что переучивали в школе, в начальных классах. Кажется именно тогда у меня испортился почерк. Я начал снова красиво писать к концу школы, потом позже в техникуме перешёл на чертёжный шрифт — очень любил черчение, но позже снова вернулся к своему более врачебному варианту.
Никогда не понимал почему меня переучили, думаю и родителям особо не объясняли — надо и всё, время было такое. Сегодня утром наткнулся на одно место в книге, которую сейчас читаю:
Когда пишешь ручкой задом наперед, это погибель для перьев — у левшей та же проблема, все время перья ломаются.— из книги «Среди других» Джо Уолтон.
Возможно когда-то это было один из двух аргументов, почему нужно переучивать левшей. Второй я тоже знаю, он ещё древнее — ученики в школах всегда сидят справа от окон, левая рука заслоняет свет от окна. Почему этот аргумент так долго был в ходу, бог его знает. Электрическое освещение с нами уже около века.
Я начинал учиться в 1984 году, перьевые ручки пропали в школах примерно к середине 70-х, но возможно методику обновить забыли и она диктовала переучивать левшей по старой памяти — из-за освещения и перьевых ручек, которые ломались.
Мои прописи из первого класса. Я учился в 1 «Д» средней школы №7 города Лениногорска ↓↓
«Космонавт — мотоциклетный мастер»
Я много раз писал о том, что есть ряд фильмов и книг, застрявших в моей памяти, которые я едва помню, и почему-то мне плохо от того, что я не могу вспомнить, что это за фильмы или книги. Слава нейросетям — многое из этого списка удалось разыскать, но самые крепкие орешки до сих пор зудят в моей голове: нейросети тут помочь не смогли.
Сегодня благодаря одному из читателей почти закрылся ещё один мой гештальт. «Почти» — потому что книгу я ещё не заказал, но зато теперь знаю её название и даже смог прочесть из неё несколько рассказов в интернете.
Это детская книжка Витаутаса Казевича Петкявичюса «Космонавт — мотоциклетный мастер», которая была издана в 1983 году в переводе с литовского.
Несмотря на то, что я помнил из неё несколько дословных фраз, никак не мог её найти, видимо нигде в интернете нет её текста. Я давно планировал обратиться к читателям в отдельном посте, вдруг кто-то сможет вспомнить, а тут так повезло.
Я много раз писал о том, что есть ряд фильмов и книг, застрявших в моей памяти, которые я едва помню, и почему-то мне плохо от того, что я не могу вспомнить, что это за фильмы или книги. Слава нейросетям — многое из этого списка удалось разыскать, но самые крепкие орешки до сих пор зудят в моей голове: нейросети тут помочь не смогли.
Сегодня благодаря одному из читателей почти закрылся ещё один мой гештальт. «Почти» — потому что книгу я ещё не заказал, но зато теперь знаю её название и даже смог прочесть из неё несколько рассказов в интернете.
Это детская книжка Витаутаса Казевича Петкявичюса «Космонавт — мотоциклетный мастер», которая была издана в 1983 году в переводе с литовского.
Несмотря на то, что я помнил из неё несколько дословных фраз, никак не мог её найти, видимо нигде в интернете нет её текста. Я давно планировал обратиться к читателям в отдельном посте, вдруг кто-то сможет вспомнить, а тут так повезло.
Эффект Шерлока Холмса
Есть такой поразительный эффект; думаю, у него наверняка есть какое-то название, но не вижу смысла им интересоваться. Если ты умеешь находить неточности в деталях какого-то явления, у тебя возникает ложное ощущение, будто ты глубоко понимаешь всю тему в целом.
Все мы, наверное, читали тот рассказ Конана Дойла про Шерлока Холмса, где великий сыщик попытался совершить преступление, но оказалось, что он в этом плох. Думаю, тот рассказ, как и меня, ничему не научил никого из читающих эти строки.
Например, я довольно давно понял, что у меня неплохо получается вставать на место неподготовленного пользователя и находить огрехи в интерфейсах. Это умение помогало мне на прошлой работе в «Яндексе», помогает и сейчас: я вхожу в группу развития нашего продукта и чувствую себя там полезным.
Я несколько раз в жизни настолько преисполнялся уверенности, что, раз я вижу, чем дизайн плох, значит, смогу создать хороший. Все мои три — или около того — попытки довольно жёстко ставили меня на место: критикую я хорошо, а самостоятельно делаю дизайн плохо.
Есть такой поразительный эффект; думаю, у него наверняка есть какое-то название, но не вижу смысла им интересоваться. Если ты умеешь находить неточности в деталях какого-то явления, у тебя возникает ложное ощущение, будто ты глубоко понимаешь всю тему в целом.
Все мы, наверное, читали тот рассказ Конана Дойла про Шерлока Холмса, где великий сыщик попытался совершить преступление, но оказалось, что он в этом плох. Думаю, тот рассказ, как и меня, ничему не научил никого из читающих эти строки.
Например, я довольно давно понял, что у меня неплохо получается вставать на место неподготовленного пользователя и находить огрехи в интерфейсах. Это умение помогало мне на прошлой работе в «Яндексе», помогает и сейчас: я вхожу в группу развития нашего продукта и чувствую себя там полезным.
Я несколько раз в жизни настолько преисполнялся уверенности, что, раз я вижу, чем дизайн плох, значит, смогу создать хороший. Все мои три — или около того — попытки довольно жёстко ставили меня на место: критикую я хорошо, а самостоятельно делаю дизайн плохо.
👍1
Мокко
Я тут на днях читал архивы журнала «Огонёк», пытался понять, когда названия месяцев стали писать с маленькой буквы. Я был убеждён, что до революции названия месяцев всегда писались с большой, на манер английского языка. Оказалось, это не так: во всём архиве месяцы написаны с маленькой, начиная с XIX века.
Но речь не об этом. В выпуске № 6 за 1941 год в одной из заметок попалось слово «мокко», которое выглядит чистым анахронизмом.
Мокко сейчас — синоним моккачино, то есть смеси эспрессо, горячего молока и шоколада, сложно представить, что о его существовании знали в СССР в 40-е. Оказалось, что тогда это был просто сорт арабики из Йемена, названный в честь порта Моха.
Я тут на днях читал архивы журнала «Огонёк», пытался понять, когда названия месяцев стали писать с маленькой буквы. Я был убеждён, что до революции названия месяцев всегда писались с большой, на манер английского языка. Оказалось, это не так: во всём архиве месяцы написаны с маленькой, начиная с XIX века.
Но речь не об этом. В выпуске № 6 за 1941 год в одной из заметок попалось слово «мокко», которое выглядит чистым анахронизмом.
Мокко сейчас — синоним моккачино, то есть смеси эспрессо, горячего молока и шоколада, сложно представить, что о его существовании знали в СССР в 40-е. Оказалось, что тогда это был просто сорт арабики из Йемена, названный в честь порта Моха.
❤2👍1
Забавные часы
Купил себе на «Авито» бывший платёжный терминал — на борту «Андроид», так что мысль была запрограммировать себе (при помощи нейросетей, разумеется) какую-нибудь несложную развлекуху, типа «Мира в бутылке», чтобы на моём столе что-нибудь постоянно двигалось.
Пока у меня что-то руки до этого не дошли, а если уж быть совсем точным, то когда терминал приехал, проект, ради которого я его купил, что-то перестал меня вдохновлять, так что терминал просто одиноко светился по ночам, бесполезно расходуя электричество.
В итоге, когда я в очередной раз засиделся за каким-то проектом, мне пришло в голову, что было бы неплохо, если бы он напоминал бы мне сколько сейчас времени. Признаться, я не особо за ним слежу, часы в углу экрана как-то не бросаются в глаза, а из терминала получится отличное напоминание тому, что пора бы и честь знать.
Скачал с «Гуглфонтса» 1500 случайных шрифтов, выдрал из них цифры и сварганил приложение на «Флаттере», которое выводит цифры случайным шрифтом и в случайном контрастном цвете. В приложении два фона — светлый и тёмный, выбираются автоматически в зависимости от освещённости, которая измеряется камерой.
Проект выложен у меня на «Гитхабе».
Купил себе на «Авито» бывший платёжный терминал — на борту «Андроид», так что мысль была запрограммировать себе (при помощи нейросетей, разумеется) какую-нибудь несложную развлекуху, типа «Мира в бутылке», чтобы на моём столе что-нибудь постоянно двигалось.
Пока у меня что-то руки до этого не дошли, а если уж быть совсем точным, то когда терминал приехал, проект, ради которого я его купил, что-то перестал меня вдохновлять, так что терминал просто одиноко светился по ночам, бесполезно расходуя электричество.
В итоге, когда я в очередной раз засиделся за каким-то проектом, мне пришло в голову, что было бы неплохо, если бы он напоминал бы мне сколько сейчас времени. Признаться, я не особо за ним слежу, часы в углу экрана как-то не бросаются в глаза, а из терминала получится отличное напоминание тому, что пора бы и честь знать.
Скачал с «Гуглфонтса» 1500 случайных шрифтов, выдрал из них цифры и сварганил приложение на «Флаттере», которое выводит цифры случайным шрифтом и в случайном контрастном цвете. В приложении два фона — светлый и тёмный, выбираются автоматически в зависимости от освещённости, которая измеряется камерой.
Проект выложен у меня на «Гитхабе».
👍10
Brainfuck: оптимизирующий интепретатор
Удивительно, как некоторые бесполезные идеи иногда накрепко захватывают наш ум. Я тут в качестве примера хотел привести игру «Жизнь» Конвея, но при всей своей кажущейся бесполезности она в своё время сильно продвинула математику.
Меня в своё время захватила идея языка программирования «Брейнфак». Оглядываясь назад, думаю, её тоже нельзя объявить полностью бесполезной: в своё время я немало поломал голову над созданием оптимизирующего интерпретатора для этого языка.
Для начала — про сам язык. Я узнал о нём примерно в 2000 году, когда была мода на так называемые «эзотерические языки» — языки, разработанные в качестве шутки или для исследования какой-нибудь абсурдной идеи. «Брейнфак» как раз из таких: в нём всего восемь инструкций, но при этом это полноценный язык. Нейросеть мне на нём даже написала «Тетрис».
«Брейнфак» оперирует ячейкой в массиве, индекс которой можно сдвигать при помощи конструкций
Кроме того, в «Брейнфаке» можно организовывать циклы при помощи парных инструкций
Так как это единственная управляющая конструкция, циклов в обычной программе на «Брейнфаке» — огромное количество. Например, вот так выглядит минимальный «квайн», программа, которая при запуске выведет саму себя:
Я задумался об оптимизации программ на «Брейнфаке» ещё в начале 2000-х, запрограммировав свои идеи на ДжаваСкрипте.
Первые мысли были вполне очевидными — объединять одинаковые конструкции. Вместо того чтобы последовательно инкрементировать ячейку десять раз, на этапе предпроцессинга можно сразу подсчитать количество «плюсов» и прибавить сколько требуется.
Потом я начал транслировать идиомы Brainfuck напрямую в ДжаваСкрипт, что тоже заметно повысило производительность. Например, конструкцию
Настоящий прорыв случился, когда я понял: так можно оптимизировать не только отдельные идиомы, а вообще все циклы без ввода-вывода, если после выполнения цикла указатель возвращается в ту же ячейку, с которой начал. Например,
В дальнейшем я сильно развил эту идею. И если простейшие оптимизации встречаются и в реализациях других авторов, то настолько глубоко, насколько мне известно, не копал никто.
В середине 2000-х я переписал свой интерпретатор на ПХП, сохранив основной принцип, и время от времени ненадолго загорался желанием что-нибудь в нём улучшить. Недавно я полностью переписал его с помощью нейросетей, перевёл на свежую версию ПХП, покрыл тестами и так далее. Но сами принципы оптимизации остались теми же — придуманные мной ещё в 2000-е.
Проект лежит у меня на «ГитХабе».
Удивительно, как некоторые бесполезные идеи иногда накрепко захватывают наш ум. Я тут в качестве примера хотел привести игру «Жизнь» Конвея, но при всей своей кажущейся бесполезности она в своё время сильно продвинула математику.
Меня в своё время захватила идея языка программирования «Брейнфак». Оглядываясь назад, думаю, её тоже нельзя объявить полностью бесполезной: в своё время я немало поломал голову над созданием оптимизирующего интерпретатора для этого языка.
Для начала — про сам язык. Я узнал о нём примерно в 2000 году, когда была мода на так называемые «эзотерические языки» — языки, разработанные в качестве шутки или для исследования какой-нибудь абсурдной идеи. «Брейнфак» как раз из таких: в нём всего восемь инструкций, но при этом это полноценный язык. Нейросеть мне на нём даже написала «Тетрис».
«Брейнфак» оперирует ячейкой в массиве, индекс которой можно сдвигать при помощи конструкций
< и >. Кроме того, ячейку можно декрементировать (-), инкрементировать (+), вывести на экран символ, код которой записан в ячейке (.), либо записать код введённого с клавиатуры символа (,).Кроме того, в «Брейнфаке» можно организовывать циклы при помощи парных инструкций
[ и ] неограниченной вложенности. [ проверяет значение текущей ячейки, если там не ноль, выполняет тело цикла. Например, [-] записывает в текущую ячейку ноль, декрементируя значение в цикле.Так как это единственная управляющая конструкция, циклов в обычной программе на «Брейнфаке» — огромное количество. Например, вот так выглядит минимальный «квайн», программа, которая при запуске выведет саму себя:
->++>+++>+>+>++>>+>+>+++>>+>+>++>+++>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>+
+>>>+++>>>>>+++>+>>>>>>>>>>>>>>>>>>>>>>+++>>>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+
>++>+++>>>+>+>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>+++>+>+++>+>
++>+++>++>>+>+>++>+++>+>+>>+++>>>+++>+>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+
++>>+[[>>+[>]+>+[<]<-]>>[>]<+<+++[<]<<+]>>+[>]+++[++++++++++>++[-<++++++++++++++
++>]<.<-<]
Я задумался об оптимизации программ на «Брейнфаке» ещё в начале 2000-х, запрограммировав свои идеи на ДжаваСкрипте.
Первые мысли были вполне очевидными — объединять одинаковые конструкции. Вместо того чтобы последовательно инкрементировать ячейку десять раз, на этапе предпроцессинга можно сразу подсчитать количество «плюсов» и прибавить сколько требуется.
Потом я начал транслировать идиомы Brainfuck напрямую в ДжаваСкрипт, что тоже заметно повысило производительность. Например, конструкцию
[-] можно заменить простой записью нуля в текущую ячейку — без выполнения цикла.Настоящий прорыв случился, когда я понял: так можно оптимизировать не только отдельные идиомы, а вообще все циклы без ввода-вывода, если после выполнения цикла указатель возвращается в ту же ячейку, с которой начал. Например,
[->+++++<] превращается во что-то вроде d[i+1] = d[i] * 5; d[i] = 0.В дальнейшем я сильно развил эту идею. И если простейшие оптимизации встречаются и в реализациях других авторов, то настолько глубоко, насколько мне известно, не копал никто.
В середине 2000-х я переписал свой интерпретатор на ПХП, сохранив основной принцип, и время от времени ненадолго загорался желанием что-нибудь в нём улучшить. Недавно я полностью переписал его с помощью нейросетей, перевёл на свежую версию ПХП, покрыл тестами и так далее. Но сами принципы оптимизации остались теми же — придуманные мной ещё в 2000-е.
Проект лежит у меня на «ГитХабе».
🔥2
Мурчащий котик: результат
Кто-то в комментариях просил показать, каким получился Мурчащий котик — дочкин школьный проект кота. Как по мне, вышло великолепно. Спасибо бабушке, моей маме: в 90-е она много шила и теперь вспомнила прежние навыки. Нашить на такую небольшую игрушку шерсть очень непросто.
Одно меня расстраивает — в проекте дочки мало участвовала сама дочка. Выбрала модель для печати, глаза и нос, по сути — всё. По-прежнему считаю, что это вина школы — преподаватель должен помогать ребёнку выбирать проект по силам.
Кто-то в комментариях просил показать, каким получился Мурчащий котик — дочкин школьный проект кота. Как по мне, вышло великолепно. Спасибо бабушке, моей маме: в 90-е она много шила и теперь вспомнила прежние навыки. Нашить на такую небольшую игрушку шерсть очень непросто.
Одно меня расстраивает — в проекте дочки мало участвовала сама дочка. Выбрала модель для печати, глаза и нос, по сути — всё. По-прежнему считаю, что это вина школы — преподаватель должен помогать ребёнку выбирать проект по силам.
❤2
Ева говорит
Обсуждаем нового тьютора в школе, которую взяли на место уволившейся прежней:
— Дочка, как тебе новый тьютор?
— Мне она не очень нравится…
— А что такое?..
— Ну понимаешь, она не очень-то вовлечённая. Если Э. И. (это учитель) или Г. И. (прежний тьютор) кидаешь мячик своих эмоций, они кидают его в ответ, а этот тьютор как будто шагает в сторону и мячик падает на пол…
февраль 2026
⁂
В школе заболела учительница, её заменяет другая, спрашиваю Еву нравится ли ей новая учительница:
— Нет, папочка, не очень!..
— Почему?
— Ну знаешь, она слишком строгая, всё контролирует, как будто каждый наш шаг — решающий шаг в будущее!
21.02.2026
⁂
Мы в тот день летали в Стамбул, прилетели очень поздно, пока ехали в отель, Ева уснула. Стараемся её растормошить, так как через несколько минут нам выходить:
— Ева, ну смотри какая красота! Какое красивое здание!
— Угу, — нехотя открывая один глаз и щурясь, — тут самое время появиться кроватке, но что-то я её не вижу!
21.02.2026
⁂
Выходит из детской с целой кучей лошадок, вырезанных из бумаги и раскрашенных:
— Уф, папочка, я так устала их вырезать!
Я, знаю, что она опять это скорее всего делала не за столом, а на полу, поэтому и чувствует себя уставшей:
— Может тебе это надо было не на полу делать, давай, может, я тебе стул отрегулирую, если неудобно?
— Нет, я сейчас ничего этого не хочу, хочу чтобы ты посмотрел и восхитился!
28.03.2026
⁂
Выходные, я у себя в кабинете, наблюдаю за экспериментом на дашборде, дочка выходит из комнаты, видит меня:
— Пап, а есть что-нибудь вкусненькое?
— Да, там яблоки есть и мандарины…
Поворачивается в сторону кухонного стола, видит её любимые булочки с маком:
— Не-е-т, пожалуй, я возьму булочки. Будут и́х уминать и причитать как я с них толстею…
12.04.2026
⁂
У Евы выскочил очередной прыщ на носу, жена:
— Опять в тебя кто-то влюбился!
Дочка смеётся:
— В меня уже столько мальчиков втюрилось, сколько у нас в классе нет!
29.04.2026
⁂
Ева сегодня плохо себя чувствует, легла в моём кабинете и пробует уснуть:
— Пап, включи какую-нибудь свою лекцию, может я усну?
Через несколько минут:
— Надо было записать голос моего учителя по философии, у него очень спокойный голос, даже чрезмерно, я всегда на его уроках отлично спала!
11.05.2026
Обсуждаем нового тьютора в школе, которую взяли на место уволившейся прежней:
— Дочка, как тебе новый тьютор?
— Мне она не очень нравится…
— А что такое?..
— Ну понимаешь, она не очень-то вовлечённая. Если Э. И. (это учитель) или Г. И. (прежний тьютор) кидаешь мячик своих эмоций, они кидают его в ответ, а этот тьютор как будто шагает в сторону и мячик падает на пол…
февраль 2026
⁂
В школе заболела учительница, её заменяет другая, спрашиваю Еву нравится ли ей новая учительница:
— Нет, папочка, не очень!..
— Почему?
— Ну знаешь, она слишком строгая, всё контролирует, как будто каждый наш шаг — решающий шаг в будущее!
21.02.2026
⁂
Мы в тот день летали в Стамбул, прилетели очень поздно, пока ехали в отель, Ева уснула. Стараемся её растормошить, так как через несколько минут нам выходить:
— Ева, ну смотри какая красота! Какое красивое здание!
— Угу, — нехотя открывая один глаз и щурясь, — тут самое время появиться кроватке, но что-то я её не вижу!
21.02.2026
⁂
Выходит из детской с целой кучей лошадок, вырезанных из бумаги и раскрашенных:
— Уф, папочка, я так устала их вырезать!
Я, знаю, что она опять это скорее всего делала не за столом, а на полу, поэтому и чувствует себя уставшей:
— Может тебе это надо было не на полу делать, давай, может, я тебе стул отрегулирую, если неудобно?
— Нет, я сейчас ничего этого не хочу, хочу чтобы ты посмотрел и восхитился!
28.03.2026
⁂
Выходные, я у себя в кабинете, наблюдаю за экспериментом на дашборде, дочка выходит из комнаты, видит меня:
— Пап, а есть что-нибудь вкусненькое?
— Да, там яблоки есть и мандарины…
Поворачивается в сторону кухонного стола, видит её любимые булочки с маком:
— Не-е-т, пожалуй, я возьму булочки. Будут и́х уминать и причитать как я с них толстею…
12.04.2026
⁂
У Евы выскочил очередной прыщ на носу, жена:
— Опять в тебя кто-то влюбился!
Дочка смеётся:
— В меня уже столько мальчиков втюрилось, сколько у нас в классе нет!
29.04.2026
⁂
Ева сегодня плохо себя чувствует, легла в моём кабинете и пробует уснуть:
— Пап, включи какую-нибудь свою лекцию, может я усну?
Через несколько минут:
— Надо было записать голос моего учителя по философии, у него очень спокойный голос, даже чрезмерно, я всегда на его уроках отлично спала!
11.05.2026
❤🔥5
Забавные часы: утечка памяти
Обратил внимание, что мои «Забавные часы» иногда как будто вылетают: дважды по утрам я приходил, а на терминале — «Андроид», без часов. Я сразу заподозрил, что моё приложение «течёт»: накапливает ресурсы и не освобождает их, пока система его не прибивает из-за нехватки памяти.
Нейросеть мне на слово не поверила — я использовал ГПТ-5.5. Видимо, она уже начала подозревать, что человека не всегда стоит слушать. Упёрлась — и всё: «Нет, — говорит, — у тебя не утечки, это всё кеши приложения». Никаких моих приказов не слушалась. Пришлось запустить замеры на четыре часа и построить график потребления памяти.
Только после этого она начала разбираться в проблеме. Неожиданно оказалось, что причина — в компоненте работы с камерой фреймворка «Флаттер», на котором построено это приложение. Камера используется для мониторинга освещённости: в моём устройстве нет соответствующего датчика, поэтому приложение переключает фон, определяя уровень света с помощью камеры.
Как мы ни крутили этот модуль, за два дня работы с камерой ресурсы всё равно выедались подчистую. Пришлось заменить компонент на нативный для «Андроида».
Обратил внимание, что мои «Забавные часы» иногда как будто вылетают: дважды по утрам я приходил, а на терминале — «Андроид», без часов. Я сразу заподозрил, что моё приложение «течёт»: накапливает ресурсы и не освобождает их, пока система его не прибивает из-за нехватки памяти.
Нейросеть мне на слово не поверила — я использовал ГПТ-5.5. Видимо, она уже начала подозревать, что человека не всегда стоит слушать. Упёрлась — и всё: «Нет, — говорит, — у тебя не утечки, это всё кеши приложения». Никаких моих приказов не слушалась. Пришлось запустить замеры на четыре часа и построить график потребления памяти.
Только после этого она начала разбираться в проблеме. Неожиданно оказалось, что причина — в компоненте работы с камерой фреймворка «Флаттер», на котором построено это приложение. Камера используется для мониторинга освещённости: в моём устройстве нет соответствующего датчика, поэтому приложение переключает фон, определяя уровень света с помощью камеры.
Как мы ни крутили этот модуль, за два дня работы с камерой ресурсы всё равно выедались подчистую. Пришлось заменить компонент на нативный для «Андроида».
👍2❤1🤔1
Браузер «Арахна»
Вряд ли на свете много людей, которые в 2026 году добровольно пытаются выйти в интернет из ДОСа. Но меня эта идея почему-то всегда цепляла. Есть в этом что-то очень уютное: современный интернет, гигабитные сети, беспроводной доступ, — и рядом с этим чёрный экран,
Не то чтобы меня прямо сильно тянуло «пользоваться интернетом из ДОСа». Понятно, что практического смысла в этом почти никакого нет. Но как эксперимент — очень интересно. Я давно знал, что для ДОСа существуют браузеры. Наверное, даже не один. Значит, теоретически это всё можно собрать: поставить ДОС, настроить сеть, добыть TCP/IP-стек, запустить какой-нибудь браузер и посмотреть, как это вообще выглядит.
Сложностей, в общем-то, не так уж много. Главная — аккуратно собрать по всему интернету кучу старого софта, разложить его по каталогам и не перепутать, что должно грузиться в
Я наскоро состряпал виртуалку в 86Box, накатил туда MS-DOS 6.22, добавил драйвер сидирома, мышь, Volkov Commander и начал оживлять сеть. В качестве сетевой карты выбрал эмулируемую NE2000 — это такой классический вариант для подобных экспериментов. В 86Box удобно включить SLiRP, и тогда не надо отдельно городить мосты на хостовой машине: виртуальная ДОС-машина получает сеть как будто через маленький виртуальный роутер.
Дальше понадобились две вещи: пакетный драйвер для NE2000 и mTCP. Пакетный драйвер — это такая прослойка, которая даёт ДОС-программам доступ к сетевой карте. А mTCP уже даёт нормальные утилиты поверх TCP/IP: DHCP,
Софт пришлось собирать из разных мест. Почти всё нашлось на old-dos.ru, туда же сходил за Volkov Commander. Без него в ДОСе быстро становится тоскливо: можно, конечно, всё делать командами, но двухпанельный файловый менеджер сразу возвращает ощущение нормальной жизни. Для мыши поставил CuteMouse v2.1b4 — в первую очередь потому, что он маленький. В ДОСе это всё ещё имеет значение: каждый драйвер отъедает кусок базовой памяти, а её всего 640 КБ, и браузеру потом тоже где-то надо жить.
Отдельный маленький квест — освободить побольше базовой памяти. Может показаться, что 640 КБ — это просто анекдот про Билла Гейтса, но в мире ДОСа это очень важная штука. Поэтому HIMEM.SYS, EMM386 и прочее снова становятся не музейными словами, тут придётся всё настроить как надо.
Я вынес наверх всё, что получилось: драйвер сидирома,
После всех этих манипуляций mem стал показывать уже вполне приличную картину: около 609 КБ свободной базовой памяти и ДОС, живущий в HMA. Раньше с этим так много возились не потому что это было интересно, а потому что иначе программы могли просто не запуститься.
Сеть завелась неожиданно буднично. NE2000 загрузился почти сразу (в первой попытке я указал не совсем верные параметры), mTCP через DHCP получил настройки, после чего стало понятно, что ДОС-машина действительно видит внешний мир.
Самый странный момент — набирать
После этого я поставил браузер «Арахна». И вот тут эксперимент стал совсем прекрасным. Потому что это уже не просто «я настроил сеть». Это настоящий интернет.
Конечно, пользоваться этим всерьёз невозможно — браузер по современным меркам совсем примитивный, поддержки HTTPS нет, но посмотреть было интересно.
Вряд ли на свете много людей, которые в 2026 году добровольно пытаются выйти в интернет из ДОСа. Но меня эта идея почему-то всегда цепляла. Есть в этом что-то очень уютное: современный интернет, гигабитные сети, беспроводной доступ, — и рядом с этим чёрный экран,
AUTOEXEC.BAT, CONFIG.SYS и ощущение, что если где-то ошибёшься в одной цифре IRQ, то ничего не взлетит.Не то чтобы меня прямо сильно тянуло «пользоваться интернетом из ДОСа». Понятно, что практического смысла в этом почти никакого нет. Но как эксперимент — очень интересно. Я давно знал, что для ДОСа существуют браузеры. Наверное, даже не один. Значит, теоретически это всё можно собрать: поставить ДОС, настроить сеть, добыть TCP/IP-стек, запустить какой-нибудь браузер и посмотреть, как это вообще выглядит.
Сложностей, в общем-то, не так уж много. Главная — аккуратно собрать по всему интернету кучу старого софта, разложить его по каталогам и не перепутать, что должно грузиться в
CONFIG.SYS, что — в AUTOEXEC.BAT, а что надо запускать руками. Для усидчивого человека это не проблема, но процесс очень характерный: вроде бы ты просто хочешь открыть сайт, а в итоге сидишь и думаешь, какой драйвер мыши занимает меньше базовой памяти.Я наскоро состряпал виртуалку в 86Box, накатил туда MS-DOS 6.22, добавил драйвер сидирома, мышь, Volkov Commander и начал оживлять сеть. В качестве сетевой карты выбрал эмулируемую NE2000 — это такой классический вариант для подобных экспериментов. В 86Box удобно включить SLiRP, и тогда не надо отдельно городить мосты на хостовой машине: виртуальная ДОС-машина получает сеть как будто через маленький виртуальный роутер.
Дальше понадобились две вещи: пакетный драйвер для NE2000 и mTCP. Пакетный драйвер — это такая прослойка, которая даёт ДОС-программам доступ к сетевой карте. А mTCP уже даёт нормальные утилиты поверх TCP/IP: DHCP,
ping и прочие радости цивилизации. Я делал по одной из инструкций, только с поправками под свою конфигурацию.Софт пришлось собирать из разных мест. Почти всё нашлось на old-dos.ru, туда же сходил за Volkov Commander. Без него в ДОСе быстро становится тоскливо: можно, конечно, всё делать командами, но двухпанельный файловый менеджер сразу возвращает ощущение нормальной жизни. Для мыши поставил CuteMouse v2.1b4 — в первую очередь потому, что он маленький. В ДОСе это всё ещё имеет значение: каждый драйвер отъедает кусок базовой памяти, а её всего 640 КБ, и браузеру потом тоже где-то надо жить.
Отдельный маленький квест — освободить побольше базовой памяти. Может показаться, что 640 КБ — это просто анекдот про Билла Гейтса, но в мире ДОСа это очень важная штука. Поэтому HIMEM.SYS, EMM386 и прочее снова становятся не музейными словами, тут придётся всё настроить как надо.
Я вынес наверх всё, что получилось: драйвер сидирома,
MSCDEX, клавиатуру, мышь, сетевой драйвер. В CONFIG.SYS у меня в итоге появились HIMEM.SYS, EMM386, DOS=HIGH,UMB и DEVICEHIGH для части драйверов. В AUTOEXEC.BAT — загрузка SMARTDRV, путь к mTCP, русская кодовая страница, драйвер NE2000, DHCP и CuteMouse. Всё что можно загружается командой LH.После всех этих манипуляций mem стал показывать уже вполне приличную картину: около 609 КБ свободной базовой памяти и ДОС, живущий в HMA. Раньше с этим так много возились не потому что это было интересно, а потому что иначе программы могли просто не запуститься.
Сеть завелась неожиданно буднично. NE2000 загрузился почти сразу (в первой попытке я указал не совсем верные параметры), mTCP через DHCP получил настройки, после чего стало понятно, что ДОС-машина действительно видит внешний мир.
Самый странный момент — набирать
ping в чистом ДОСе. Оно не просто запускается, а реально пингует. Мозг немного сопротивляется.После этого я поставил браузер «Арахна». И вот тут эксперимент стал совсем прекрасным. Потому что это уже не просто «я настроил сеть». Это настоящий интернет.
Конечно, пользоваться этим всерьёз невозможно — браузер по современным меркам совсем примитивный, поддержки HTTPS нет, но посмотреть было интересно.
👍7
Программирование на одной GPU
Интересная штука встречается очень часто. Мне сложно её принять, хотя я понимаю, почему так произошло. Для людей нейросети слились в одно большое атомарное явление. Ну, знаете, как «учёные»: «Учёные заявили…». Какие учёные? Может, там биолог про математику говорит? Многим неважно, есть ли консенсус среди учёных по этому вопросу и насколько проверены данные, на основании которых «учёные заявили».
Так же и тут. Как будто бы многие считают, что нейросети одинаковые: видел одну — видел все. Разумеется, это не так. Они разные по размеру, а значит, и по способностям. У большинства есть специализация, они обучались на разных данных и обладают разным «опытом». И то, что вы можете развернуть у себя на ноутбуке, в подмётки не годится большинству из того, что есть в «облаках».
Мы недавно провели эксперимент среди нейросетей для программирования, которые можно развернуть на одной Nvidia H100. У неё 96 ГБ видеопамяти, и это сейчас один из самых главных критериев — размер памяти, а не мощность самой карты.
Даже в этом сегменте результаты сильно различаются. Мы попробовали следующие сети:
1. openai/gpt-oss-120b — четыре бита на параметр
2. Qwen/Qwen3-Coder-Next-FP8
3. zai-org/GLM-4.7-Flash
4. Qwen/Qwen3-Coder-30B-A3B-Instruct
5. gemma-4-31B-it
Среди этих почти одинаковых по параметрам сетей — выбивается только OSS со своими 120 миллиардами параметров, но в сильно урезанном виде — есть явный и безусловный лидер: Qwen3-Coder-Next-FP8. Про более крупные сети и говорить не приходится: их архитектура и данные для обучения уносят их куда дальше по способностям и аналогам знаний о предмете.
Я веду к тому, что если вы попробовали что-то делать с какой-то нейросеткой и у вас плохой опыт, то дело в вас — вы неправильно подобрали себе исполнителя.
Интересная штука встречается очень часто. Мне сложно её принять, хотя я понимаю, почему так произошло. Для людей нейросети слились в одно большое атомарное явление. Ну, знаете, как «учёные»: «Учёные заявили…». Какие учёные? Может, там биолог про математику говорит? Многим неважно, есть ли консенсус среди учёных по этому вопросу и насколько проверены данные, на основании которых «учёные заявили».
Так же и тут. Как будто бы многие считают, что нейросети одинаковые: видел одну — видел все. Разумеется, это не так. Они разные по размеру, а значит, и по способностям. У большинства есть специализация, они обучались на разных данных и обладают разным «опытом». И то, что вы можете развернуть у себя на ноутбуке, в подмётки не годится большинству из того, что есть в «облаках».
Мы недавно провели эксперимент среди нейросетей для программирования, которые можно развернуть на одной Nvidia H100. У неё 96 ГБ видеопамяти, и это сейчас один из самых главных критериев — размер памяти, а не мощность самой карты.
Даже в этом сегменте результаты сильно различаются. Мы попробовали следующие сети:
1. openai/gpt-oss-120b — четыре бита на параметр
2. Qwen/Qwen3-Coder-Next-FP8
3. zai-org/GLM-4.7-Flash
4. Qwen/Qwen3-Coder-30B-A3B-Instruct
5. gemma-4-31B-it
Среди этих почти одинаковых по параметрам сетей — выбивается только OSS со своими 120 миллиардами параметров, но в сильно урезанном виде — есть явный и безусловный лидер: Qwen3-Coder-Next-FP8. Про более крупные сети и говорить не приходится: их архитектура и данные для обучения уносят их куда дальше по способностям и аналогам знаний о предмете.
Я веду к тому, что если вы попробовали что-то делать с какой-то нейросеткой и у вас плохой опыт, то дело в вас — вы неправильно подобрали себе исполнителя.
Компьютерная шея
Что-то мне в последнее время часто попадаются статьи с фотографиями и рисунками так называемой «компьютерной шеи» — это когда человек, подолгу работая за компьютером, якобы со временем вырабатывает привычку постоянно наклонять голову чуть вперёд.
Преподносится это как «вред от этих ваших компьютеров». В 90-е все сидели за экранами от излучения монитора — до сих пор не знаю, помогали они чему-то или только портили зрение, потому что затемняли экран. Вот любопытно, какую защиту теперь придумают, чтобы помочь нашим шеям.
Я тут случайно наткнулся на фильм «Бравый солдат Швейк» 1957 года, так там у кучи народу такое положение шеи. Где же они в пятидесятых годах компьютеры взяли?
Что-то мне в последнее время часто попадаются статьи с фотографиями и рисунками так называемой «компьютерной шеи» — это когда человек, подолгу работая за компьютером, якобы со временем вырабатывает привычку постоянно наклонять голову чуть вперёд.
Преподносится это как «вред от этих ваших компьютеров». В 90-е все сидели за экранами от излучения монитора — до сих пор не знаю, помогали они чему-то или только портили зрение, потому что затемняли экран. Вот любопытно, какую защиту теперь придумают, чтобы помочь нашим шеям.
Я тут случайно наткнулся на фильм «Бравый солдат Швейк» 1957 года, так там у кучи народу такое положение шеи. Где же они в пятидесятых годах компьютеры взяли?