Forwarded from Coding: работа и стажировки для программистов
2017: не хочу я быть инста-блогером
2018: не буду я покупать криптовалюты
2019: не хочу снимать тиктоки
2020: да не хочу разбираться в NFT
2021: да не шарю я за метавселенную
А теперь всё это — тренды, на которых вы могли заработать миллионы. И кажется, таких шансов больше не будет, но это не так.
Фишка в том, что сегодня таких возможностей СОТНИ. Каждый день появляются тренды, которые принесут миллионы через пару месяцев. И чтобы замечать их достаточно читать канал Джейпег Малевича.
Ребята каждый день постят инсайдерскую инфу, которая не попадает в простой люд и рассказывают про то, что точно выстрелит в 2022 году.
Обязательно подписываетесь: @malepeg
2018: не буду я покупать криптовалюты
2019: не хочу снимать тиктоки
2020: да не хочу разбираться в NFT
2021: да не шарю я за метавселенную
А теперь всё это — тренды, на которых вы могли заработать миллионы. И кажется, таких шансов больше не будет, но это не так.
Фишка в том, что сегодня таких возможностей СОТНИ. Каждый день появляются тренды, которые принесут миллионы через пару месяцев. И чтобы замечать их достаточно читать канал Джейпег Малевича.
Ребята каждый день постят инсайдерскую инфу, которая не попадает в простой люд и рассказывают про то, что точно выстрелит в 2022 году.
Обязательно подписываетесь: @malepeg
Forwarded from Coding: работа и стажировки для программистов
Если бы вы шарили за тренды, то всегда были бы при деньгах. Даже в кризис — https://t.me/+8O-_W9a7tEk1MzEy
Forwarded from Coding: работа и стажировки для программистов
Узнаем Bootstrap 4 за 30 минут
В данной статьи мы расскажем про framework bootstrap и покажем как сделать красивый лендинг
Статья
В данной статьи мы расскажем про framework bootstrap и покажем как сделать красивый лендинг
Статья
Forwarded from Coding: работа и стажировки для программистов
1024 способа переехать за границу БЕСПЛАТНО
Гранты, стипендии, стажировки — каждый найдёт подходящий способ после подписки на канал @internship_grants.
Английский не нужен. Опыт работы не нужен. Диплом тоже не нужен.
Короче, если хотите уехать уже сегодня, то канал мастхэв: @internship_grants. Лучше уже не будет.
Гранты, стипендии, стажировки — каждый найдёт подходящий способ после подписки на канал @internship_grants.
Английский не нужен. Опыт работы не нужен. Диплом тоже не нужен.
Короче, если хотите уехать уже сегодня, то канал мастхэв: @internship_grants. Лучше уже не будет.
Forwarded from Coding: работа и стажировки для программистов
Также требуется человек для прохождения стажировки в Microsoft! Зарплата 4000 руб/день. Срочно!
👉🏻 Забрать вакансию тут - https://t.me/+-FAfWJQPeaBmNDgy
👉🏻 Забрать вакансию тут - https://t.me/+-FAfWJQPeaBmNDgy
Forwarded from Coding: работа и стажировки для программистов
Алгоритм Форда-Фалкерсона
"Алгоритм Форда — Фалкерсона решает задачу нахождения максимального потока в транспортной сети. . Затем величина потока итеративно увеличивается посредством поиска увеличивающего пути (путь от источника s к стоку t, вдоль которого можно послать больший поток). Процесс повторяется, пока можно найти увеличивающий путь."
[ Статья ]
"Алгоритм Форда — Фалкерсона решает задачу нахождения максимального потока в транспортной сети. . Затем величина потока итеративно увеличивается посредством поиска увеличивающего пути (путь от источника s к стоку t, вдоль которого можно послать больший поток). Процесс повторяется, пока можно найти увеличивающий путь."
[ Статья ]
Forwarded from Coding: работа и стажировки для программистов
Подсказка от Илона Маска: изучайте стартапы. Tesla, блокчейн, метавселенные и даже тик-ток — всё это стартапы, на которых вы могли сделать себе себе состояние.
Если лень искать интересную инфу самому, читайте Стартапную. Там автор делает всю работу за вас: читает зарубежные медиа, ходит на закрытые конференции, общается со стартаперами.
Внутри: что за метавселенные, когда биткоин перевалит за сотню, какие стартапы выстрелят в следующем году сильнее, чем Tesla или тик-ток.
Подписывайтесь и изучайте, других таких каналов просто нет:
@startapnaya
Если лень искать интересную инфу самому, читайте Стартапную. Там автор делает всю работу за вас: читает зарубежные медиа, ходит на закрытые конференции, общается со стартаперами.
Внутри: что за метавселенные, когда биткоин перевалит за сотню, какие стартапы выстрелят в следующем году сильнее, чем Tesla или тик-ток.
Подписывайтесь и изучайте, других таких каналов просто нет:
@startapnaya
Forwarded from Coding: работа и стажировки для программистов
🤘Чек-лист:
Как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать)
[ Статья ]
Как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать)
[ Статья ]
Forwarded from Coding: работа и стажировки для программистов
This media is not supported in your browser
VIEW IN TELEGRAM
Авито уже не торт…
🔹Вот вы спросите «Где дешевле всего совершать покупки: на Авито или Яндекс Маркете?» и вопрос будет изначально не верным, потому что истинной халявы вы там не найдете. У этих гигантов есть конкуренты, которые смогут предоставить более вкусные предложения.
🔸Например, команда G.I.O APK это сервис с уникальными возможностями, где вы найдете:
- Брендовую одежду за 60% от цены!
- Скидка на такси, продукты до 50%!
- Авиабилеты и отели за 50% от цены!
- Провести онлайн вакцинацию!
- Изменить себя, создать новую личность!
- Погрузится в свой мир качественных связей в сети!
🔹Хотите решать свои вопросы в разы быстрее? Доверьтесь услугам профессионалов, которые держат под контролем половину глобальной сети!
🤙Подключайся и начни жизнь в кайф вместе с G.I.O LIFE...
🤪Люди в движении: https://t.me/+QTOshkteNBM4MjQy
🤖Робот бот: @GIOAPK_BOT
🔹Вот вы спросите «Где дешевле всего совершать покупки: на Авито или Яндекс Маркете?» и вопрос будет изначально не верным, потому что истинной халявы вы там не найдете. У этих гигантов есть конкуренты, которые смогут предоставить более вкусные предложения.
🔸Например, команда G.I.O APK это сервис с уникальными возможностями, где вы найдете:
- Брендовую одежду за 60% от цены!
- Скидка на такси, продукты до 50%!
- Авиабилеты и отели за 50% от цены!
- Провести онлайн вакцинацию!
- Изменить себя, создать новую личность!
- Погрузится в свой мир качественных связей в сети!
🔹Хотите решать свои вопросы в разы быстрее? Доверьтесь услугам профессионалов, которые держат под контролем половину глобальной сети!
🤙Подключайся и начни жизнь в кайф вместе с G.I.O LIFE...
🤪Люди в движении: https://t.me/+QTOshkteNBM4MjQy
🤖Робот бот: @GIOAPK_BOT
Forwarded from Coding: работа и стажировки для программистов
Telegraph
Двоичный поиск элемента
Двоичный, или бинарный, поиск значения в списке или массиве используется только для упорядоченных последовательностей, то есть отсортированных по возрастанию или убыванию. Заключается в определении, содержит ли массив искомое значение, а также в определение…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Релиз TypeScript 4.5
Сегодня вышел TypeScript 4.5. Дениэл Розенвассер рассказал о всех новинках релиза.
Был добавлен новый утилитарный тип
С версии 4.5 встроенные типы можно обновлять отдельно от компилятора. Также теперь можно оверрайдить встроенные типы, используя пакеты
Строковые шаблонные типы могут использоваться в качестве дискрименантов в union'ах. Эта фича будет полезна при типизации ответов API.
В условных типах появилась оптимизация хвостовой рекурсии, благодаря которой можно описывать типы, полагающиеся на большое число итераций. Например, с его помощью можно затипизировать полноценный утилитарный тип
Появилась возможность отключения удаления неиспользуемых импортов. Также в рамках этой фичи был добавлена поддержка модификатора
Реализованы пропозалы "Ergonomic Brand Checks" и "Import assertions".
Также в этой версии должна была появиться поддержка ESM для Node.js, но она была временно удалена из-за несовместимости с экосистемой и проблем в реализации.
#release #typescript
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
Сегодня вышел TypeScript 4.5. Дениэл Розенвассер рассказал о всех новинках релиза.
Был добавлен новый утилитарный тип
Awaited. Этот тип моделирует разворачивание промисов с помощью await в async-функциях и метода .then() у промисов. Awaited теперь используется для типизации Promise.all, улучшая вывод типов. С версии 4.5 встроенные типы можно обновлять отдельно от компилятора. Также теперь можно оверрайдить встроенные типы, используя пакеты
@typescript/lib-* в node_modules.Строковые шаблонные типы могут использоваться в качестве дискрименантов в union'ах. Эта фича будет полезна при типизации ответов API.
В условных типах появилась оптимизация хвостовой рекурсии, благодаря которой можно описывать типы, полагающиеся на большое число итераций. Например, с его помощью можно затипизировать полноценный утилитарный тип
TrimLeft.Появилась возможность отключения удаления неиспользуемых импортов. Также в рамках этой фичи был добавлена поддержка модификатора
type для импортируемых типов: import {someFunction, type BaseType} from "./module.js";.Реализованы пропозалы "Ergonomic Brand Checks" и "Import assertions".
Также в этой версии должна была появиться поддержка ESM для Node.js, но она была временно удалена из-за несовместимости с экосистемой и проблем в реализации.
#release #typescript
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
Microsoft News
Announcing TypeScript 4.5
Today we’re excited to announce the release of TypeScript 4.5! If you’re not yet familiar with TypeScript, it’s a language that builds on JavaScript by adding statically checked types. When you use static types, you can run the TypeScript compiler to check…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Рендеринг DOOM с помощью чекбоксов
Эндрю Хэли из Vercel рассказал про свой эксперимент с DOOM — "DOOM Rendered via Checkboxes".
В статье рассказывается про интеграцию библиотеки Checkboxland и WebAssembly-порта DOOM. Checkboxland — это библиотека для рисования с помощью чекбоксов на HTML-странице. С её помощью можно рендерить текст, фигуры, изображения и видео.
Для рендеринга картинки DOOM используется видео. Изображение из
Статья несерьёзная, но интересная. Рекомендую заглянуть.
#webassembly #fun
https://healeycodes.com/doom-rendered-via-checkboxes
https://habr.com/ru/post/590337/ (мой перевод на русский язык)
Эндрю Хэли из Vercel рассказал про свой эксперимент с DOOM — "DOOM Rendered via Checkboxes".
В статье рассказывается про интеграцию библиотеки Checkboxland и WebAssembly-порта DOOM. Checkboxland — это библиотека для рисования с помощью чекбоксов на HTML-странице. С её помощью можно рендерить текст, фигуры, изображения и видео.
Для рендеринга картинки DOOM используется видео. Изображение из
<canvas> захватывается с помощью метода captureStream(), преобразуется в MediaStream и передаётся методу renderVideo из Checkboxland. Таким образом получается картинка. Автор пишет про то, что на высоких разрешениях всё тормозило, поэтому он остановился на разрешении 160x100. Вполне возможно, что в будущем мы увидим какой-нибудь бенчмарк на базе этого проекта.Статья несерьёзная, но интересная. Рекомендую заглянуть.
#webassembly #fun
https://healeycodes.com/doom-rendered-via-checkboxes
https://habr.com/ru/post/590337/ (мой перевод на русский язык)
Healeycodes
DOOM Rendered via Checkboxes
WebAssembly meets 16000 HTML checkboxes.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Утечка исходных кодов из source maps (сорс мапов)
Попалась на глаза статья про потенциальные проблемы сорс мапов — "Source-maps could be revealing your private project files".
Сорс мапы — это служебные файлы, содержащие исходный проекта. Они используются для облегчения отладки транспилированного кода. Если сорс мапы доступны в проде, то любой человек может посмотреть исходный код проекта. Для бизнеса это может быть большой проблемой.
В общем, статья про довольно известные вещи. Я бы не стал про неё писать, если бы не вспомнил про ещё одну статью — "Топ тупых лазеек для исследования конкурентов: source map". В этой статье автор рассказывает про доступ к исходным кодам фронтенда Яндекс.Еды с помощью сорс мапов. Также он настроил переодическую автоматическую выгрузку кода в GitHub, чтобы следить за процессом разработки фронта.
Как бы то ни было, статьи полезные. И на всякий случай ещё разок проверьте, не доступны ли в проде сорс мапы для ваших проектов.
#js #security
https://levelup.gitconnected.com/automatically-generated-source-maps-could-be-revealing-your-private-projects-files-17b2d13d7da4
https://teletype.in/@opendevcast/SyYaunCHB
Попалась на глаза статья про потенциальные проблемы сорс мапов — "Source-maps could be revealing your private project files".
Сорс мапы — это служебные файлы, содержащие исходный проекта. Они используются для облегчения отладки транспилированного кода. Если сорс мапы доступны в проде, то любой человек может посмотреть исходный код проекта. Для бизнеса это может быть большой проблемой.
В общем, статья про довольно известные вещи. Я бы не стал про неё писать, если бы не вспомнил про ещё одну статью — "Топ тупых лазеек для исследования конкурентов: source map". В этой статье автор рассказывает про доступ к исходным кодам фронтенда Яндекс.Еды с помощью сорс мапов. Также он настроил переодическую автоматическую выгрузку кода в GitHub, чтобы следить за процессом разработки фронта.
Как бы то ни было, статьи полезные. И на всякий случай ещё разок проверьте, не доступны ли в проде сорс мапы для ваших проектов.
#js #security
https://levelup.gitconnected.com/automatically-generated-source-maps-could-be-revealing-your-private-projects-files-17b2d13d7da4
https://teletype.in/@opendevcast/SyYaunCHB
Medium
Source-maps could be revealing your private project files
Automatically generated source-map files could reveal your private project’s files.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Открытие исходного кода фреймворка Remix
Райан Флоуренс и Майкл Джексон — авторы React Router и Reach UI — полгода назад представили новый проект Remix — фреймворк для разработки приложений с серверным рендерингом на базе React. Всё это время он распространялся платно. После привлечения трёх миллионов долларов в качестве инвестиций они открыли исходный код проекта под лицензией MIT.
По сути Remix — это конкурент Next.js. Райан и Майкл в презентации дипломатично ушли от сравнения с Next.js. Говорят, что друзья с создателем Next.js и хотят жить в мире, но по лендингу проекта видно, что Remix претендует на свой кусок пирога. Более того они поделились планами по монентизации проекта. Они планируют создавать платные сервисы вокруг фреймворка, как это сделал Vercel с Next.js.
Основные отличия от Next.js. В Remix серверный код можно размещать внутри React-компонентов. Кастомный транспилятор удаляет этот код при создании бандла для клиента, и оставляет в серверной сборке. То есть это что-то похожее на серверные компоненты из React 18. Ещё очень большой упор в презентации был сделан на эргономику работы с формами — выглядит всё, действительно, очень удобно и привычно. На сайте проекта также говорится про улучшение флоу загрузки приложения, но над этой фичей работает core-команда React, а не Remix, и она появится в Next.js (или уже появилась?).
В общем, меня лично проект не сильно впечатлил. Однако за проектом стоят известные разработчики в React-сообществе и есть инвестиции, поэтому проект будет развиваться. В конце концов здоровая конкуренция это всегда хорошо.
#announcement #react #jsframeworks
https://remix.run/ (сайт проекта)
https://www.youtube.com/watch?v=wsJaUjd1rUo (презентация Remix)
Райан Флоуренс и Майкл Джексон — авторы React Router и Reach UI — полгода назад представили новый проект Remix — фреймворк для разработки приложений с серверным рендерингом на базе React. Всё это время он распространялся платно. После привлечения трёх миллионов долларов в качестве инвестиций они открыли исходный код проекта под лицензией MIT.
По сути Remix — это конкурент Next.js. Райан и Майкл в презентации дипломатично ушли от сравнения с Next.js. Говорят, что друзья с создателем Next.js и хотят жить в мире, но по лендингу проекта видно, что Remix претендует на свой кусок пирога. Более того они поделились планами по монентизации проекта. Они планируют создавать платные сервисы вокруг фреймворка, как это сделал Vercel с Next.js.
Основные отличия от Next.js. В Remix серверный код можно размещать внутри React-компонентов. Кастомный транспилятор удаляет этот код при создании бандла для клиента, и оставляет в серверной сборке. То есть это что-то похожее на серверные компоненты из React 18. Ещё очень большой упор в презентации был сделан на эргономику работы с формами — выглядит всё, действительно, очень удобно и привычно. На сайте проекта также говорится про улучшение флоу загрузки приложения, но над этой фичей работает core-команда React, а не Remix, и она появится в Next.js (или уже появилась?).
В общем, меня лично проект не сильно впечатлил. Однако за проектом стоят известные разработчики в React-сообществе и есть инвестиции, поэтому проект будет развиваться. В конце концов здоровая конкуренция это всегда хорошо.
#announcement #react #jsframeworks
https://remix.run/ (сайт проекта)
https://www.youtube.com/watch?v=wsJaUjd1rUo (презентация Remix)
remix.run
Remix - A Web Framework for Building Anything
Remix is a batteries-included, ultra-productive, zero dependencies and bundler-free framework, ready to develop with in a agent-first world.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Поиск причины деградации времени сборки Webpack 5
Оуэн Хэннесси поделился историей поиска бага, из-за которого время запуска dev-сервера Webpack замедлилось в пятнадцать раз — "Understanding why our build got 15x slower with Webpack 5".
Проблема возникла после добавления невинной тёмной темы. Первые подозрения упали на CSS-in-JS-библиотеку Linaria. С помощью профилировщика внутри библиотеки была найдена проблемная функция, в которой использовался метод массива
В V8 у метода
#v8 #performance #webpack
https://engineering.tines.com/blog/understanding-why-our-build-got-15x-slower-with-webpack
Оуэн Хэннесси поделился историей поиска бага, из-за которого время запуска dev-сервера Webpack замедлилось в пятнадцать раз — "Understanding why our build got 15x slower with Webpack 5".
Проблема возникла после добавления невинной тёмной темы. Первые подозрения упали на CSS-in-JS-библиотеку Linaria. С помощью профилировщика внутри библиотеки была найдена проблемная функция, в которой использовался метод массива
.concat(). Переписывание кода без использования .concat() решило проблему. Однако оставались вопросы, из-за того что в оригинальном коде просадки скорости не было при сборке проекта с помощью Webpack 4. Надо было исследовать исходники V8.В V8 у метода
.concat() есть две ветки выполнения кода — медленная и быстрая. Медленная ветка начинает работать в том случае, если движок хотя бы один раз устанавливал Symbol.isConcatSpreadable. В Webpack 5 это происходило в коде, отвечающем за обратную совместимость с четвёртой версией. Для решения проблемы разработчики Webpack добавили экспериментальную опцию backCompat, которая полностью отключает обратную совместимость, избавляясь от ещё большего количества проблемного кода.#v8 #performance #webpack
https://engineering.tines.com/blog/understanding-why-our-build-got-15x-slower-with-webpack
Tines
Understanding why our build got 15x slower with Webpack 5 | Tines
A while back, we encountered an odd problem. All of a sudden, building our front-end went from taking a few seconds to taking a few minutes. We felt this most acutely when starting our front-end development server.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Не пишите квадраты
Степан Зубашев критикует современные тренды написания JavaScript-кода — "Обращение к Javascript-сообществу: перестаньте писать квадраты".
Популярность функциональных методов для работы с массивами и современные фичи JavaScript открыли двери для очень лаконичного кода. Но иногда чрезмерное увлечение лаконичностью приводит к падению производительности. В статье на примере использования
В данном случае на каждую итерацию происходит копирование всех элементов старого массива в новый, который возвращается
Степан призывает не ставить в абсолют краткость кода и задумываться о производительности.
#js #algorithm #performance
https://habr.com/ru/post/590663/
Степан Зубашев критикует современные тренды написания JavaScript-кода — "Обращение к Javascript-сообществу: перестаньте писать квадраты".
Популярность функциональных методов для работы с массивами и современные фичи JavaScript открыли двери для очень лаконичного кода. Но иногда чрезмерное увлечение лаконичностью приводит к падению производительности. В статье на примере использования
.concat() внутри .reduce() рассказывается, почему это может оказаться серьёзной проблемой.
source.reduce(
(acc, item) => acc.concat(func(item)),
[]
);
В данном случае на каждую итерацию происходит копирование всех элементов старого массива в новый, который возвращается
.concat(). Создание нового массива происходит для каждого элемента source, таким образом сложность кода получается квадратичной. С подобной проблемой столкнулись разработчики из вчерашней статьи.Степан призывает не ставить в абсолют краткость кода и задумываться о производительности.
#js #algorithm #performance
https://habr.com/ru/post/590663/
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
SVGcode — конвертация растровых изображений в SVG
Томас Штайнер рассказал про новый инструмент для конвертирования растровых изображений в SVG — "SVGcode: a PWA to convert raster images to SVG vector graphics".
SVGCode — это PWA, с которым можно работать в вебе, оффлайн или установить локально. Поддерживаются все популярные растровые форматы — JPG, PNG, GIF, WebP, AVIF. Из коробки работает постеризация — уменьшение количества цветов изображения — для улучшения качества конвертации.
Приложение создано на базе WebAssembly-версии утилиты potrace. В SVGcode есть все фичи полноценных приложений: буфер обмена реализуется с помощью Async Clipboard API, доступ к файловой системе с помощью File System Access API, есть возможность регистрации SVGCode на уровне ОС в качестве обработчика файлов. Исходный код распространяется под лицензией GPL.
#svg #tool #pwa
https://web.dev/svgcode/
Томас Штайнер рассказал про новый инструмент для конвертирования растровых изображений в SVG — "SVGcode: a PWA to convert raster images to SVG vector graphics".
SVGCode — это PWA, с которым можно работать в вебе, оффлайн или установить локально. Поддерживаются все популярные растровые форматы — JPG, PNG, GIF, WebP, AVIF. Из коробки работает постеризация — уменьшение количества цветов изображения — для улучшения качества конвертации.
Приложение создано на базе WebAssembly-версии утилиты potrace. В SVGcode есть все фичи полноценных приложений: буфер обмена реализуется с помощью Async Clipboard API, доступ к файловой системе с помощью File System Access API, есть возможность регистрации SVGCode на уровне ОС в качестве обработчика файлов. Исходный код распространяется под лицензией GPL.
#svg #tool #pwa
https://web.dev/svgcode/
web.dev
SVGcode: a PWA to convert raster images to SVG vector graphics | web.dev
Convert color or monochrome bitmap images (PNG, JPG, JPEG, WEBP, AVIF, GIF,…) to color or monochrome vector images (SVG).
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Ускорение установки HTTPS-соединений
Саймон Харн рассказал о том, как HTTPS-сертификаты влияют на производительность сайта — "The Performance Cost of EV Certificates".
Есть три основных типа HTPS-сертификатов: Domain Validation (DV), Organisation Validation (OV), Extended Validation (EV). DV-сертификаты выдаются на основе факта принадлежности домена, как в Let's Encrypt. OV- и EV-сертификаты выдаются организациям за оплату.
EV-сертификат предоставляет большее количество информации для пользователя, но по-большому счёту он не сильно отличается от OV. Вы могли видеть, что сайт использует EV-сертификат, когда в адресной строке рядом с иконкой замка зелёным текстом отображался владелец сертификата. С версии Chrome 77 такие сертификаты отображаются обычным значком замка без зелёного текста.
OV-сертификаты валидируются на стороне веб-сервера отправкой запроса на сервер организации, выдавшей сертификат. EV-сертификаты не могут валидироваться на стороне веб-сервера, поэтому их валидация происходит на клиенте, замедляя установку HTTPS-соединения. Задержка наиболее заметна в странах бывшего СССР, в Восточной Австралии, Канаде и большинстве стран Африки. Некоторые организации сталкивались с минутной задержкой для пользователей в Китае. Эта проблема решается переходом на OV-сертификат.
#http #performance #security
https://simonhearne.com/2020/drop-ev-certs/
Саймон Харн рассказал о том, как HTTPS-сертификаты влияют на производительность сайта — "The Performance Cost of EV Certificates".
Есть три основных типа HTPS-сертификатов: Domain Validation (DV), Organisation Validation (OV), Extended Validation (EV). DV-сертификаты выдаются на основе факта принадлежности домена, как в Let's Encrypt. OV- и EV-сертификаты выдаются организациям за оплату.
EV-сертификат предоставляет большее количество информации для пользователя, но по-большому счёту он не сильно отличается от OV. Вы могли видеть, что сайт использует EV-сертификат, когда в адресной строке рядом с иконкой замка зелёным текстом отображался владелец сертификата. С версии Chrome 77 такие сертификаты отображаются обычным значком замка без зелёного текста.
OV-сертификаты валидируются на стороне веб-сервера отправкой запроса на сервер организации, выдавшей сертификат. EV-сертификаты не могут валидироваться на стороне веб-сервера, поэтому их валидация происходит на клиенте, замедляя установку HTTPS-соединения. Задержка наиболее заметна в странах бывшего СССР, в Восточной Австралии, Канаде и большинстве стран Африки. Некоторые организации сталкивались с минутной задержкой для пользователей в Китае. Эта проблема решается переходом на OV-сертификат.
#http #performance #security
https://simonhearne.com/2020/drop-ev-certs/
Simon Hearne
The Performance Cost of EV Certificates
Extended Validation certificates are expensive and degrade performance. Move to an OV certificate if you can!
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Использование focus-visible с обратной совместимостью
Патрик Лаук поделился своим подходом для управления стилями фокуса — ":focus-visible and backwards compatibility".
По умолчанию браузеры отображают фокус только там, где нужно. Например, фокус не устанавливается при клике на кнопку с помощью мыши, но появляется при переходе к кнопке с помощью клавиатуры. Для пользователей это логичное поведение. Когда фокус кастомизируется с помощью псевдокласса
Для кастомизации фокуса во всех браузерах с учётом
На данный момент
#css #a11y
https://www.tpgi.com/focus-visible-and-backwards-compatibility/
Патрик Лаук поделился своим подходом для управления стилями фокуса — ":focus-visible and backwards compatibility".
По умолчанию браузеры отображают фокус только там, где нужно. Например, фокус не устанавливается при клике на кнопку с помощью мыши, но появляется при переходе к кнопке с помощью клавиатуры. Для пользователей это логичное поведение. Когда фокус кастомизируется с помощью псевдокласса
:focus, он начинает отображаться во всех ситуациях, вызывая замешательство у пользователей и дизайнеров. Для решения этой проблемы в стандарт был добавлен псевдокласс :focus-visible, с помощью которого можно кастомизировать фокус, не ломая его стандартное поведение.Для кастомизации фокуса во всех браузерах с учётом
:focus-visible Патрик советует использовать следующий подход:
/* стилизация фокуса */
/* в устаревших браузерах */
button:focus {
outline: dotted 5px teal;
}
/* отключение стилей `:focus` */
/* в современных браузерах */
*:focus:not(:focus-visible) {
outline: none !important;
}
/* стилизация фокуса */
/* в современных браузерах */
button:focus-visible {
outline: dotted 5px teal;
}
На данный момент
:focus-visible поддерживается во всех браузерах (в Safari за экспериментальным флагом).#css #a11y
https://www.tpgi.com/focus-visible-and-backwards-compatibility/
TPGi
:focus-visible and backwards compatibility - TPGi
Updated March 2023 Clearly visible focus styles are important for sighted keyboard users. However, these focus styles can often be undesirable when they are applied as a result of a...
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Сравнение вычислительной производительности WebGL и WebGPU
Денис Радин сравнил вычислительную производительность WebGL и WebGPU — "WebGPU computations performance in comparison to WebGL".
WebGPU API предоставляет доступ к возможностям современных видеокарт. Для поддержки вычислений в нём используются вычислительные шейдеры (compute shaders). В WebGL что-то подобное можно сделать с помощью хака преобразованием данных в текстуру и их дальнейшей обработкой с помощью пиксельного шейдера. Так как WebGPU разрабатывался с учётом поддержки произвольных вычислений, в задаче на перемножение матриц он работает в 3,5 раза быстрее WebGL.
WebGPU открывает доступ к машинному обучению в вебе, пост-процессингу в реальном времени и физическим симуляциям в 60 fps.
#webgl #webgpu #performance
https://pixelscommander.com/javascript/webgpu-computations-performance-in-comparison-to-webgl/
http://pixelscommander.com/ru/javascript/webgpu-computations-performance-in-comparison-to-webgl/ (на русском языке)
Денис Радин сравнил вычислительную производительность WebGL и WebGPU — "WebGPU computations performance in comparison to WebGL".
WebGPU API предоставляет доступ к возможностям современных видеокарт. Для поддержки вычислений в нём используются вычислительные шейдеры (compute shaders). В WebGL что-то подобное можно сделать с помощью хака преобразованием данных в текстуру и их дальнейшей обработкой с помощью пиксельного шейдера. Так как WebGPU разрабатывался с учётом поддержки произвольных вычислений, в задаче на перемножение матриц он работает в 3,5 раза быстрее WebGL.
WebGPU открывает доступ к машинному обучению в вебе, пост-процессингу в реальном времени и физическим симуляциям в 60 fps.
#webgl #webgpu #performance
https://pixelscommander.com/javascript/webgpu-computations-performance-in-comparison-to-webgl/
http://pixelscommander.com/ru/javascript/webgpu-computations-performance-in-comparison-to-webgl/ (на русском языке)