Гришкин блог
1.05K subscribers
52 photos
13 videos
1 file
37 links
Личный канал @grishka.

Рекламу не размещаю.
Download Telegram
Доделал и оттестировал Smithereen 0.8. Новые фичи:

- Репосты, в том числе с добавлением своего комментария
- Встраивание постов на сайты
- Попап для удалённого взаимодействия с постом, если ты пытаешься что-нибудь с ним сделать, но не залогинен
- Новые поля в профилях (уже становится похоже на настоящую соцсеть)
- Настройка вида комментариев: древовидные (по умолчанию), двухуровневые, плоские
- Карточки с краткой информацией о пользователе при наведении на упоминания
- Подсказчик для упоминаний
- Закладки для профилей и групп
- Как всегда, куча мелких исправлений и улучшений
👏16🔥3👍1
This media is not supported in the widget
VIEW IN TELEGRAM
💩22😁6💔1
Попалась тут очередная статья об исследованиях о продлении жизни, и коммент на HN, типа что вот, по статистике увеличения средней продолжительности жизни, если экстраполировать, мы никакой longevity escape velocity (нормального русского термина нет, но это когда к продолжительности жизни добавляется больше года каждый год) никогда не достигнем вообще.

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

Со старением и возрастными болезнями же ситуация обратная — организм сам хочет себя разрушать. И ему надо не помогать, а, наоборот, насильно наставить на путь истинный, заставить обратно включить все механизмы самовосстановления, вот это всё. Современная медицина с таким работать не особо умеет, поэтому делает что умеет — пытается лечить старческие болячки по отдельности, но в какой-то момент их становится так много, что врачи разводят руками и всё. И именно поэтому, потому что мы ещё пока не научились перезаписывать эти цели во внутреннем состоянии организма, сейчас оно всё в тупике и рост средней продолжительности жизни замедлился. А как только научимся, там уже и до LEV рукой подать. Но скорее там даже никакой LEV не будет, а просто научатся сбрасывать возраст организма на что-то около 25 лет, и всё, вы прекрасны, навсегда, ну или хотя бы в среднем на 1000 лет.
👍134
Если я когда-нибудь напишу свой браузер, в нём:

- Целенаправленно не будет поддержки сервис-воркеров, манифестов и прочих PWAшных вещей
- Не будет JIT для JS
- Не будет поддержки сторонних (third-party) кук
- Не будет DRM, если хотите смотреть нетфликс — этот браузер не для вас
- Не будет accessibility ни в каком виде, потому что это сильно усложняет код, если вам нужны специальные возможности — этот браузер не для вас
- Не будет поддержки загружаемых шрифтов
- Не будет API для JS для взаимодействия с устройствами — все эти WebUSB, WebBluetooth, WebSerial, WebMIDI, и так далее
- Не будет поддержки WebSQL и IndexedDB
- Не будет поддержки shadow DOM, потому что он используется только для показа рекламы в обход блокировщика
- Не будет поддержки уведомлений
- Не будет поддержки сенсорных экранов (да, версия для телефонов не планируется)
- <video>, <audio> и <canvas> по умолчанию будут выключены, их нужно будет включать для каждого сайта по отдельности
- Сайты по умолчанию не смогут перехватывать событие прокрутки (event.preventDefault() на событии scroll), только если специально разрешить этому конкретному сайту это делать. А можно будет вообще отключать сайтам событие прокрутки
- Сайты не будут получать события о нажатии кнопок мыши кроме левой, пользователь всегда будет иметь возможность вызвать контекстное меню самого браузера
- Сайты не смогут перехватывать хоткеи самого браузера, например, Cmd+F
- Сайты не будут получать события о выходе курсора мыши за пределы окна, потому что обычно это используется для показа назойливых модалок про почтовые рассылки, а ни для чего хорошего не используется, ни разу не видел
- Можно будет отключить события о потере фокуса окна/вкладки, чтобы сайт думал, что окно с ним всегда активно
- Будет возможность "насильно" вставить текст в текстовое поле, не отправляя сайту событие paste
- HTTP-заголовок Content-Disposition будет игнорироваться, изображения и пдфки абсолютно всегда будут открываться в самом браузере
- Будет встроенный менеджер юзерскриптов с "режимом бога", т.е. можно будет залезать вообще во всё в скриптах сайта, во всякие приватные области видимости и так далее, перезаписывать любые переменные, хукать любые функции
- Будет API для расширений с аналогичными возможностями
- Будет поддержка флэша через Ruffle (с запуском по нажатию)
- Можно будет сохранять картинки по правому клику, даже если они отображаются не через <img>, а как фон в CSS
- Всё будет в одном процессе
- Не будет поддержки HSTS
- Не будет поддержки CSP (content security policy)

Задолбало.

(список, возможно, будет дополняться)
🤡62👍32💊198🤔4🤣3❤‍🔥2🙈2💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Платные реакции 🤔
26😁31👍4🥰2👏2🏆2❤‍🔥1🔥1🤔1🌭1
Media is too big
VIEW IN TELEGRAM
Сделал маленькую приложеньку для macOS: https://github.com/grishka/WidgetSpinner
😁36👏16🔥8👍4❤‍🔥1😱1
Forwarded from Стой под стрелой (Nikita Prokopov)
Запускал вчера по воле случая Дискорд, и у них там плашка про Хэллоуин вылазит. И вот что подумал:

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

«Ой, смотрите, у нас новая фича!». «Ой, устанавливаю апдейты! 1/15» «Ой, мы обновили тему» «Ой, у нас новый интерфейс» «Ой, хуюлька переехала в пиздюльку» «Ой, вы давно не смотрели нотификации» «Ой, а релиз ноуты прочитали? Ну а вдруг нет. На всякий случай напоминаю»

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

А мне и представлять не надо. Сегодня все пытаются из программы сделать «продукт» и занять угол в вашей голове. Даже браузеры.
👍25🤡6😁2🤔2👏1
Помните был такой ask.fm? Он решил закрыться 1 декабря (после попыток в блокчейн и какой-то прочей стрёмной дичи).

А у меня там почти 10 тыщ ответов на вопросы. Естественно, мне захотелось как-то их оттуда выгрузить, потому что это, всё-таки, некий такой важный пласт моей жизни. Сначала я спросил в поддержке, могут ли они мне дать архив с моими ответами. Ну ведь GDPR же, да? Лол нет. Официальный ответ: "хотите сохранить — делайте скриншоты, а мы можем вам дать только историю ваших сессий". Недолго думая, я вспомнил, что уже когда-то реверсил их API для мобильных приложений, так что я просто взял и написал выгружатор. И выгрузил им и свои ответы, и ответы всех своих друзей (которые не удалились, Линт вот удалился, а жаль, у него там тоже много интересного было, кажется).

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

Если захотите запустить сами, вам понадобится Java 21 или новее. Можно взять, например, вот тут. Исходники вот тут (Гриша, где у тебя пробелы в коде, почему ты не ставишь пробелы вокруг операторов и скобок, как ты так живёшь вообще).
5🔥11👍64👏3
И отдельного упоминания заслуживает их сверхнадёжная защита ключа от API :)
Ведь если его засунуть в нативную бибилотеку, никто его оттуда никогда не вынет, просто скопировав её в свой проект, да? Да?? ДА?!?!
😁17👍3👏2🤮1💩1🤡1
В свете того, что Роскомнадзор снова сломал половину интернета (надеюсь, временно), снова начались разговоры об "импортозамещении" иностранных онлайн-сервисов. Что вот, зачем нам гитхаб, дискорд, ютуб, твиттер, вот то, вот это, они же все такие американские, надо развивать отечественные аналоги и пусть все на них переходят и бед не знают. Я уже высказывал своё мнение об этом в комментах в разных местах, но теперь захотелось расписать подробно.

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

А когда я вижу все вот эти предложения, исходящие из ложных предположений, что русские в интернете общаются только с другими русскими, потребляют контент исключительно на русском языке и созидают только для внутренней российской аудитории, это у меня, мягко говоря, вызывает недоумение. Я вырос в международном интернете. Я общаюсь в нём в том числе с людьми, которые к России вообще никакого отношения не имеют, никогда здесь не были и русского языка не знают. У меня больше половины интернета на английском. Проекты, над которыми я работаю, предназначены для международной аудитории. Для меня все эти попытки балканизировать интернет выглядят как вредительство. Интернет со связностью только в пределах одной страны или союза стран для меня по полезности не сильно превосходит городскую телефонную сеть, газету с объявлениями или клуб по интересам, который собирается в городском ДК раз в неделю.

"Но ведь Китай и Северная Корея!" Вы не понимаете, это другое. В Китае государство взяло интернет под контроль с самого его появления, так что там его международностью никто особо и не пользовался изначально, кроме тех, кому очень надо. Трансграничные социальные связи не формировались. Все пытаются повторить успех WeChat как "интернета в интернете" с его мини-приложениями, но ни у кого не получается — именно по этой причине, потому что у людей другие привычки, и потому что у нас интернет развивался по-другому. В Северной Корее, насколько мне известно, доступ в настоящий интернет вообще крайне ограничен, происходит из специальных защищённых комнат в государственных учреждениях под наблюдением сотрудников спецслужб и требует прохождения проверки на верность партии и идеям чучхе. Опять же, свободы не было, связи не формировались.

Но у нас-то это не так. Мы всегда жили с полноценным интернетом. Можно сказать, мы его граждане. И вот ещё вчера у нас эта свобода была, а сегодня нам говорят, что она нам на самом деле не нужна, вот вам РосГитХаб и Рутуб, возрадуйтесь (и сертификат Минцифры поставить не забудьте). Тщательно игнорируя тот факт, что привычные международные социальные связи через эти сервисы поддерживать не представляется возможным, потому что (сюрприз!) весь остальной мир на суверенные российские сервисы переходить не будет. Так что всячески подобному сопротивляться — вполне естественная реакция.
👏2615👍6😢5😁1
Надеюсь, этот год не будет таким говном.
43💩5
У чувака точно такая же проблема, как у меня — не может поддерживать синхронизацию режима сна со световым днём, потому что не имеет никаких связанных с этим обязательств. Поэтому он решил сделать себе 28-часовые сутки. Тоже попробовать, что ли 🤔

https://sidhion.com/blog/28h_days_update_1/
😁9👍1
Мем в тему:
😁7👍2👏2
Forwarded from Стой под стрелой (Nikita Prokopov)
Проклятие современного айти: протухающие сессии.

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

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

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

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

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

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

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

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

Короче, не ебите мне мозги пожалуйста. У компьютеров очень хорошая память, если им, блин, не мешать. А мне даже без ваших истекающих сессий хватит логинов на всю оставшуюся жизнь. Мне еще посудомойку на китайских серверах регистрировать и аккаунты к драйверам мышки создавать.
👍2215
🔥10👏7😁41
Forwarded from Стой под стрелой (Nikita Prokopov)
Ваше айти не карго-культ? Как тогда объясните всеобщую любовь к относительным таймстемпам?

Кто-то когда-то решил, что даты, как они хранятся в компьютере ( 2025-02-03T12:20:19.594320Z), не очень человеко-читаемые и надо как-то их облагородить. Было решено сконвертировать их в относительные таймстемпы.

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

(здесь отступление про то, что как только это изобрели, встала другая проблема — надписи типа «пять секунд назад» устаревают каждую секунду, а «пять минут» — каждую минуту. Так что приходится городить jAvAsCrIpT чтобы они имели смысл. Ну да нам не привыкать — программирование оно все про создание проблем и потом героическое их решение)

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

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

К проблеме относительности добавляется еще округление, которое никто не умеет делать. 200 дней? Год назад. 366 дней? Два года назад. НИКТО ИЗ ЛЮДЕЙ ТАК НЕ ДУМАЕТ. Даже программисты так не думают. Но продолжают лепить бессмысленные «два года назад» на коммиты из января 2024 (да, у меня есть скриншот) или «день назад» на коммит, сделанный в 23:59, когда смотришь на него в 00:01, и думать, что делают «человеко-читаемые таймстемпы».

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

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

Короче, что делать?

- На сегодняшних датах пишите: «сегодня 18:20».
- На вчерашних еще можете «вчера 18:20» (именно вчера, прошлые календарные сутки, а не «когда больше чем 24 часа», блин). Тут, внезапно, помогает язык — слово для «вчера» есть, значит людям удобно думать в терминах «вчера-сегодня-завтра». А для два-три-четыре дня назад-вперед уже неудобно.
- Если дата на этой неделе, то «четверг 18:20». Не неделю назад, а НА ЭТОЙ НЕДЕЛЕ. Нехватало мне еще гадать, прошлый имеется в виду четверг или будущий.
- Дальше уже переходите на абсолют: «30 декабря, 07:00».
- Когда меняется год (не равен текущему), добавляйте и год тоже: «30 декабря 2024, 07:00».

Все, блин. ЭТОГО ДОСТАТОЧНО. ЭТО УЖЕ ДОСТАТОЧНО ЧЕЛОВЕКОЧИТАЕМО. «А может...» НЕТ! НЕ МОЖЕТ. Остановитесь. Возьмите свой «семьдесят семь недель назад». Посмотрите на него. В последний раз. И засуньте себе в жопу. И никогда не доставайте. Я все сказал.
👍30🔥101👀1