У Лавки Игр хороший SMM, но я на их примере хочу проиллюстрировать важность умения разбираться в деталях той системы, которой ты пользуешься.
СММщик писал пост с упоминанием статьи и вместо прямой ссылки на запись просто скопировал свой текущий URL из адресной строки браузера после того, как зашёл в поиск и нашёл нужный текст.
То есть, в тексте вместо простого /wall-8375786_166962 получилось что-то такое:
/search?c%5Bper_page%5D=40&c%5Bq%5D=истбрук&c%5Bsection%5D=statuses&w=wall-8375786_166962
Можно говорить, что это скорее ошибка ВК, но в разработке на самом деле есть некоторые подходы вроде CQRS, идемпотентности и семантического использования HTTP-методов, говорящие, в числе прочего, о том, что URL должен полностью отражать текущее состояние страницы. Думаю, это наследие Дурова, который любил консервативные решения. В любом случае, ВК здесь совершенно не уникален, и немало систем, которые ведут себя точно так же.
При этом СММщик вызывает своей ссылкой у пользователей непредвиденное поведение: заход на страницу поиска и ввод поисковой фразы. А нижняя ссылка на скриншоте ещё хуже — обратите внимание, там нужный пост был открыт изнутри некоторой личной переписки, поэтому нажатие на ссылку формирует, внезапно, запрос на переписку с незнакомым большинству пользователей человеком, с которым общался СММщик в этот момент.
Помимо просто путаницы для людей, которые в этом не разбираются (а таких большинство), возникает ещё и вполне прямая опасность: мало ли, что за страницы и с какой целью открыты у СММщика в момент вставки ссылки. Вполне возможна ситуация, при которой таким способом будут выданы закрытые сведения или даже даны несанкционированные доступы.
#web
💡HDR. В чем преимущества и как использовать на Android
Чем отличается HDR (High Dynamic Range) видео или фото от обычного или SDR (Standard Dynamic Range)? Дисплей устройства становится ярче и насыщеннее. В этом и есть задача HDR - обеспечить больше информации о цвете и яркости картинки, чтобы передать максимально близко к задумке автора контента.
SDR формат с которым мы живем довольно давно и он разрабатывался из расчет на устройства того времени, которые просто не могли передать параметры выше:
- максимальная яркость ~100 нит
- ограниченная цветовая палитра (sRGB)
- светлое не такое уж светлое, а тёмное — просто чёрная клякса
Современные дисплее смартфонов имеют пиковую яркость в несколько тысяч нит, большие возможности по показу разных цветов и скорость отображения, поэтому SDR просто не может раскрыть их возможностей. Для этого сделали HDR и он позволяет раскрыть максимум от экрана устройства.
В Android 14 начали активную поддержку HDR контента и его его совместимость с устройствами без поддержки формата, а именно добавили возможности:
✅ показывать HDR-видео в SurfaceView и MediaCodec
✅ накладывать поверх яркий, живой интерфейс — тоже в HDR
✅ узнать через API, поддерживает ли устройство HDR
✅ использовать ImageDecoder для работы с HDR-изображениями
✅ автоматически конвертировать HDR в SDR контент
Google внедрила поддержку UltraHDR - формат изображений c HDR. В нем могут снимать современные Android устройства и получать больше эмоций от ваших фото. Каждый раз наслаждаюсь этим на Pixel.
В блоге Android Developers вышла статья с подробностями как устроен цвет на цифровых устройствах и какие преимущества даёт HDR
#android#hdr
🤖Важность HDR в приложениях для передачи естественных цветов
Почитал интересную статью от Google про важность использования HDR. Самое важное - HRD не только про яркость, а именно про правильность передачи цветов в приложениях, особенно когда дело касается фото.
В Android 15 появилось API для контроля того смешивания HDR и SDR контента:
// Требуется, чтобы Windows учитывало желаемый HDR headroom.
// Обратите внимание, что эквивалентный API в SurfaceView НЕ требует
// COLOR_MODE_HDR для ограничения headroom,
// если на SurfaceView отображается HDR-контент.
window.colorMode = ActivityInfo.COLOR_MODE_HDR
// разные значения headroom могут
// использоваться в зависимости от
// желаемого headroom контента
// И особенностей UI-дизайна приложения.
window.desiredHdrHeadroom = when {
/* только SDR */ -> 0f
/* Смешанный, в основном SDR */ -> 1.5f
/* Смешанный, в основном HDR */ -> 3f
/* только HDR */ -> 5f
else -> 0f
}
#android#hdr#android15