Свободу политзаключённым! Донат Медиазоне

Пишу про Индивеб, про компьютеры и программирование, про хобби: кофе и скалолазание, отдельно пишу про разработку подкаст-хостинга.

Posts

2 апреля

·

На текущем проекте есть Настоящие DBA, и я несколько раз удивлялся SQL-запросам, которые они пишут. В частности, хочу записать две вещи, которых я не знал о SQL (и не буду использовать сам в будущем).

JOIN через запятую

SELECT thing_a, thing_b FROM table_a, table_b WHERE table_a.id = table_b.foreign_key_id.

Это join, условие которого написано в where. Это старый стиль, его ещё называют theta-style join.

В целом, считается устаревшим и менее очевидным (лично я привык к обычному JOIN table ON (table_a.field = table_b.field; забываю про существование JOIN table USING (field)).

Создал SQLFiddle с примером.

Ещё есть неплохой пост-сравнение.

ORDER BY 1 / GROUP BY 1, 2, 3

Числа ссылаются на порядок получившихся колонок.

На мой взгляд, это очень хрупкая ерунда — вдруг кто-то добавит ещё одно поле в запрос.

23 марта

22 марта

·

Просто тестовая заметка.

14 марта

Выгрузка данных из ВК

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

ВК не так давно добавил возможность выгрузить архив своих данных, его можно запросить на странице /data_protection. В моём случае архив готовился около суток.

К сожалению, архив оказался далеко не полным — в нём нет ни контактов друзей (только имя с ссылкой на профиль ВКонтакте), ни фотографий (вместо них тег img с src, указывающим на сервера ВК), ни файлов, загруженных в раздел «Документы». Аудиофайлов тоже нет — только названия композиций (но хотя бы плейлисты есть). В целом, это набор перелинованных между собой HTML-страниц в кодировке Windows-1251.

И если отсутствие контактов ещё можно понять (это всё-таки данные других людей), то отсутствие фотографий уже не очень.

Сохраняем фотографии

При помощи такого скрипта можно вытащить ссылки на изображения.

find photos/photo-albums -iname '*.html' | xargs -I% perl -lne 'print "$1.jpg", "\t", $2 if /<a href="https:\/\/vk.com\/([^"]+)"><img src="([^"]+)"/' % >names_urls.txt

После этого при помощи wget можно скачать эти файлы по списку. Я уверен, что это можно сделать как-то изящнее (посоветуйте как!).

perl -lne '`wget -O "$1" "$2" &` if /([^\t]+)\t([^\n]+)$/' names_urls.txt

Сохраняем фотографии из сообщений

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

find messages -name '*.html' | xargs -I% perl -lne "print \$ARGV, \"\t\", \$1 if /<a class='attachment__link' href='([^']+)'>/" % >messages_attachments.txt

В эту выборку попадают все ссылки-аттачменты, поэтому я отдельно вытащил ссылки с userapi.com — похоже, что фотографии лежат там.

grep 'userapi.com' messages_attachments.txt >messages_attachments_userapi.txt

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

cat messages_attachments_userapi.txt | perl -MFile::Basename -alne 'my $localfile = dirname($F[0]) .  "/" . basename(split(/\?/, $F[1])); `wget -O "$localfile" "$F[1]"`'

Вполне вероятно, что сами фотографии будут жить на серверах ВК ещё долго после удаления аккаунта, но приятно иметь локальную копию.

Бонус-раунд: поиск по переписке

По идее, можно было бы просто искать по этим файлам, но они лежат в кодировке cp1251. iconv позволяет перекодировать в единственную нормальную кодировку (UTF-8), а ripgrep умеет запускать скрипт, прежде чем искать внутри файла.

Создал такой примитивный скрипт:

#!/bin/sh

iconv -f cp1251 $1

И можно примитивно искать:

rg --pre ./prescript.sh --pre-glob 'messages/*/*.html' -g 'messages/*/*.html' 'Тим из будущего'

Нашёл такое сообщение:

Ха, с этим будет разбираться Тим из будущего, аее

  • 18 ноября 2016 года

😢

26 января

30 ноября 2020

Inputs and Outputs, or How to Shape Your Worldview Before Someone Does It for You

Recently I was talking with Andrey Sitnik about media consumption and IndieWeb paraphernalia, and I stumbled upon a realisation.

A lot of people struggle with Read-it-later services, like Pocket, where the links just pile up, and they never get around to reading it, and then they feel bad.

As it goes, I spoke first and thought second, I said: if you stop and think for five minutes about it, you'll understand why this happens. Then I had to back it up and went on with a blissful feeling of puzzle pieces clicking together: one does not treat 'Pocket' as an input to a system of consuming information, only as an output, thus it is bound to overflow.

Now let me expand on these matters a little bit more.

Inputs are the ways by which information gets to you. If you check Twitter every morning, then your feed is an Input. If you do read email newsletters and not just archive it, that's an Input. Ditto for podcasts, books, Hacker News, Instagram, RSS, and plain old conversations.

The necessary condition of being an Input is that you do consume from it, preferably at regular intervals. Otherwise it may as well not exist for you. To read books you actually have to sit down and read a book.

On the other hand, Outputs are where you put information. If you post photos on Instagram, that's an Output. If you file links to "Read-it-later", that's an Output. Outputs are less complex, and I will discuss them in more detail in another article.

Now, if Pocket is not an Input in your system, then you won't have the chance to read the articles you put there: in the moment when your brain is thirsty for more information, you'll drink from the usual Inputs, not the Pocket. To "read it later" you actually have to sit down and read it at some point, otherwise it just won't happen.

Going further, a thing can be both an Input and an Output at the same time. Sometimes this configuration creates a feedback loop: you read on Twitter about current events, post some hot takes there, get sweet sweet likes, and repeat.

I suppose that a combination of Inputs/Outputs for a particular person is mostly stable over time, while the persona you present online is more flexible. Over time you converge on the set of websites you check regularly and themes that interest you, and if the perceived consensus in the community shifts, you either have to remove yourself from this community, or go with the flow.

Now, the trouble is that "persona you present online" influences the real you as well in subtle, almost imperceptible ways. As Vonnegut wrote, “We are what we pretend to be, so we must be careful about what we pretend to be.”

Going for lighthearted example, if you think that all of your twitter feed is hating on Kubernetes, and you do not have a strong opinion on whether it is good or bad yourself, then you will probably adopt a milder "K8s is at least somewhat bad" attitude, shifting the balance further.

You can also apply this in reverse: other people too can only read what's being made available and are influenced by this no less than you are, so if you want your perspective to be heard and may be even adhered to, then you have to publish it.

Algorithmic sorting, the kind that is used on Twitter, FB, Instagram, is not a perennial evil per se, it just rearranges the contents of a particular Input by predicting what will solicit a visceral reaction from you, forcing you to react (engage) even more. This is a quirk of these Inputs, so you should adjust your expectations and seek alternatives as well.

You can only read on Twitter what is twitable. You can't react to or learn from something that you don't know to exist.

Creating an information bubble is in a sense inevitable, because no one can read everything without some sort of filtering beforehand, so the question is which filters are being used and who set them up.

Shape your inputs consciously, for they in turn shape you.

·

broke: the hero of "Hamilton" is Hamilton
woke: the hero of "Hamilton" is Burr
bespoke: the hero of "Hamilton" is actually Peggy

24 ноября 2020

·

однажды я зашёл в азбуку вкуса и понял, что мои буквы — ъуъ

·

У W3C есть древний документ, ещё за авторством Тима Бёрнерса-Ли: Styleguide.

В частности, там есть страница под названием Refer or Copy:

When you are setting up an information system which refer to information which is available elsewhere, be very careful before taking a copy.

Here are some reasons for leaving it where it is:

  • When it is updated, you will either have to have a way of finding out, and make a fresh copy, or you will end up with an out of date copy.
  • If you feel that your copy will be easier to access, remember that this is relative. You will have readers from other places who may find the original is closer. If the original has a serious access problem, you could find another server (maybe offer your own) as the definitive storage point.

И приводится пример того, что нет смысла копировать:

You should be very wary before referring to your own private collections of the following, of which plenty of established collections exist:

Ни одна из этих ссылок больше не работает.

20 ноября 2020

·

Если бы ваш холодильник выдавал еду по алгоритмам рекомендаций, то вы бы ели одни чипсы.

·

Написал статью для сайта Нодскула: «Как установить Node.js на macOS» (tl;dr: nvm).

Не удержался от мини-ранта:

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

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

Более правильная терминология для iTerm2 или Terminal.app — эмуляторы терминала, потому что они эмулируют настоящие устройства, чтобы шелл и прочие программы могли и дальше делать вид, что мы живём в семидесятых.

22 октября 2020

·

Websites are meant to be indexed by Google and only incidentally for humans to read.

2 октября 2020

Веб для исследований

Веб это граф, страницы это узлы, а ссылки — связи между ними. Помимо этого есть измерение времени — вчера я ссылался на такую-то страницу, а теперь — нет, или самой страницы больше нет (с этим иногда помогает Internet Archive Wayback Machine).

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

Мейнстримные браузеры уплощают мой опыт исследования: список вкладок плоский, по истории можно ходить только вперёд и назад (в вебките соответствующая структура так и называется: WKBackForwardList). Это не означает, что контекста путешествия не существует, он есть — но он хранится только в моей голове. Компьютеры помогают человеку, когда позволяют не держать что-то в голове.

История браузера — тоже граф.


В своё время Гугл придумал как ранжировать результаты в выдаче, ориентируясь на ссылки сайтов друг на друга (PageRank). Довольно быстро это стали абьюзить через мусорные «покупные» ссылки.

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

Constructing hypertext maps based on geography is always tempting; when we are looking for a two-dimensional organizing principle, conventional mapping naturally suggests itself. Avoid falling back on geography by habit, but don’t overlook occasions where it may provide fresh insight.

— Mark Bernstein, The Tinderbox Way

Можно копировать страницы из браузера в другие программы, позволяющие это делать (тот же Tinderbox), но это создаёт трение, а значит это будет мало кем использоваться.

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

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

Веб сегодня — территория потребителей, пассивно поглощающих контент, относящиеся к вебу как к чему-то данному извне. Это рационально: пользователь действительно не может повлиять на контент сайта. Но при помощи разных User Agents consumer может превратиться в prosumer.

30 сентября 2020

·

Old Git master prepares to die and calls his sons to the deathbed.

“Take these branches one-by-one, and break them.”

Sons obliged, effortlessly breaking the build in single branches.

“Now take the repo as a whole, every branch together, and break it.”

Sons took the whole repo and broke it.

“You idiots! You’ve ruined my metaphor”, said the old master, and merged himself with the remote “heaven”.

4 сентября 2020

Рассылочка №6: On Writing Well и ИНТЕРАКТИВ

Книга

William Zinsser — On Writing Well: The Classic Guide to Writing Nonfiction

Это книга о прозе, а точнее — о нонфикшене.

💥 Пишу эту рассылку, не дочитав ещё до конца.

Руководств как писать на рынке уже очень много — в начале этой книги автор честно признаётся, что Elements of Style его до сих пор вдохновляют. On Writing Well ценен своим фокусом: прагматичные советы про конкретные жанры текстов (например, как писать про путешествия).

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

Автор зачастую приводит правило и тут же его демонстрирует (или демонстрирует, нарушая) ради комического эффекта.

Отдельно очень смеялся от главы Clutter:

Clutter is the official language used by corporations to hide their mistakes. When the Digital Equipment Corporation eliminated 3,000 jobs its statement didn’t mention layoffs; thise were “involuntary methodologies.” When an Air Force missile crashed, it “impacted with the ground prematurely.” When General Motors had a plant shutdown, that was a “volume-related production-schedule adjustment.” Companies that go belly-up have “a negative cash-flow position.”

Дочитал пока не до конца, но пока кажется, что очень ок.

Один из эффектов от книги — хочется писать, и писать вдумчиво.

Интерактив!

Книга ко мне приехала случайно в двух экземплярах, поэтому один из них можем разыграть: напишите про эту Рассылочку где-нибудь у себя и пришлите ссылку (mt@marinintim.com), я прочитаю всё, и в следующей Рассылочке объявлю, кто победил (и отправлю вам книгу).

Ссылки

On Ownership — почему писать программы для себя это хорошо, даже когда неудобно. Автор пишет заметки и ведёт тудушки в своих программах, написанных на его же языке программирования. Даже если я не готов сделать то же самое (не готов), это внушает уважение.

Иммигранткаст переехал на свой сайт. Отлично смотрится, 💜 (подробнее про «стэк» можно прочесть в твиттере Артура).

И две ссылки на marinintim.com:

Выложил предыдущие выпуски Рассылочки на https://marinintim.com/newsletter/. Во-первых, чтобы хранить контент у себя, а во-вторых — так им удобнее делиться (до этого приходилось копировать и скидывать заинтересованным куски текстов).

Я продолжаю вести небольшие заметки про разработку Подкастра, написал про транзакционные письма.

Мысли и прочее

Я вернулся из Москвы с двумя новыми книгами (Дом Правительства, Осень Средневековья) и кружкой со схемой метрополитена Москвы. Там непривычно много по сравнению с Питером бойцов Росгвардии на улицах. Не планируя, гуляя по столице, натолкнулся на посольство Беларуси. До этих книг доберусь, впрочем, не скоро 😅

Скоро придётся переезжать, в связи с чем поделюсь советом, который однажды выдал великий squadette: книги нужно паковать в маленькие коробки, потому что книги сука тяжёлые.

Тим

21 августа 2020

Рассылочка №5: Your Money or Your Life

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

Книга: Your Money or Your Life

Это книга про личные финансы. Если верить Википедии и книге, то именно благодаря ей возникло движение FIRE (Financial Independence / Retire Early).

Секрет, как обычно, известен всем: тратить меньше, чем зарабатываешь. Если накопить средств на 25 лет трат, то можно и не работать за деньги, потому что эти деньги будут зарабатывать деньги.

Но при всей очевидности тезиса, были и интересные (для меня) мысли:

  • мы тратим на работу не только само рабочее время: приходится поддерживать соответствующий работе внешний вид
  • когда выматываешься на работе так, что в отпуске просто лежишь без сил на пляже две недели — это тоже, по сути, рабочие расходы
  • копить на годы «без работы» тем проще, чем ниже расходы
  • общество подталкивает потреблять новое: когда в последний раз использовали какую-нибудь вещь до конца?
  • рабочий день застрял на восьми часах непонятно почему — можно было бы работать по два-три с той же продуктивностью
  • важно разделять work (полезное действие), job (work, который не стал бы сам делать без денежной компенсации), income (ну, доход)

Когда привязываешься к работе-за-деньги в том числе и психологически, становится страшновато представить, что было бы, если бы не надо было проводить по восемь часов в офисе. ДМС, идентичность, сообщество — мы стали возлагать на job очень многое (соответственно, терять работу болезненно! А ведь на подходе роботы, AI, ну и так далее).

В целом, книгу могу порекомендовать: слушая её, получаешь несколько часов, в которые можно задуматься о своём финансовом положении. Не знаю, смогу ли сам применить все описанные способы (особенно откладывать больше половины доходов), но а) снова начал вести YNAB :) б) стал больше задумываться о покупках.

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

