Портрет 4X_Pro
Был в Сети 24 сент. 2023 г., 15:28
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Сейчас специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.


Размышления о целях и ценностях

4X_Pro
В последнее время снова задумываюсь о вопросах целей и ценностей, о вопросе «кем я себя вижу в этом мире». Еще немало этому поспособствовала заметка Фы об иньской и янской модальностях. Хотя там речь идет только про бизнес, но, в принципе, это можно расширить и для другой деятельности вообще.
Раньше ответ был простой и состоял из трех частей. Часть первая — это Настоящий Компьютерщик — этакий компьютерный Робин-Гуд, который тратит минимум времени на платную работу для обеспечения себе прожиточного минимума, а остальное — пишет бесплатный софт для бедных (или занимается какой-то еще полезной деятельностью типа написания статей в Wikipedia, описания объектов в Wikimapia), перемежая это с прогулками, чтением книг и компьютерными играми, и гордится тем, что живет бедно, но правильно. А что есть софт для бедных? Это такой, который сделан по принципу «голая функциональность и никаких излишеств» (ибо нет маркетинга и не нужно заботиться о продаваемости), что дает ему возможность потреблять минимум ресурсов и работать на самых старых и «слабых» компьютерах. При этом, поскольку софт бесплатный и пишется по своей инициативе, четких сроков нет, и это дает возможность уделить оптимизации в плане ресурсов и производительности столько времени, сколько почти никогда не уделяют в коммерческих программах. Вторую составляющую можно охарактеризовать так: «я человек, который учит жить по уму», то есть, в первую очередь, исключая из жизни лишние траты и ложные цели. И в качестве третьей части я рассматривал «создание сообществ единомышленников», когда занимался форумным движком.
Но в какой-то момент все поменялось. С одной стороны, выросла производительность компьютеров, и экономия сейчас не так критична (одно дело сэкономить 50 Мб во времена, когда без swapа в память не помещалась даже сама система, совсем другое — когда 80% памяти после загрузки остается пустой). Да и относительно приличный компьютер (уровня Core 2 Duo или хотя бы Pentium 4) даже самый бедный человек при должной степени упорства может раздобыть в «отдам даром» или на свалке бесплатно. И даже обладатели «слабых» компьютеров зачастую ведутся на украшательства и излишества просто потому что не понимают, что это расходует дополнительные ресурсы компьютера. А еще оказалось, что сейчас даже бесплатный софт нужно «продавать» в том смысле, что нужно донести информацию о его существовании и убедить пользоваться им, а не аналогами.
С другой — я познал психософию, и понял, что мое презрение к материальным благам есть не результат какой-то особой духовной продвинутости или правильного воспитания, как я считал раньше, когда моя система ценностей только формировалась, а того, что мне повезло с ПЙ-типом. И что есть люди, которым действительно по кайфу жить быстро и преодолевать препятствия, и переделать их не представляется возможным. А те, у кого тип похож на мой, и так живут сходным образом (если только не угораздило ввязаться в межполовые отношения с традиционной гендерной моделью, где жена или теща постоянно чего-то требуют, отвлекая от основных задач). Да и сами идеи медленной жизни тоже не новы, просто конкретно мне не повезло в том, что мировоззрение формировалось в такой исторический момент, когда они оказались задвинуты куда подальше. Поэтому более уместным было бы поставить вопрос так: как должен быть устроен мир так, чтобы «ускорители жизни» не заставляли жить быстрее тех, кому это некомфортно, и как перестроить систему общественных ценностей так, чтобы «жить в согласии с собой (и своими типологическими особенностями)» было высшей ценностью.
С третьей — Интернет стал более централизованным, потеряли актуальность бесплатные хостинги с возможностью устанавливать свои скрипты (типа того же Holm.Ru), на которые я во многом ориентировался. Теперь почти все делается либо на сайтах-конструкторах с предустановленным набором возможностей, либо и вовсе в социальных сетях. А те, кто делает форум или что-то подобное, предпочитают не связываться с разработкой, сделанной человеком-одиночкой. И вообще, чтобы создать сообщество сейчас, нужны не столько технические навыки, сколько коммуникативные и навыки по раскрутке.

