Оценка корректности употребления слов английского языка less и fewer нередко вызывает споры даже среди грамотных носителей языка. Эти слова различаются тем, что одно, в сравнении, модифицирует объекты как “неисчисляемые” (“неперечислимые”, если хотите), а второе – как “исчисляемые” (“перечислимые”). Если задуматься о том, что происходит, то можно обнаружить особенность, достаточно тонкую, которая модифицирует воспринимаемый смысл, переставляя фокус его построения между словами, следующими за less/fewer. Эффект напоминает “морфологический переворот”, который я как-то упоминал. Уловить изменение непросто, нужны хорошие иллюстрации. Такая иллюстрация попалась мне в стилистическом руководстве издания The Guardian, где эффект less/fewer рельефно проиллюстрирован четырьмя предложениями – все эти предложения говорят о разном, попутно закрывая все четыре возможных относительных варианта:

For less bad things to happen, fewer bad people need to be involved.
For fewer bad things to happen, less bad people need to be involved.
For fewer bad things to happen, fewer bad people need to be involved.
For less bad things to happen, less bad people need to be involved.

Перевод, понятно, эффект уничтожает. Но можно дать объяснение, используя несколько испорченные обороты на русском. Посмотрим на первое предложение: “Чтобы случались менее плохие вещи, меньше плохих людей должно быть вовлечено”. Less – “уменьшает” (сравнительно) то, что “нельзя посчитать”, отсюда привязка к bad. Bad, – здесь, – нельзя сравнивать “в натуральных числах”, то есть, нельзя сказать, что что-то хуже на “две единицы измерения ухудшения”. Поэтому “менее плохие” (дословный перевод здесь использован как иллюстрация). Fewer – обозначает тоже “меньше в количестве”, но именно в том количестве, которое можно считать. Поэтому “меньше плохих людей”, а не “менее плохие” “люди”. Всем известны примеры “неисчисляемых” существительных – “вода”, “песок” и т.д., – а равно и примеры “исчисляемых”: “кирпичи”, “мячи” и т.д.

Второе предложение: “Чтобы меньше плохих вещей случалось, менее плохие люди должны быть вовлечены”. Тут сравнительная характеристика “less bad” применяется уже к “людям”. Думаю, два оставшихся предложения несложно самостоятельно “раскодировать” аналогичным способом, наблюдая, как переключается фокус интерпретации.



Комментировать »

А тип криптосистемы ML-KEM (она же – Kyber) на русском лучше писать так: “модуль-решёточная криптография”.

Вообще, определить ML-KEM, как прикладную криптосистему, можно совсем не используя соответствующее понятие решётки. Без модулей и колец – определить не выйдет, поскольку векторы и многочлены непосредственно служат элементами алгоритмических структур (достаточно того, что открытый текст представляется в виде многочлена). Но решётки, как один из мощных инструментов теоретической криптографии, тут возникают при доказательстве предположений о стойкости криптосистемы. Ну, или в другую сторону: выбор базовой задачи данной криптосистемы основан на оценках вычислительной сложности задач “на решётках”.

То есть, как ни крути, а решётки имеют определяющее значение, но с точки зрения базовой задачи, которая напрямую в ML-KEM не используется. Так же, кстати, написано и в стандарте NIST, где термин “решётка”, если не считать употребление его в названии, используется всего пару раз. (При этом, кстати, не совсем корректно писать, что используемая криптография “основана на задачах из теории решёток” – на этих задачах основаны предположения о стойкости, а не криптографические алгоритмы; не то чтобы радикальное изменение смысла, но существенные детали теряются.) И необходимо учитывать, что математический термин “решётка” (русский) и математический термин lattice (английский) – различаются в трактовках, даже если смотреть узкую интерпретацию, поэтому для строгих определений всё равно потребуются уточнения.

“Модулярная решётка” – явно не подходит, поэтому пусть будет “модуль-решёточная”. Ведь главное тут – чтобы криптосистема не оказалась решетчатой, но от слова “решето”.



Комментировать »

В работе LLM (Large Language Models) используются токены, а не слова, как слова. То есть, процесс можно сравнить с изучением письменности, но без изучения языка. Для использования компьютерами, буквы, как символы, кодируются значениями байтов – это вполне привычная система.

Так, если взять ASCII, то символу (букве) L соответствует шестнадцатеричный индекс 0x4C. Тут есть множество философских моментов: во-первых, натуральное число 0x4C – это число, а не буква, так что, в большинстве компьютерных применений, 0x4C – вовсе не имеет отношения к букве L; во-вторых, для того, чтобы число указало на букву, всегда требуется внешняя структура – ASCII, в данном случае, – и система соглашений, определяющая, как минимум, метаязык и алфавит; в-третьих, компьютер, на котором работает LLM, “читает” именно байты, а не воспринимает буквы как буквы, то есть, как элементы, переключающие неизвестную компьютеру структуру, хоть бы это была и только таблица ASCII (тем более, что современные тексты используют Unicode – другое кодирование).

Числа, записанные в байтах, могут “быть буквами”, но могут и не быть. Буквы могут “быть звуками”, а могут и не быть. Хитрость в том, что сама по себе, без дополнительных соглашений, буква L никакой звук не обозначает, а обозначает, скажем, “длину стороны треугольника”, однако L может использоваться в записи звуков. (Да, речь только про фонетическое письмо.) Тут не так важно то, насколько фонетика вообще определяет язык, как то, что превращения букв при записи слов языка определяются, в том числе, превращениями звуков. Так что именно этот момент, – поднятие фонетической структуры из разных записей, – позволяет изучать происхождение и родство современных языков. Это максимально далеко и от ASCII, и от Unicode, самих по себе.

Слово “яблоко” не является яблоком, но “слово” является словом (или тоже нет?), однако ещё дальше от смысловых конструкций ASCII- или Unicode-таблицы, преобразованные в очередные наборы чисел. Всё это не мешает попыткам переносить следы способов записи смысловых конструкций, оставшиеся в корпусе обучающих текстов, в новый поток индексов (байтов), генерируемый LLM. И эти индексы пользователю предлагается считать буквами, потому что компьютером же можно преобразовать коды в изображения символов, которые пользователь начнёт читать как текст. “Большая” же идея, естественно, в предположении о том, что автоматический компьютерный перебор может воссоздать ту самую, внешнюю структуру.

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



Комментировать »

В современной типографике для древнегреческих текстов вопросительному знаку (“?”) графически соответствует точка с запятой (“;” – как и в новогреческом, где, формально, знак только так выглядит). В старых записях “знаков вопроса” не было. Пунктуация вообще появилась не сразу, а в старых текстах слова бывают записаны даже без пробелов.

Воскресное чтение манускриптов. Сегодня посмотрим на скриншот из манускрипта, известного как Clarke 39 (Codex Oxoniensis Clarkianus 39) – это записи сочинений Платона, на древнегреческом, конечно. Манускрипт датируют 895 годом, и там встречаются неожиданные варианты “знаков вопроса”. Фрагмент ниже (22r) относится к диалогу Платона “Критон”; уже это может показаться странным, но, в данном случае, не важно: речь пойдёт о более странных вещах – о пунктуации в средневековых манускриптах, поэтому в смысл диалога Платона не станем вдаваться.

Manuscript screenshot

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

Manuscript screenshot

В современной типографике текст между стрелками выглядит так: “τί φῄς; ταῦτα οὐχί καλῶς λέγεται;” (“Что думаешь? Это хорошо ли говорится?” – тут “точка с запятой” является вопросительным знаком).

