Timeweb.Cloud

Timeweb.Cloud

Блог компании
То самое облако Наш сайт: https://timeweb.cloud/ ТГ: https://t.me/timewebru Хабр: https://habr.com/ru/companies/timeweb/articles/
На Пикабу
123К рейтинг 2703 подписчика 21 подписка 471 пост 411 в горячем
Награды:
самый сохраняемый пост недели более 1000 подписчиков5 лет на Пикабу
20

«Вам не нужны оригинальные версии этих игр»: как ремейки отличных игр убирают надобность в исходном материале

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

За последние годы мы получили огромное количество классных как ремастеров, так и ремейков, причем во многом настолько ультимативных, что оригинальные игры после них как будто бы больше и не нужны.

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

❯ Трилогия Final Fantasy VII

На самом деле, переоценить влияние оригинальной FF VII на индустрию практически невозможно. Это одна из главных JRPG, которая принесла жанр на запад, одна из первых игр в 3D и одна из первых кинематографичных игр серии.

Правда, есть одна проблема — Final Fantasy VII 1997 года критически устарела во всех аспектах, от графики до игрового процесса. А еще это именно та игра, о ремейке которой просили все геймеры не один десяток лет.

Анонс случился в 2016 году, и сказать, что это был пик хайпа — не сказать ничего. Фанаты долго строили теории о том, как будет выглядеть наполнение ремейка, верили, что в одну игру войдет вся компиляция FFVII со всеми спин-оффами и так далее.

Но случилось кое-что интересное: объем переработанного контента оказался настолько огромным, что Final Fantasy VII Remake превратился в трилогию.

Первая игра охватывает пролог и все события в городе Мидгар, вторая выпускает нас во внешний (просто переполненный контентом) открытый мир, а третья часть обещает стать грандиозным финалом путешествия Клауда и компании.

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

❯ Metroid Zero Mission

Релиз Metroid в 1986 году можно смело называть одним из главных событий игровой индустрии, но объективно — сейчас играть в нее, мягко говоря, больновато, уж сильно устаревшей она ощущается.

Для тех, кто все же хочет понять, как первое приключение Самус повлияло на игровую индустрию, 20 лет назад вышел ремейк с подзаголовком Zero Mission. И вот он до сих пор играется просто великолепно.

В чем суть: для начала Zero Mission таки добавляет контекста происходящему.

В ремейке есть кат-сцены (не то чтобы их много, но сюжет больше не надо читать в мануале), карта местности (которой в оригинале не было), новые локации и, что самое интересное, после концовки оригинальной игры сюжет продолжается.

Metroid Zero Mission для Game Boy Advance — это пример того, как нужно освежать классику так, чтобы она оставалась играбельной и затягивающей даже спустя 20 лет с релиза. Если пропустили — рекомендуем ознакомиться.

❯ Silent Hill 2

Честно говоря, если бы автору этого текста лет 10 назад сказали, что серия Silent Hill сможет полноценно вернуться… Он бы рассмеялся вам в лицо. Примерно так же, как почти все геймеры громко смеялись над Konami, когда она показывала новые релизы на своих презентациях.

После первых трейлеров и объявления студии разработчика (польская Bloober Team, которая, кажется, всю свою жизнь шла к работе над серией SH), ремейк Silent Hill 2 не пинал только ленивый. Претензии были и к визуалу, и к внешности персонажей, и даже туман геймерам не нравился.

Только вот… Bloober Team смогли. Ремейк Silent Hill 2 — это в первую очередь низкий поклон оригинальной игре и команде Team Silent. Так скрупулезно воссоздать одну из самых страшных игр своего поколения — это искусство, причём что девелоперам из Польши удалось не просто повторить японский подход к ужасу, но сделать его ещё глубже, страшнее и жёстче. После некоторых сегментов SH2 Remake категорически не хочется спать в темноте.

❯ Shadow of Colossus

В наших краях не самый известный проект под авторством Фумито Уэды в свое время сильно опередил свое время и вообще не соответствовал техническим возможностям той платформы, куда он изначально выходил. Оригинальная игра еле-еле держала 30 кадров, страдала от низкой дальности прорисовки и периодически ловила сильные статтеры. Но история, игровой процесс и тяжелая меланхолия — это то, что возвело Shadow of the Colossus в статус культовой классики Sony.

Ремейк внезапно случился спустя 13 лет с релиза оригинальной игры. За его разработку отвечали мастера по реставрации старых японских хитов из Bluepoint Games.

Так как исходников у команды не было, Shadow of the Colossus версии 2018 года пришлось создавать с нуля и по маленьким кусочкам восстанавливать оригинальное видение Фумито Уэды, который к ремейку отказался приближаться из-за ругани с Sony.

Shadow of the Colossus — это история о тихом путешествии, борьбе и периодическом вопросе самому себе «да что же я такое делаю?», которое стоит попробовать каждому, кто хоть сколько-то считает себя фанатом видеоигр.

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

❯ Оригинальные версии этих игр вам не нужны

Есть такая мысль, что чем больше ремейков крутых классических игр, тем лучше. Почему? Да потому что не все готовы погружаться в пусть и отличные, но во многом устаревшие для нового геймера проекты.

А ремейк, если он грамотно сделан, дает возможность прикоснуться к прекрасному без болячек старого гейминга. Да, многие люди эти болячки отрицают, но тут уже давно сложилась кое-какая аксиома: чем больше человек кричит, что старье лучше, а ремейки — это без души, тем меньше он в это старье играет и на самом деле просто ретранслирует то, как он его запомнил, а не то, как оно есть на самом деле.

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


Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 11
108

Формулы и функции в Excel: подробное руководство для начинающих

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

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

Все примеры мы будем показывать в версии Excel для Windows, входящей в подписку Microsoft 365. Если у вас установлена другая версия программы, интерфейс может слегка отличаться, однако логика и синтаксис остаются неизменными.

Для владельцев определенных подписок M365 доступна генеративная нейросеть – ИИ-помощник Copilot. К теме искусственного интеллекта мы вернемся ближе к концу статьи, а начнем с детального разбора базовых формул и функций.

О чем расскажем:

  • Что такое формула в Excel?

  • Что такое функция?

  • Базовые матоперации и функции

  • Логическая функция ЕСЛИ

  • Функции СУММЕСЛИ и СЧЁТЕСЛИ

  • Функция ССЫЛКА/СЦЕПИТЬ

  • Функция ВПР

  • Как создавать формулы с помощью Copilot

❯ Что такое формула в Excel?

По сути, формула – математическое или логическое выражение, производящее операции над содержимым ячеек. С их помощью можно делать расчеты любой сложности: от банального сложения чисел в столбце до расчета эксцесса (показателя островершинности распределения) в сложных статистических выборках. Формулы незаменимы, когда нужно превратить цифры в наглядные бизнес-показатели, на основе которых принимаются важные решения.

❯ Что такое функция?

Функция – своего рода «заготовленная» формула, встроенная в сам Excel. Это готовый шаблон, облегчающий проведение расчетов. Всего в программе насчитывается около 500 встроенных функций, и этот арсенал ежегодно пополняется. К счастью, для решения 90% повседневных задач за глаза хватит всего десятка самых популярных инструментов.

❯ 1. Базовые математические операции и функции

Запомните золотое правило: любая формула в Excel всегда начинается со знака равенства (=).

Сложение, вычитание, умножение и деление

Допустим, нам нужно сложить значения двух ячеек. Кликните по пустой ячейке, где должен появиться результат, и введите знак =, дав программе понять, что далее последует формула.

Начало ввода формулы в Excel

Начало ввода формулы в Excel

Теперь щелкните по ячейке с первым слагаемым. Ее адрес (например, A2) автоматически отобразится в строке ввода сразу после знака равенства.

При выборе ячейки ее адрес автоматически подставляется в формулу

При выборе ячейки ее адрес автоматически подставляется в формулу

Введите знак плюс (+), а затем кликните по ячейке со вторым числом – ее адрес (например, A3) встанет на свое место в формуле. В итоге выражение для сложения двух ячеек примет классический вид:

=A2+A3

Готовая формула сложения видна как в самой ячейке, так и в строке формул над листом

Готовая формула сложения видна как в самой ячейке, так и в строке формул над листом

Обратите внимание: формула дублируется в строке формул, расположенной прямо над листом таблицы. После ввода знака = вы можете продолжать писать выражение непосредственно там. Зачастую редактировать длинные формулы в этой специальной строке удобнее, чем тесниться внутри самой ячейки.

Если нужно приплюсовать еще несколько чисел, продолжайте ставить знак плюс и кликать по нужным ячейкам. Закончив ввод, нажмите клавишу Enter – и вуаля, на месте формулы появится готовая сумма.

Нажмите Enter, чтобы увидеть итоговый результат вычислений

Нажмите Enter, чтобы увидеть итоговый результат вычислений

Вычитание, умножение и деление строятся точно так же. Достаточно сменить математический оператор: вместо плюса поставить дефис () для вычитания, звездочку (*) для умножения или косую черту (/) для деления.

Примеры вычитания, умножения и деления. Каждая формула отображается в строке формул, а итоговый результат – в целевой ячейке

Примеры вычитания, умножения и деления. Каждая формула отображается в строке формул, а итоговый результат – в целевой ячейке

Быстрое сложение с помощью функции СУММ (SUM)

Если чисел много, складывать их поодиночке утомительно. Куда практичнее использовать встроенную функцию СУММ (в англоязычной версии – SUM).

В русской версии Excel разделителем аргументов функций служит точка с запятой (;), а в английской – запятая (,). Это важно учитывать, чтобы избежать ошибок при вводе.

Для начала выберите ячейку для вывода результата. Наберите =СУММ (или =SUM). Excel тут же предложит подходящие функции из выпадающего списка. Дважды щелкните по строке СУММ, чтобы открыть круглую скобку.

Запуск функции СУММ

Запуск функции СУММ

Под ячейкой появится всплывающая подсказка с синтаксисом:

=СУММ(число1; [число2]; …)

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

Если нужно суммировать целый диапазон (непрерывный столбец или строку), выберите первую ячейку группы, зажмите клавишу Shift и кликните по последней. Еще вы можете вписать этот диапазон вручную через двоеточие – выражение A2:A7 охватит ячейки A2, A7 и всё, что между ними.

Выделение диапазона ячеек для суммирования

Выделение диапазона ячеек для суммирования

Убедившись, что все нужные ячейки выделены, нажмите Enter. Готово! На экране появится итоговая сумма. Если снова щелкнуть по этой ячейке, в строке формул отразится полное выражение. В нашем примере это:

=СУММ(A2:A7)

В строке формул видна функция СУММ, в самой ячейке – готовый результат

В строке формул видна функция СУММ, в самой ячейке – готовый результат

Важное свойство формул в Excel – динамичность (или относительность). Если изменить значение в любой из ячеек исходного диапазона, итоговая сумма автоматически пересчитается.

При изменении слагаемых результат пересчитывается автоматически

При изменении слагаемых результат пересчитывается автоматически

Если же вам нужно «зафиксировать» полученное число, превратив его в статичное значение (константу, которая не изменится при редактировании исходных строк), скопируйте ячейку (клик правой кнопкой мыши → «Копировать»). Затем снова щелкните по ней правой кнопкой мыши и в разделе «Параметры вставки» выберите пункт «Значения» (иконка с планшетом и цифрами 123).

Вставка в режиме «Значения» разрывает связь с исходными ячейками, фиксируя полученный результат

Вставка в режиме «Значения» разрывает связь с исходными ячейками, фиксируя полученный результат

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

Теперь в ячейке находится обычное статичное значение

Теперь в ячейке находится обычное статичное значение

Лайфхак: в некоторых случаях процесс можно ускорить благодаря функции «Автосумма». Если у вас есть непрерывный ряд чисел в строке или столбце, поставьте курсор в соседнюю пустую ячейку (справа от строки или снизу под столбцом) и нажмите кнопку Автосумма (со знаком греческой буквы сигма Σ), которая находится на вкладке «Главная» в правой части ленты. Программа сама определит диапазон данных, и вам останется лишь подтвердить расчет нажатием Enter.

Автосумма – самый быстрый способ сложить числа в строке или столбце

Автосумма – самый быстрый способ сложить числа в строке или столбце

Расчет среднего значения с помощью функции СРЗНАЧ (AVERAGE)

Чтобы вычислить среднее арифметическое, проделайте те же шаги, но введите функцию =СРЗНАЧ (=AVERAGE), затем выделите нужные ячейки с числами.

Быстро рассчитать среднее арифметическое поможет СРЗНАЧ

Быстро рассчитать среднее арифметическое поможет СРЗНАЧ

Лайфхак: для вычисления среднего значения тоже есть быстрый ярлык. Поставьте курсор справа от заполненной строки или под столбцом с числами. Нажмите на стрелку рядом с «Автосуммой» и выберите в выпадающем меню пункт Среднее, после чего подтвердите выбор клавишей Enter. Excel рассчитает среднее арифметическое.

Функция расчета среднего значения также вынесена в меню кнопки «Автосумма»

Функция расчета среднего значения также вынесена в меню кнопки «Автосумма»

❯ 2. Логическая функция ЕСЛИ (IF)

Этот инструмент позволяет автоматизировать принятие решений прямо внутри таблицы по принципу «если условие выполняется, то переходим к действию А, иначе – к действию Б». Программа проверяет заданное логическое условие и выводит результат в зависимости от исхода проверки. К примеру, вы можете настроить проверку возраста: если в ячейке указано число 18 или больше, вернуть «Да», если меньше – «Нет».

Для разнообразия опробуем еще один способ ввода формул – через вкладку «Формулы». Там все встроенные функции разложены по полочкам: автосумма, финансовые, логические, текстовые, даты и времени и т. д. Классификация очень выручит, когда не помнишь точное название инструмента или сомневаешься в правильности написания.

Чтобы воспользоваться нужной командой, выделите пустую ячейку, откройте вкладку Формулы, нажмите Логические и выберите в списке пункт ЕСЛИ (IF).

Другой вариант – нажать Вставить функцию (fx), расположенную в левом углу той же панели. В открывшемся окне отобразится список часто используемых инструментов.

Если не хотите писать формулу вручную, перейдите на вкладку «Формулы» и воспользуйтесь мастером «Вставить функцию»

Если не хотите писать формулу вручную, перейдите на вкладку «Формулы» и воспользуйтесь мастером «Вставить функцию»

Выберите в списке пункт ЕСЛИ и нажмите OK. Если искомой функции нет в перечне часто используемых, смените категорию на «Полный алфавитный перечень» – там вы гарантированно найдете всё, что скрыто в недрах программы.

На экране откроется окно «Аргументы функции», а в выбранной ячейке появится заготовка =ЕСЛИ().

Интерактивное окно «Аргументы функции» помогает безошибочно заполнить все параметры формулы

Интерактивное окно «Аргументы функции» помогает безошибочно заполнить все параметры формулы

Синтаксис ЕСЛИ следующий:

=ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь)

В окне аргументов увидите три поля с идентичными названиями. В нашем примере с совершеннолетием логический тест проверит, больше или равно ли число в ячейке B2 числу 18. Если да, программа выдаст «Да», если нет – «Нет». Прямо в поля формы впишите соответствующие значения:

  • Логическое_выражение: B2>=18

  • Значение_если_истина: "Да"

  • Значение_если_ложь: "Нет"

Можно обойтись без графической формы и просто прописать формулу в ячейке:

=ЕСЛИ(B2>=18; "Да"; "Нет")

Функция ЕСЛИ в действии

Функция ЕСЛИ в действии

Лайфхак: вам не придется заново прописывать формулу для каждой строки вручную. Просто зажмите левой кнопкой мыши маркер автозаполнения (черный квадрат в правом нижнем углу ячейки) и потяните его вниз по столбцу. Excel автоматически скопирует алгоритм во все строки пониже, подстроив ссылки на ячейки под нужные диапазоны. То есть формула, ссылавшаяся на B2, при перетаскивании ниже станет автоматически считывать данные из B3.

Распространение формулы на остальные строки таблицы с помощью автозаполнения

Распространение формулы на остальные строки таблицы с помощью автозаполнения

❯ 3. Выборка по условию: функции СУММЕСЛИ (SUMIF) и СЧЁТЕСЛИ (COUNTIF)

СУММЕСЛИ – продвинутая версия функции сложения. Она позволяет суммировать не всё подряд, а лишь те значения из диапазона, которые соответствуют критерию. Для настройки вам нужно указать целевой диапазон ячеек для проверки, собственно критерий отбора и, опционально, диапазон суммирования (если складывать нужно значения из других ячеек, а не из тех, которые проверяли).

Формула имеет следующий синтаксис:

=СУММЕСЛИ(диапазон; условие; [диапазон_суммирования])

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

Представим реальную ситуацию: перед вами таблица продаж и нужно быстро сложить сумму сделок, превышающих 100 долларов. Область проверки – диапазон от C2 до C9, а условие – «>100». Поскольку мы складываем числа из того же самого проверяемого столбца, указывать отдельный диапазон суммирования не нужно. Формула получится простой:

=СУММЕСЛИ(C2:C9; ">100")

Пример вычислений с использованием функции СУММЕСЛИ

Пример вычислений с использованием функции СУММЕСЛИ

А если задача сложнее? Допустим, нам необходима сумма заказов только по региону «East» (восточный). В данном случае диапазон проверки (столбец с регионами B2:B9) и диапазон суммирования (столбец с продажами C2:C9) различаются. Поэтому в аргументах пишем обе эти области:

=СУММЕСЛИ(B2:B9; B2; C2:C9)

Удобно то, что необязательно вбивать само слово "East". Достаточно сослаться на ячейку B2, и программа считает и применит содержащийся в ней текст.

Расчет с разделением диапазона критериев и диапазона сложения в СУММЕСЛИ

Расчет с разделением диапазона критериев и диапазона сложения в СУММЕСЛИ

По схожему принципу работает СЧЁТЕСЛИ (COUNTIF). Она подсчитывает количество ячеек, которые удовлетворяют заданному критерию. Ее синтаксис лаконичен:

=СЧЁТЕСЛИ(диапазон; условие)

Если хотим подсчитать количество сделок, совершенных в западном регионе («West»), мы задаем область поиска (B2:B9) и критерий (значение в ячейке B3). В итоге получится выражение:

=СЧЁТЕСЛИ(B2:B9; B3)

Функция СЧЁТЕСЛИ подсчитывает количество ячеек, соответствующих вашим критериям

Функция СЧЁТЕСЛИ подсчитывает количество ячеек, соответствующих вашим критериям

Если перед вами стоит еще более хитрая задача – например, подсчитать общие продажи книг именно в восточном регионе или узнать количество чеков выше 100 долларов исключительно на западе, – Excel предложит тяжелую артиллерию: функции СУММЕСЛИМН (SUMIFS) и СЧЁТЕСЛИМН (COUNTIFS).

4. Склеивание строк: функция СЦЕПИТЬ (CONCAT)

Иногда данные хранятся по кусочкам в разных ячейках, но их нужно объединить в одну строку. Популярный пример – соединить разнесенные по разным столбцам имя и фамилию. Инструмент также отлично решает задачи по сборке почтовых адресов, склейке номеров артикулов, генерации путей к файлам на диске или формированию URL-ссылок. Базовая структура выглядит так:

=СЦЕПИТЬ(текст1; текст2; текст3; …)

Попробуем собрать воедино имя и фамилию из соседних ячеек, не забыв добавить разделительный пробел между ними. Поставим курсор в пустую ячейку C2, введем обрывочное =СЦЕ и кликнем на предложенную функцию СЦЕПИТЬ (CONCAT). Сначала выберем ячейку с именем (A2), затем поставим разделитель, введем пустой пробел в кавычках (" "), снова поставим разделитель и укажем ячейку с фамилией (B2). Завершаем ввод клавишей Enter. Выражение примет следующий вид:

=СЦЕПИТЬ(A2; " "; B2)

Осталось потянуть маркер автозаполнения вниз от ячейки C2, чтобы моментально склеить имена для всех остальных сотрудников в таблице.

Функция СЦЕПИТЬ бесшовно соединила значения из столбцов А и B в словосочетания

Функция СЦЕПИТЬ бесшовно соединила значения из столбцов А и B в словосочетания

❯ 5. Легендарная функция ВПР (VLOOKUP)

Это безоговорочный фаворит аналитиков и одна из самых популярных функций в Excel. ВПР (VLOOKUP) расшифровывается как «вертикальный просмотр». Она ищет заданное значение в крайнем левом столбце диапазона и выводит данные из соседней ячейки в той же строке. Полезно, когда вы хотите сопоставить две разные таблицы, вытащить недостающие реквизиты или сверить два независимых списка.

Чтобы запустить механизм, понадобятся три обязательных аргумента и один опциональный:

  1. Искомое_значение (строка или число, которое пытаемся найти);

  2. Таблица (целевой диапазон ячеек справочника, где осуществляется поиск);

  3. Номер_столбца (порядковый номер колонки в таблице справочника, откуда нужно забрать искомое значение);

  4. Интервальный_просмотр (необязательный аргумент выбора точности поиска: ИСТИНА или ЛОЖЬ). Вариант «ЛОЖЬ» означает, что нужен только стопроцентно точный результат. Выбор «ИСТИНА» разрешает искать близкое приближенное значение. Если опустить параметр, Excel применит поиск по умолчанию – «ИСТИНА».

В готовом виде формула выглядит так:

=ВПР(искомое_значение; таблица; номер_столбца; [интервальный_просмотр])

Держите в уме критически важное условие: искомое значение обязано находиться исключительно в самом первом (крайнем левом) столбце выделяемой таблицы справочника. Этот столбец считается первым (индекс 1), следующий за ним вправо – вторым (индекс 2) и так далее.

Рассмотрим пример: нужно узнать, к какому региону прикреплен сотрудник.

  1. Сначала укажем объект поиска – имя «Mike» (ячейка A2).

  2. Далее выделим диапазон ячеек со справочником (наша целевая таблица поиска) – F2:G8.

  3. Затем укажем, из какого столбца забирать результат. Считаем колонки слева направо в границах нашего справочника F2:G8. Название региона находится во второй колонке, значит, пишем цифру 2.

  4. И наконец, определимся с точностью совпадения. Режим «ИСТИНА» обычно используют для числовых интервалов. Нам же необходимо железно найти конкретного человека, поэтому выбираем ЛОЖЬ (чтобы гарантировать точное совпадение). Большинство опытных пользователей по умолчанию ставят в конце формулы именно «ЛОЖЬ» (или 0).

Итоговый вид формулы:

=ВПР(A2; F2:G8; 2; ЛОЖЬ)

Функция ВПР – идеальный навигатор для стыковки связанных данных в крупных информационных массивах

Функция ВПР – идеальный навигатор для стыковки связанных данных в крупных информационных массивах

Конечно, на крохотной демонстрационной таблице преимущество неочевидно. Но когда перед вами база на десятки тысяч позиций, ВПР сэкономит часы монотонного труда и застрахует от опечаток.

❯ Пишем формулы без усилий: ИИ-помощник Copilot

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

Чтобы активировать ИИ, нажмите на значок Copilot на панели инструментов или в правом нижнем углу экрана.

Чтобы призвать Copilot, кликните по кнопке. Она может располагаться на ленте или парить в правом нижнем углу рабочего окна Excel

Чтобы призвать Copilot, кликните по кнопке. Она может располагаться на ленте или парить в правом нижнем углу рабочего окна Excel

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

Создай в ячейке B7 формулу для подсчета суммы всех продаж

Сформулируйте задачу для Copilot простым языком

Сформулируйте задачу для Copilot простым языком

Нажмите кнопку отправки запроса. Помощник проанализирует контекст страницы, соберет нужную формулу и добавит ее в нужную ячейку.

Нейросеть сгенерировала корректный математический код, и в ячейке B7 появился верный ответ

Нейросеть сгенерировала корректный математический код, и в ячейке B7 появился верный ответ

Позовем ИИ на помощь в более запутанном кейсе, представленном на скриншоте ниже.

Разнородный массив данных для следующего теста

Разнородный массив данных для следующего теста

Отправим нейросети многоступенчатый запрос:

Создай в ячейке G2 формулу, рассчитывающую общую выручку за единицу товара с учетом скидки на каждую покупку. Затем протяни эту формулу вниз для всех остальных строк и сформируй сводную таблицу с суммой выручки по регионам (Region).

Отправляем промпт на обработку и наблюдаем за магией. Результат работы ИИ выглядит круто:

ИИ за секунду вывел все расчеты, достроил столбец и собрал сводную аналитику по регионам

ИИ за секунду вывел все расчеты, достроил столбец и собрал сводную аналитику по регионам

Лайфхак: работать с Copilot станет комфортнее, если вы предварительно отформатируете рабочий диапазон как умную таблицу. Так нейросеть будет четко видеть границы структурированных данных и задействует нужные диапазоны без промахов.

Для дальнейшего изучения

Сегодня вы заглянули за занавес возможностей Excel, и это лишь вершина гигантского ледника. Как только освоитесь с базовыми алгоритмами, откроются сотни готовых инструментов программы и огромный набор вложенных функций разного уровня сложности. Идеальная отправная точка для углубленного изучения – справочник Microsoft «Общие сведения о формулах в Excel».


Статья является переводом. Автор оригинала: Shimon Brathwaite


Автор текста:ZheleznyChel

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 29
92

Кинопоиск всё-таки отключил статистику по фильмам — я создал свою на основе Letterboxd и TMDB

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

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

Меня это изменение не задело — я давно уже переехал с Кинопоиска на Letterboxd.

Не буду сегодня останавливаться на моих впечатлениях от Letterboxd в целом (спойлер: они смешанные). Но вот интересно посмотреть, как там обстоят дела со статистикой просмотренного.

Хорошая новость в том, что она есть. Вот примеры для профиля целиком и за конкретный год. Но плохая новость в том, что статистика доступна только на платной Pro-подписке.

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

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


❯ Текущий статус проекта

Проект я назвал Cinesta — сокращение от Cinema Statistics («Статистика кино»). Что в принципе и отражает ключевую задачу проекта — отобразить разнообразную статистику конкретного человека на основе данных о его просмотренных фильмах.

Это не готовый сайт-сервис, а проект с открытым кодом для личного использования, доступный в репозитории на GitHub.

Код можно скачать и запускать на своём ПК, на сервере и в облачной платформе. Далее мы разберёмся, как это сделать.

Не стоит ожидать от Cinesta многого — это всего лишь прототип, собранный на коленке за пару выходных просто для демонстрации, вдохновения и проверки гипотезы. Да, функций мало, код кривой, дизайн простоват, с телефона не юзабельно и местами всплывают баги, но это всё нормально для первой версии.

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

Хоть и проект предназначен для личного закрытого использования, я временно для демонстрации запустил копию проекта по адресу cinesta.ru. Проект не адаптирован для использования многими пользователями одновременно, поэтому работоспособность не гарантируется, но как минимум демо-данные должны подгружаться нормально.

❯ Технологии

Выбранные технологии:

База данных не используется. Загруженный пользователем архив из Letterboxd просто извлекается в удобный вид, обогащается данными из TMDB и затем возвращается пользователю обратно в браузер.

❯ Как работает проект

Итак, посмотрим, как выглядит и работает Cinesta. Пока что пропустим вопрос установки, настройки и загрузки данных — мы вернёмся к этому позже. Представим, что уже всё готово.

На главной странице сразу показывается ключевая статистика в виде карточек и графиков. Рассмотрим всё по порядку.

Топ фильмов по оценке

Визитная карточка любого киногика — список его любимых фильмов.

Поэтому в первую очередь на главной мы видим карточки 8 фильмов с самой высокой оценкой.

В каждой карточке есть название фильма, год выхода, постер, ваша оценка фильму по 5-балльной шкале, режиссеры, жанры, даты просмотра, а также оригинальное название и ссылки на Letterboxd и TMDB.

Если баллы одинаковые, то фильмы располагаются в порядке просмотра — от недавних дат к более давним.

Под блоком есть кнопка «Смотреть всё», которая переводит на страницу с полным списком фильмов по рейтингу (к ней мы еще вернёмся).

Последние просмотренные

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

Топ режиссёров по рейтингу

Далее идут карточки с вашими любимыми режиссерами.

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

Здесь у нас необычное решение — рейтинг режиссеров на проекте составляется по баллам (points), которые рассчитываются по специальной формуле.

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

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

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

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

В итоге наша формула рейтинга режиссёра работает так:

  • Берется каждый фильм с оценкой от 3 и выше.

  • Оценка каждого фильма возводится в 4 степень (т.е. 3 становится 3*3*3*3=81).

  • Полученные числа складываются.

  • Итоговое число делится на 10 и округляется до десятых — это сделано просто для упрощения восприятия.

Вы спросите, почему оценки фильмов не просто суммируются, а возводятся в 4 степень? Это нужно, чтобы увеличить удельный вес фильмов с самыми высокими оценками. Потому что если просто сложить баллы, то режиссер, который снял два середняка (3+3 = 6) получит больше баллов, чем режиссер, который снял один шедевр на 5 баллов.

Но если мы перед сложением возводим оценки в степени, то высокие баллы усиливаются. Например, если в нашем простом примере возвести оценки во вторую степень, то режиссер с 5-балльным фильмом теперь победит: будет 3*3 + 3*3 = 18 против 5*5 = 25.

Но когда я начал пробовать эту формулу, то понял, что для меня второй и даже третьей степени мало. А вот четвёртая — самое то.

Посмотрим конкретный пример на странице «Режиссёры», к которой мы еще вернемся.

Наверху этого списка четыре режиссера, у каждого из которых по одному фильму с оценкой 4. Эта оценка даёт 25,6 баллов. И этого достаточно, чтобы они встали выше тех, кто снял по три трёхбалльных фильма и получил за это по 24,3 балла.

А дальше идут те, у кого в наличии один фильм с 3 баллами и один с 3,5 баллами.

Т. е. при такой формуле на первое место выходит качество, а не количество. Хотя и количество тоже играет роль.

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

Топ режиссёров по наивысшей оценке

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

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

Также, как и в остальных блоках, по клику на «Смотреть всех» будет переход на отдельную страницу с полным списком.

Все просмотры по оценкам

А дальше начинаются графики. Первый график самый простой и очевидный — количество всех фильмов, разбитых по оценкам.

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

Фильмов просмотрено по годам

Далее еще один простой график — количество всех просмотренных фильмов по годам.

При этом можно выбрать, считать ли по году просмотра или по году выхода фильма. Также можно выбрать, с какого года начинать отсчёт.

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

Фильмов просмотрено по годам, с оценками

А вот теперь кое-что поинтересней — все фильмы по годам выхода, с разбивкой по оценке внутри столбца.

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

На примере видно, что в 2024 вышло больше посмотренных фильмов, чем в 2023, но весь этот прирост ушел у пользователя в фильмы с низкой оценкой, а количество качественных фильмов не изменилось.

Так же, как и в предыдущем графике, можно выбрать, считать ли по году просмотра или по году выхода фильма. И с какого года начинать отсчёт.

Доля оценок по годам

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

В этом же графике количество не важно — важен процент. Т. е. мы смотрим на отношение фильмов с определенной оценкой ко всем фильмам этого года. За основу берётся год выхода фильма.

Топ жанров

Рейтинг самых популярных у пользователя жанров.

Можно выбрать, от какой минимальной оценки вести счёт. По умолчанию — от 3 включительно.

Динамика жанров по годам

А тут можно посмотреть жанры в динамике — как менялось количество посмотренных фильмов определенного жанра с каждым годом.

На этом главная страница заканчивается и переходим к другим страницам.

Страница «Фильмы»

Отдельная страница посвящена только фильмам.

По умолчанию открывается вкладка «По оценкам» — это список всех фильмов, отсортированных по оценке.

Здесь можно отфильтровать фильмы по году выхода, году просмотра или по жанру.

А на вкладке «Последнее просмотренное» показываются последние просмотренные фильмы.

Страница «Режиссеры»

На странице «Режиссеры» по умолчанию открывается вкладка «По рейтингу». То же самое, что и на главной, только тут уже выводятся все режиссеры.

Вторая вкладка — «По наивысшей оценке».

На этом мы рассмотрели всю функциональность проекта. Да, информации и графиков пока мало — то, что есть, это скорее для демонстрации и вдохновения. Вы можете легко доработать проект самостоятельно или с помощью ИИ.

❯ Как зарегистрироваться в TMDB (The Movie Database)

Теперь посмотрим, как настроить и запустить такой проект у себя. Начнём с подключения к TMDB (The Movie Database).

Сразу предупредим, что TMDB не доступен с территории РФ. Не открывается сайт, не доступен API и не будут открываться картинки с серверов TMDB. Это конечно легко решается, но в данной статье мы не будем на этом останавливаться.

Для получения детальной информации о фильмах вам нужен доступ к API сайта The Movie Database (TMDB). Однако, вы можете пока пропустить этот шаг, если вам хочется просто посмотреть на проект на тестовых данных (они загрузятся и без TMDB).

Сначала заполняем форму на странице регистрации:

Затем подтверждаем почту и авторизуемся на сайте.

Потом переходим в настройки аккаунта, в API, нажимаем «Создать» и выбираем «This is for my own personal use only». Затем еще раз подтверждаем, что API только для личного некоммерческого использования.

Затем нужно заполнить нудную форму с подробной информацией. Можно всё выдумать самому или попросить ИИшку.

После отправки формы откроется страница с готовыми API ключами и подробной информацией, как их использовать.

В нашем случае потребуется более длинный ключ — «Ключ доступа к API» (API Read Access Token). Всё, вы готовы к использованию TMDB API.

❯ Как запустить проект локально

Для локального запуска проекта в вашей операционной системе вам предварительно нужно установить Node.js, pnpm и git.

Когда будете готовы, скопируйте репозиторий к себе и перейдите в папку проекта. Это можно сделать командами:

В папке проекта создайте файл .env с нужными переменными:

# Ваш токен для подключения к API TheMovieDatabase (обязательно, если хотите загрузить свои данные)
NUXT_TMDB_TOKEN="qwertyoasdf123435asdfzxcvasdfqw234adsf"
# Для обхода ограничений со стороны TMDB (обязательно для входа с российского IP)
NUXT_TMDB_PROXY="http://admin:password@123.123.123.123:8000"

Затем из папки проекта по отдельности запустите команды, чтобы установить зависимости, собрать проект и запустить его.

pnpm install
pnpm build
pnpm preview

И всё, сайт будет доступен по локальному адресу http://localhost:3000/ Что делать потом, будет рассмотрено чуть дальше.

❯ Как запустить проект в облаке

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

Есть разные способы, как это сделать, и сегодня мы рассмотрим установку с помощью App Platform от Timeweb Cloud.

Заходим в раздел App Platform и нажимаем «Создать». Открывается форма настройки приложения, которая состоит из нескольких пунктов.

Форма создания приложения

1. Тип

У нас приложение на фронтенд-фреймворке Nuxt, поэтому на вкладке Frontend выбираем Nuxt.

2. Репозиторий

У нас открытый репозиторий, доступный для всех по ссылке, поэтому кликаем на «Подключите git-репозиторий по URL» и далее вставляем ссылку на репозиторий: https://github.com/nickneustroev/cinesta.git

Оставляем ветку и коммит по умолчанию.

3. Регион

Нам важен регион с поддержкой SSR. Чуть ниже в форме в пункте 4 есть примечание, какие регионы поддерживают SSR. На момент написания статьи это Москва и Амстердам — значит, мы должны выбрать что-то из них.

Можно выбрать Амстердам, потому что это европейский регион, и может быть TMDB API будет работать с этим сервером напрямую без обхода, хотя это не гарантируется.

4. Конфигурация

Тут видим галочку «Поддержка SSR», и на самом деле она означает поддержку серверной части Nuxt в целом, не только SSR (серверный рендеринг страниц).

В нашем случае SSR на проекте отключен, потому что он не нужен. Но нам нужна работающая серверная часть, потому что именно там обрабатываются загруженные из Letterboxd данные и оттуда идут запросы к TMDB.

Так что включаем эту галочку.

После этого выбираем конфигурацию сервера. Нам достаточно самой простой — 1 CPU 1 RAM.

5. Сеть

Оставляем по умолчанию

6. Настройка приложения

Здесь прописываются настройки для сборки и запуска приложения.

У каждого фреймворка есть свои настройки по умолчанию, и они уже тут прописаны, так что мы можем почти всё оставить как есть. Только заменим «npm run build» на «pnpm build».

Далее тут же надо добавить переменные окружения. Нажимаем «Добавить» и прописываем значения для NUXT_TMDB_TOKEN и для NUXT_TMDB_PROXY, если необходимо.

7. Информация о приложении

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

На этом все готово и можно нажать «Заказать».

Запуск приложения

Начнётся деплой (установка) приложения, который займет несколько минут.

После этого вы увидите сообщение, что всё успешно запущено.

По умолчанию App Platform уже выдаёт и подключает бесплатный технический домен, который может выглядеть как https://nickneustroev-cinesta-02f5.twc1.net/. Это как раз удобно для тестовых или пет проектов.

Поэтому вы можете сразу кликнуть на кнопку «Открыть приложение в новой вкладке» в панели сверху, и сайт откроется.

Покупка и подключение домена

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

Переходим в раздел «Домены» и выбираем «Купить домен».

Подбираем имя и добавляем домен в корзину.

Переходим в корзину. Тут, если необходимо, пока убираем пункт «Привязать к сервису» — это можно будет сделать позже.

Также, отключаем «SSL Timeweb PRO», потому что это платная профессиональная услуга, которая нам в данном случае не нужна.

Нажимаем «Оплатить» и далее после оплаты домен будет приобретен и появится в списке Доменов. Но чтобы полноценно им пользоваться, нужно подождать несколько минут.

Когда домен будет готов, заходим в его настройки во вкладку DNS, нажимаем «Добавить запись» и выбираем тип записи «А». Из списка сервисов выбираем созданное нами приложение в App Platform и нажимаем «Добавить».

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

❯ Как начать работать с проектом

Итак, мы запустили приложение локально или в облаке, сайт открывается.

Теперь посмотрим, какие настройки есть на сайте и как правильно загрузить свои данные.

1. Выбор языка

