Size: a a a

2021 September 25
SHIFU
Интересная мысль из книги Write great code v3: Восприятие программистом себя как Художника, Архитектора, Инженера, Ремесленника.
А ведь и правда - в зависимости от восприятия своей профессии, у тебя может отличаться как цель относительно процесса работы и развития, так и к профессии в целом.
У меня сейчас, например, смешанный режим.
источник
2021 September 30
SHIFU
#notes
Заметки на полях - мономорфизм
Rust: https://doc.rust-lang.org/book/ch10-01-syntax.html
JS: https://habr.com/ru/post/303542/
источник
2021 October 03
SHIFU
Threads are for working in parallel, async is for waiting in parallel (с) someone
источник
SHIFU
С 11 - 18 лет я сделал больше завершенных ЛИЧНЫХ проектов (десятки), чем, когда начал профессионально этим заниматься с 18-37 лет(1-2).
Стартапы которые я финансировал и управлял не считаю.
Вот просто, сесть и сделать проект до конца за n времени.
Кручу эту мысль последнюю неделю… с чем это связано?
До 18 лет это было всегда просто по фану.
Теперь это превратилось в печальную закономерность - идей много, одна сменяет другую, но все остаются незавершенными.
С 18 лет - толи мне хватало программирования на работе, толи что.
Порой ловлю себя на мысли, что так или иначе думаю о перспективах проекта, его экономической целесообразности, будет ли полезно и востребовано.
Эти вот размышления, как мне кажется, и мешают делать все как в детстве - есть проблема, сел, написал программу которая ее решает, повторил.
источник
SHIFU
Шпаргалка по регистрации корпорации в США.

Я в 19-м году зарегал корпорацию в США (правила могли измениться), опишу свой процесс, у вас могут быть другие цели, но может и пригодиться.

Виды компаний: Есть LLC, есть корпорация (остальное не трогаю).
LLC -  тут личная ответственность.
Корпорация - просто, понятно, менее рисково.

Использовал компанию-посредника - https://www.wolterskluwer.com/en/solutions/bizfilings.
Есть еще legalzoom и прочие.
Заполняете данные, выбираете название, платите деньги, и они вам присылают коробку со всеми доками на адрес в России (или где вы живете).
Заполняете документы об организации которые вам прислали - если вы один, то тут немного сюрреализма, смиритесь, что вы в виде секретаря, казначея и директора в этих бумагах будете встречаться все вместе, обсуждать и подписывать протоколы собраний.
Заполнять обязательно! Иначе юристы могут трактовать вашу компанию как вас, а не тех «виртуальных» вас которые бумаги подписали (понятно?… мне нет).

Регистрировал в Штате Делавер.
Количество акций - 5000.
ВНИМАНИЕ! не увлекайтесь увеличением количества акций.
Стандартный франшизный платеж каждый год в Делавере 175(кажется) баксов.
Некоторые выпускают себе миллионы акций, а потом им счет приходит на 70 косарей в конце года.
Внимательно читаем налоговые правила штата в котором открываем компанию!

Компания регистратор предоставила мне Registered Agent на год - это предоставление адреса на который власти США могут слать официальные доки (обязательная штука), на него не шлется обычная почта.

Обслуживание:

Банковский счет можно открыть только физически в США (да, мои фотки в инсте как раз с этой поездки).
Рекомендую BankOfAmerica. Chais банк, например, забычил и послал меня лесом.

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

Я сделал проще и сильно дешевле:
Почта: virtual post mail (это название сервиса) - открывают вам почтовый адрес (и могут быть вашим Registered Agent) + сканируют приходящие бумаги, могут переслать их вам и тп. Очень удобно.
Телефон: CallHippo и прочие сервисы которые выдают вам американский номер - это «виртуальные номера», поэтому смс с банка и звонки могут не доходить, кто бы знал…(это минус, но по факту и не надо, официальные доки шлют по почте).
Можно попробовать esim типа дримсим(не пробовал, просто идея).

Оплата налогов:
Так как доходов у меня нет, и все что мне надо - это оплатить франшизу и отправить отчет раз в год, то я использовал legalzoom - они берут комиссию баксов 50 (кажется), и после заполнения формочки отправляют все куда надо, а далее итоговые документы от штата приходят мне на почту (virtual post mail).

Россия:
В течении нескольких месяцев надо послать в налоговую (и потом каждый год) уведомление о КИК(контролируемая иностранная компания), если это не сделать - там штрафы конские, кажется 500.000 сейчас О_О.
По счетам открытым тоже надо отчеты раз в год сдавать.
Если вы на физика еще в США открыли счета, то тоже надо уведомлять, тоже конские штрафы).
источник
2021 October 05
SHIFU
Мой опыт работы на MacBook Air M1 (3 месяца уже)

Я себе взял Air, так как являюсь фанатом этой линейки (они такие тоненькие!!), но, естественно, у меня основные требования:
16гб оперативки + 1тб SSD.
Да, эйры есть с такими параметрами, иначе я бы на них даже не смотрел.
Задачи: Работа, работа, работа.
Несколько IDE, куча вкладок в хроме, почта, слак, докер, и прочее барахло как у обычного программиста, может быть виртуалка на Parallels периодически.

Что заметил (не минусы, большая часть - ожидаемые вещи):
Проц греется до 82 градусов если, допустим, компилируется нода, меня это напрягло сначала.
Неожиданно, но не критично, хотя, для тех кто постоянно большие бинари собирает, может стать проблемой.
Периодически (раз в неделю-две) заметны фризы (я хз откуда они, мышь подергивается, все чуть замедляется, длится пару секунд).
Возможно, это связано с бустом процессора (он есть на ARM вообще?), может у меня IDE нагружает резко все вокруг анализом больших проектов, не понятно, воспроизвести сложно.
Когда работаешь, ни о каких 19 часах работы и речи быть не может - по ощущениям (я не замерял секундомером).
Когда просто печатаешь, или смотришь видосы, тогда да - заметно что он медленно расходует заряд.
Все равно работает дольше моей предыдущей прошки 16 2017 года, или даже эйра 2015 (а это важно).
Учитывая, что часть софта запускается через розетту - это минус 3-4 гига.
Убрали ненавистный тачбар (и только легче стало).
Работает шустро. Просто не думаю о том, что не хватает чего-то.

Резюме
Могло показаться, что мне не нравится?
Да я в восторге! Гоняю этого конька в хвост и гриву целыми днями.
Единственное - взял бы прошку только из-за охлаждения.

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

Вот так.
источник
2021 October 06
SHIFU
Разбираем обращения рекрутеров:

Дисклеймер: данное сообщение написано с целью помочь рекрутерам выстраивать более эффективную работу, надеюсь мой опыт в данной сфере подобную пользу и принесет.

Добрый день!
Я IT Recruiter компании .
Сейчас ищу Full- stack developer (для бэкенда Python, для фронтенда JavaScript)в крупную компанию.
Буду рада рассказать подробнее. Готовы пообщаться?

Что не так и как можно это изменить:
Первое: Обращение в стиле «Я тут чем-то занимаюсь, обсудим?» синтаксически - это вообще не про поиск кандидата, это про «поделиться своими проблемами».
Второе: Тут нет ничего что должно заинтересовать человека… да боже мой, тут вообще НИЧЕГО нет.
Человек просто дает знать что она кого-то ищет.
И?
Если кандидату нужно посмотреть на тех кто ищет сотрудников, он пойдет на hh.ru или джинни (джинни кстати очень рекомендую) и насмотрится до потери пульса.

Как можно это изменить:
Перестать уже делать отписки, надеясь что лишь узнав о том, что очередная компания ищет сотрудников, кандидат ломонется с ними это обсуждать.
Уже давно пришло время включать голову и делать ОСМЫСЛЕННЫЕ сообщения, выстраивать с кандидатами взаимоотношения на долгое время, втираться в доверие, думать как кандидат (и прочие высокопарные, но от этого не менее верные действия).
источник
2021 October 08
SHIFU
источник
2021 October 12
SHIFU
Задал своему коллеге (очень начитанный и компетентный челвоек) вопрос по поводу ресурсов по рефакторингу, архитектуре и прочему, вот чем он поделился, может и вам будет полезно:

Привет. Сложный вопрос.

1.  По архитектуре мои любимые книги вот эти: [http://aosabook.org/en/index.html](http://aosabook.org/en/index.html) (я читал два тома внизу страницы, "Performance ..." и "500 Lines ..." тогда еще не было). Вообще очень хорошо читать чужой код. Мне девушка рассказала, что у графических дизайнеров, например, есть такое понятие как "насмотренность", и что в некоторых компаниях у них часть рабочего времени посвящена просмотру чужих работ. Мне кажется, что у 99% программистов, которых я встречал, это самый большой пробел - они не умеют читать код, даже свой. В итоге многие пишут такое, что сами не могут прочесть через месяц.
2.  Еще классная тема учить другие языки, в особенности более "академические". Я сейчас опять взялся за Haskell - он как раз хорош тем, что в нем нужны навыки декомпозиции проблемы и организации кода, иначе получится нечитаемый код. В нем можно писать очень читаемый и очень нечитаемый код.
3.  И последнее, наверное, это все что связано с теми либами и инструментами, которые используешь: браузеры, git, JS/TS, React.

Конкретные ресурсы трудно назвать. Смотрю несколько на YouTube: Context Free, InfoQ, Strange Loop Conference и т.п.
источник
SHIFU
Мне кажется, что сейчас не пик IT и программирования, скорее мы стоим в начале нового интересного витка, как люди которые в 70-е начинали Unix, C и прочее.
источник
SHIFU
Если у кого то не хватает времени, по объективным причинам, а не из-за прокрастинации, то вот мой кейс:
Встаю теперь в 5 утра а не в 6:30-7:00
Это дает мне дополнительный час-полтора, в который я занимаюсь чем хочу - в моем случае это самообразование (книги, курсы, и тп.)
И меня никто не беспокоит - вся семья дрыхнет в это время.

Что стоит учесть:
По началу будет тяжело - по физиологическим причинам, ведь организм не привык.
Все мы человеки, а значит - если я вдруг иду спать не в 22:00 а в 00:00, то маловероятно что я встану в 5:00.
Та же история с баней - баня вечером? Забудь о подъеме в 5:00 на следующий день:).

Что помогает мне вставать с утра:
У меня есть важные для меня вещи, которые я постоянно откладывал из-за нехватки времени и мучился из-за этого. (когда делать свои проекты? когда читать книги? когда проходить курсы? как вырасти в профессии если нет времени?) - БАМ! У тебя целых полтора часа на то, чтобы все это реализовать.
Будильник звонит, и я начинаю напоминать себе еще не открыв глаза то том, ЧТО я смогу сделать если подниму свою жопу с постели.
Минут 10 интенсивной тренировки (типа бурпи) не дает мне клевать носом через час.

Удачи в вашем плотном графике коллеги.
источник
2021 October 13
SHIFU
Знаете почему проект изначально был назван SHIFU? Нет, это не я себя так характеризую:)
Была идея приглашать моих коллег и знакомых, чтобы они постоянно делились знаниями, но, не вышло, и пришлось отдуваться за всех:)
SHIFU - подходящий собирательный образ людей, которые делятся знаниями и наставляют других.
И сижу я тут, думаю, надо бы уже отходить от собирательных образов...а может и нет, приросло уже...
источник
SHIFU
Когда меня спрашивали - какие курсы могу порекомендовать, я обычно отвечал что "не могу рекомендовать то, что не проходил".
Сейчас потихоньку (очень выборочно) начинаю некоторые покупать и повышать квалификацию, вот один из них:
Kent C. Dodds - https://testingjavascript.com/
Почему считаю офигенным:
Автор создал react-testing-library - +100 к авторитету.
Короткие видео (1-3 минуты), каждое видео на практическом примере показывает как решать ту или иную задачу разными способами - это не перегружает вас многочасовыми лекциями.
Проще уложить в напряженный график.
Я, обычно, ищу применимые к моей работе куски, и смотрю выборочно.
Очень много разных видов тестирования - от юнит до end-to-end.

Нужно понимать, что это не серебряная пуля, некоторые реальные кейсы - типа тестирование хука с контекстом и lazyQuery из Apollo вы там не найдете, но в целом... если есть что-то лучше, порекомендуйте пожалуйста.
источник
SHIFU
Век живи, век учись: Progressive JPEG vs Normal JPEG
https://www.liquidweb.com/kb/what-is-a-progressive-jpeg/
источник
SHIFU
Очень полезный подход - "дай этому 5 минут", от небезизвестного со-основателя  37signals:
https://signalvnoise.com/posts/3124-give-it-five-minutes
источник
2021 October 14
SHIFU
Объяснение почему в JS typeof null = object: https://2ality.com/2013/10/typeof-null.html
источник
SHIFU
Делюсь еще курсами которые сам прохожу:

Факт-карты от Курпатова
У них есть дешевые - типа промо (290 рублей было, на часик).
Есть долгий месячный курс.
Плюс еще сейчас запускают отдельными двухнедельными потоками.
Я прохожу месячный (еще в процессе).

Зачем, и почему круто:
У меня в голове постоянно куча дилемм, причем чем дальше, тем все больше появляется задач, определиться с действиями относительно которых не могу
Плюс - постоянно ввязываюсь в проекты, которые не заканчиваю по тем или иным причинам.
Хороший вопрос - почему? Что делать в общем? Что делать с каждым проектом или устремлением? Как разрешить эти дилеммы?
Если честно - это жутко напрягает, нервирует, изматывает, да и результат не приносит - только постоянно разбрасываюсь энергией на вещи, которые не имеют смысла.

Например:
Какой личный проект делать?
Какой язык изучать дальше?
Как продвинуться в профессиональной карьере?
И так далее, и нет им конца...

Вот, если у вас похожая ситуация - крайне рекомендую этот курс.
Помогает определиться с тем что делать, что на самом деле важно, принять решение, и... стресса у меня в жизни стало заметно меньше.
источник
2021 October 15
SHIFU
В языках программирования программисты постоянно недовольны то особенностями языка, то плохой его архитектурой.
Ежики плакали, кололись, но продолжали есть кактус.(с)
Но, если мы посмотрим на обычные языки - Русский, Английский и тп., то там все их «особенности» кажутся нормой.
Просто так есть, и все.
Я сомневаюсь, что носитель английского языка скажет мне - знаешь, я конечно говорю на английском, но «вот тут предлоги странно ставятся, и вообще - Испанский намного лучше спроектирован».
Язык общения - это историческая данность.
Язык программирования, по факту, тоже самое.
Создатель Makefile говорил, что было ошибкой использовать табы вместо пробелов.
В JS баг с null уже никак не исправить.
Это не мешает нам строить огромные системы, зарабатывать деньги.
Но, программисты, как мне кажется, постоянно фрустрируют на тему нюансов языков, постоянно чем-то недовольны, постоянно ищут лучший язык.
Может быть это из-за возможности делать выбор?
Может быть это из-за нашего перфикционизма?
Может быть что-то еще…
источник
SHIFU
Magic Links для аутентификации - если не знали что это такое, то, ты просто авторизуешься по ссылке в почте. Никаких паролей... Это прикольно...
источник
SHIFU
А вы думали о том, что когда человек, потративший часы, дни, недели на исследование определенной темы, поиск информации, эксперименты, и рассказавший вам это все за 15 минут, нехило так сэкономил вам время?
Прихожу к выводу, что коммуникация между людьми - все-таки самый эффективный способ получения информации.
источник