Естественно, считается, что “запятая” тут – это вовсе не запятая, а указание на повышение тона, соответствующее вопросительной интонации, то есть, что-то вроде изогнутой стрелки. Это начертание могло послужить основой для современного знака “?”. Даже в этом манускрипте отдельный вопросительный знак используется крайне редко, далеко не во всех случаях вопросительных предложений. В древнегреческом языке вопрос можно построить при помощи специальных слов и с использованием диакритических знаков, но в неясных, – по мнению редактора, – случаях потребовалось отдельное уточнение (и оно иногда отличается от современного варианта текста). Две точки в этой записи служат для разделения высказываний участников диалога, для разделения предложений, а одна “верхняя” или “средняя” (не ясно) точка – может обозначать и окончание предложения, и паузу, так что вот эта точка тут больше и похожа на запятую, в современном понимании. Поэтому знак, указывающий на повышение тона, может быть приписан снизу как к одной точке, так и к двум.

Да, возможное отсутствие знаков препинания в исходном тексте сразу наводит на аналогию с современной перепиской, – допустим, – в мессенджерах на русском: “привет Сократ что делаешь”, “Здоров, Критон! Да вот, сижу тут, заточили меня, но есть некоторые свежие мысли” (Сократ почему-то использует знаки препинания, даже восклицательный знак, странно). Всё же, вряд ли сотрудник скриптория расшифровывал, размечая только что разработанными пунктуационными знаками, дамп базы древнего централизованного мессенждера: более распространённая точка зрения гласит, что сотрудник скриптория переписывал с папирусов и других манускриптов.

Посмотрим на увеличенный фрагмент.

Manuscript screenshot

Тут встречаются и многоуровневые “точки с запятой”, и простые “двоеточия”, так что всё сходится.

Вернёмся, впрочем, к первому фрагменту скриншота.

Manuscript screenshot

Если приглядеться, то там над первой “точкой с запятой” виден некий знак, похожий на проценты. Что он означает?

Это редакторский знак. Дело в том, что тут пропущен кусок текста, так что вопросительный знак (“;”) вообще оказался перенесён – он должен быть через восемь слов, но тоже после “δ᾽ οὔ” (как и на скриншоте), а недостающий фрагмент записан тут же, на полях (“οὐδὲ πάντων ἀλλὰ τῶν μέν, τῶν δ᾽ οὔ;”).

Manuscript screenshot

Заканчивается этот комментарий вопросительным знаком, который, как мы разобрались, неотличим от точки с запятой (настолько неотличим, что приводит к занимательным случаям в Unicode; где, впрочем, предлагается “нормализовывать” всё в один символ, в “;”).



Комментировать »

На скриншоте ниже – график частотности слова delves в текстах корпуса 2019 года по версии полезного сервиса Google Ngrams (период: 1800 – 2019 годы, английский язык):

Delvs and a graph

Английское delve означает “копать”, “рыть”, но и “рассматривать” – в значении “тщательно разбирать и изучать предмет, исследовать”. Форма delves здесь специально, это не опечатка – см. ниже.

Вообще, delve – родное для современного английского языка слово, однако редкое даже для классического литературного английского (который существенно отличается и от разговорного, и от “академического” – см. ниже). Тем не менее, в контексте “исследований” delve встречается в комедии Шекспира The Tragedie of Cymbeline: “I cannot delve him to the root”. У Диккенса можно найти в A Tale of Two Cities, но тоже придётся покопаться: “men and women here, to dig and delve”. В общем, слово выразительное (это нормально для английского, который больше аналитический), а для “академического языка”, если только речь не о языкознании, может быть признано слишком выразительным. (Delves – это ещё и фамилия. Нельзя забывать и delve into.)

Вернёмся к графику, на котором, – для delves, – отлично виден рост, но, если обратить внимание на вертикальную шкалу, общая доля не слишком велика. (Оси к сожалению, в Google подписывать не умеют, что, как бы, существенно снижает доверие к результату, тем более, что не подписывают не только оси, но и шкалы, да и сами графики; всё же, воспользуемся этим вариантом.)

Выбор слова и вся эта предыстория могут показаться странными, – пусть и позволяют поставить тег “Лингвистика“, – однако в свежей научной работе (препринт [*]) по пикам на графиках частотности слов определяют влияние ChatGPT и прочих LLM на текстовый состав аннотаций научных (опять же) работ. И delves там используется непосредственно, см. второй скриншот:

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

