Forwarded from Монада Кедавра (Дима Zerꙫbias)
Блокировка cookies замедляет веб, к радости Google
Многие наверняка уже слышали о скорой всеобщей блокировке third party cookies, на которой строится заработок рекламных и партнерских программ и заметной части веба в целом. В safari и firefox трекинг пользователя через куки на сторонних сайтах выключен уже довольно давно, но Chromium, разрабатываемый бизнесом построенным на рекламе, бан кукис всё откладывает и откладывает, хотя британские законодатели давят на них и в конце концов вынудят полностью отказаться от такого трекинга.
Казалось бы, замечательно, улучшение приватности, одни плюсы? Оказалось, что у этой медали есть вторая сторона: отсутствие нормальных альтернатив. Недавно, я в свой практике увидел несколько новых заходов на то, как вскоре будут работать все: жесткий кастомный фингерпринтинг. Бизнес, построенный на рекламе то умирать не планирует, а раз нельзя трекать через куки, но можно вставлять свои скрипты партнерам, то каждая сеть лично для себя начнёт собирать свой собственный слепок пользователя для идентификации.
Фингерпринт скрипт — это код, который пытается собрать как можно больше информации о системе и юзере, проверяя на расхождения в реализациях различных браузеров и девайсов. Вы вот например знали, что в V8 есть console.context чтобы вылезти мимо оберток типа роллбара и писать в консоль напрямую? А скрипт знает, и запишет, что у юзера движок V8 в таком-то диапазоне версий. Создаст невидимый canvas чтобы проверить нюансы работы gpu. Проверит все плагины браузера. Попробует написать в почивший WebSQL. Заглянет к typeof document.all. Короче задействует как можно больше дырок чтобы создать уникальную комбинацию параметров, чтобы отличить одного юзера от другого. Можете себе представить, насколько медленно это работает?
А теперь представьте, что вскоре у каждой партнерки будет свой скрипт фингерпринта, потому что практики переиспользования кода в этой части индустрии нет, каждый скрипт уникальный и независимый.
В итоге, количество скриптов будет ограничено только количеством партнерок у сайта. Ну, к примеру, штук 15. Каждый скрипт в 80-400 кб веса и по 200 мс работы.
Кажется, я представлял себе будущее с запретом на трекинг слегка иначе
И тут возникает вопрос, а как планирует жить гугл, почему он не торопится сделать альтернативу? А у него оказывается всё хорошо. Спасибо недавнему сливу документации к движку гугла, теперь мы знаем, что для себя любимых в гугл оставили возможность собирать данные напрямую с пользователей Chrome и для них этот запрет уже роли не играет, это пройденный этап. Этап на пути к процветанию в технологической монополии: для нас есть метрики прямо в браузере, для вас — 5 метров фингерпринтов.
К счастью, движущая сила всей этой истории, британские законодатели, явно не в восторге от таких раскладов и предлагают гуглу подумать ещё
Гугл пробует что-то сделать, но пока это выглядит довольно странно, технология Related Website Sets для работы требует открытия PR на гитхабе, мержить который будут сотрудники гугла. Очень удобно, спасибо, это точно поможет снизить уровень монополизации.
И тут возникает интересный вопрос — а куда мы в итоге движемся?
Я вижу столкновение двух непреодолимых сил: желания рекламных бизнесов выжить и стремление европейских регуляторов снизить уровеньчужой слежки за своими гражданами. Отказ от кукис не обсуждается, это явно проблема с приватностью, но ведь и фингерпринты же по прежнему работают? Если ввести аналоги кукис но урезанный на пол шишечки, то что мешает новой Cambridge analytica вновь слить все наработанные данные на сторону? Зачем всё это противостояние, если конечная проблема не техническая реализация cookies а сама модель рекламного бизнеса? Зачем это всё, если всё останется как есть, но с фингерпринт-скриптами?
Много вопросов, мало ответов
Многие наверняка уже слышали о скорой всеобщей блокировке third party cookies, на которой строится заработок рекламных и партнерских программ и заметной части веба в целом. В safari и firefox трекинг пользователя через куки на сторонних сайтах выключен уже довольно давно, но Chromium, разрабатываемый бизнесом построенным на рекламе, бан кукис всё откладывает и откладывает, хотя британские законодатели давят на них и в конце концов вынудят полностью отказаться от такого трекинга.
Казалось бы, замечательно, улучшение приватности, одни плюсы? Оказалось, что у этой медали есть вторая сторона: отсутствие нормальных альтернатив. Недавно, я в свой практике увидел несколько новых заходов на то, как вскоре будут работать все: жесткий кастомный фингерпринтинг. Бизнес, построенный на рекламе то умирать не планирует, а раз нельзя трекать через куки, но можно вставлять свои скрипты партнерам, то каждая сеть лично для себя начнёт собирать свой собственный слепок пользователя для идентификации.
Фингерпринт скрипт — это код, который пытается собрать как можно больше информации о системе и юзере, проверяя на расхождения в реализациях различных браузеров и девайсов. Вы вот например знали, что в V8 есть console.context чтобы вылезти мимо оберток типа роллбара и писать в консоль напрямую? А скрипт знает, и запишет, что у юзера движок V8 в таком-то диапазоне версий. Создаст невидимый canvas чтобы проверить нюансы работы gpu. Проверит все плагины браузера. Попробует написать в почивший WebSQL. Заглянет к typeof document.all. Короче задействует как можно больше дырок чтобы создать уникальную комбинацию параметров, чтобы отличить одного юзера от другого. Можете себе представить, насколько медленно это работает?
А теперь представьте, что вскоре у каждой партнерки будет свой скрипт фингерпринта, потому что практики переиспользования кода в этой части индустрии нет, каждый скрипт уникальный и независимый.
В итоге, количество скриптов будет ограничено только количеством партнерок у сайта. Ну, к примеру, штук 15. Каждый скрипт в 80-400 кб веса и по 200 мс работы.
Кажется, я представлял себе будущее с запретом на трекинг слегка иначе
И тут возникает вопрос, а как планирует жить гугл, почему он не торопится сделать альтернативу? А у него оказывается всё хорошо. Спасибо недавнему сливу документации к движку гугла, теперь мы знаем, что для себя любимых в гугл оставили возможность собирать данные напрямую с пользователей Chrome и для них этот запрет уже роли не играет, это пройденный этап. Этап на пути к процветанию в технологической монополии: для нас есть метрики прямо в браузере, для вас — 5 метров фингерпринтов.
К счастью, движущая сила всей этой истории, британские законодатели, явно не в восторге от таких раскладов и предлагают гуглу подумать ещё
The UK wants to make sure that Google isn't making changes to Chrome to prop up its advertising business at the expense of competitors.
Гугл пробует что-то сделать, но пока это выглядит довольно странно, технология Related Website Sets для работы требует открытия PR на гитхабе, мержить который будут сотрудники гугла. Очень удобно, спасибо, это точно поможет снизить уровень монополизации.
И тут возникает интересный вопрос — а куда мы в итоге движемся?
Я вижу столкновение двух непреодолимых сил: желания рекламных бизнесов выжить и стремление европейских регуляторов снизить уровень
Много вопросов, мало ответов
Ars Technica
Google can’t quit third-party cookies—delays shut down for a third time
Google says UK regulator testing means the advertising tech will last until 2025.
😢11👍5❤3👎3🙈2
Сова пишет…
Если вы пользуетесь Godaddy, лучше мигрировать настолько быстро насколько возможно
История получила продолжение
😁9💔5👍3😡3🤯2✍1
Ещё через 18 версий наконец-то все поймут, чем JSX был лучше всех птичьих синтаксисов.
https://dev.to/oler/introduction-to-let-in-angular-18-cm6
https://dev.to/oler/introduction-to-let-in-angular-18-cm6
🙈41😁12👎7💯5😱3🌚3
О, столько лет понадобилось, чтобы понять очевидные с самого начала вещи?
https://bobaekang.com/blog/component-colocation-composition/
What most stood out to me from the discussion, however, was the core team’s early response to the community feedback: initiating data fetching in individual components under a suspense boundary, a pattern known as fetch-on-render, is a bad practice. The recommended alternative was to prefetch data outside the components that read the data. But wait, isn’t React all about composing components? Components that contain everything they need—state, logic, and view—all nicely colocated? Are components not sufficient?
https://bobaekang.com/blog/component-colocation-composition/
😁14👎2
Сова пишет…
А вот тут есть и другие полезные каналы про фронтенд. https://xn--r1a.website/addlist/Z6Efi4jXwe9lODcy Я подписан как минимум на половину каналов из папки.
Продолжаю делиться полезными каналами.
В этот раз интересных тем больше.
https://xn--r1a.website/addlist/3gJJbGAm4oBiN2Uy
В этот раз интересных тем больше.
https://xn--r1a.website/addlist/3gJJbGAm4oBiN2Uy
Раз уж начал постить в канал, то расскажу свою недавнюю боль.
Поднимал SSR проект на fastify, очень хотелось запустить его на serverless платформе. Чуть-чуть поресерчил и решил снова воспользоваться Cloudflare Workers.
Во первых, документация Cloudflare конечно не плоха, но её очень не хватает, а в некоторых случаях было прям больно. Часть гайдов лежит в блоге, где 2 версия wrangler, а поэтому несовместимы с 3 версией.
Во вторых, если погуглить
fastify-edge не получилось завести, все время вываливались ошибки из кишков.
А в гайде есть все платформы, кроме cloudflare, видимо не просто так.
Потом еще подкинул проблем telefunc, о котором я уже писал, от автора vike. Он использует динамический
В общем, грусть печаль.
По итогу запустил на fly.dev, пока ищу альтернативу.
Поднимал SSR проект на fastify, очень хотелось запустить его на serverless платформе. Чуть-чуть поресерчил и решил снова воспользоваться Cloudflare Workers.
Во первых, документация Cloudflare конечно не плоха, но её очень не хватает, а в некоторых случаях было прям больно. Часть гайдов лежит в блоге, где 2 версия wrangler, а поэтому несовместимы с 3 версией.
Во вторых, если погуглить
fastify on cloudflare workers, то вывалится fastify-edge, который experimental, а также гайд fastify serverless.fastify-edge не получилось завести, все время вываливались ошибки из кишков.
А в гайде есть все платформы, кроме cloudflare, видимо не просто так.
Потом еще подкинул проблем telefunc, о котором я уже писал, от автора vike. Он использует динамический
import('node:path'), который не поддерживается Cloudflare Workers.В общем, грусть печаль.
По итогу запустил на fly.dev, пока ищу альтернативу.
👍4👎3🤔3
Одним из кандидатов в универсальные серверные javascript-фреймворки стал Hono.dev.
Запускается на всех платформах: serverless, deno, bun, nodejs.
Имеет весьма неплохую систему композиции роутов.
В комплекте куча миддлвар разной степени полезности.
Даже есть простой jsx renderer, чтобы React не тащить.
В качестве renderer я хочу использовать vike.dev.
И hono продолжит мне помогать, так как предлагает RPC клиент взамен fetch/axios/...
Из браузера можно делать запросы к API-роутам hono через hono/client, с проверкой типов в рантайме.
Типы для typescript выводятся автоматически, да еще и соответствуют структуре серверного роутинга.
Выглядит очень интересно.
Запускается на всех платформах: serverless, deno, bun, nodejs.
Имеет весьма неплохую систему композиции роутов.
В комплекте куча миддлвар разной степени полезности.
Даже есть простой jsx renderer, чтобы React не тащить.
В качестве renderer я хочу использовать vike.dev.
И hono продолжит мне помогать, так как предлагает RPC клиент взамен fetch/axios/...
Из браузера можно делать запросы к API-роутам hono через hono/client, с проверкой типов в рантайме.
// Server Side
import { Hono } from 'hono'
import { zValidator } from '@hono/zod-validator'
import { z } from 'zod'
const app = new Hono()
app.get(
'/hello',
zValidator(
'query',
z.object({ name: z.string() })
),
(c) => {
const { name } = c.req.valid('query')
return c.json({
message: `Hello! ${name}`,
})
}
)
// Browser Side
import type { AppType } from './server'
import { hc } from 'hono/client'
const client = hc<AppType>('/api')
const res = await client.hello.$get({
query: {
name: 'Hono',
},
})
Типы для typescript выводятся автоматически, да еще и соответствуют структуре серверного роутинга.
Выглядит очень интересно.
✍19👍11🔥5❤1
Вы наверняка заметили, что с каждым месяцем frontend-разработка и IT переживает развитие. Я подписан на кучу каналов. Стараюсь смотреть на изменяющийся IT с разных сторон.
Саша имеет опыт более 11 лет во frontend и успел поработать на проектах разной сложности и сферах: в медицине, образование, путешествие, финтех.
Я периодически почитываю его канал и нахожу для себя полезности. Вот например. А еще Саша много рассказывает о своем профессиональном опыте тимлида и увлечениях вне работы, докладах на devfest2023 и "it и точка".
https://xn--r1a.website/front_everyday
Саша имеет опыт более 11 лет во frontend и успел поработать на проектах разной сложности и сферах: в медицине, образование, путешествие, финтех.
Я периодически почитываю его канал и нахожу для себя полезности. Вот например. А еще Саша много рассказывает о своем профессиональном опыте тимлида и увлечениях вне работы, докладах на devfest2023 и "it и точка".
https://xn--r1a.website/front_everyday
👎248👍8😡3😁2🔥1
Пользуюсь Cloudflare какое-то время, но чем дальше, тем больше он меня расстраивает.
Отсутствует
Очень странная работа Cloudflare Workers с env перемеными при деплое, иной раз секреты просто отсутствуют в приложении.
Пару лет назад, я уже использовал Cloudflare и опыт был крайне приятный, все работало само, ничего настраивать не надо.
Сегодня же в очередной раз, всё легло… за последний месяц уже 4 раз.
Куда уезжать?
Vercel и AWS не предлагать — у одного политика отношения к юзерам крайне неприятная, а у другого yaml конфиги на 300-400 строк и десяток сервисов для простейших вещей.
Отсутствует
--verbose для wrangler скрипта. Если валится ошибка, то выяснить причину адски сложно, так как детальных логов нет, просто 800000000000 ошибка и всё.Очень странная работа Cloudflare Workers с env перемеными при деплое, иной раз секреты просто отсутствуют в приложении.
Пару лет назад, я уже использовал Cloudflare и опыт был крайне приятный, все работало само, ничего настраивать не надо.
Сегодня же в очередной раз, всё легло… за последний месяц уже 4 раз.
Куда уезжать?
Vercel и AWS не предлагать — у одного политика отношения к юзерам крайне неприятная, а у другого yaml конфиги на 300-400 строк и десяток сервисов для простейших вещей.
😁3😱2
Тем временем, Microsoft встроили Azure AI в Github.
Пишут, что можно будет во время разработки пользоваться широким набором LLM бесплатно.
Видимо, хотят отобрать хлеб у huggingface.co
Пишут, что можно будет во время разработки пользоваться широким набором LLM бесплатно.
Видимо, хотят отобрать хлеб у huggingface.co
💯8 3🙈2🤷♂1👎1😢1
Ладно. Мне телега просто не дает зарегать юзернейм с _.
А кто-то умный уже зарегал и думал, что мне есть дело
А кто-то умный уже зарегал и думал, что мне есть дело
😁7🤔4😐3
Сова пишет…
Ладно. Мне телега просто не дает зарегать юзернейм с _. А кто-то умный уже зарегал и думал, что мне есть дело
Все оказалось куда проще и прозаичнее: я создал слишком много публичных каналов и групп, занял много username.
Telegram не показывает вменяемую ошибку, лишь Link invalid.
Telegram не показывает вменяемую ошибку, лишь Link invalid.
😁9🥰2😐1
Я уже привык, что навигация имеет с двух сторон экрана.
Обычно сверху и слева.
Docusaurus популяризировал Table of contents справа.
А тут Nodejs решили сделать навигацию с каждой из 4 сторон.
Сверху главное меню, слева навигация по секции, справа навигация по странице, снизу…
а что снизу?
Клик на About Node.js просто перезагружает страницу.
Клик на Home делает ровно то же самое, что и клик на логотип…
Обычно сверху и слева.
Docusaurus популяризировал Table of contents справа.
А тут Nodejs решили сделать навигацию с каждой из 4 сторон.
Сверху главное меню, слева навигация по секции, справа навигация по странице, снизу…
а что снизу?
Клик на About Node.js просто перезагружает страницу.
Клик на Home делает ровно то же самое, что и клик на логотип…
😁25👎4💅2❤1🔥1
Тем временем, появилась новая библиотека для валидации данных, а именно для сборки JSON Schema
https://github.com/lukeed/tschema
К тому же теперь у нас есть лейбл
https://github.com/lukeed/tschema
К тому же теперь у нас есть лейбл
e18e-approvedGitHub
GitHub - lukeed/tschema: A tiny (500b) utility to build JSON schema types.
A tiny (500b) utility to build JSON schema types. Contribute to lukeed/tschema development by creating an account on GitHub.
👍9😱3👎1🤩1
Forwarded from Блог*
Сова — это...
Anonymous Poll
21%
Маскот Duolingo
15%
Человек, который поздно ложится и поздно встаёт
24%
Сергей
40%
Это птица такая, совсем со своим программированием сдурел, что ли?
👎30😁11🤔2🗿2👍1
Сова пишет…
Одним из кандидатов в универсальные серверные javascript-фреймворки стал Hono.dev. Запускается на всех платформах: serverless, deno, bun, nodejs. Имеет весьма неплохую систему композиции роутов. В комплекте куча миддлвар разной степени полезности. Даже есть…
Базовый шаблон vike+react+effector
- умеет грузить данные через +data
- реюзает vike-react
- не имеет документации, пока что
Буду улучшать и писать доку исходя из фидбека.
Потрогать можно тут:
https://github.com/effector/vike-react-template
- умеет грузить данные через +data
- реюзает vike-react
- не имеет документации, пока что
Буду улучшать и писать доку исходя из фидбека.
Потрогать можно тут:
https://github.com/effector/vike-react-template
14 35👍9👎8😡2