Алекс Тарков

Воин в поле не один

Есть два связанных умозаключения, которые звучат просто, но выводы из которых, как выясняется, контринтуитивны.

эссе

Про внимание

Сижу в кофейне и наблюдаю, как девочка лет четырёх собирает конструктор, смотрит мультик на телефоне, пьёт молоко и танцует под музыку. И я не могу решить, нормально ли это.

эссе

When a button was a button

To be honest, I no longer understand modern web. I can still use it, but it’s more about guessing than knowing.

essay

Keychron конфигурирует клавиатуру через браузер

С помощью WebHID API.

TIL

nodemon больше не нужен

Node.js умеет следить за файлами и без него.

TIL

В Android есть Log.wtf

What a Terrible Failure!

TIL

TypeScript не следует семверу

Говорят, они выше этого.

TIL

Поиск массива заданного размера в MongoDB

db.collection.find({ 'array.3': { $exists: true } });
TIL

Арность функции в JavaScript

Как и многое другое в JS вычисляется не совсем очевидно.

TIL

Уязвимость MD5 на примере Gravatar

Много лет назад все сервисы использовали MD5 для хэширования паролей, адресов почт и прочих данных. Сегодня — нет. Почему?

TIL

Форматирование времени в Go

2006-01-02T15:04:05Z0700
TIL

У Let’s Encrypt есть лимиты

И если тестить на продакшене, можно легко в них упереться и остаться без сертификата.

TIL

Перенаправления потоков не подхватывают sudo

Если при sudo cmd > file нет прав на запись в файл, то не сработает.

TIL

Подсветку синтаксиса в блоках кода Telegram можно отключить

Потому что нет, бездушная машина, ты не угадала, это не код на Ruby.

TIL

Атрибутные селекторы CSS можно сделать независимыми от регистра

При этом значения некоторых атрибутов всегда матчатся без оглядки на регистр. Для них можно сделать наоборот.

TIL

Браузеры делают GET, получив 302 в ответ на POST

По историческим причинам, конечно же.

TIL

Сравнение строк в JavaScript с учётом чисел

Чтобы было 1, 2, 10, а не 1, 10, 2.

TIL

Оптическое выравнивание текста в браузере

Чтобы можно было поставить текст вертикально по центру, и «шрифтовые» отступы вокруг него не мешали.

TIL

Can I Email

Как Can I Use, только для почты.

TIL

На порядок обхода свойств объектов в ES6 всё ещё нельзя положиться

Стандарт как бы его гарантирует, да только бестолку.

TIL

Selector Injection Attack в MongoDB

await User.findOne({
  email: req.body.email,
  password: req.body.password,
});
TIL

Gmail поддерживает JSON-LD внутри писем

Они используются для добавления кастомных кнопок в интерфейс.

TIL

Регулярки в JavaScript не такие же, как в других языках

И они даже не подмножество PCRE.

TIL

Существуют приватные домены

И даже платить за это не нужно.

TIL

Зачем нужны локалезависимые преобразования строк в JavaScript

Я знал, что существуют локалезависимые альтернативы для toLowerCase и toUpperCase, но никогда не задумывался, зачем. Причина в том, как работает Unicode.

TIL

Глобы в Bash

Их больше, чем описано в man glob.7.

TIL

Алерты в Github Flavored Markdown

> [!WARNING]
> Critical content demanding immediate user attention due to potential risks.
TIL

Mattermost кэширует переписку

И это делает её доступной всем.

TIL

chrome-ссылки в Firefox

Вдруг заметил, что в Firefox есть нечто, что пользуется ссылками с протоколом chrome://.

TIL

Кэш браузера доступен всем

Никогда не задумывался о том, что любой кусок информации, который браузер решает положить в кэш, фактически доступен всем. Я почему-то всегда думал, что оно как-то шифруется.

TIL

React-компоненты как дженерики

Я довольно давно использую и TypeScript, и React. Но мне никогда не приходило в голову, что React-компонент может быть дженериком.

TIL

Глобальные функции в JavaScript

addEventListener и removeEventListener можно использовать как глобальные функции, если нужно обрабатывать события на window.

TIL

Виды опциональности в TypeScript

title: string | undefined  ≠  title?: string

TIL

«Доступно офлайн»

Каждый будний день я провожу час в трамвае, который едет через лес — потому что именно так я добираюсь до бассейна. Мы живём в XXI веке, но стоит отъехать от города, и мобильная связь исчезает. Поэтому нужно быть готовым заранее. И я был готов!