В полном заглавии упоминаются девять шагов к финансовой независимости, вот они:

  1. Making Peace with the Past. На этом шаге нужно посчитать net worth (всё имущество минус все долги) и сколько всего заработали за жизнь
  2. Being in the Present: tracking your life energy. Надо подсчитать сколько стоит твой час и подсчитывать расходы. Недостаточно просто разделить зарплату на количество рабочих часов: приходится тратить на одежду, которую бы не стал покупать, машину, соответствующую статусу, ну и так далее. В расходах важно подсчитывать каждую копеечку.
  3. Where is it all going: monthly tabulation. Раз в месяц подбивать все доходы и расходы в табличку, и перевести рубли в часы жизненной энергии.
  4. Three Questions that Would Transform Your Life. Получил ли я удовольствие и ценность пропорционально потраченной жизненной энергии? Согласуется ли эта трата с моими ценностями и целью в жизни? Как бы поменялась эта трата, если бы было не надо работать за деньги? На каждую трату.
  5. Making life energy visible. Рисуем графики: расходы против доходов, повесить на видное место.
  6. Valuing your life energy: minimising spending. Не тратить жизненную энергию (то бишь, деньги) на хлам. Научиться самому чинить штуки, помогать друзьям и знакомым, в надежде, что когда нужно — помогут тебе.
  7. Valuing your life energy: maximizing income. Работа — это обмен жизненной энергии на деньги, поэтому стоит максимизировать обменный курс.
  8. Capital and Crossover Point. Капитал приносит доход. Умножаем его на процент по облигациям и делим на двенадцать — ежемесячный доход от инвестиций. Когда он превысит расходы — точка перехода, где можно и перестать работать.
  9. Investing for FI. Самое простое — ETF, то бишь, индексные фонды. В целом, делят деньги на три категории: capital (приносит основной доход), cushion (подушка на полгода-год, или срочные большие траты), cash (деньги на прям щас).

YourMoneyOrYourLife.com

Ссылки

2019, I Am the Cheapest Bastard In Indie Games — Джефф Вогель пишет о бюджетах своих инди-игр, и почему в его играх такая графика. Я очень люблю, когда инди-разработчики пишут о своём опыте, поэтому если натолкнётесь — не стесняйтесь присылать ссылки, буду рад!

YouTube. CGP Grey Was Wrong — потрясающий пример видео исправления ошибки (не буду спойлерить).

2014, Semantic Compression — отличный пост/рант на тему программирования. На самом деле, это целая серия постов, и у меня они вызывают чувство собственной неадекватности, так что reader beware!

Мысли и прочее

Недавно столкнулся с тем, что хотелось поделиться книгой, а она — в Audible, то есть, с DRM, то есть — не поделиться. Обидно! Бумажные книги в этом плане гораздо удобнее, как и ePub/MP3, который автор продаёт напрямую. Поэтому отменил подписку на Audible (следуя советам книги выше!), и постараюсь покупать в будущем, при наличии выбора, не-DRM-ные версии.

Доктороу, которого в этой рассылке довольно много, много и часто пишет о проблемах интеллектуальной собственности, рано или поздно доберусь до его книг Content и Information Doesn’t Want to Be Free (их можно скачать на его сайте craphound.com в нормальных форматах).