В работе исследована статистика слов из аннотаций (“абстрактов”) научных публикаций PubMed – около 14 млн “абстрактов” за период с 2010 по 2024 год (представьте, кстати, сколько научных работ публикуется ежегодно; и это ещё LLM только начали разворачиваться). Выделены “резкие скачки” на графиках по некоторым словам, что связывается с влиянием использования ChatGPT и других LLM, которые могли быть задействованы при подготовке текстов. Действительно, LLM, являясь синонимайзерами переростками, выводят редкие слова в генерируемый текст, часто – невпопад. Но вот почему может быть верным обратное утверждение, – что “выбросы” редких слов в аннотациях свидетельствуют о “вмешательстве” LLM, – из исходной работы не очень понятно (кроме, конечно, указания на странное совпадение по времени). Предположим, кто-то из авторов прочих публикаций использовал новое слово в статье. Другие авторы, которым слово понравилось, тоже стали его использовать. На графике Google (с неподписанными осями) delves резко растёт ещё с 1981 года – свидетельствует ли это о возвращении дополнительных произведений Диккенса в школьную программу (в Англии, конечно)? Не факт, но всякое может совпасть по времени. Естественно, корпус сервиса Google Ngrams отличается от выборки PubMed, это тоже понятно.

Нет особых сомнений в том, что ChatGPT (как и другие LLM – дежурная оговорка) активно используется в подготовке текстов научных работ. Это, собственно, и есть начало перехода LLM к “настоящей научной деятельности”, о котором так много писали ещё лет пять назад. Более того, аннотации и тексты работ, написанные GPT/LLM, будут потом “прочитаны” LLM/GPT, что не только увеличит поток публикаций, но и составит “замыкание ИИ” (пусть некоторые защитные меры и реализуются). Вопрос в том, насколько соотносятся с таким переходом “выбросы” частот редких слов, не перестающих при этом быть редкими, в “абстрактах”.

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

We hope that future work will meticulously delve into tracking LLM usage more accurately and assess which policy changes are crucial to tackle the intricate challenges posed by the rise of LLMs in scientific publishing.
(Смысла переводить нет, потому что это, очевидно, аллюзия к общей теме работы: “meticulously delve”, “tackle the intricate challenges” и др.)


[*] Dmitry Kobak, Rita González Márquez, Emőke-Ágnes Horvát, Jan Lause;
Delving into ChatGPT usage in academic writing through excess vocabulary
arXiv:2406.07016



Комментировать »

На Ars Technica попался занятный краткий обзор научного исследования, посвящённого выяснению того, как использование в заголовках СМИ оборотов типа “учёные полагают”, “учёные думают” (в оригинале – scientists believe, так как исследование об английском языке) влияет на читательскую оценку “достоверности” понятий, упомянутых в том же заголовке. Собственно, противопоставлены там слова “думать/полагать” (believe) и “знать” (know), а абсолютно точно перевести на русский довольно сложно. То есть, предположим, читатели читают заголовки: “Учёные думают, что на Марсе есть вода” и “Учёные знают, что на Марсе есть вода” – влияет ли разница в семантике заголовков на классификацию конкретным читателем утверждения “на Марсе есть вода” как являющегося бесспорным “научным фактом” или как “одного из возможных мнений”? Исходное исследование строится на опросе многих людей-участников, которым предлагали оценить различные варианты заголовков.

Естественно, в качестве центральных примеров используются утверждения из области “изменения климата”, что, конечно, представляет собой разумный выбор, учитывая современный контекст, задаваемый через те же самые СМИ. В итоге, оказывается, что “заметного влияния выявить не удалось”, но это как раз не самые интересные технические детали, поскольку тут куда более содержательно выглядит то, как из некоторой начальной конструкции, относящейся к заданной оценке связи представления весьма обобщённых “учёных” (речь-то идёт о заголовке в СМИ, не более) с не менее обобщённым сообщением (“думают, что”/”знают, что”), выстраивается цепочка влияния заголовков СМИ на статус “точного” “факта” в восприятии читателя. Это показательный процесс. А цепочка предлагается такая: если СМИ продолжат писать “учёные думают, что…” вместо “учёные знают, что…”, то читатели, якобы, станут полагать, будто речь идёт не о “точно установленных фактах”, а (всего лишь) о “различных мнениях по некоторому вопросу”, и это может подорвать “статус науки”.

