

- Главная
- Каталог
- Интернет технологии
- Будни разработчика

Будни разработчика
Всё о разработке вообще и фронтенде в частности: лучшие статьи, фишки, баги браузеров и личный опыт автора
Статистика канала
Полная статистикаchevron_rightДжейк Арчибальд решил проверить, как браузеры сегодня показывают картинки «по частям» — ту самую прогрессивную отрисовку, где сначала видишь мутное пятно, а потом — полную версию.
Когда-то это было базовой оптимизацией. При медленном интернете пользователю хотелось показать хоть что-то. Кто помнит, что картинки когда-то могли грузиться как сверху вниз, так и снизу вверх? :)
Формат JPEG буквально изобрёл прогрессивную загрузку и до сих пор работает — но Safari показывает картинку пикселями и заметно грубее, чем Chrome и Firefox, где изображение обновляется плавно.
Прогрессивный JPEG также немного дольше декодируется, но разница в миллисекунды.
JPEG XL должен был стать преемником — и вроде умеет прогрессивный рендеринг, но на практике:
— в Safari его нет вообще;
— в Chromium он пока экспериментальный;
— а декодится формат пугающе медленно.
Арчибальд отмечает, что в тестах JPEG XL показывал результат в 2–5 раз хуже AVIF, что делает его пока что малопригодным для реального веба.
Зато на горизонте появился прогрессивный AVIF.
В Chromium уже можно использовать слои. Этот режим разбивает изображение на два слоя — первый лёгкий, размытый и почти мгновенный, второй — финальный, с полным качеством. Правда, для этого надо пересобрать libavif и собрать изображение заново.
При этом информация с размытого слоя переиспользуется в качественном слое. Такой себе SQIP для богатых.
Safari и Firefox пока это не поддерживают, но сам подход перспективный: он даёт ту же визуальную плавность, что и старый прогрессивный JPEG, при гораздо лучшем сжатии.
Арчибальд подчеркивает: прогрессивность не решает проблему responsive изображений — браузеру всё равно нужно заранее знать, какой размер подгружать, иначе можно легко скачать лишние мегабайты.
Так что, возможно, будущее не в прогрессивных кодеках, а в умных форматах, где превью и финальное изображение встроены вместе, но управляются логикой загрузки.
В статье прекрасные имитаторы загрузки, можно прям байт за байтом отследить всю историю демонстрации изображения. Очень круто.
Ну и будьте готовы — лиса с иллюстрации успеет вам надоесть.
https://jakearchibald.com/2025/present-and-future-of-progressive-image-rendering/
#jpeg #img #avif #img
calc()
и clamp()
, а объявлять их один раз и вызывать как в JS.
Уна Кравец показала 5 примеров:
— --negate()
— переворачивает знак числа;
— --opacity()
— задаёт прозрачность цвета;
— --fluid-type()
— делает адаптивную типографику;
— --conditional-radius()
— убирает скругления у края экрана;
— --layout-sidebar()
— строит сетку с сайдбаром без медиазапросов.
Дальше — больше: в будущем появятся @mixin
и @apply
, и CSS наконец-то получит свои настоящие функции. Ну хоть в Хроме теперь будет счастье.
una.im/5-css-functions
#css #functionМы понимаем, что голосовать за «чужую» команду может быть странно. Но на самом деле ваша поддержка поможет показать, что компании с открытой культурой и уважением к людям должны быть стандартом.
Итак, в разработке пульта на Flutter случилось — конечно же — неожиданное.
И неожиданное это тот факт, что новые телевизоры Samsung не поддерживают получение списка приложений и их иконок. Выдают 401. Выходит, API-то есть, а вот разрешения на использование — нет. И его не получить, потому что Samsung сдвигает свою инфраструктуру в сторону полурабочего SmartThings-облака.
Ну как, новые. Года с 2020. Просто меня интересовал конкретно мой, а он 2019 и документации в принципе исчезающе мало. Tizen и Tizen.
Что же делать?
Да ничего особого не делать. Нужно где-то найти список приложений и их иконки, ведь запуск всё так же остался возможен: по id приложения.
Очевидно, в голову приходит мысль, что для Smart TV должно быть некое подобие аппстора. И действительно: https://www.samsung.com/us/tvs/smart-tv/samsung-tv-apps/
Надеюсь, оно хотя бы SPA? Да! Список приложений получается через эндпоинт
/list
с вполне однозначным набором параметров: https://vdapi.samsung.com/tvs/tvpersonalize/api/tvapps/appserver/list?country_code=US&language_code=en&offset=0&size=24&order=asc&category=all
Выглядит шикарно! В ответ получаем JSON с полным числом приложений — total — и массивом из 24 позиций. Так, а остальное как?
И тут моя беспокойная голова зачем-то решила проверить, а что там по остальным странам, и я начал перебирать коды стран в адресе самого магазина.
Финский вообще не заработал, французского нет, а в российском не работала постраничная навигация.
Ладно, не первый же раз работаем. Смотрим на список параметров запроса, видим
offset
и size
. Это у нас типичный случай оконной пагинации (помимо курсорной и постраничной). В таких случаях просто передаем что-то вида загрузить 48 приложений начиная с 96. И… не работает. Какой вывод я сделал? Правильно: API сломано. Посмотреть, работает ли навигация в американском аппсторе, я не догадался. Поэтому решил абьюзить на полную и просто передал 3336 в
size
с offset
0. Число 3336 не случайно — API сам отдает его с пустой категорией. И, внезапно, я получил ответ, содержащий все приложения. Ждать пришлось весьма долго, я ожидал, что для таких вещей нужен токен. Но нет. Вывод 1: защищайте свои API.
Ну и мне стоило все же посмотреть на работу американского аппстора. Потому что, как оказалось, offset у них — это страница! То есть, для получения приложений с 11 по 20 надо было передавать не
offset=10&size=10
, а offset=1&size=10
. Сбивает с толку, спасибо, что хотя бы не курсор. Вывод 2: играешь в CTF — хотя бы немного думай.
Впрочем, своей цели я добился. Списки приложений есть, иконки — там же. Осталось подготовить наборы самых популярных приложений разных стран — и вперёд.
…а ведь Samsung мог просто не закрывать API на телевизоре.
#api #ctf
React Native-разработчики: радуются, что благодаря нативным виджетам их приложения выглядят прекрасно как в iOS18, так и в iOS26
Flutter-разработчики: ищут способ внедрить нативные элементы без изменения архитектуры фреймворка и находят их.
Разработчики Telegram на Swift: да срали мы на пользователей всех ОС вообще, как получилось так получилось. И за каким-то чудом решили сами сделать виджеты а-ля iOS26 под iOS18.
#liquidglass #fail
— Это код, он не может сделать больно!
Код:
const a = [1, 4, -2, 5, -6];
let i;
for (i = 0; i < a.length && a[i] > 0; i++);
// i: 2
Отзывы канала
всего 22 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Будни разработчика — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 14.5K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 25.8, количество отзывов – 22, со средней оценкой 4.8.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2517.48 ₽, а за 221 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий