Life of Phil – Telegram
Life of Phil
267 subscribers
167 photos
14 videos
60 links
Download Telegram
Cпасибо всем, кто написал, оказалось весело делать ботов! ❤️

Бот #1: сделали со Стасом и его племянницей, Женей: t.me/WordTLeBot/WordTLe — Wordle в телеграме.

Написали на NextJs + Tailwind.

Есть twa.js для более удобного доступа к данным, которые отдаёт телеграм, мейнтейнит Влад из СЕРПа Яндекса, стримит всё на twitch.tv/qbnk.

Фичи
- Добавили разные языки, занимает несколько минут, чтобы добавить новый, если есть нормальный словарь. Сделал красивые анимированные флажки для выбора языка!
- Текущая попытка кэшируется в CloudStorage, так что можно закрывать бота, открывать с разных устройств, прогресс должен сохраняться.
- Хотелось хранить всю историю попыток в CloudStorage, но длина значения всего 4096 символов, так что даже msgpack показался недостаточно компактным, так что решил хранить в структурированом формате — protobuf или capnproto, а в CloudStorage писать бинарное представление.

Понравилось
- Телеграм отдаёт всю информацию о текущей теме пользователя: задний фон, цвет шрифта, цвета кнопок, платформу — можно делать интерфейсы, похожие на сам телеграм, чтобы miniapp не казался отдельным приложением.
- Есть CloudStorage — документная БД в самом телеграме, можно хранить до 1024 пар, ключ до 128, значение до 4096 символов. Привязано к паре (user; bot) — можно достать все свои данные в конкретном боте, но нельзя чужие.

Не понравилось
- Инфраструктура ещё не особо готова, иногда приходится дебажить в продакшене, на линуксе вообще ничего не запускается, приходится мокать все данные телеграма.
- Нет каких-то очевидных API: нельзя поделиться (navigator.share), приходится просто открывать https://news.1rj.ru/str/share/url. Нельзя писать в буфер (navigator.clipboard.write) — приходится как в 2007 создавать textarea и вызывать execCommand("copy").
- Своеобразно работают свайпы: если тянуть вниз, то на айфонах приложение закрывается.

Пишите фидбек! Пишите, если хотите сделать ещё что-нибудь вместе, идей куча! 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
Книги за октябрь:

🔥 Неестественные причины. Записки судмедэксперта — ежемесячная рекомендация от Светы! Ричард Шеферд пишет об отношениях с женой и детями и своей жизни в целом: как например каждый ужин дети видят много порезов на своём ужине, а все подушки в доме были много раз проткнуты в попытках повторить способ убийства. Кроме этого приводит интересные случаи из своей практики: описывает, как они отличают инфантицид от смерти ребёнка, как проходит вскрытие тела в целом, подробно пишет про то, как они собирали по частям остатки людей после теракта 9/11.

👍 Shape Up: Stop Running in Circles and Ship Work that Matters — книга от basecamp.com (их CTO, кстати, сделали ruby on rails когда-то) про их принципы работы, посоветовал знакомый дизайнер, читается легко, куча схематичных картинок и примеров.
- Работают “спринтами” по 6 недель, потом 2 недели на отдых и планирование. Любая фича должна укладываться в эти 6 недель. Разбиваются на команды по паре человек, и команда сама решает, как они будут организовывать работу в эти 6 недель.
- Сначала рисуют очень схематичные прототипы, постепенно меняют и начинают разрабатывать.
- Ищут проблемы и думают, как их можно решить за 6 недель, чтобы не тратить слишком много времени.
- Нет общего бэклога. Если не доделали фичу, то всё равно не продолжают (каждый может вести свой бэклог и повторно предлагать фичи).

👍 Разговор с незнакомцем. Почему мы ошибаемся в людях и доверяем лжецам — Гладуэлл пишет, что люди склонны доверять незнакомцам, приводит в пример Фиделя Кастро и Гитлера. Говорит, что люди, которые общались с ними лично, начинали им верить. Пишет, что есть люди, которые никому не доверяют и часто замечают обман, но эволюционно выгоднее чаще доверять. Приводит много исследований. Например, пишет про 2 гипотезы: если помешать человеку прыгнуть с моста, попытается ли он снова совершить самоубийство — раньше считалось, что да, и что нет смысла тратить много денег на предотвращение этого, но в итоге оказалось, что часто верна гипотеза привязки и людям важно соверить самоубийство в конкретных обстоятельствах и конкретном месте, и большинство не будет пытаться повторить.

👍 Какое тебе дело до того, что думают другие? — вторая книжка о жизни Фейнмана, не такая весёлая, как “вы, конечно, шутите”, но читать было очень интересно. Все истории о том, как Фейнман равнодушно относился ко мнению других людей. Начинается с истории первых отношений автора, как он узнал, что девушка больна и проживёт ещё несколько лет, и всё равно женился на ней, не смотря на то, что семья очень сильно отговаривала. Большая часть книги посвящена расследованию крушения Вояджера.

👍 Потерянный и возвращенный мир История одного ранения + Маленькая книжка о большой памяти — давно собирался прочитать что-то из Лурии, тем более, Сакс упоминает его в каждой книге. Первая рассказывает про пациента Лурии, которому пулей повредили мозг. Врачи не верили, что он сможет нормально жить, но он очень хотел рассказать всем, что с ним случилось, поэтому научился снова говорить и писать, и всю жизнь писал свою биографию, пытаясь по несколько часов вспомнить слово или связать несколько слов в предложение.
Вторая — про Шерешевского, самого известного пациента Лурии, который упоминается во всех книгах по неврологии. Лурия описывает, как работает синестезия, как Соломон запоминает огромные последовательности (все слова, числа с чем-то ассоциируются, поэтому он просто запоминал историю, а потом повторял её, и когда его спрашивали, почему он пропустил число в последовательности, он говорил, что это число — это табличка на здании, но фонарь стоял далеко, и он не разглядел, а когда присмотрелся снова — вспомнил). Описывает, как Выгодский просил запомнить Соломона простейшие последовательности вроде 10-11-12-13-... или алфавита, а тот всё равно запоминал всю историю, не осознавая, что это просто последовательные числа.
🔥3👍2
👍 Карта культурных различий — очень много советовали в последнее время эту книгу. Автор пишет про свой опыт работы с людьми из разных культур и про классификацию по 8 признакам:
- Коммуникация: низкий высокий контекст
- Критика: прямая косвенная отрицательная обратная связь
- Убеждение: сначала принципы сначала практика
- Лидерство: эгалитарное иерархическое
- Принятие решений: консенсуальное нисходящее
- Доверие: основанное на задачах на отношениях
- Несогласие: конфронтационный избегание конфронтаций
- Планирование: линейное гибкое время
Про каждый признак приводит несколько примеров и график стран на шкале.

🤔 Этика — давно хотел прочитать что-то из философии Нового Времени. Формат, мягко говоря, очень необычный: вся книга — набор определений, аксиом, теорем на разные темы: существование бога, ревность, любовь, душа и т.д. Нет никакого сюжета, только доказательства теорем, так что к середине книги я успел пройти 5 стадий принятия и продолжил читать, постоянно возвращаясь к предыдущим теоремам. Наверное, не стоит читать без Декарта. Пример случайной теоремы:
Теорема: Разные люди могут от одного и того же предмета испытывать разные впечатления, и один и тот же человек от одного и того же предмета может испытывать в разное время разные впечатления.
Доказательство: Тело человеческое (по постул. 3 части 2) испытывает разнообразные действия внешних тел. Таким образом, два человека в одно и то же время могут испытывать разные впечатления; а поэтому (по акс. 1 после леммы 3, которую см. после пол. 13 части 2) от одного и того же предмета могут получать разные впечатления. Затем (по тому же постул.), человеческое тело может испытывать впечатления то одного, то другого рода, и, следовательно (по той же акс.), от одного и того же предмета в разное время получать разные впечатления, – что и требовалось доказать.
🔥3🤔21👍1🤯1
🧗 CodeForces + KilterBoard

Несколько месяцев назад сидел в зале, пытался пролезть какую-то 7C, увидел, как кто-то ходит рядом в кроссовках, разговаривает на русском и рассматривает маты и зацепки, показалось, что лицо очень знакомое. За день до этого как раз листал канал @Egorkryachkovsocial с лицом Егора на аватарке. Было бы стыдно ошибиться, но решил, что попробовать стоит — подошёл, взял за руку, уверенно спросил: “ты не Егор случайно?” — оказлася он! В итоге до полуночи прообщались на улице, на следующий день съездили полазить в другой зал (раскритиковали мою растяжку, прыжки и слэб) и поехали гулять по офису Гугла.

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

За неделю написал первый прототип climbest.app, Егор пролез все трассы, начал рекламировать в Инстаграме, Паша написал тексты, нарисовал картинки, начал рекламировать приложение залам.

Технологии
- Кильтерборд разревёрсил довольно давно.
- Мунборд ревёрсил наугад, посылал пакеты Паше в телеграме, а он сидел в зале и посылал их на московский мун.
- Фронтенд написал на React + Next.js, взял tailwind для стилей.
- Бек особо не был нужен, так что взял Postgres, Supabase, написал кучу тригеров и функций.
- Для пересчёта рейтинга взял мультиплеерное Elo из статьи Aram Ebtekar, Paul Liu: An Elo-like System for Massive Multiplayer Competitions.
- Съездили с Егором в Инсбрук — он снял видео про местный скалодром, я взломал их грассхоппер.
- Провели хакатон в субботу, я порасказывал про то, как писать фронтенд, а Света, Маша, Флориан, Алиса, Саша, Лиза и Егор написали свои мини-фичи для приложения: тренировочные планы, rogue-like режим, участия в последних контестах и т.д.

Метрики
- За последние пару недель в аналитике 500 уникальных пользователей
- 150 зарегистрированных пользователей
- 8 проведённых соревнований
- 80 участий в соревнованиях
🔥37👍13👏7❤‍🔥55