Тут, несомненно, можно вспомнить различные концепции из области философии науки, как раз касающиеся того, насколько процесс согласования различных мнений эту самую науку определяет. Например, можно даже предположить, что исход “квантовых опытов” определяется тем, как исследователи между собой согласуют интерпретацию результатов. Но к заголовкам СМИ и концепции Believe in Science – это уже не относится.



Комментировать »

Отдельные занимательные эффекты, связанные с переключением морфологических веток, можно наблюдать в автоматических переводчиках с ИИ. Кстати, надо сказать, что автоматический переводчик “Яндекса“, приправленный LLM ИИ, при переводе специальных фраз с английского на русский действует несколько лучше переводчика от Google (не менее приправленного). Вот примеры, иллюстрирующие и переключение интерпретаций по контексту, и качество.

1.
Исходная фраза:
“As a sailor once said: having logs removed in timely manner keeps bank totally speckless.”

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

“Яндекс”:
Как однажды сказал один моряк: своевременное удаление бревен позволяет сохранить берег совершенно чистым.

2.
“As a bookkeeper once said: having logs removed in timely manner keeps bank totally speckless.”

Google:
Как однажды сказал бухгалтер: своевременное удаление бревен делает банк совершенно чистым.

(Здесь Google предпочёл “брёвна” в банке, а не несколько более уместные “журналы”, как “Яндекс”.)

“Яндекс”:
Как однажды сказал один бухгалтер: своевременное удаление журналов позволяет сохранить банк полностью незапятнанным.

3.
“Bookkeeper mumbled the old nautical adage: having logs removed in timely manner keeps bank totally speckless.”

Google:
Бухгалтер пробормотал старую морскую поговорку: своевременное удаление бревен делает берег совершенно чистым.

“Яндекс”:
Бухгалтер пробормотал старую морскую пословицу: “своевременное удаление бревен сохраняет банк совершенно чистым”.

(Использование nautical успешно превращает logs в “брёвна”, сохранив “банк” силами слова bookkeeper, в котором три “дуплета”, но зато переводчик “Яндекса” даже кавычки поставил.)



Комментировать »

ИИ-говорилка GigaChat теперь, как бы, умеет английский язык, однако на все запросы через Telegram-бот, потенциально ведущие к показательному “запутыванию контекста”, отвечает в стиле, что “на эти темы не могу разговаривать” (на русском, кстати). В английском, из-за аналитических свойств языка, запутывать контексты LLM заметно сложнее, чем в русском, но тоже можно (простой пример из области ИТ или, другими словами, из речного хозяйства – bank и log, что в не слишком “грамматической” версии для LLM может, например, выглядеть так: “Having logs removed in timely manner keeps bank totally speckless”). Кстати, в английском неплохо помогают гладкие переключения существительное/глагол. Но, конечно, если подозрительные ветки закрываются системным барьером, то и увидеть ничего нельзя. Впрочем, наличие однотипного ответа тоже демонстрирует уровень “интеллекта”.



Комментировать »

Чем хороша именно “прочность шампанского” в вопросах для ИИ LLM? Тем, что “прочность” – это ещё и “крепкость”, а “крепкость” – это почти “крепость”, а “крепость” – это и замок, как строение, и характеристика алкогольных напитков. При этом “прочность” – применимо к хлопку (к ткани).

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



Комментарии (1) »

В развитие темы “морфологических переворотов” и LLM ИИ. Почему не все омонимы (омографы) тут одинаково подходят? Потому, что LLM строится на цепочках из корпуса готовых текстов, и если в этом корпусе разные ветки значений омонима имеют сильно разный “вес”, то эффект применения будет не таким выраженным.