И в связи с этим стал вопрос: что же мне делать в таких условиях, да еще с учетом моих личностных ограничений? Вариантов я вижу три:
1. Продолжать заниматься Web-программированием (в частности, развивать IntB до движка децентрализованной социальной сети с интеграцией с существующими большими через их API + того, что я когда-то назвал инфохабом) в надежде, что рано или поздно маятник истории качнется в обратную сторону и люди поймут, что свои данные нужно держать на своих серверах и контролировать самому, а не непойми где. В принципе, некоторые тенденции в этом направлении уже есть, но вопрос в том, когда это случится и насколько массовым будет это осознание. Кроме того, это работа по темпористическому Будущему, которое у меня слабое и немотивированное.
2. Решить «ну и ладно, в принципе, в мире сейчас и так все неплохо», и жить своей жизнью, создавая что-то небольшое по настроению, как это было с CondiLoader или ботами для Telegram. Главный плюс — не нужно работать темпористическому Будущему, все делается в Настоящем. Главный минус — это отсутствие идентичности, внятного ответа на вопрос «кто я».
3. Искать себе новое дело в принципе. Но недавно я осознал, что для того, чтобы я мог заниматься чем-то регулярно, чтобы «хочу» не переходило в «надо», оно должно сочетать в себе следующее (собственно, с этого осознания и возникла идея написать это сообщение). Во-первых, — мои собственные интересы и соответствующие уровни ТУАИ (активнее всего задействованы 3 и 7: либо оптимизация каких-то показателей, либо желание изменить мир определенным образом). Второй — это возможность сделать что-то, что произведет впечатление на окружающих (например, написать программу для распознавания жестов «камень, ножницы, бумага» через Web-камеру). Третий — объективная полезность для широкого круга людей (тот же форумный движок или Интернет-магазин). Только вот все, за что я пытался браться раньше, сочетало в себе максимум два пункта из этих трех. И самое главное, с темпористической точки зрения это должна быть работа либо по Прошлому, либо хотя бы по Настоящему, но никак не по Будущему, и при этом, желательно, обладать и некоторой ценностью по Вечности. А кроме того, есть и еще ряд ограничений: дело не должно требовать контактов с людьми по моей инициативе, и не должно создавать необходимости жесткого планирования времени.
Впрочем, есть и еще один парадокс: хоть я и неоднократно заявлял о том, что важной ценностью является возможность жить спонтанно в духе «проснулся, увидел за окном отличную погоду, отложил все дела, вышел из дома, сел в трамвай и поехал куда захотелось», но на практике использую ее крайне редко, и даже прогулки обычно планирую заранее.

Но, в любом случае, после всех этих размышлений у меня есть возможность оценивать любое дело или задачу, за которые я хочу взяться, по пятифакторной модели: собственный интерес, возможность произвести впечатление, полезность в глобальном масштабе, возможность оставить след в Вечности, необходимость работать по Будущему (фактор с отрицательным знаком).
А еще решил пройти вторую часть курса «Поиск дела жизни» на Coursera. Возможно, он тоже поможет как-то прояснить ситуацию.

Вторник, ПВ, настолки

4X_Pro
Сегодня сходил на настолки. Народу было просто на удивление много, причем человек пять — новые люди, которые на встречах первый или второй раз. Но в целом впечатление от большинства оказалось положительным. Играли в «Шакала» — игру, которую я видел несколько месяцев назад, но все никак не складывалось попробовать. Потом — в «Колонизацию» (причем, как и в прошлый раз, долго не могли договориться, во что будем). В целом впечатления от встречи остались положительные, но немного жалею, что не получилось сыграть в «Каркассон».

Познание силы frameworkов и шпаргалок

