∞ shrimp
20 subscribers
23 photos
1 video
3 files
26 links
Technology

Author: https://www.ivanrevzin.com/
Download Telegram
Сделал себе пару скриптов на Automate.

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

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

Ещё полезно почитать cheatsheet и хороший список команд вима в репозитории VSCodeVim.
Поставил себе NoScript. Всё просто летает! Если надоело ждать пока загрузятся куча трекинговых скриптов, то это маст хэв.
Пример задачи про Поликарпа.jpg
375.4 KB
Участвовать в соревнованиях по программированию оказалось интереснее чем просто решать leetcode. Особенно с друзяшками.

Почему я участвую:

Во-первых, это весело. Интересно проверить себя. Сколько задач я смогу решить за 2 часа? Я круче друзяшек (нет 😐)? До какого рейтинга я смогу подняться?

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

Короче, присоединяйтесь: http://codeforces.com/
Собрал немного ссылок на инструменты, которыми недавно начал пользоваться.

jq
Удобный обработчик json'ов. Может их форматировать фильтровать, мапить, редьюсить и прочее.

alacritty
Приятный эмулятор терминала. В нем уже хорошие настройки и работает копирование.

newsboat
Читалка RSS для терминала. Просто кладешь ссылки в .newsboat/urls и оно работает.
fish
Хорошая альтернатива bash/zsh. Поставил себе потому что работает из коробки и есть хорошая документация. Нравится автокомплит команд и путей.

vimium
Расширение для того, чтобы управлять браузером с клавиатуры быстрее чем с мышки. Чтобы vimium работал на русской раскладке, в опциях нужно включить ignore keyboard layout.

xmonad
Тайлинговый менеджер окон. Удобнее когда окна разворачиваются на полную. Перебрался на него с i3wm. Ставил по гайду DistroTube.
Как тепло передаётся через электромагнитные волны? Что происходит на поверхности зеркала когда от него отражается свет? Почему скорость света меньше в среде?

Хорошее объяснение:
https://youtu.be/V_jYXQFjCmA
В интернете советуют использовать `git log --reverse` для чтения исходников. Так будет меньше кода, который надо читать. Вот, например, первый коммит rust клона cat.
Midjourney может генерировать веб-дизайн. Если модель подогнать именно под дизайн, а потом сделать img2text чтобы генерировала react-компоненты, то может и верстать не придётся больше.
Друг сейчас спросил знаю ли я хороший ниструмент для планирования встреч в разных часовых поясах. А я как раз давно написал такой вдохновившись видео CGP Grey.

https://reivan.github.io/timezones/
Меня недавно спросили почему не стоит использовать create-react-app. Собрал несколько причин в своём блоге. По большей части CRA просто медленный.

https://reivan.bearblog.dev/why-not-to-use-create-react-app/
Сегодня описал путь фичи от разговора с заказчиком до релиза в продакшн:

https://www.ivanrevzin.com/simple-feature-lifecycle/

Да, еще подключил свой домен к BearBlog. Не смог избавиться от www, так что придётся подучить как DNS работает.

Ещё на неделе читал:

The new wave of Javascript web frameworks
Очень хорошее и подробное описание того, откуда возникли все эти React, Angular, Vue, Svelte, Remix, Qwik, Astro. И самое главное какую задачу они призваны решать.

Why books don't work
В книгах не заложена когнетивная модель обучения, которая работала бы. Там есть лишь идея о том, что если прочитал все слова - ты научился. В статье автор пишет, что оно так не работает. Полезно тем, кто хочет учиться быстрее. И тем кто учит.
На этой неделе снова начал смотреть YouTube:

Premature Optimization by CodeAesthetic
Очень хорошее видео про то, как сказать очередному Кулибину на работе, что не стоит тратить время на оптимизацию, если у нас не стоит такой задачи.

day in the life of a Business Analyst at Spotify by Lillian Chiu
Data scientist создает данные для анализа. Data Analyst делает всякие графики из этих данных. Business Analyst дает рекомендации бизнесу что делать основываясь на данных.

Немного поизучал DNS. На рут домен нельзя повесить CNAME. Там в RFC где-то прописано что так нельзя. Пока не придумал решения. Есть только вариант перейти к CloudFlare, которые по слухам делают CNAME на рут домен.

Ещё почитал читшит Avoiding XSS in React applications из списка Security cheat sheets. Если кратко то нужно убрать всю фигню вроде dangerouslySetInnerHtml, innerHTML, useRef и вставить DOMPurify

И еще пара интересных личных сайтов с заметками:

https://wiki.nikiv.dev/ - Nikita Voloboev
https://notes.andymatuschak.org/ - Andy Matuschak

Hello/
На прошлой неделе не успел отредактировать пост, поэтому публикую сейчас.

Я сравнил несколько популярных считалок строк кода:

https://www.ivanrevzin.com/lines-of-code-are-evil/

Интересно что одна из них насчитала $100k за разработку react.
Хотел ещё на прошлой неделе сделать пост в блог, про то как сконвертировать HTML Table в JSON. Но начал писать и как-то растерял весь интерес. На работе это было нужно и хотел записать на будущее. Я использовал pup, jq, fx, entr.

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

- что делал: Component Reuse via Debugger
- чего не понял: Why useRef for usePrevious?
- что читал: Vue Rendering Mechanism

GitHub не очень подходит для этого, но посмотрим как получится.

P. S. Я написал этот пост в markdown формате, но теперь не знаю как его запостить в телеграм, чтобы он понял что [link](url) это ссылка. Приходится руками всё копировать и вставлять. Как всё неудобно.
Опять я погряз в этой productivity помойке. Моя система обработки информации сейчас состоит из 3 частей:

1. Inputs: откуда поступает информация. Telegram, YouTube, социальные сети, идеи, разговоры.
2. Capture Buffers: временное хранилище, чтобы быстро записать и не думать об этом. Тут я использую Saved Messages, Google Keep, бумажный блокнот и прочее.
3. Permanent: здесь знания сохраняются навсегда. Главное чтобы всегда можно было быстро всё вспомнить.

У меня получилось разгрести Saved Messages на одном из моих телеграм аккаунтов. Хочу чтобы все мои буферы были пустыми. Что-то вроде идеи zero inbox. Но это всё прокрастинация, поэтому приходится себя одёргивать.

Чего смотрел

Меня очень обрадовало видео про Cloudflare Tunnel. Оно сразу две моих проблемы может решить. Если я начну пользоваться Cloudflare, я смогу повесить CNAME на свой root domain и даже сделать мои self-hosted сервисы на Raspberry Pi доступными из вне без VPN.

Ещё я посмотрел видео Migrating from Packer.nvim to Lazy.nvim. Подумал "ого, он столько лишнего удалил"! Да еще и конфиг каждого плагина в отдельном файле? Хочу такое! Ну и понеслась: установил Docker на свою NixOS, в докере запустил контейнер с archlinux, в арче установил Neovim, в нем написал себе конфиг с lazy.nvim и поставил несколько плагинов.

Самое забавное, что люди сейчас переходят с packer.nvim на lazy.nvim, а я до сих пор сижу на vim-plug.

И, кстати, видео уже старело. TJ DeVries уже перевел kickstart.nvim на lazy.nvim.

Хорошей недели!
На этой неделе меня друг спросил про то, как вкатиться в golang. Из разговоров с golang разработчиками я вспомнил, что есть как минимум 3 этапа (технического) собеседования:

1. Скрининг: тут компания отсеивает мимокрокодилов.
2. Алгоритмы: это просто легальный IQ тест.
3. System Design: здесь надо рисовать квадратики со стрелочками.

Певый вопрос на скрининге - чем слайс отличается от массива. Дальше идут все те вопросы, которые можно нагуглить по запросу "golang interview questions". Хорошего списка правда не нашёл, поэтому просто посоветовал почитать книгу The Go Programming Language - Donovan & Kernighan.

По алгоритмам стандартный ответ - LeetCode. Дал ссылку на видео где говорится, что достаточно решить 150 задач. Но есть другие сайты: algocademy.com говорит, что он лучше algoexpert.io, который говорит, что он лучше LeetCode. Есть ещё популярный гайд про то, как попасть в FAANG. И можно использовать Cracking the Coding Interview как справочник. Плюс интересный родмап от ютубера NeetCode.

System Design - это вопросы вроде "как бы вы написали свой YouTube". Тут у меня только одна ссылка в закладках была: system-design-primer.

Если есть что дополнить про то как стать Go разрботчиком - буду рад услышать.

Что запомнилось на неделе

Bryan Johnson: Kernel Brain-Computer Interfaces | Lex Fridman Podcast
А пока мы решаем LeetCode интересно послушать людей, которые уже все решили. Bryan уже в 21 понял, что надо решить проблему денег. То есть заработать достаточно, чтобы хватило на всю жизнь. Вот он решил и теперь занимается тем, что интересно.

Мне понравилась история про чашку. Lex просто рад жизни. Даже такие обычные вещи как утренний кофе делают его счастливым. У Брайана такого не бывает.

Ещё интересные идеи:

- Demotion of conscious self: не придавать большого значения субъективным ощущениям, а доверять объективным измерениям.
- Прогресс - это рост количества систем, которые работают без необходимости думать и прилагать усилия с нашей стороны.
- Zeroth-Principles Thinking

Хорошей недели!
ИИ создаст ад на Земле

Почему стоит бояться ИИ? Вот вам 3 примера:

Самый позитивный сценарий - это если мы все умрём. Какой-нибудь условный Microsoft получит AGI первым, убьёт всех остальных и победит в этом Battle Royale.

Чуть хуже - если мы останемся живы. Можно вспомнить, что стало с человечеством после победы Combine. Люди больше никогда не будут видеть своих родных и близких. Все вокруг будут чужаками. Если вы с кем-то подружитесь - вас переместят в другую локацию или просто терминируют. Думаете такого никогда не будет? Амазон уже разрабатывает инструменты для слежки за теми, кто хочет создать профсоюз.

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

Хорошей недели!