А фиг его знает. Документация определяет только API. Статьи «как оно устроено» под CSSOM понимают совсем разные вещи: кто-то подражающее DOM дерево, но с вычисляемыми стилями каждому элементу; кто-то сами наборы селекторов и правил CSS, говоря, что конечные стили элементов определяются в Render Tree.
Да, я почти не смотрел исходники браузера и не знаю какие там тонкости, но думаю, что мы говорим об одном и том же процессе, только вы об одном конкретном шаге - вычислении применимости селектора к одному элементу страницы, а я об применении стилей ко всем элементам страницы. Так что если это спор, то он бессмысленный.
Угу, когда нужно стилизовать один элемент, то просто делаешь восхождение по дереву. Однако, уверен, что хотябы при первой отрисовке страницы нужно сделать полный обход дерева.
Да нет, не придумали, а изначально запретили. DOM ведь представлен деревом, вот и CSS-селекторы соответствовали последовательности обхода дерева сверху вниз слева на право, так что можно за один проход стилизовать весь документ. Вместе с обходом дерева отфильтровывались неподходящие селекторы.
Однако дизайнеры сколько я помню просили разрешить селектор по потомку. Но это требует от алгоритма знания не только родителей, пройденных соседей и самого элемента, но вообще всего дерева. То есть для стилизации каждого элемента нужно пройти дерево ещё по разу, то есть сложность - страшное n² (но во времена react это уже не так и страшно, на самом деле), а если селектор по потомку вкладывать в селектор по потомку, то можно получить n³, n⁴ и так далее.
Имхо, считаю использование has костылём на одном уровне с important, как последнее средство.
Раньше была информация о том, что :has() медленный, но к нему прикрутили кэш и запреты на вкладывание has в has и работу с псевдоэлементами, так что вроде бы он больше не проблема.
Всё остальное должно быть очень быстрым, что не отменяет, правда, того, насколько тормознутыми сделаны современные сайтики. Пока мощная рабочая станция не начнёт плавиться, никто и не заметит что что-то не так. Тем более всем плевать на какого-нибудь Васю с бюджетным смартфоном, рано или поздно он просто вынужден будет сменить смартфон и проблема исчезнет сама собой.
Статья, конечно, чистая риторика, однако считать, что старение - это необходимость, может быть неправильным. Есть несколько животных, которые не имеют старения; старение не является необходимым для эволюции; в компьютерных симуляциях показано, что старение возникает просто случайно; если с обычными болезнями вид справляется естественным отбором, то старение - это болезни, развивающиеся после начала размножения; есть предположение, что рост продолжительности жизни одновременно с появлением речи связаны увеличением важности передачи опыта от старшего поколения для выживаемости.
Пароль длиной 8-10 символов можно относительно быстро подобрать. Это делается или перебором, или с помощью словаря, особенно если пароль распространенный. SSH-ключ же — это последовательность из сотен случайных символов, чаще всего длиной 2 048 или 4 096 бит. Длина и энтропия таких ключей на порядки превышают даже самые сложные пароли.
Нельзя сравнить длину ключа RSA и пароля напрямую, так 2048 битный ключ RSA соответствует 112 битному паролю по сложности взлома, однако больше и не надо, так как время взлома - миллиарды лет (если не будет изобретено что-то способное сильно ослабить RSA). А вот 512-битный ключ RSA уже подбирали за 4 часа и 75 баксов.
То что комплименты и упоминание других LLM могут положительно воздействовать - не мог предположить. Сам иногда использую что-то типа «Take your time and make sure your response is accurate.», и типа того, чтобы нейросеть не торопилась выдать сразу ответ, но не уверен, что это помогает.
Странно, что сильнейшая модель у Anthropic, которая Opus 4 thinking high, не была рассмотрена:
Уважаемые партнёры и потенциальные клиенты компании АльфаМаркет!
Мы рады представить вам нашу новую революционную стратегию интернет-маркетинга, разработанную совместно с ведущими экспертами в области диджитал-продвижения. Наша команда предлагает инновационные решения, которые помогут вашему бизнесу достичь новых высот.
В современном мире успех приходит неслучайно, а целенаправленно, благодаря грамотному планированию и последовательным действиям. Мы предлагаем вам воспользоваться нашими услугами по продвижению в соцсетях, к которым ведут тщательно изученные рекламные каналы. Наш специалист сфотографирует ваш продукт в анфас, чтобы подчеркнуть все его преимущества.
Директор компании АльфаМаркет часто говорит: «Наша задача — помочь клиентам достичь максимальной эффективности в бизнесе» — и мы полностью разделяем эту философию. «Каждый клиент для нас особенный», — добавляет он, что подтверждается индивидуальным подходом к каждому проекту.
После проведения маркетингового исследования, охватившего более четырёхсот компаний, мы выявили основные тенденции рынка. Ваш бизнес непременно развивается в правильном направлении, если вы пользуетесь нашими услугами.
Всё, что нам требуется, — это ваше доверие и готовность к сотрудничеству. Мы не знаем, что бы мы стали делать без наших клиентов, ведь если разобраться, именно ваши запросы помогают нам совершенствоваться.
Что касается ценовой политики, мы предлагаем гибкую систему скидок. У нашего предложения есть несколько нюансов, которые делают его особенно привлекательным. Компания АльфаМаркет гарантирует качество услуг на самом высоком уровне. При работе с компанией Гугл мы достигли значительных результатов в области SEO-продвижения.
Акция, стартующая 25 декабря 2024 года, позволит вам получить максимальную выгоду. Подробности можно узнать в 5-м разделе нашего предложения.
Недавний опрос показал улучшение узнаваемости бренда на 30–35% — это отличный результат. В новом продукте всем нашим клиентам будет доступен трёхкнопочный интерфейс. Поздравляем всех женщин с 8 Марта и дарим дополнительную скидку в этот праздник!
Мы стремимся к постоянному совершенствованию, причём стараемся учитывать все пожелания клиентов. В нашей компании работают опытные маркетологи, а также дизайнеры высокого класса. Если вы остались довольны сотрудничеством и у вас появились новые идеи — мы готовы их реализовать.
Наши специалисты сообщили, что презентация прошла успешно и все участники остались довольны. Кстати говоря, клиент получил полную информацию, и никаких вопросов не возникло.
Используйте возможности, которые дарит интернет, на все сто. Для этого мы создали специальные инструменты с интуитивно понятным интерфейсом.
То что там внутри используется интерполяция не означает, что весь процесс является интерполяцией.
Интерполяция - это проведение некого непрерывного полинома между известными точками. В случае линейной интерполяции этим полиномом является простая линейная функция, так что при увеличении в 3 раза из пикселей А, Б и В получится последовательность из оригинальных пикселей перемежаемых парой промежуточных: А, (⅔А + ⅓Б), (⅓А + ⅔Б), Б, (⅔Б + ⅓В), (⅓Б + ⅔В), В.
Небольшое отступление: для уменьшения изображений большинство софта использует не интерполяцию (иначе бы после увеличения в 3 раза и уменьшения получилось бы исходное изображение; интерполяция по определению обратима), а свёртку с масштабированным ядром интерполяции. Операция эта гораздо ближе к суперсемплированию, чем к интерполяции - большая область пикселей исходного изображения усредняется до одного пикселя уменьшенного, тогда как интерполяция для уменьшения была бы больше похожа на метод ближайшего соседа.
Вы же после интерполяции уменьшаете изображение, вычисляете ошибку и корректируете входные значения для интерполяции так, чтобы при очередном уменьшении получить изображение близкое к исходному. Так как пиксели в оригинальных точках меняют значения, то это не интерполяция. Подбирая такие значения точек полинома, чтобы среднее конечных пикселей было равно Б = ((⅓А' + ⅔Б') + Б' + (⅔Б' + ⅓В')) / 3, где значения со штрихом - подбираемые корректируемые, вы решаете задачу суперразрешения.
То есть превратить интерполяцию (вставку промежуточных значений между исходными) в суперразрешение (разбиение исходных значений на несколько составных). Не думал, что кто-то вручную сделает это махинациями со слоями графического редактора.
Когда-то и сам написал скрипт для такого. Он слишком примитивен для того чтобы хорошо выглядеть при коэффициенте масштабирования 2 и больше (тут уже нужны нейросети или хотя-бы Edge Directed Interpolation), но когда нужно изменить размер на несколько пикселей, то выглядит заметно чётче простой интерполяции https://crates.io/crates/sharpened_bilinear
По мне так одни плюсы, если бы использование множества GPU поддерживалось играми и софтом.
Во-первых автор пишет про задействование простаивающего кремния, про встройку. Так что убытка тут нет по определению.
Во-вторых, с увеличением частоты отдельного процессора его энергопотребление растёт нелинейно, а чуть ли не в третьей степени. Потому если есть возможность размазать нагрузку ровным слоем, то это нужно делать если не ради снижения потребления электроэнергии, то хоть ради снижения шума от системы охлаждения. Другое дело, что это не всегда получается, о сложностях эта статья и пишет.
И прочие фантазии, денежные. На топовые видюхи наценка больше всего и если была бы возможность подкинуть вторую средненькую карточку вместо покупки дорогой, то это выгодно. Старые карточки бы оставались актуальными. Использование карт разных вендоров опять же не дало бы Нвидии давить конкурента отдельными фишечками.
И слава богу. Теперь модель не отвечает ошибкой PROHIBITED_CONTENT, когда в большом историческом контексте в одном предложении в двух словах упомянут факт телесной связи. И заметно умнее стала.
В XP с этим было прекрасно, Висту пропустил, а на Семёрке некоторые компании хоть и пытались менять интерфейс, но не справлялись (уже не помню конкретных проблем, только ощущение костылей, глюков и отсутствия графических тем). Восьмерка опять пропущена. На десятке ни о каких кастомизациях и речи не заходило, только акцентные цвета есть и крайне каряво слепленая темная тема.
После десятки ушёл на Linux Mint. Тут своих недостатков хватает, линукс не стал лучше за годы, но винда скатилась.
А фиг его знает. Документация определяет только API. Статьи «как оно устроено» под CSSOM понимают совсем разные вещи: кто-то подражающее DOM дерево, но с вычисляемыми стилями каждому элементу; кто-то сами наборы селекторов и правил CSS, говоря, что конечные стили элементов определяются в Render Tree.
Да, я почти не смотрел исходники браузера и не знаю какие там тонкости, но думаю, что мы говорим об одном и том же процессе, только вы об одном конкретном шаге - вычислении применимости селектора к одному элементу страницы, а я об применении стилей ко всем элементам страницы. Так что если это спор, то он бессмысленный.
Угу, когда нужно стилизовать один элемент, то просто делаешь восхождение по дереву. Однако, уверен, что хотябы при первой отрисовке страницы нужно сделать полный обход дерева.
Да нет, не придумали, а изначально запретили. DOM ведь представлен деревом, вот и CSS-селекторы соответствовали последовательности обхода дерева сверху вниз слева на право, так что можно за один проход стилизовать весь документ. Вместе с обходом дерева отфильтровывались неподходящие селекторы.
Однако дизайнеры сколько я помню просили разрешить селектор по потомку. Но это требует от алгоритма знания не только родителей, пройденных соседей и самого элемента, но вообще всего дерева. То есть для стилизации каждого элемента нужно пройти дерево ещё по разу, то есть сложность - страшное n² (но во времена react это уже не так и страшно, на самом деле), а если селектор по потомку вкладывать в селектор по потомку, то можно получить n³, n⁴ и так далее.
Имхо, считаю использование has костылём на одном уровне с important, как последнее средство.
Раньше была информация о том, что :has() медленный, но к нему прикрутили кэш и запреты на вкладывание has в has и работу с псевдоэлементами, так что вроде бы он больше не проблема.
Всё остальное должно быть очень быстрым, что не отменяет, правда, того, насколько тормознутыми сделаны современные сайтики. Пока мощная рабочая станция не начнёт плавиться, никто и не заметит что что-то не так. Тем более всем плевать на какого-нибудь Васю с бюджетным смартфоном, рано или поздно он просто вынужден будет сменить смартфон и проблема исчезнет сама собой.
99%? Давайте пересчитаемся. У меня и RulenBagdasis Линукс Минт - проблема имеется. А у вас?
Ничего нового, даже жаль, что единственный конкурент нвидии каждый раз спотыкается о софт.
Статья, конечно, чистая риторика, однако считать, что старение - это необходимость, может быть неправильным. Есть несколько животных, которые не имеют старения; старение не является необходимым для эволюции; в компьютерных симуляциях показано, что старение возникает просто случайно; если с обычными болезнями вид справляется естественным отбором, то старение - это болезни, развивающиеся после начала размножения; есть предположение, что рост продолжительности жизни одновременно с появлением речи связаны увеличением важности передачи опыта от старшего поколения для выживаемости.
Тот кто вставил абзац про 4o-mini в статью про o4-mini - запутался в нейминге OpenAI, либо он - нейросеть.
Нельзя сравнить длину ключа RSA и пароля напрямую, так 2048 битный ключ RSA соответствует 112 битному паролю по сложности взлома, однако больше и не надо, так как время взлома - миллиарды лет (если не будет изобретено что-то способное сильно ослабить RSA). А вот 512-битный ключ RSA уже подбирали за 4 часа и 75 баксов.
То что комплименты и упоминание других LLM могут положительно воздействовать - не мог предположить. Сам иногда использую что-то типа «Take your time and make sure your response is accurate.», и типа того, чтобы нейросеть не торопилась выдать сразу ответ, но не уверен, что это помогает.
Странно, что сильнейшая модель у Anthropic, которая Opus 4 thinking high, не была рассмотрена:
Уважаемые партнёры и потенциальные клиенты компании АльфаМаркет!
Мы рады представить вам нашу новую революционную стратегию интернет-маркетинга, разработанную совместно с ведущими экспертами в области диджитал-продвижения. Наша команда предлагает инновационные решения, которые помогут вашему бизнесу достичь новых высот.
В современном мире успех приходит неслучайно, а целенаправленно, благодаря грамотному планированию и последовательным действиям. Мы предлагаем вам воспользоваться нашими услугами по продвижению в соцсетях, к которым ведут тщательно изученные рекламные каналы. Наш специалист сфотографирует ваш продукт в анфас, чтобы подчеркнуть все его преимущества.
Директор компании АльфаМаркет часто говорит: «Наша задача — помочь клиентам достичь максимальной эффективности в бизнесе» — и мы полностью разделяем эту философию. «Каждый клиент для нас особенный», — добавляет он, что подтверждается индивидуальным подходом к каждому проекту.
После проведения маркетингового исследования, охватившего более четырёхсот компаний, мы выявили основные тенденции рынка. Ваш бизнес непременно развивается в правильном направлении, если вы пользуетесь нашими услугами.
Всё, что нам требуется, — это ваше доверие и готовность к сотрудничеству. Мы не знаем, что бы мы стали делать без наших клиентов, ведь если разобраться, именно ваши запросы помогают нам совершенствоваться.
Что касается ценовой политики, мы предлагаем гибкую систему скидок. У нашего предложения есть несколько нюансов, которые делают его особенно привлекательным. Компания АльфаМаркет гарантирует качество услуг на самом высоком уровне. При работе с компанией Гугл мы достигли значительных результатов в области SEO-продвижения.
Акция, стартующая 25 декабря 2024 года, позволит вам получить максимальную выгоду. Подробности можно узнать в 5-м разделе нашего предложения.
Недавний опрос показал улучшение узнаваемости бренда на 30–35% — это отличный результат. В новом продукте всем нашим клиентам будет доступен трёхкнопочный интерфейс. Поздравляем всех женщин с 8 Марта и дарим дополнительную скидку в этот праздник!
Мы стремимся к постоянному совершенствованию, причём стараемся учитывать все пожелания клиентов. В нашей компании работают опытные маркетологи, а также дизайнеры высокого класса. Если вы остались довольны сотрудничеством и у вас появились новые идеи — мы готовы их реализовать.
Наши специалисты сообщили, что презентация прошла успешно и все участники остались довольны. Кстати говоря, клиент получил полную информацию, и никаких вопросов не возникло.
Используйте возможности, которые дарит интернет, на все сто. Для этого мы создали специальные инструменты с интуитивно понятным интерфейсом.
С уважением,
Команда АльфаМаркет
То что там внутри используется интерполяция не означает, что весь процесс является интерполяцией.
Интерполяция - это проведение некого непрерывного полинома между известными точками. В случае линейной интерполяции этим полиномом является простая линейная функция, так что при увеличении в 3 раза из пикселей А, Б и В получится последовательность из оригинальных пикселей перемежаемых парой промежуточных: А, (⅔А + ⅓Б), (⅓А + ⅔Б), Б, (⅔Б + ⅓В), (⅓Б + ⅔В), В.
Небольшое отступление: для уменьшения изображений большинство софта использует не интерполяцию (иначе бы после увеличения в 3 раза и уменьшения получилось бы исходное изображение; интерполяция по определению обратима), а свёртку с масштабированным ядром интерполяции. Операция эта гораздо ближе к суперсемплированию, чем к интерполяции - большая область пикселей исходного изображения усредняется до одного пикселя уменьшенного, тогда как интерполяция для уменьшения была бы больше похожа на метод ближайшего соседа.
Вы же после интерполяции уменьшаете изображение, вычисляете ошибку и корректируете входные значения для интерполяции так, чтобы при очередном уменьшении получить изображение близкое к исходному. Так как пиксели в оригинальных точках меняют значения, то это не интерполяция. Подбирая такие значения точек полинома, чтобы среднее конечных пикселей было равно Б = ((⅓А' + ⅔Б') + Б' + (⅔Б' + ⅓В')) / 3, где значения со штрихом - подбираемые корректируемые, вы решаете задачу суперразрешения.
То есть превратить интерполяцию (вставку промежуточных значений между исходными) в суперразрешение (разбиение исходных значений на несколько составных). Не думал, что кто-то вручную сделает это махинациями со слоями графического редактора.
Когда-то и сам написал скрипт для такого. Он слишком примитивен для того чтобы хорошо выглядеть при коэффициенте масштабирования 2 и больше (тут уже нужны нейросети или хотя-бы Edge Directed Interpolation), но когда нужно изменить размер на несколько пикселей, то выглядит заметно чётче простой интерполяции https://crates.io/crates/sharpened_bilinear
Осталось только узнать как стриггерить нейросетку-транскриптор выдавать закрывающую кавычку и дальнейший валидный код.
По мне так одни плюсы, если бы использование множества GPU поддерживалось играми и софтом.
Во-первых автор пишет про задействование простаивающего кремния, про встройку. Так что убытка тут нет по определению.
Во-вторых, с увеличением частоты отдельного процессора его энергопотребление растёт нелинейно, а чуть ли не в третьей степени. Потому если есть возможность размазать нагрузку ровным слоем, то это нужно делать если не ради снижения потребления электроэнергии, то хоть ради снижения шума от системы охлаждения. Другое дело, что это не всегда получается, о сложностях эта статья и пишет.
И прочие фантазии, денежные. На топовые видюхи наценка больше всего и если была бы возможность подкинуть вторую средненькую карточку вместо покупки дорогой, то это выгодно. Старые карточки бы оставались актуальными. Использование карт разных вендоров опять же не дало бы Нвидии давить конкурента отдельными фишечками.
И слава богу. Теперь модель не отвечает ошибкой PROHIBITED_CONTENT, когда в большом историческом контексте в одном предложении в двух словах упомянут факт телесной связи. И заметно умнее стала.
А я считаю, что борцы с веб-скрейпингом - небольшое зло. Хотелось бы больше свободы информации.
В XP с этим было прекрасно, Висту пропустил, а на Семёрке некоторые компании хоть и пытались менять интерфейс, но не справлялись (уже не помню конкретных проблем, только ощущение костылей, глюков и отсутствия графических тем). Восьмерка опять пропущена. На десятке ни о каких кастомизациях и речи не заходило, только акцентные цвета есть и крайне каряво слепленая темная тема.
После десятки ушёл на Linux Mint. Тут своих недостатков хватает, линукс не стал лучше за годы, но винда скатилась.
Заранее желаю ему землю стекловатой
fs - ext4, ничего необычного