4X_Pro
Впечатлившись тем, насколько Ruby on Rails позволят ускорить работу над серверной частью сайта, решил было попробовать еще раз освоить PHP-framework. На этот раз выбрал Phalcon (как один из самых быстрых за счет реализации в виде PHP extension), начал смотреть документацию, но увы, PHP-frameworkи — это точно не мое.
Зато задумался: раз я так терпеть не могу заниматься версткой, то что если поискать framework для client-side, чтобы ускорить ее? И приступил к поиску. Увы, для обычных сайтов не нашел чего-либо, что захотело бы использовать. Зато наткнулся на NativeScript, который может в разы упростить разработку под Android, и делать это не на Java, а на JavaScript (правда, не знаю, как это будет с точки зрения потребления памяти и производительности)! И вот он вроде бы мне понравился! Кроме того, он использует Vue, с которым я знаком на базовом уровне, но не имел возможности нормально попрактиковаться.
А еще куча готовых мини-приложений на NativeScript Playground навела меня на мысль: а ведь можно же и для верстки под обычный Web в некоторых случаях брать за основу что-то готовое, например, с того же CodePen.io, раз уж так мне версткой заниматься не нравится.
Еще одним открытием последних дней были шпаргалки. Началось все с того, что я наткнулся на сайт, где были собраны шпаргалки по языкам программирования. Посмотрел, и понял, что они прекрасно решают проблему запоминания названий стандартных функций в разных языка (например, в Python перевод строки в верхний регистр делается методом upper, в Ruby — upcase, а в JavaScript — toUpperCase, и я постоянно забываю и путаюсь, где что и приходится лезть в документацию, на что тратится куча времени).
Потом решил поискать шпаргалки для frameworkов, связанных с анализом данных (Pandas, Keras, SkLearn), где тоже никак не мог запомнить, как пишутся всякие классификаторы, регрессоры и тому подобное. И, как это ни странно, нашел! Так что когда надумаю вернуться к этой теме, все будет намного проще!

Ночное осознание или Слово о моей закрытости

4X_Pro
Несколько месяцев назад Tellа в одном из разговоров сказала, что если сравнивать с тем, что было на моем старом форуме (имеется в виду Socioclub.Org), я стал гораздо более закрытым и менее эмоциональным. Я сказал, что да, и сам это замечал. Где-то между 2007 и 2009 годами случилось «выгорание», после которого я сильно изменился. И задумался над тем, а что именно было этим поворотным моментом.
Долгое время я считал, что «выгорание» было вызвано перегрузками 2008 года — последнего года аспирантуры, а также тем, что не было возможности нормально прийти в себя после ее окончания.
Недавно мы вернулись к этой теме, и возникло предположение, что это была реакция на мятеж Spyke, а точнее даже тот факт, что его поддержало столь большое количество участников моего форума. Но вчера вечером вдруг пришло осознание, что это не так. Мятеж Spyke скорее поставил вопрос так: «на что теперь в жизни можно опереться, если даже форум не является такой надежной опорой» (и это тогда я еще и представить себе не мог, что пройдет несколько лет, и социальные сети  и привел к мысли, что нужно делать сайт, привязанный к моей личности (что в полной мере было реализовано только 11 лет спустя созданием этого сайта).
А сегодня ночью пришло осознание, что переключение в параноидный режим «кругом враги» произошло чуть позже. Первый шаг к этому был сделан 7 декабря 2007 года, во время ситуации с доменом socionics.su. Напомню, что в тот день произошло снижение цены на регистрацию в доменной зоне .su, и я планировал взять этот домен. Но регистратор R01.Ru в тот момент, когда должна была начаться регистрация по новой цене, вдруг взял и устроил технические работы почти на сутки! И за это время домен благополучно присвоил себе Oleg, зарегистрировав его через РуЦентр, и стал из-за этого моим врагом. (Много позже я узнал, что был монопольный сговор: РуЦентр проплатил другим регистраторам, чтобы они в тот день не работали.) Вторым шагом было то, что я узнал, что Хрулев позаимствовал у меня идею создать сайт на отдельном домене по признакам Рейнина. Но поскольку он был более известным и имел больше возможностей по раскрутке, то многие считали, что это была его собственная идея.
Третий случился то ли в 2008, то ли в 2009 году, когда от того же Olegа пришло спамное приглашение в его соционическую группу, где было 42 тысячи человек, и было понятно, что это результат накрутки и спама (в 2013 году это подтвердилось — чуть ли не половина из них оказалась ботами, и когда их перебанили, группа просела до где-то 24 тысяч). И стало ясно, что победить его честным образом не представляется возможным (примерно так же как нельзя обыграть шулера в карты, даже будучи самым лучшим игроком). Тогда-то и включился параноидный режим: появилась злость на всех вокруг, что не помогают мне бороться с этим нехорошим человеком (а то и вовсе поддерживают его, состоя в этой самой накрученной группе), и, как следствие, закрытость в плане типологического сотрудничества.
Не очень, правда, понятно, что с этим делать, как снова вернуться к себе-прежнему в полной мере…

ИКС дали!

4X_Pro
Жизнь в полуоффлайне на даче привела к тому, что я только вчера узнал, что в конце июля на Яндексе пересчитали формулу для ИКС. И у большинства моих сайтов очень неплохо повысились показатели: у 4xpro.ru вместо 130 стало 220, у socionics.me и sociomodel.ru показатель вернулся к 60, и даже у TypTest подрос до 140! Правда, как выяснилось, во многом это результат смены методики расчета самого ИКС. Но все равно приятно: есть прогресс!

Пятый заезд: итоги

4X_Pro
Вот и все: пятый заезд подошел к концу. Менее чем через полчаса уже отправляюсь обратно в Город. Настало время подвести итоги. Успел я довольно многое:
  1. Собрал ядро Linux и впервые получил время загрузки лучше, чем во времена MS-DOS, а также узнал немало новой информации о его настройках.
  2. Попрактиковался в Ruby on Rails и в целом остался доволен возможностями этого framework.
  3. 3. Пять раз сходил на прогулки и снял немало интересных кадров.
  4. 4. Прошел еще одну кампанию в Battle for Wesnoth: Under burning sun.
  5. 5. Осознал, что для того, чтобы наладить режим дня, нужно устроить себе день с ограниченным Интернетом (или отключить связь вечером).
Но кое-что так и осталось не сделанным:
  1. 1. Не съездил в дальний лес и не обследовал местность вдоль дороги на Васютино (впрочем, не было цели сделать это конкретно в этот заезд)
  2. 2. Не смог полностью наладить режим дня, только в последние два дня смог ложиться около трех часов, а не пяти, как все остальное время.
  3. 3. Так и не дочитал книгу по алгоритмам, хотя собирался.
  4. 4. Не смог ограничить себе Интернет, чтобы входить в то состояние озарения (ЭСП №2), о котором писал перед заездом.
Общее впечатление осталось противоречивым: вроде и съездил не зря, но и такое ощущение, что что-то важное упустил.

RoR и размышления о собственном frameworkе

4X_Pro
После того, как закончил со сборкой ядра, вернулся к изучению Ruby on Rails. Наконец-то перешел от теории к практике — стал писать Интернет-магазин. Впечатления довольно противоречивые: с одной стороны, за несколько дней весьма ленивого программирования получил почти работающий прототип (осталось только оформление заказов доделать), причем с правильной структурой URL.
С другой — серверная часть разрабатывается быстро, а вот в плане верстки плюсов практически никаких. Даже то, что генерируется автоматически, выглядит так ужасно, что если делать серьезный проект, то пришлось бы переверстывать.
Еще двоякое впечатление вызвала такая штука как migrations. С одной стороны, они решают проблему обновления структуры БД, с которой я сталкивался при разработке IntB, с другой — делают это совершенно иначе, чем у меня. Я-то исходил из того, что есть структура база такая, какая должна быть, и есть текущая, и нужно увидеть разницу и добавить/убрать недостающие столбцы через какой-нибудь sqlt_diff или mysql_diff, при этом база может редактироваться через сторонний визуальный редактор, и это делается часто. И еще удивлялся, почему так мало подходящих для этой цели инструментов, хотя с проблемой сталкиваются почти все разработчики. А в Ruby on Rails нужно документировать каждое изменение БД в виде отдельной migration, и задавать изменения либо в командной строке, либо в коде файла migration. С одной стороны, много лишних трудозатрат, с другой — они гарантировано фиксируются.
А вообще, все описанное выше заставило меня вспомнить о моих давних идеях data driven framework, где разработка приложения начинается именно с того, что в визуальном редакторе описываются данные. Причем делается это не как сейчас в RoR, где в командной строке указываются только типы данных, а задается то, может ли это поле вводиться через форму, сохраняться в базу или являться вычислимым, а также нужны ли пре- и пост- обработчики поля при сохранении/загрузке. Если оно отображается в форме, то указывается способ отображения (input, radio, checkbox или вообще целый компонент) для редактирования и просмотра, краткое описание, длинное описание и справка. Потом с учетом всего этого генерируется файл и два класса модели: абстрактный, который только сохраняет и фильтрует поля и может многократно перегенерироваться, и его наследник, где реализуются всякие функции расчета и валидации. В общем, вместо того, чтобы максимально разделять frontend и backend, как сейчас делает большинство frameworkов, наоборот, максимально управлять и тем, и другим через единый интерфейс, и делать упор на минимизацию верстки, которую я терпеть не могу, ибо это трата ресурсов на то, что в моем представлении является второстепенным — интерфейсы и внешний вид.

В поисках болотных озер

4X_Pro
Недавно, рассматривая карту окрестностей, обнаружил, что среди болотистой местности неподалеку от соседней деревни есть несколько озёр, и решил до них добраться. И вот сегодня, надев резиновые сапоги, отправился в путь. Доехал на велосипеде до места, где начинается болото, спрятал его в кусты, и отправился дальше пешком.
На болоте в больших количествах обнаружил какие-то неизвестные ягоды. (Потом, уже дома, предположил, что это брусника, так как в Wikimapia написано, что там ее много, и по фото вроде похожа). Прошагав полкилометра, подрался сквозь заросли травы на берегу, и вот наконец-то передо мной открылось первое из озёр. Вода в нем тёмная, само озеро спокойное, но какое-то мрачное и неприветливое. Посмотрел на него, сделал несколько фото и отправился дальше, ко второму озеру. К моему удивлению, несмотря на то, что места вроде бы довольно глухие, кое-где были протоптаны тропинки, правда, еле заметные.
Пока шел, увидел несколько грибов. В основном, сыроежки, валуи и подберезовик. Добрался до второго озера. Оно оказалось не таким глубоким, как первое, и с гораздо большим количеством водной растительности. Дальше возник вопрос: идти или не идти к третьему озеру. Оно было расположено так, что второе отделяло меня от него, и его нужно было обходить либо с северной стороны, либо с южной. Решил с южной, так как там была более-менее проходимая тропинка, но, как выяснилось, зря: когда попытался подойти к третьему озеру, наткнулся на густые поросли молодых берез и ольхи, продираться сквозь которые решимости не хватило.
Так и отправился обратно, тем более, что протоптанные дорожки наводили на мысль, что люди тут ходят не так уж редко, а это заставляло волноваться за велосипед. Но все обошлось, велосипед был на месте.
А вечером обнаружил, что для этих озер в Wikimapia нет фото, и загрузил туда свои, сделанные мобильником во время прогулки. Так что получился небольшой вклад в общее дело.

В лес за малиной

4X_Pro
В пятницу пошел на прогулку в лес за малиной. Хотел было идти в середине дня, но из-за пересборок ядра Linux, о которых писал в предыдущем сообщении, задержался, и вышел уже около 17 часов. Но прогулка получилась не очень: сказывался недосып, из-за которого как бы отключились эмоции, плюс я долго не мог найти тот малиновый куст, ради которого и пошел. Из-за этого нарезал круги по дорожкам, пройдя куда большее расстояние, чем рассчитывал В конце концов нашел место, которое выглядело похожим, но вместо большого куста там было несколько маленьких и чахлых. До сих пор не знаю, то ли его так вытоптали за эти два года, то ли это все же это было другое место. Тем не менее, несколько ягод я все же нашел, но не там, а на других кустах. Кроме этого снова попал к месту, где растет черника, а также видел языческое капище (см. фото в Instagram).
А когда пошел обратно, снова впал в то состояние, в котором принимаю очень странные решения: уже почти дойдя до выхода из леса, вдруг решил пройти по еще одной дорожке, в надежде, вдруг куст окажется там. А когда прошел, подумал, что теперь будет проще добраться по просеке ЛЭП до того соснового бора, о котором упоминал не раз. По карте возвращаться тем же путем и идти через бор выглядело примерно одинаково. Но увы, не учел, что после дождей даже с моей склонностью лезть во всякие труднопроходимые места пробраться по этой просеке стало очень сложно — местами она превратилась в болото. Пришлось делать то, чего я терпеть не могу больше всего — возвращаться назад, пройдя почти три лишних километра.
В общем, устал сильно, впечатления остались странные, но не могу сказать, что прямо уж совсем недоволен прогулкой.

Сборка ядра Linux и новый рекорд скорости загрузки

4X_Pro
В пятницу планировал снова пойти в лес на прогулку. Но, как всегда, стоит что-либо запланировать, как тут же находится причина сделать все иначе. В этот раз все началось с того, что ПНБ на форуме IntB задал мне вопрос, связанный со сборкой ядра Linux. В поисках ответа на этот вопрос я вспомнил, что у меня на дачном ноутбуке лежат исходники ядра, которые я выкачал их еще перед первым заездом из соображений «будет время — поизучаю», но потом благополучно о них забыл.
И вот в среду вечером пришла в голову мысль, почему бы не собрать свое ядро. Но увы, было слишком поздно, поэтому сборку я отложил на четверг. Как всегда, главными целями были экономия памяти и ускорение загрузки. Последний раз я пытался это сделать летом то ли прошлого, то ли позапрошлого года, но не получилось: ядро выдавало панику на этапе загрузки, а терпения разбираться, почему, у меня тогда не хватило. На этот раз решил идти более консервативным путем: не отключать сразу кучу всего, а взять за основу defconfig и дальше убирать или выносить в модули все пошагово. К моему удивлению, на этот раз все сработало, и новое ядро загрузилось! Причем оказалось, что грузится оно ощутимо быстрее штатного: что-то около 2 секунд вместо шести (речь идет о загрузке kernelspace).
Но вскоре выяснилось, что не все так хорошо, как казалось сначала: новое ядро не видит WiFi от слова совсем. Какое-то время ушло на то, чтобы порывшись в настройках ядра, найти там раздел с нужными драйверами и включить их. Но через пару перезагрузок я вдруг обнаружил, что время загрузки вдруг снова выросло до 6 секунд, и дело явно не в WiFi-драйвере. В результате остаток дня прошел в поисках возможных причин. И только глубокой ночью я вдруг вспомнил про то, как в городе отсутствие swap на Ubunutu 18 приводило к 30-секундному простою при загрузке. А поддержку swap я во время экспериментов с ядром как раз взял и выключил! Включил обратно, пересобрал, перезагрузился — лишние три секунды исчезли!
Потом еще экспериментировал с разными настройками безопасности: включал и отключал их, чтобы посмотреть, как это влияет на производительность. Оказалось, что включение запрета на отображение ядра в userspace ведет к весьма ощутимому падению скорости. Остальное влияет мало (если только не пересобирать весь дистрибутив без PIC/PIE-кода). За всеми этими экспериментами засиделся до пяти утра. Эх, прямо таки стереотипное красноглазие: бессонная ночь и консоль с потоком сообщений компилятора!
А в пятницу по каким-то непонятным причинам проснулся гораздо раньше, чем обычно в последнее время, где-то около 12 часов. Решил воспользоваться тем, что погода улучшилась, и пойти наконец-то в лес пособирать малину. Но перед этим вспомнил про то, что вчера так и не проверил работу с новым ядром нескольких устройств: Web-камеры, cardreader и мобильника в режиме модема при подключении по шнурку. Cardreader заработал сразу, а вот для остального пришлось подключать дополнительные модули и пересобирать ядро еще раз. Причем я толком не знал, что именно нужно, поэтому пошел таким путем: сначала делал модулями все, что хоть как-то имело отношение к тому, что нужно, а потом смотрел список, какие модули оставались загруженными, и оставлял только их.
Потом ушел на прогулку (ее опишу в отдельном сообщении). А когда вернулся и вновь занялся экспериментами с ядром. Наконец-то разобрался с вопросом, почему при попытке избавиться от initramfs получается kernel panic, даже несмотря на то, что все необходимые драйвера и модули вкомпилированы в ядро. Дело оказалось в том, что нужно указывать UUID раздела, а не файловой системы (я прежде вообще не знал, что они отличаются). После этого стало ясно, что основной оставшийся источник задержек при загрузке — это драйвер дискретной видеокарты nouveau. Немного подумав, я взял и отключил его вообще.
И вот, перезагрузившись, я увидел скорость, которая еще недавно казалась мне нереальной: по данным systemd время загрузки составляло чуть больше 1.2 сек. kernelspace и 1.0 сек. userspace, суммарно же меньше 2.3 секунды! Впервые мне удалось получить более хорошие показатели, чем у связки PC DOC 7.0 + Windows 3.11 на Pentium, которая была для меня эталоном быстроты! Причем это была не просто какая-нибудь экспериментальная система, а вполне реально работающая и поддерживающая все имеющиеся устройства, кроме дискретной видеокарты. Причем памяти она занимала всего 134 Мб против 181 при использовании штатного ядраю. Эх, во времена Pentium III такая экономия была бы просто прорывом. А сейчас, увы, этого разве что на лишнюю вкладку в броузере хватит…
Казалось бы, нужно сделать скриншот и закончить на этом эксперименты с ядром, вернувшись к обыденной жизни, но увы. Мысль о дискретной видеокарте не давала мне покоя, поэтому в субботу я снова занялся экспериментами с ядром. Сначала выяснил, что использование дискретной карты с nouveau приводит к отключению аппаратного ускорения в броузере (а если включить его принудительно — к весьма эффектным глюкам), без которого на дискретной карте показатели даже хуже, чем на встроенной с включенным ускорением. Поэтому осталась последняя надежда — пропиертарные драйвера от nVidia.
Увы, здесь меня ждало разочарование. Драйвера из дистрибутива собираться с новым ядром не хотели категорически. Я решил пойти другим путем — скачать драйвер с самого сайта nVidia. Скачал версию 390. Сначала все было хорошо: все установилось и собралось без проблем. Но при загрузке X Server драйвер почему-то не использовался. Из логов было видно, что X Server сначала загружает его, потом выгружает без каких-либо внятных объяснений, и вместо этого берет драйвер встроенной карты. После нескольких попыток сделать с этим хоть что-нибудь я решил попробовать другую версию — 340 (384-ой, увы, на сайте не было). Но с ней и вовсе получилось непонятно: если в каталоге с исходниками ядра был файл .config, она отказывалась собираться, ругаясь source is not clean, а при его отсутствии ругалась на то, что в ядре выключена поддержка модулей (при попытке включить которую создавался новый .config и история повторялась сначала). Потом еще были попытки собрать более новую версию nouveau из исходников на его сайте, попытки оптимизировать время загрузки обычного nouveau, задавая разные параметры командной строки, но все безрезультатно. В итоге пока что отключил его полностью, и все.
Но несмотря на это, я снова чувствую себя Настоящим Компьютерщиком, который знает и контролирует то, что происходит в его системе, а не воспринимает ее как некий черный ящик.

Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.