来自 Стой под стрелой (@nikitonsky_pub) 的最新 Telegram 贴文

Стой под стрелой Telegram 帖子

Стой под стрелой
Ведет @nikitonsky. Рекламы нет
10,776 订阅者
17 张照片
最后更新于 11.03.2025 07:48

相似频道

Книжный куб
9,528 订阅者
artalog
3,970 订阅者
xanf.dev
2,835 订阅者

Стой под стрелой 在 Telegram 上分享的最新内容

Стой под стрелой

17 Jan, 08:03

11,384

Проклятие современного айти: протухающие сессии.

Почему-то кто-то где-то решил, что если пользователя не разлогинивать раз в день/неделю/месяц/год, то к нему обязательно придут цыгане и украдут коня, телевизор, портсигар, ну и аккаунт заодно. Что недостаточно шифрования с рандомными миллионобайтовыми ключами, на взлом которых нужен компьютер размером со вселенную и квадрилиард лет. Что если пароль долго не подверждать, то клинопись, которой он записан на жестком диске, сотрется, а сессия, если ее не трогать, просочится через стенки ноутбука в окружающий мир обратным осмосом, прямо в блокнотик подкарауливающему злоумышленнику.

А вот если заставить пользователя раз в неделю проходить через вот этот вот унизительный ритуал, ой, что-то пошло не так (интересно, что, вот бы был способ узнать), вы кто, гражданин? Сессия, какая сессия? Вы всего лишь семьдесят семь раз пользовались нашим сайтом в последние два дня, а пройдите-ка на всякий случай капчу. Где тебе даже логин с паролем не доверяют ввести на одном экране (скоро будет по отдельному экрану на каждую букву пароля, чекайте), но если пользователь будет вбивать пароль собственноручно указательным пальчиком раз в неделю, переписывая с бумажки, которая тут же на мониторе и наклеена, то вот тут-то и наступит настоящая сесурити. Потом еще письмо о подозрительной активности пришлют.

Главное, это такой brainworm (как же нужен аналогичный термин на великомогучем), потому что ЗВУЧИТ ЛОГИЧНО. Не является, а именно звучит. Как будто бы лишние проверки точно не повредят? Как будто бы чаще логинишься — больше сесурити. Это же как паспорт на проходной проверять. Это же так работает. Глядишь, и злоумышленника поймаем. От создателей лечения рутью, сверления черепа при головной боли и других практик, казавшихся ОЧЕНЬ ЛОГИЧНЫМИ.

Правда же в том, что если у тебя украдут сессию, то пожалеешь ты об этом практически сразу. Истекающий через неделю токен тебе никак не поможет. Если хакер не смог украсть у тебя за неделю все деньги и написать всем твоим бывшим, ему не место в профессии. А если не украдут, то и нафига было меня мучать своими логинами? Чтобы я жизнь свою возненавидел?

«Ну а как же, вдруг твой токен найдут через пять лет на купленном на ебее и восстановленном диске в логах?» Ребят, меняйте и обновляйте свои токены сколько вашей душе угодно. Главное — меня не разлогинивайте. Эти две вещи вообще никак не связаны.

«Но ведь идею регулярно разлогинивать наверное не дураки придумали и не на ровном месте?» Как будто никогда такого не было, чтобы кто-то внедрил какую-то в лучшем случае бесполезную практику и все пошли ее копировать друг у друга, не задаваясь библейским вопросом «а не хуйню ли мы делаем?» Как будто ни разу такого не было. Как в первый раз как будто.

«Но публичные компьютеры…» Вы серьезно сейчас? Вы сейчас, блять, серьезно?

Объясните мне тогда. Я за свою жизнь может быть раза два логинился в Гитхаб, Амазон и Гугл. У них там что, дураки сидят? Они что, забили на сесурити? Как такое возможно, что их сессии живут вечно? В куке что, такая опция есть? Почему тогда их до сих пор не взломали? Почему они, с их количеством пользователей, могут себе позволить вечные сессии, а пупинск-залупинск-дот-рф или там опен-ии-дот-ком не может? Что они там такого ценного защищают, мои тупые вопросы?

Короче, не ебите мне мозги пожалуйста. У компьютеров очень хорошая память, если им, блин, не мешать. А мне даже без ваших истекающих сессий хватит логинов на всю оставшуюся жизнь. Мне еще посудомойку на китайских серверах регистрировать и аккаунты к драйверам мышки создавать.
Стой под стрелой

16 Jan, 15:18

11,038

Я уже писал, что программировать сложно (и что я внутренне с этим не согласен). Чтобы вывести Hello World, достаточно пяти строк на C, одного файла и блокнота. Чтобы вывести графическое окошко с кнопкой «Hello World» нужен Xcode, пять минут на запуск, десять экранов визарда, психологическая устойчивость и КМС по поиску пропертей в панельках. Файлов тоже будет минимум десяток. Просто чтобы начать!

Та же история с веб-страничкой. Клиент, сервер, база, DNS, хостинг, nginx, мониторинг процессов, HTML, JS, CSS. По-моему это абсолютно абсурдный прыжок в сложности.

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

Пример: Электрон. Он схлопнул разработку под винду-мак-линукс. Было три разных платформы, стала одна общая. Или серверный Джаваскрипт: было два языка, два окружения — сервер и клиент. Стал один общий. Или пресловутый Tailwind — он схлопнул JS и CSS во фронтенд-стеке. Реакт схлопнул HTML и JS, понятно. Firebase/GraphQL схлопнули сервер и базу. Докер схлопнул дев/прод окружения (да, тот факт, что ты сначала пишешь у себя в одних условиях, а потом тебе надо это где-то запустить в других условиях — это тоже источник сложности). Что еще? Наверняка тоже куда-то в эту схему укладывается.

Ну вот. Представляете, насколько грустна и неоправданно сложна наша программистская жизнь, если кто-то приходит, смотрит на нашу схему из десяти компонентов, говорит: «могу схлопнуть вам два узла, надо»? И программисты уже дуреют с этой прикормки.

Что будет, если схлопнуть все до одной ноды, даже представить страшно. Точно без работы останемся.
Стой под стрелой

15 Jan, 13:47

9,712

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

Обожаю, потому что ну интересно же, как оно там на самом деле.

У этого есть еще одно следствие. До какой-то степени я думал (и до сих пор думаю), что работаю только с частью компьютерного мира, что вот те условные виндоус и линукс это частный случай, а для всяких специальных задач люди наверняка придумали более специализированные и более удобные технологии и интерфейсы.

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

Но хуже всего — банально. Прозаично. Никаких других компьютеров нет. Вот эти самые иконки, рамки выделения пунктиром, белая стрелочка курсора — это и есть компьютеры. Это и есть вычисления. Это и есть компьютер сайнс. Никаких других компьютеров у нас для вас нет.

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

15 Jan, 10:12

8,452

Пятерка моих любимых фильмов Тарковского:

1. Ностальгия
2. Зеркало
3. Гнев
4. Торг
5. Жертвоприношение
Стой под стрелой

14 Jan, 14:47

9,656

Банить людей психологически сложно, особенно когда нет принципа. Каждый случай приходится разбирать индивидуально, а это психологически затратно.

Поэтому делюсь принципом. Он очень простой, надо ответить всего лишь на один вопрос: хочу я еще такое видеть или не хочу?

Скажем, чел пишет: «ты тупой, иди учись». Задаем себе вопрос: хочу я, чтобы к следующиему посту он написал такой же комментарий? Очевидно, не хочу. Ну и нафиг его тогда.

Тут важно, что это именно какой-то левый чел, который ничего обо мне не знает, и его мнение никак из поста не следует. Скажем, если бы мой наставник сказал мне «тебе надо подучить то-то и то-то», я бы, конечно, послушал. А когда это абсолютно на пустом месте заявление, да еще и мимо — это просто кому-то нужно место, куда можно выплеснуть свое недовольство жизнью. Я таким местом быть не готов.

Или чел пишет что-то про расовую ненависть (в любую сторону), бросается на людей. Хочу я еще видеть такое под следующими постами? Нет, не хочу. Бан.

Или чел пишет, что программистов на Джаваскрипте надо всех кастрировать и сажать в сумасшедший дом. Какова вероятность, что к следующему посту он придет и напишет «ты не поверишь, но в этот раз к твоей проблеме у меня есть точное техническое решение, возьми вот это и сделай вот так»? Ненулевая, конечно, но близкая к нулю. Поэтому что? До свидания.

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

Поэтому баню с легким сердцем и всех люблю.
Стой под стрелой

13 Jan, 11:35

9,006

Не понимаю феномена игры Astro Bot. К выходу PlayStation 5 Сони сделала технодемку про маленького робота, который бегает по внутренностям приставки и знакомит тебя с контроллерами. Демка всем понравилась, и они через пару лет доделали ее до полноценной игры. И она на удивление всем очень хорошо заходит. Кроме меня.

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

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

Я думал еще, может это ностальгия какая-то? Типа, вот, люди с первой PS, с детства с плейстешном, и тут такой трип в прошлое. У меня этого не было, поэтому на меня это не действует? Но вроде у меня была Sega, и да, их логотип вызывает какие-то легкие ностальгические чувства, но я не готов его терпеть больше, чем одну секунду на запуске.

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

Так и живем.
Стой под стрелой

10 Jan, 12:37

9,366

Давно не трогал SQL, все больше даталог или вообще просто GUI разработка, а тут пришлось. И я, оказывается, забыл, какой это бредовый язык.

Основной бред это, конечно, текстовые запросы. Понятно, что это удобно (было когда его придумывали) чтобы, как там, бухгалтеры сами себе запросы к базе писали на естественном языке. Но блин, 50 лет уже прошло, весь мир на нем работает, неужели нельзя было за это время что-то более machine-friendly придумать? И самое смешное что запросы руками как раз никто не пишет, все ходят из программ, но обе стороны притворяются, как будто это бухгалтер ручками набил — и программист, и база.