Чем, например, хорошо слово “замок”? Тем, что это сбалансированный “токен” – тут для двух веток (механизм и сооружение) можно ожидать примерно одинаковый “вес”: и одно, и другое значение широко применяются в “обычных” текстах.

А вот другой пример: “хлопок”. Здесь можно ожидать, что значение “ткань” будет сильно перевешивать: куча инструкций и описаний к разным видам и моделям одежды (в том числе, для шитья), к стиральным машинам и утюгам. К этой же ветке, через “ткань”, притянется и “хлопок-растение”, так как данное значение сложно отделить от “ткани”. Другая ветка: “резкий, громкий звук” – в этом значении “хлопок” хоть и обособлен, но в текстах (скорее всего) встречается существенно реже, вес будет заметно меньше “ткани”. Так что в выдаче LLM про “хлопок/хлопок” будет побеждать “ткань”, переключить с помощью сконструированного запроса ветки в одном ответе LLM гораздо сложнее (но, думаю, всё равно возможно).

(Update, 04/01/2024: пример успешного переключения “шампанского” и “хлопчатобумажного” на примере GigaChat.)



Комментарии (2) »

Воскресное чтение манускриптов. Kubernetes (который K8s для контейнеров) происходит от древнегреческого κυβερνήτης – тот, кто непосредственно управляет кораблём при помощи руля, кормчий. Однако на русском это же слово используется и напрямую, но в другом значении – “губернатор”, в английском варианте искажений чуть больше: governor. От κυβερνήτης происходит и “кибернетика”, потому что принцип управления кораблём при помощи рулевого весла соответствует одной из древнейших искусственных систем управления с обратной связью (так определено у Винера).

В “Илиаде” именно κυβερνήτης встречается один раз (и ещё один раз – “кормчие”, во множественном числе; в “Одиссее” – чаще). Вот на скриншоте ниже пример “кормчего” из “Илиады”: это манускрипт Venetus A десятого века (библиотека Марчиана).

Manuscript screen

Как обычно, запись выглядит непривычно (κυβερνήτης выделено). Всё потому, что начертания букв не соответствуют современным. Например, здесь β больше похожа на современную русскую рукописную строчную “и”, но другие буквы узнать несколько проще.

Если на скриншоте взять сроку выше и строку ниже строки с “кубернетесом”, то это будут строки 315-317 из книги (песни) 23 “Илиады”. Контекст: советы Антилоху к спортивным состязаниям. Вот соответствующая часть текста с подстрочным переводом (в котором важно слово “тёмному”):

μήτι τοι δρυτόμος μέγ᾽ ἀμείνων ἠὲ βίηφι:
(уменьем ведь плотник [действует] много лучше чем силой)
μήτι δ᾽ αὖτε κυβερνήτης ἐνὶ οἴνοπι πόντῳ
(уменьем же снова кормчий по тёмному* морю)
νῆα θοὴν ἰθύνει ἐρεχθομένην ἀνέμοισι
(корабль вёрткий направляет, сбиваемый ветрами)

*) οἴνοπι – “тёмному”; вообще, должно бы означать, что “тёмно-винному”; то есть, цвет явно сравнивается с цветом вина; ну или какой-то подобный цвет, точнее сказать трудно. Дело в том, что с цветопередачей в гомеровских текстах проблема – там неожиданным образом “повёрнута” цветность и переставлен “баланс белого”. В переводах это явление практически не сохраняется, потому что переводчику нужно привести текст к понятийной основе целевого языка, однако проблема касается не только “бледных собак” и, предположим, “пурпурных овец”: так, Гомер вообще не называет море синим или голубым, но часто сравнивает по цвету с вином. Вот точно как в рассматриваемом “кубернетическом” фрагменте (но можно вспомнить и старую интернет-историю про цвет платья на фотографии). Так или иначе, но основной цвет для логотипа Kubernetes явно выбран неправильно.



Комментировать »