Отдельно хочется обсудить его же доклад про войну против general-purpose computing, но поля этой рассылки слишком узки, так что, возможно, что напишу настоящий длинный пост!

А так на следующей неделе у меня отпуск — и рассылки тоже не будет, увидимся через две недели.

Тим

P.S. Я думаю обновить списочек русскоязычных подписок — на какие блоги/подкасты вы подписаны и можете порекомендовать?

14 августа 2020

Рассылочка №4: Mozilla и Apple

На этой неделе до книг не добрался — Беларусь как-то забрала весь доступный ресурс, а потом и на это сил уже не было. Смотрел видео с Nexta, трансляции Дождя, читал каналы Медиазоны и прочих. Никакого анализа тут не будет, просто надеюсь, что у них всё получится.

Смерть лисы

Мозилла сокращает штат на 250 человек, среди которых команды servo, MDN, безопасники. В internal memo упоминается, что будут меньше вкладываться в развитие инструментов для разработчиков (в частности, devtools!). Получается, что разработка нового движка servo и развитие MDN больше им «не по зубам», ну или не в их стратегических интересах.

Ранее, Гугл платил много денег за установку гугловского поисковика дефолтным. Доходы от этой сделки составляли большую часть доходов Mozilla, но на следующий год сделка, по всей видимости, не была продлена. Новый план — зарабатывать самостоятельно, через подписки и сервисы: Pocket и, простите, VPN-сервис.

Прогнозирую, что лет через пять внутри Firefox, если такой бренд ещё продолжит существовать, будет какой-то очередной форк Блинка с предустановленным Mozilla VPN.

Монополия Apple на iOS

Epic Games, разработчики Fortnite, разыграли самую что ни на есть настоящую многоходовочку:

  1. Epic добавили в игру способ платить за внутриигровые покупки в обход системы Apple (в дополнение к обычным IAP), сделав ещё и 20% скидку, если платить новым способом
  2. Apple, узнав об этом, забанила приложение в Апсторе
  3. Epic Games меньше чем через час (!) подают в суд, и тут же выкладывают ролик-пародию на знаменитую рекламу Apple 1984.

Основная цель иска к Apple — получить возможность создать свой, альтернативный магазин приложений на iOS. Напоминаю, что у Epic есть свой магазин игр, доступный, в том числе, на Маке.

Это ещё одно дело, за которым придётся следить. Особенно интересно, сочтёт ли суд верным аргумент, что релевантный рынок это рынок «распространения приложений под iOS» это действительно отдельный рынок (на котором Apple, несомненно, монополист), или всё же общепринятый «рынок мобильных приложений», где львиная доля принадлежит Андроиду (тогда Apple не монополист).

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

Чуть позже за эти же проделки Fortnite удалили и из Google Play Store, поэтому Epic подали в суд и на них; но в случае с Андроидом пользователи могут установить приложение напрямую без апсторов, да и Андроид как таковой меня интересует гораздо меньше.

Ссылки

(2019) Terra Nullius — Кори Доктороу пишет, что идея собственности, построенная на «взял сырую природу и добавил своего труда», не работает: вокруг нас давно нет «сырой природы». До самого Лока с Two Treatises of Government я ещё не добрался, впрочем. Самого Доктороу на днях включили в Canadian Science Fiction and Fantasy Hall of Fame!

(2019) Against the Logic of the Guillotine — гильотина стала символом радикальных левых, но не надо возлагать на неё надежды: она требует крови, не важно чьей, и легко оборачивается против мечтающих о ней. Текст анархический, но с ним сложно поспорить.

-Тим

P.S. Кстати, насколько удобно читать рассылку в таком вид? Надо ли сделать какой-то симпатичный шаблон для письма, или и так ок?

7 августа 2020

Рассылочка №3: Feeling Good

Начал читать Feeling Good Бёрнса — это книга про когнитивно-поведенческую терапию в формате селфхелпа (эта терапия более известна на русском как КБТ, где Б означает Поведение). В одной из первых глав приводится список когнитивных заблуждений (об этом ниже), и тест на депрессию, где я набрал 49 баллов из 100. 49 баллов — это прям на грани между средней депрессией и тяжелой. Ну вот и проверим эффективность книги.

Feeling Good

Я ещё не дочитал книгу до конца, поэтому это выжимка полезного только из прочитанного, вполне возможно, что там ещё много хорошего.

Ощущения (feelings) — результат мыслей (cognitions). Например, опаздываешь куда-то, и думаешь «ой как будут злиться те, кто ждёт», и вот уже ощущаешь себя тревожненько. Или ловишь себя на прокрастинации, думаешь «а должен же работать», испытываешь чувство вины, и чтобы не чувствовать его, ещё глубже погружаешься в пучины ютуба.

У человека-в-депрессии есть когнитивные заблуждения, паттерны мышления, которыми он ловко оперирует, делая себе только хуже. Сегодня расскажу про два: all-or-nothing thinking и mind reading.

Чёрно-белое мышление — это когда кажется, что может быть либо одно, либо другое, и других вариантов между не существует. Либо ты сегодня героически сделал работу за целый спринт, или вообще ничего не сделал. Мир, при этом, обладает множеством состояний «между», но человек в депрессии отвергает их, и не даёт себе порадоваться тому, что сделал хоть что-то.

Mind reading — это когда мы «читаем мысли» других людей, то есть, думаем «он думает вот такие мысли», безотносительно фактов. Например: отправил сообщение коллеге, а тот пока не ответил — наверняка он заметил, но решил не отвечать, потому что я его подбешиваю. Чувак-то, может, на обед вышел, но это неважно для восприятия изнутри.

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

Amazon

Ссылочки

Бумага сделала «Клуб друзей Бумаги», где можно напрямую поддержать издание.

На этой неделе заново посмотрел на Tailwind CSS, postcss-плагин для utility-first CSS, и в этот раз оно показалось менее диким. На сайте есть скринкасты — через них проще понять фишку, чем просто читая.

Фисташки, оказывается, это очень опасный груз, просто-таки фисташки-убийцы.

Flipper Zero, тамагочи для хакеров с симпатичным дельфинчиком, собрал больше двух миллионов долларов на Кикстартере. Ещё можно успеть заказать.

Я начал вести канал Подкастр в Телеграме, куда буду писать про podcastr.ru. Надо бы сделать удобный микропаб-клиент, чтобы оно постилось ещё и на мой сайт, но я пока занят самим Подкастром.

Мысли и прочее

В Coffee3 на Петроградской в солнечные дни пускают на вертолётную площадку на крыше здания — оттуда открывается хороший вид. Ещё взял день отгула и сходил в Севкабель — там неплохо, но как-то много людей.

Каждый раз с удивлением обнаруживаю, что хорошо расписанные тудулисты, если в них не забывать смотреть, значительно снижают сопротивление к работе. Для этого нужно, чтобы из текста тудушки было понятно, что нужно сделать. Люди часто пишут тудушки типа «посмотреть пулреквест», но через пару часов уже и не вспомнишь, что это за пулреквест был. Или задача может иметь смысл в списке проекта, но потерять его в другой перспективе. Поэтому я сейчас стараюсь добавлять ссылки, где применимо (не просто «глянуть WEB-12345», а «сделать код-ревью WEB-12345» + ссылка на джиру и пулреквест в комментарии).

Если у тебя есть какой-то свой рецепт «как начать работу прям щас», то поделись! Можно ответом на это письмо или в телеграм: @marinintim.

Тим

5 августа 2020