Понятно, SQL-инъекции, которые из этого проистекают — стыд. Подсчет запятых и скобок — стыд. Куча бесполезных ресурсов, которые обе стороны тратят на парсинг «естественного языка» — ебаный стыд.

Но больше всего меня удивило, что эти запросы еще и хреново кешируются. Ну там, допустим,


SELECT * FROM users WHERE name = ?


еще куда ни шло. Но вот условный


SELECT * FROM users WHERE role IN (?, ?, ?, ?, ?)


Если тебе надо найти пользователя с одной из трех ролей — это один запрос, из пяти — другой, из двух — третий. Ну бред же, бред, бред, не может так быть (но есть).

Особенно весело, когда там какие-то айдишники, и их допустим тыща. И вот ты сидишь как дебил в своей программе генеришь эту строку сраную с тысячей вопросиков через запятую, засылаешь в базу, а в базе парсер, и тоже такой — пук пук пук, вопросик, запятая, пробел, вопросик, запятая, пробел.

ДА КАК ВЫ ЭТО ТЕРПИТЕ???

UPD: В моей проблеме были таплы, типа


WITH LOOKUPS (attr, value) IN VALUES (('a', 1), ('b', 2), ...)
Стой под стрелой

09 Jan, 14:25

8,507

У Вани Гришаева (канал igrishaev) заметка про то, как в Телеграме съезжает разметка. Тоже это видел, воспроизводил, и вроде даже кто-то пересылал это разработчикам.

Конкретно эта проблема в том, что регионы хранятся отдельно от текста, оффсетами. Соответственно, когда ты редактируешь текст, регионы могут неправильно пересчитаться и съехать. Понимаем, бывает.

Важный урок тут вот какой: любой алгоритм можно написать один раз. Любой алгоритм можно починить, чтобы он работал на более-менее всех разумных инпутах. Но задача — если ты делаешь действительно массовый сервис — не в том чтобы написать алгоритм правильно один раз, задача — организовать все так, чтобы он переживал изменения, был устойчивым. Приходят новые люди, появляются новые требования, меняется система вокруг, меняется сам алгоритм, но ядро задачи продолжает работать как ни в чем не бывало.

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

На заре приложения Sketch у них был баг, когда в каких-то случаях cmd+z делал undo не совсем правильно и ты попадал не в то место, с которого начал. Опять же, наверняка они делали что-то умное и сложное вроде вычисления дельт, а надо было делать что-то простое и железобетонное.

Да, звучит как читерство. Писать тупой код? Для этого что ли я так долго учился? Проявить себя и свой ум негде (на самом деле есть где, конечно — придумать хорошее простое решение часто сложнее, чем придумать сложное).

Зато работает, есть не просит, и пользователи счастливы. Мы же ради пользователей программируем, да? Да ведь?
Стой под стрелой

08 Jan, 13:04

9,250

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

Эвристика простая: есть довольно узкая область прямо перед тобой, в которую тебе удобно смотреть. Все что вовне — надо менять позу, или смотреть издалека под углом, в общем, удобно для какой-то второстепенной информации, но не для той, с которой ты прям работаешь.

Да, если работаешь с вебом, удобно поставить код и браузер рядом. Но это помещается на один (нормальный, не ноутбучный) экран. Ну и все.

Если работаешь с графикой, то удобно развернуть канвас максимально, потому что панели, например, в Фигме, занимают неприлично много места. Поэтому, скажем, два монитора рядом это не то же самое что один, но побольше.

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

Можно вынести логи, да — но тогда, опять же, когда они тебе правда нужны, за ними будет неудобно тянуться, а когда не нужны, то что толку что они перед глазами?

Короче, я так и не понял, зачем нужен второй монитор. Но один — настолько большой, насколько вы можете себе позволить — конечно, незаменим.
Стой под стрелой

07 Jan, 13:22

8,522

Реальному миру часто не хватает RSS.

Например, вчера LG анонсировала 6K монитор, который поступит в продажу позже в этом году. Ну и как мне узнать, когда это произойдет? Единственное, что приходит в голову, это подписаться на какой-то сайт с новостями о хардваре, но это же целый год придется нерелевантные новости читать ради одной когда-нибудь релевантной.

Или часто какой-то фильм заинтересовал трейлером. Как узнать, когда он приедет в кинотеарты? Или в цифру? Пока получается только случайно. Хотелось бы как-то более надежно.

Или, скажем, любимый режиссер новый фильм снял. А я откуда узнаю? При этом мне не нужны все новые фильмы, это слишком много, мне хотелось бы конкретные фильтры.

Короче, миру нужен RSS ко всему.

UPD: ребята, не зацикливайтесь на протоколе. Может быть RSS, email, телеграм, мне пофиг. Главное — уведомления об объекте с точечным фильтром