На проекте есть выбор языка: Русский и Английский.

Выбор языка не только меняет язык интерфейса, но также будет определять, на каком языке будет выгружена информация из TMDB: названия фильмов, обложки, жанры и имена режиссеров. Поэтому сразу до импорта выберите, какой язык вам больше подходит.

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

2. Светлая и темная тема

На сайте можно переключать светлую и темную тему, кликнув на иконку в шапке возле выбора языка. Это функциональность обеспечивается из коробки библиотекой Nuxt UI.

4. Импорт своих данных

Пока проект принимает только данные из Letterboxd. На сайте Letterboxd откройте Profile —> Settings —> Data и там нажимайте кнопку Export you Data. Вы сможете скачать архив в формате zip. Именно его в неизменном виде нужно будет загрузить на нашем сайте.

Нажмите «Загрузить файл» и укажите файл с архивом. Будет показано число обнаруженных в архиве фильмов и отобразится примерное максимальное время обработки. На практике обработка будет быстрее, потому что уже полученная из TMDB информация сохраняется на сервере в кэше.

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

5. Импорт демо-данных

Если вы пока просто хотите посмотреть, как работает статистика, вы можете нажать «Запустить на демо-профиле». Будет импортирован архив с демо-данными.

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

Если вы запускаете проект в dev-режиме, то все импортируемые из TMDB фильмы будут добавляться в общий кэш и сохраняться в data/tmdb-cache.runtime.json

6. Хранение данные в браузере после импорта

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

❯ Итоги

На дворе 2026 год, мы живём в эпоху расцвета ИИ, и создание сайтов и приложений ещё никогда не было таким простым.

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

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

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

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


Автор текста: nickneustroev

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 27
89

Хватит кормить Chrome! Как я подружил браузер с ноутбуком 2007 года

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

В качестве демонстрации. FreeBSD и ноутбук 2007 года, но ниже будет и про ваши любимые Windows c Linux

❯ Хром

Браузер Chrome, созданный и разрабатываемый корпорацией Google давно стал главным инструментом для большинства пользователей компьютерной техники:

в вашем телефоне, планшете, телевизоре, ноутбуке и стационарном компьютере в подавляющем большинстве случаев будет установлен именно этот браузер, либо что-то на его основе.

Исключения редки, это продукция Apple со своим собственным браузером Safari, медленно умирающий Firefox и совсем уж сказочная альтернативщина.

Два вечных конкурента в виде браузеров Opera и Internet Explorer сдались в попытке угнаться за прогрессом и ныне используют под капотом движок от Chrome.

Так что Google это мировой монополист в области браузеростроения, Chrome — его самый популярный продукт и фактически главное приложение для большинства современных пользователей.

Даже эта статья создавалась с помощью браузера Chrome:

❯ Скорость

Конечно высокооплачиваемые разработчики самого популярного браузера на планете, щедро финансируемые «корпорацией добра» — не полные идиоты и разбираются в вопросах производительности собственного продукта гораздо лучше автора.

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

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

Применимость

Описываемые ниже инструкции — для десктопной версии браузера Chrome и с учетом специфики трех разных операционных систем: Windows, Linux и FreeBSD.

Мобильная версия браузера довольно сильно отличается, но также поддается подобной настройке. Однако чтобы не раздувать статью — про тюнинг мобильной версии расскажу в следующий раз.

Замечу также, что эта статья — далеко не самый возможный максимум оптимизации и если Господь наградил вас знанием языка С++, дав в руки компилятор, то сотворить с браузером можно гораздо больше.

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

Производительность

Я использую браузер Chrome на ноутбуках с момента его появления и часто работаю «в поле» — от батареи и без подключения к розетке. Помимо браузера на машине постоянно присутствуют еще несколько тяжелых приложений — в первую очередь среды разработки и разнообразные редакторы.

Все это в итоге формирует следующий набор требований:

  1. браузер не должен нападать на человека забирать на себя все доступные ресурсы;

  2. браузер не должен «сжирать» батарею ноутбука;

  3. браузер должен продолжать работать с современными сайтами, сохраняя отзывчивость интерфейса.

Время «холодного запуска» и скорость отрисовки страниц при таких вводных разумеется могут пострадать, но будут оставаться в пределах разумного.

Версии и названия

Чтобы не было путаницы, стоит сразу прояснить ряд нюансов с названиями продуктов и используемыми терминами.

Официально браузер от Google называется «Chrome» и поставляется (даже для Linux) в виде готовой сборки с инсталлятором, т.е. это закрытый коммерческий продукт, хотя и бесплатный для пользователя.

Именно эта версия доступна для скачивания с официального сайта и имеет максимальную интеграцию с сервисами и другими продуктами Google.

Открытая часть браузера Chrome называется «Chromium» и с точки зрения обычного пользователя никак не поставляется, поскольку Chromium предназначен в первую очередь для технических специалистов, участвующих в процессе разработки и тестирования.

Именно Chromium а не Chrome чаще всего установлен по-умолчанию в различных дистрибутивах Linux, в виде сборки от ментейнеров дистрибутива.

Наконец существует проект «Ungoogled Chromium», авторы которого постарались удалить из Chromium абсолютно все интеграции с сервисами Google и все закрытые инструменты сборки.

Ungoogled Chromium за последние годы набрал популярность, поэтому активно используется в BSD-системах и дистрибутивах Linux, ориентированных на безопасность.

Поскольку использование сервисов Google в наше непростое время может приводить к непредсказуемым проблемам и сбоям подключения, я буду использовать для всех описываемых оптимизаций Ungoogled Chromium либо просто Chromium, но не официальный Google Chrome.

Тем не менее для простоты повествования, в статье используется термин «Chrome» в качестве обозначения браузера, поскольку описываемые методы оптимизации полностью совпадают и частично применимы и к другим браузерам на основе Chromium.

Тестовая среда

Для статьи использовались современные 64-битные сборки браузера, с версиями начиная с 147 и выше:

147.0.7727.101 (Official Build) (64-bit)

Ungoogled Chromium имеет свою собственную нумерацию версий, отличную от оригинальной, для этой статьи использовались версии 137 и выше:

Под различными операционными системами использовались разные версии браузера, но во всех случаях — самые последние из доступных на момент написания статьи. Замечу также, что описанные оптимизации постоянно используются на всех моих ноутбуках, как мощных и современных, так и откровенно.. винтажных.

Поскольку разницу лучше всего видно на устаревшем оборудовании, в качестве тестовой среды будут использованы два настоящих «боевых пенсионера»:

<a href="https://specspro.net/laptops/6879-lenovo-ideapad-z580-2151/" target="_blank" rel="nofollow noopener">Lenovo Z580</a>, 2013 года

Lenovo Z580, 2013 года

<a href="https://gadgetaz.com/Laptop/ASUS_F3Ke--76" target="_blank" rel="nofollow noopener">ASUS F3Ke</a>, 2007 год

ASUS F3Ke, 2007 год

Эти весьма устаревшие по любым меркам (особенно второй) машины станут отличным тестовым полигоном для демонстрации результатов всех описываемых вивисекций оптимизаций.

❯ Оптимизация

Поскольку целевая аудитория статьи — обычные пользователи, не владеющие с пеленок компилятором и отладчиком, ограничусь тремя вариантами оптимизации браузера, доступными без залезания непосредственно в код:

хитрые настройки, хитрые плагины и хитрое окружение.

Все ради того чтобы крутить ленту каких-нибудь Reddit/LinkedIn без зависания браузера и 100% загрузки процессора.

Так выглядит работа браузера со всеми оптимизациями на Ubuntu Linux и ноутбуке 2012 года

❯ Chrome и Linux

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

Debian, Ubuntu, Manjaro, Mageia, Calculate — только то что установлено на железе, без виртуализации.

Сразу уточню, что Calculate Linux (на базе Gentoo) использует OpenRC вместо systemd, поэтому трюк с systemd-run тут не используется, но все остальные инструкции отлично работают на всем этом зоопарке и по своей сути применимы для любого окружения на базе Linux, везде где есть браузер Chrome.

Начнем со скрипта запуска браузера, в котором специальными параметрами включаются или отключаются разные хитрые опции, а также используется специальное окружение:

#!/bin/bash

systemd-run --user --slice=chromium.slice chromium \
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder \
--enable-gpu-rasterization \
--disable-gpu-compositing \
--enable-zero-copy \
--disable-background-networking \
--disable-client-side-phishing-detection \
--disable-prompt-on-repost \
--disable-sync \
--metrics-recording-only \
--no-first-run \
--safebrowsing-disable-auto-update \
--ignore-gpu-blocklist \
--renderer-process-limit=4 \
--disable-smooth-scrolling \
--wm-window-animations-disabled \
--animation-duration-scale=0 \
--disable-spell-checking \
--disable-features=WhatIsNewPage,Promotions,LensOverlay \
--enable-unsafe-swiftshader "$@"

Сохраняете текст выше в какой-нибудь /opt/own/bin/chrom, выставляете бит запуска:

chmod +x /opt/own/bin/chrom

И используете этот скрипт для первого запуска браузера.

Стоит напомнить, что символ \ отвечает за перенос строк, т.е. для программы весь набор параметров выше это одна длинная строка.

Если при копировании текста что‑то сломается — просто удалите все \ и сведите все в одну длинную строку — так тоже запустится.

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

Теперь рассказываю страшную сказку про «прожорливый» Chrome и пропавшую память, точнее про эту интересную строку:

systemd-run --user --slice=chromium.slice chromium

Дело в том, что у браузера Chrome есть дурная привычка считать весь компьютер своей собственностью и захватывать максимум доступных ресурсов — всю свободную память и все доступные процессоры и ядра.

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

Но стоит лишь немного просесть по мощности используемого оборудования или доступным ресурсам для более прожорливых программ (привет Davinci Resolve) и любимый браузер от «корпорации добра» немедленно показывает звериный оскал свое истинное лицо.

В случае ноутбука (тем более мощного) немедленно проявляется еще один дурной эффект:

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

Так что становится жизненно необходимым сажать браузер на ресурсную диету с помощью systemd и функционала cgroups.

Делается это в современных Linux-дистрибутивах довольно просто, для начала создаем файл ~/.config/systemd/user/chromium.slice со следующим содержимым:

[Slice] MemoryAccounting=yes MemoryHigh=1G MemoryMax=1.5G MemorySwapMax=3000M CPUAccounting=true CPUQuota=70%

Помимо очевидных лимитов на объем используемой памяти (MemoryHigh и MemoryMax), тут еще задается квота на загрузку процессора (CPUQuota), что не дает поднять ее выше заданного лимита — 100% загрузку CPU от процессов Chrome вы больше не увидите.

Теперь самое важное:

все указанные лимиты применяются ко всем дочерним процессам, которые запускает Chrome во время работы.

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

Ну и сам запуск с помощью черной магии systemd-run и указания слайса:

systemd-run --user --slice=chromium.slice chromium

Аналогичным образом можно ограничивать по ресурсам любые другие «жирные» приложения, например Telegram, который в последних версиях повадился генерировать 100% загрузку процессора по любому поводу.

Замечу, что сей хитрый трюк работает и с приложениями, работающими внутри AppImage или snapd-пакетов, так что с его помощью замечательно урезаются аппетиты версий Chrome/Chromium в Ubuntu/Manjaro, управляемые snapd.

Отключение анимации в действии

Отключение анимации в действии

❯ Отключение анимации

Существует одно интересное расширение для Chrome, позволяющее отключать анимированные картинки на всех страницах:

вместо мигающей хтони анимации будет отображаться один статичный кадр.

Нетрудно догадаться, что этим сильно снижается нагрузка на CPU/GPU (особенно в случае устаревшего оборудования), с чего происходит серьезная экономия заряда батареи.

Так что очень рекомендую к использованию.

Ungoogled Chromium и установка расширений

К сожалению для установки расширений из официального магазина для «левого» Ungoogled Chromium необходимо специальное расширение, без которого вас обрадуют ошибкой:

CRX_REQUIRED_PROOF_MISSING

А кнопка установки в интерфейсе магазина окажется скрытой.

В качестве альтернативного варианта можно использовать специальный сайт от авторов расширения, который позволяет скачать пакет с расширением .crx и установить его локально в вашем браузере.

Теперь переходим к самому интересному — к параметрам запуска.

❯ Параметры Chrome

У браузера Chrome есть огромное количество разнообразных параметров запуска, как документированных так и не очень. Часть из них дублируется во внутреннем служебном интерфейсе chrome://flags/, часть — нет.

Так выглядит служебный интерфейс с настройками браузера Chrome

Так выглядит служебный интерфейс с настройками браузера Chrome

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

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

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

Так выглядит небольшая часть параметров в динамике:

Тут показано менее 1% всех параметров запуска браузера

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

Поехали.

--enable-features=VaapiVideoDecoder,VaapiVideoEncoder

Параметр --enable-features= как нетрудно догадаться из названия используется для принудительного включения опций браузера.

В данном случае принудительно включаются кодеки для аппаратного декодирования видео, работающие на базе Video Acceleration API (VAAPI).

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

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

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

--enable-gpu-rasterization

Данный ключ принудительно включает аппаратную отрисовку страниц с помощью GPU:

Chrome 37 introduced a GPU rasterizer. When enabled, some paint workloads can go from 100ms/frame to 4-5ms/frame.

Несмотря на то что опция является «экспериментальной» и вроде как работает не во всех случаях — ее включение это единственный вариант комфортного использования современного браузера на устаревшем железе.

--disable-gpu-compositing

Принудительное отключение GPU-реализации композитора страниц.

Актуально для сильно устаревшего оборудования, вроде моего Asus F3KE, поскольку GPU-композитор на нем порождает совершенно дикие визуальные артефакты:

Феерический баг

--enable-zero-copy

Согласно строчке с описанием в исходном коде браузера:

Enable rasterizer that writes directly to GPU memory associated with tiles.

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

--disable-background-networking

Запрещает браузеру использовать фоновые сетевые запросы, например проверку обновлений для установленных расширений.

--disable-client-side-phishing-detection

Отключает фоновую проверку сайтов на фишинг.

Этот параметр вроде как удален в новых версиях браузера, но все еще часто встречается в различных руководствах и материалах.

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

--disable-prompt-on-repost

Отключает дурацкое предупреждение о повторной отправке формы:

--disable-sync

Отключает облачную синхронизацию учетной записи Google.

Актуально только для обычного Chromium, для ungoogled-версии не используется, поскольку функционал глобальной учетной записи там вырезан.

--metrics-recording-only

Указывает браузеру только записывать отчеты с метриками производительности, но запрещает отправлять их на сервера Google. Отчеты сохраняются в текущем профиле, актуальны при поиске проблем с медленной работой браузера или отдельных сайтов.

--no-first-run

Отключает приветственный диалог при первом запуске браузера.

--safebrowsing-disable-auto-update

Отключает автоматическое фоновое обновление баз для «Safe Browsing» — специального сервиса Google для защиты от фишинга и подозрительных сайтов. Актуально для обычного Chromium, поскольку в ungoogled‑версии функционал «Safe Browsing» удален.

--ignore-gpu-blocklist

Натурально заставляет браузер «работать на дровах» — использовать неподдерживаемое и устаревшее оборудование для аппаратного ускорения.

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

--renderer-process-limit=2

Еще один «магический» параметр, критически влияющий на производительность браузера и потребляемые ресурсы:

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

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

--disable-smooth-scrolling

Просто «имба» за которую вы потом будете благодарить — параметр отключает плавную прокрутку в браузере, которая очень сильно влияет на скорость при работе на слабом или устаревшем оборудовании.

Влияет настолько сильно, что разницу становится видно визуально после перезапуска.

--wm-window-animations-disabled

Отключает практически всю анимацию во внутренних интерфейсах браузера — там где опции настроек, закладки и расширения.

--animation-duration-scale=0

Переопределяет длительность воспроизведения CSS-анимации, значение 0 означает полное отключение, но работает к сожалению только для элементов интерфейса самого браузера, не для страниц.

--disable-spell-checking

Отключает фоновую проверку правописания, которая серьезно влияет на скорость работы браузера (вплоть до подвисания страниц).

--enable-unsafe-swiftshader

Еще один важный параметр, который разрешает использование «небезопасного» программного рендера WebGL, что позволяет использовать 3D-графику в браузере даже на устаревшем оборудовании, которое не поддерживает современное Vulkan API.

--disable-features=WhatIsNewPage,Promotions,LensOverlay,OptimizationGuideOnDeviceMode

Данный параметр по прямой аналогии с описанным в самом начале --enable-features= переопределяет опции браузера, которые необходимо отключить.

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

Актуально только для обычного Chromium, поскольку в ungoogled-версии все эти радости вырезаны целиком.

Теперь рассказываю для самой широкой аудитории — про оптимизацию браузера под Windows.

Прокрутка ленты Reddit в качестве демонстрации, поскольку Reddit — один из самых «тяжелых» популярных сайтов, известных автору

❯ Хром и Windows

Я использую Windows 11, 10 и 7 на рабочих станциях а также множество разных виртуальных машин с серверными версиями Windows.

Поскольку оптимизации актуальны только при использовании браузера на рабочей станции (мало кому интересно работать из браузера прямо с сервера, правда?), поэтому в качестве тестовой среды будут выступать только три пользовательских версии Windows: 11, 10 и 7.

Технические характеристики машины из ролика с лентой Reddit

Технические характеристики машины из ролика с лентой Reddit

Скрипт запуска выглядит следующим образом:

chrome.exe --enable-features=VaapiVideoDecoder,VaapiVideoEncoder^

--disable-features=WhatIsNewPage,Promotions,LensOverlay^

--enable-gpu-rasterization^

--disable-gpu-compositing^

--enable-zero-copy^

--disable-background-networking^

--disable-client-side-phishing-detection^

--disable-prompt-on-repost^

--disable-sync^

--metrics-recording-only^

--no-first-run^

--safebrowsing-disable-auto-update^

--ignore-gpu-blocklist^

--renderer-process-limit=4^

--disable-smooth-scrolling^

--wm-window-animations-disabled^

--animation-duration-scale=0^

--enable-unsafe-swiftshader %*

Сохраняете текст выше в файле run.cmd, кладете в каталог рядом с chrome.exe и используете для первого запуска.

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

Замечу, что символ ^ — аналог \ в UNIX-мире и используется для переноса длинных строк в командных скриптах под Windows.

Если что‑то перенесется неправильно — просто удаляете символы ^ и сводите все в одну длинную строку.

Также добавлю, что в последние версии и Chrome (и даже Chromium) под Windows авторы напихали AI-фич под завязку, поэтому на моих рабочих станциях с Windows ныне используются только и исключительно Ungoogled-сборки.

Ungoogled Chromium на Windows 7 со всем тюнингом. Справа менеджер задач и загрузка памяти

Chrome и старые Windows

Официально Google перестала поддерживать Windows 7 для Chrome/Сhromium еще в 2023 году, поэтому если у вас осталась живая «семерка» и есть необходимость использовать современный браузер — будут определенные сложности.

Обратите внимание на версию браузера и дату сборки

Обратите внимание на версию браузера и дату сборки

Цитируя одну известную шутку: чем бы вы ни занимались — обязательно найдется азиат, который сделает еще круче. В случае с портированием Chrome на устаревшие версии Windows именно так и произошло:

стоило только начать изучать вопрос и доступные варианты — немедленно нашелся репозиторий со сборками последних версий Chrome... под Windows XP!

Windows XP вышла в далеком 2001м году и процесс портирования под настолько старую ОС был весьма непростым занятием. Вот тут выложены готовые сборки браузера под Windows XP с поддержкой аппаратного ускорения (!) — невероятный хардкор.

Теперь переходим к разделу для самых ярых фанатов своего дела.

Да, это современная сборка браузера Chrome, летающая на антикварном оборудовании. Без записи с экрана все работает еще быстрее

❯ Chrome и FreeBSD

Наконец последним разделом описываю то, с чего началась эта статья в далеком 2023-м году:

оптимизация работы браузера Chrome под FreeBSD на очень сильно устаревшем оборудовании.

«Очень сильно устаревший» — про тот самый Asus F3KE из 2007 года, спасенный автором от достойного погребения за долгую службу.

Так выглядит вывод fastfetch с описанием оборудования:

<a href="https://www.warhammer-community.com/en-gb/articles/iIP5RR4u/40-years-of-warhammer-even-in-death-i-still-serve/" target="_blank" rel="nofollow noopener">Even In Death, I Still Serve</a> (ц)

Even In Death, I Still Serve (ц)

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

Так выглядит скрипт запуска:

#!/usr/local/bin/bash

source ~/.exports.sh

/usr/local/bin/ungoogled-chromium
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder \
--enable-gpu-rasterization \
--disable-gpu-compositing \
--enable-zero-copy \
--disable-background-networking \
--disable-prompt-on-repost \
--metrics-recording-only \
--no-first-run \
--ignore-gpu-blocklist --renderer-process-limit=2 \
--wm-window-animations-disabled \
--animation-duration-scale=0 \
--enable-unsafe-swiftshader "$@"

Поскольку во FreeBSD довольно давно используется ungoogled-версия браузера, поэтому были убраны параметры для того функционала, который был вырезан в ungoogled-версии.

Строка:

source ~/.exports.sh

на самом деле скрывает портал в ад отдельный механизм повторного использования сессии DBus, подключаемый тут файл ~/.exports.sh создается вот таким специальным скриптом:

#!/usr/local/bin/bash

FF=0

if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then
lines=$(pgrep "dbus-daemon" -u "$USER" | (while read -r line
do
echo $line
exp=`procstat -h -e $line`
if [[ "$exp" == *"DBUS_SESSION_BUS_ADDRESS="* ]]; then
echo "DBus session found"
exp2=`echo $exp |sed 's/.*DBUS_SESSION_BUS_ADDRESS=\([^ ]*\).*/\1/'`
echo export DBUS_SESSION_BUS_ADDRESS="$exp2" > ~/.exports.sh
FF=1
break
fi
done; echo $lines) )
echo $FF
if [[ "$FF" = 8 ]]; then
echo "DBus session not found, starting.."
dbus_out=`dbus-launch`
echo $dbus_out > ~/.exports.sh
fi
if [[ -f ~/.exports.sh ]]; then
source ~/.exports.sh
fi
fi

Этот скрипт натуральным образом ворует сессию работы с DBus, забираясь в окружение другого запущенного процесса (да, так можно было) — все ради того чтобы не запускать процесс dbus-launch повторно.

Помимо приседаний с параметрами, в версии для FreeBSD также используется описанное выше расширение браузера для отключения анимации, но вместо изоляции через cgroups используется более простой вариант со сниженным лимитом на количество запущенных процессов рендера:

--renderer-process-limit=2

Чего вполне достаточно для комфортной работы.

❯ За кадром

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

--profile-directory=test-profile

Указывает альтернативное название профиля, по-умолчанию он называется Default и находится в каталоге пользователя.

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

--single-process

Заклинание чудовищной силы, которое заставляет браузер работать в одном единственном процессе:

Браузер Chrome, работающий целиком в одном процессе. Шок-контент

Браузер Chrome, работающий целиком в одном процессе. Шок-контент

Этот весьма опасный (во всех смыслах) параметр переключает Chrome в нестандартный режим работы, при котором браузер не порождает отдельные процессы на каждую вкладку.

К сожалению такой режим работы является весьма нестабильным и браузер будет падать, особенно на сложном контенте и с большими расширениями вроде AdBlock.

Тем не менее, это единственный известный мне способ заставить Chrome работать без порождения дополнительных процессов.

--disable-features=UseSkiaRenderer

Отключает бекэнд Skia Renderer, используемый для отрисовки практически всей графики:

Chrome uses Skia for nearly all graphics operations, including text rendering. GDI is for the most part only used for native theme rendering; new code should use Skia.

К сожалению этот параметр является обязательным если вы собираетесь использовать --single-process, думаю очевидно что скорость отрисовки страниц при этом упадет.

❯ Эпилог

Мой опыт оптимизации браузера весьма специфичный и далеко не глобальный, поскольку решаемая задача касается производительности на устаревшем оборудовании и не самых популярных операционных системах.

Поэтому с радостью почитаю про ваш опыт и применяемые практики.


Автор текста: alex0x08

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 18

Обновили ядро Linux на всех Ryzen-серверах в Москве

В копилку стабильности — и с конкретным обновлением под капотом.

Во время работы с высокопроизводительными серверами на Ryzen 7950X нашли причину редких зависаний нод. На старом ядре Ubuntu 22.04 эти процессоры могли работать нестабильно.

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

Чтобы устранить проблему, обновили ОС и ядро на всех Ryzen-серверах в московской локации.

Переезд выполнили поэтапно: сначала подняли резервные серверы, перенесли на них проекты и только потом приступили к обновлению основных хостов. Поэтому пользователи не столкнулись с простоем.

Теперь гипервизоры работают на новом ядре, а риски возможных зависаний нод осталась в прошлом.

Если вам нужны мощные серверы в Москве, есть еще одна новость — расширили парк Ryzen 7950X, чтобы было больше доступных конфигураций под ваши проекты.

Показать полностью 2
42

Оживление android-планшета глазами новичка. Как я нашел себе классную читалку на лето

По личным ощущениям, индустрия планшетов потихоньку отошла на второй план у массовых пользователей. И речь сейчас про буквально все сегменты, от недорогих устройств на Android до всей линейки iPad. Эта история осталась актуальной для гораздо более узкой прослойки людей, как будто.

Я же, в свою очередь, любил свой iPad сначала mini второго поколения (еще в студенческие годы), а затем и Air 2, который дожил до 2023 года, пока его случайно не разбила старшая дочь. Но вот как-то новый мне покупать не хотелось — я банально не нашел ни одной причины это делать по большей части.

А недавно, разбирая шкафы в квартире родителей, я нашел артефакт — Samsung Galaxy Tab A8. Компактный, красивый и, что самое главное, рабочий. И тут возникла у меня идея, ход исполнения и результаты которой я и расскажу в этом материале.

Важно: я предупреждаю сразу — это не инструкция и не гайд, а я ни разу не эксперт по перепрошивке и всему, что с этим связано. Я просто делюсь опытом, что конкретно и зачем делал, с одной целью — рассказать свой опыт и, возможно, мотивировать кого-то на подобное свершение. Хардкорные знатоки, не судите строго.

❯ Автор, на кой ты туда полез?

С одной стороны, ну валяется старый планшет (а скорее даже фаблет, потому что там аж два слота под сим-карту) и пусть, зачем тебе он нужен? Справедливо и весьма обоснованно спросит меня читатель.

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

Из этого весьма компактного (а в случае меня ростом 194 сантиметра так вообще карманного) планшета выйдет, например, неплохая читалка книг и манги.

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

❯ Он неплохо работает из коробки, зачем заниматься кастомной прошивкой

Первое, что я попытался сделать, это начать использовать девайс на родной версии Android, здесь это древняя «пятерка».

И на удивление — планшет откровенно шустро работает на родной прошивке, всё плавно открывается, нигде ничего не виснет, и вообще всё отлично. Однако... за одним исключением.

Пятая версия Андроида как бы то ни было устарела в дрова. Ни один сайт не открывается, ссылаясь на проблемы с сертификатами и внутренними часами, приложения не устанавливаются, ссылаясь на битые пакеты и так далее.

То есть да, ни читалку, ни приложение с мангой (а по сути, только оно мне и надо) поставить сюда просто не получится. А значит... Давайте прошивать.

❯ Кастомная прошивка древних устройств руками человека что последний раз делал это в юношестве

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

Поэтому для меня километровые ветки на одном известном форуме сравни манускриптам Древнего Китая, а еще, как назло, даже на английском языке толкового контента конкретно по моей модели и нет.

В итоге кое как скомпилировав кучу информации... оказалось, что все не так страшно. Вот что я делал:

  • Удалил все аккаунты с девайса, чтобы не словить блок по FRP. Планшет принадлежал отцу, и, к сожалению, я уже не смог бы узнать пароль от его почты, но удалить получилось без него.

  • Скачал программу Odin и столкнулся с фактом, что она просто не видит планшет. Поменял провод... Бесполезно. Нашел дома еще один (а это, на секундочку, micro-USB) и тоже всё бестолку.

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

  • Нашел драйвера, установил и через Odin накатил кастомный рекавери, забыл, что после этого планшет надо сразу в него загружать, иначе слетит... Окей, со второго раза получилось.

  • Из-под кастомного рекавери установил LineageOS, легкую и более-менее актуальную версию Android без лишнего софта.

И, по сути, всё. К счастью, мне не потребовалось ни разблокировать разгрузчик, ни шить через терминал, ни делать что-либо, что выходит за рамки «нормисного» юзера современной техники.

Планшет теперь работает на актуальной ОС, приложения устанавливаются и браузер работает. И вот теперь главный вопрос — а точно ли оно того стоило?

❯ Да, в целом оно того стоило

Зайду издалека. Я человек, что не очень сильно любит нынешний формат «всё в одном», когда у тебя смартфон — это и плеер, и читалка, и игровая приставка. Поэтому в своем рюкзаке, если я выхожу дольше чем на час, я очень комфортно (без шуток) таскаю то, что вы можете видеть на фото выше.

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

Поэтому старый планшет 2016 года на процессоре Qualcomm Snapdragon 410 APQ8016 с двумя гигабайтами памяти я определил для следующих задач:

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

  • Классика андроид-гейминга начала десятых. На этом планшете отлично полетит, например, Dead Space Mobile или классические Angry Birds, что более чем круто и вообще ностальгия.

  • Планшет нормально подходит для просмотра кино и видео на YouTube. Пару дней он просто жил на кухне в качестве экрана с подкастами. Звук, кстати, даже без наушников у него вполне норм..

  • Сомнительно для, наверное, всех, но не для меня. Здесь очень вайбовая камера на всего 5 мегапикселей, но фото получаются с отпечатком эпохи.

Как девайс справляется с этим? С нюансами. Главный — на LineageOS он работает и близко не так плавно, как на родном пятом Андроиде. Не слайд-шоу уровня китайских бюджетников 2013 года, но и не уровень современных среднебюджеток. Не критично, но плавности хочется больше.

Второй нюанс — не самый мощный аккумулятор (всего 4200 мАч) и медленная зарядка по старому разъему microUSB. При умеренном использовании его хватает на день, но заряжается он мучительно долго, и лучше всего оставлять на ночь.

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

Стоит ли покупать старый девайс и оживлять его по такому же принципу? Скорее нет, чем да, а если и стоит, то лучше какой-нибудь iPad Mini из тех же поколений — там банально экран и оптимизация будут получше.

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

А своими кейсами подобных «воскрешений» делитесь в комментариях и не сильно ругайте автора, я всё же больше писал про свой опыт и ощущения, а не старался выдать техническую инструкцию. Такие дела.

Автор текста: AkaneKuroshiki

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 14
2

AI-агенты в связке с Cline, Codex и OpenCode

AI-агенты в связке с Cline, Codex и OpenCode

Наших AI-агентов и AI Gateway можно использовать прямо в инструментах разработки.

Подключаете один раз → и дальше задаете вопросы по проекту, редактируете код и запускаете команды в терминале — прямо в рабочем окне.

Как это устроено: среда обращается к модели через OpenAI-совместимый API по вашему ключу. Используете наши модели и инфраструктуру, а интерфейс — привычный редактор или окно чата.

Подключение сводится к трем полям в настройках расширения:

1️⃣Тип провайдера — OpenAI Compatible

2️⃣ Базовый URL агента или AI Gateway

3️⃣ И, наконец, ваш API-ключ.

Дальше можно отправлять запросы модели прямо из кода. Если используете AI Gateway, в настройках доступны и параметры генерации — размер контекста, лимит токенов, температура.

Подробнее о каждой среде в доке → Cline, Codex и OpenCode.

Показать полностью 1
76

Разбор медицинского анализатора: Bayer Clinitek Status+

Приветствую всех!

Думаю, многим из вас доводилось в рамках диспансеризации или по предписанию врача идти в лабораторию и сдавать что-то на анализ чего-то. А ещё, уверен, многие хоть раз задумывались: а как вообще работают приборы, которые там стоят, и как они вообще определяют наличие тех или иных гадостей в вашем организме?

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


❯ Суть такова

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

Несколько лет назад известный в наших кругах товарищ @dlinyj скинул мне ссылку на объявление на вторичке, где продавался какой-то медицинский аппарат. Интерфейс на монохромном экране подозрительно напоминал PalmOS, что меня довольно сильно заинтересовало. Если WinCE не то что иногда встречается в спецоборудовании, а буквально была создана для него, то вот подобных девайсов на базе «пальмы» за исключением ТСД и электронной пишущей машинки я вообще не припоминаю. Цена той штуки была вполне молодёжная, и после недолгих раздумий я её заказал.

<a href="https://www.woernermedical.de/Praxisbedarf/Praxislabor/Laborgeraete/Point-of-Care/Siemens-Clinitek-Status-Plus-Geraet-f-Urinanalyse/p/28499" target="_blank" rel="nofollow noopener">Источник</a>

Источник

Через неделю я стал обладателем некоего Bayer Clinitek Status+ — лабораторного анализатора мочи для выявления заболеваний почек или для проведения теста на беременность.

❯ Вообще

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

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

❯ Обзор оборудования

Ну что же, взглянем, что за девайс мне вообще достался.

А вот и подопытный экземпляр.

Спереди только экран и кнопка включения. Внизу под наклейкой отсек для лотка для препарата (с этого ракурса не виден).

Вид сбоку.

Сзади COM-порт для связи с компьютером и гнездо для БП. Над ними дверца отсека для бумаги.

Снизу заводская наклейка, отсек для батареек и единственный саморез.

❯ Запускаем

Ну что же, взглянем на девайс в работе.

Подаём питание и жмякаем кнопку включения.

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

После этого на экране появляется вот такой интерфейс.

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

Это настройки прибора. Здесь довольно много пунктов, от диагностики до ввода данных об операторе.

Попробуем запустить какой-нибудь тест.

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

Никаких расходников к этому аппарату у меня нет, поэтому тест завершается провалом.

<a href="http://www.frankshospitalworkshop.com/equipment/documents/automated_analyzer/user_manuals/Siemens%20Clinitek%20Status%20Analyzer%20-%20User%20manual.pdf" target="_blank" rel="nofollow noopener">Источник</a>

Источник

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

<a href="http://www.frankshospitalworkshop.com/equipment/documents/automated_analyzer/user_manuals/Siemens%20Clinitek%20Status%20Analyzer%20-%20User%20manual.pdf" target="_blank" rel="nofollow noopener">Источник</a>

Источник

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

<a href="http://www.frankshospitalworkshop.com/equipment/documents/automated_analyzer/user_manuals/Siemens%20Clinitek%20Status%20Analyzer%20-%20User%20manual.pdf" target="_blank" rel="nofollow noopener">Источник</a>

Источник

Пример кадра с результатами анализа.

❯ Внутренности

Первая вставшая передо мной проблема — как это разобрать. После выкручивания единственного самореза снизу ничего не снялось.

Оказалось, надо выкрутить ещё и два винта с боков. Находятся они в очень неудобном месте, без углового шестигранника не подобраться.

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

Внутри мы видим батарейный отсек и мотор привода предметного столика. Также виден датчик его выдвижения.

Провода батарейного отсека подпаяны к отдельным пятачкам. Сам шлейф пропущен через ферритовые кольца.

А это мотор, который выдвигает и задвигает предметный столик.

Он же отдельно. Для возможности его мытья он специально сделан съёмным.

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

Продолжаем разбирать.

Сняв верхнюю часть и отключив парочку шлейфов от дисплея, видим плату управления. Справа от неё термопринтер для распечатки отчётов.

Плата отдельно. Увы, процессора MC68000 на ней не оказалось. Таким образом, работает эта штука не на PalmOS, а на какой-то RTOS или даже чём-то попроще.

ПЛИС явно занимается обработкой сигнала с датчика.

А это HD64F13006F20V — 16-битный управляющий МК.

С обратной стороны платы батарейка RTC, несколько электролитических конденсаторов, пищалка и слот под SD-карту.

Откручиваем ещё один винт и снимаем пластиковое крепление платы.

Под ним сердце прибора — оптическая часть.

Крышка закреплена простыми саморезами, так что снимем её. Вся оптика находится в ней.

На этой плате расположены подсвечивающие образец светодиоды — RGB и УФ.

Сняв металлическую пластину, видим внутренности оптической системы.

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

Световод из оргстекла. Закреплён он ни на чём не был, просто прижимался крышкой с расположенной на ней оптикой.

Больше на шасси прибора ничего интересного нет.

Дисплейный модуль.

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

❯ Как работает этот девайс

Как можно видеть, на самом деле какой-то экзотической начинки конкретно в этом девайсе нет. Здесь практически весь анализ делает не электроника, а химия.

<a href="https://medpostavka.su/product/6l/" target="_blank" rel="nofollow noopener">Источник</a>

Источник

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

Более подробно это всё описано тут, так что повторяться не буду.

Так вот. Раз существуют такие штуки с обычной бумажной контрольной шкалой, то почему бы не автоматизировать их считывание? Такое решение позволит ускорить процесс, а заодно и сделать анализ более точным и менее чувствительным к ошибкам оператора.

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

<a href="https://gezond-centrum.nl/ru/poloski-dlya-analiza-mochi/169171-multistiks-poloski-dlya-mochi-8-sht-100-sht-5016003230400.html" target="_blank" rel="nofollow noopener">Источник</a>

Источник

А вот пример того, с чем работает данный аппарат.

<a href="https://www.siemens-healthineers.com/de/urinalysis-products/urinalysis-reagents/clinitest-hcg-pregnancy-test" target="_blank" rel="nofollow noopener">Источник</a>

Источник

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

А это щель сканера, с обратной стороны которой находится световод.

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

Попробовал запечатлеть процесс сканирования, заслонив концевик и включив прибор.

❯ Так что в итоге?

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

Что же до изначальной цели приобретения этой штуки, то, как уже было сказано ранее, никакой PalmOS в нём не оказалось. Так что, возможно, спецоборудования на базе «пальм» (за исключением различных адаптеров к серийным КПК) не существовало вовсе.

Такие дела.


Автор текста: MaFrance351

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.


📚 Вам может быть интересно:

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 40
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества