.и в продакшен – Telegram
.и в продакшен
2.48K subscribers
9 photos
3 videos
107 links
Фаундер-технарь - канал основателя www.jitbit.com, Alexander Yumashev @jitbit

Как быть CTO/CEO одновременно, как растить bootstrapped-стартапы и прочая айтишечка.
Download Telegram
Прошлой осенью в Бостоне на конференции познакомился с очень интересным чувачком... История у него просто огонь (если не врет конечно).

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

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

Потом какая-то компания попросила драйвер для сканера фотопленок. Потом еще одна. И еще одна.

В конце концов его этими просьбами задолбали (он-то хотел гамать в CS и Diablo 2, а не рассылать людям драйвера), и чувак выложил все свои поделки на сайт - просто чтобы отстали. Сайт показал отцу - тоже программеру - и отец ради интереса прикрутил туда Paypal...

Короче, через 5 лет они обнаружили себя в центре бизнеса с оборотом пару миллионов год, под названием VueScan. Про ребят написали все - от "Washington Post" до "New York Times" и PC/Mac журналов.

Сейчас папа с сыном ревёрсят и пилят дрова для 6000 (шести тысяч) сканеров, факсов, копиров и всего прочего говна, которое давно снято с производства и не поддерживается современными ОС.

Обожаю такие истории. Accidental business, да еще и win-win со всех сторон - и людям помогают, и продлевают жизнь старым устройствам, и сокращают кол-во техномусора, и деньги зарабатывают.
👍3
Извините, не про стартапы.

Заметил за собой, что все чаще юзаю конструкцию do-while(false) - никогда не догадаетесь для чего - для "быстро выйти из нескольких вложенных if сразу"

Это хак из мира C-шников, у них так давно принято.

Меня, идиота, научили совсем недавно.

Работает так

do
{
if (xxx)
{
//громоздкое вычисление yyy
if (yyy)
{
//громоздкое вычисление zz
if (zzz)
//чтото делаем
else
break; //выходим нахуй
}
}
}
while (false)

Вы спросите "НАХЕРА? почему не просто if (xxx && yyy && zzz) ?? Ведь сработает "short circuiting" в операторе &&"

Потому что "громоздкое вычисление".

Я не хочу вычислять следующую переменную (yyy и zzz) анлесс мне реально это надо. А внутрь if()-выражения вычисление может и не поместиться.

Вы опять спросите "НАХЕРА? почему бы тогда не вынести вычисление yyy во внешний метод?" А потому что значение yyy я юзаю много раз и не хочу вычислять его повторно. Ну и вообще - читаемо же? красиво же? не?

Собственно, while (false) опеспечивает, что код выполнится ровно один раз.

"Громоздкое вычисление" не обязательно именно вычисление, это может быть, например, чтение из медленной базы данных - самый частый боттлнек на бекенде.

Такая вот оптимизация. Спасибо вам, Сишники.

P.S. подход ни к коем случае не предлагается в качестве паттерна. while(true) { ранний выход } более читаем, например. Но это отличный костыль к уже написанному коду, решающий задачу "быстро выйти из кучи if"
👍1
Гугл собирается в течении двух лет выпилить из Хрома поддержку сторонних кукисов (спасибо Prenom за наводку в чате Самата)

На первый взгляд это выглядит, как защита интересов пользователей, прайваси-шмайвайси. Ура. Подданным предлагается перейти к торжествам и празднествам.

На второй, более трезвый взгляд - это, конечно, удар по конкурентам. По рекламным-сетям, по Фейсбуку, по всем прочим, кто лишится трекинга пользователей (сам-то Гугл не лишится, он продолжит трекать юзеров через альтернативные каналы - Хром, AMP, карты, Gmail, Андроид и тп).

На Хромиум давят Мозилла и Эппл, с их агрессивной кампанией "за приватность", и Хрому приходится чем-то отвечать. И щас был идеальный ответ. Мол, смотрите, мы тоже за приватность (хихи), мы запрещаем куки (хихи). Хотя на самом деле это, конечно, довольно циничный шаг плюс PR stunt, решающий разом кучу проблем, к тому же создающий обманчивое ощущение, что Хром заботится о юзерах, а Сафари и Мозилла - нет.

(бизнесмен и маркетолог внутри меня аплодируют стоя - это действительно умный и классный ход :) )

Не будем, короче, заблуждаться. Как там было в знаменитой цитате Джеффри Хамербахера, который уволился из Фейсбука?

"The best minds of my generation are thinking about how to make people click ads."

PS. Проблему трекинга запрет куки, кстати, не решит. Просто трекинг уйдет с фронта на бэк, через трекинг-пиксели <img src>, через DNS-трекинг (добавляем на страницу ссылки на домены со случайным текстом в доменном имени, и браузер уже при парсинге HTML будет слать DNS-запросы куда надо, вы ведь уже включили dns-prefetch, как советуют в Google Page Speed?)

PPS. в комментах на хакер-ньюс пишут, что монополия гугла - это куда более серьезная проблема, чем реклама с ее трекерами. Потому что реклама, в общем, помогает делать Интернет более открытым и свободным. В отличии от монополий а-ля Гугл. Очень интересная параллель - за свободу слова больше всех борются владельцы стрип-клубов, порно-сайтов, магазинов оружия, продавцы марихуаны и прочие. Это очень мутные и странные бизнесы, но именно ОНИ своей борьбой делают экосистему здоровее, это благодаря им (а не Гуглу и Фейсбуку) мы наслаждаемся отсутствием цензуры, свободой слова и прочими благами современного мира.
Всегда как-то неловко писать о себе, но пара человек в личке и в чатах попросили рассказать, с чего начался наш стартап, как он вырос и позволил мне с семьей (и всем сотрудникам) уволиться с нелюбимых работ и даже завести трактор.

Обещаю скоро написать большой пост на русском, а пока вот вот тут есть мое большое интервью на английском, где все это есть.

#shamelessplug
👍2
Удаленная работа - это сложно. Внешние constraints отсутствуют, вся дисциплина - на тебе самом. Я бы сравнил это с переездом от родителей в общагу или квартиру - надо вдруг самому убираться, готовить и планировать бюджет.

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

Как устроено у нас (далее бессистемный список в формате "вспомнил - написал")

1) Happy hour - час или два в сутки, когда все в онлайне. Это для тех команд, которые сильно размазаны по таймзонам. Я в Сиэттле, ты в Стамбуле, но в 5 по гринвичу - все в Слэк плз.

2) интро-видосы - все сотрудники записывают простенькое видео на телефон «вот мой комп, вот мой стол, вот так я работаю, вот пробежала моя собака, а вот Слэк, где я вам пишу!». Мой младший партнер Макс - вродебы стеснительный задрот - к концу ролика разошёлся и 10 минут рассказывал про свою коллекцию Лего. Видосы - сложить кудато во внутреннюю Вики, давать почитать всем новым сотрудникам.

Это самый важный хак из всех. Человек перестаёт быть аватаркой в Слэке и становится собой. Себя снимать, кстати, не обязательно (ремарка для тех, кто стесняется). У нас все ролики как раз в формате "голос за кадром". Но рабочее место желательно показать. Сразу живо представляешь себе, как человек там трудится и это очень сближает.

3) Ежемесячные (или еженедельные) видео-тусы: берем 2, 3, 4, 5 рандомных работников и в пятницу сажаем в видео-конференцию без какой-либо повестки. Просто разговор. О чем угодно. "Какое же говно последние Звездные войны" - "Ну зато Мандалориан неплох" - "А я пошел на курсы готовки".

Из этой же серии - обязательный чат "не про работу" в Слэке. Можно даже выпилить из него начальство, если оно нудное.

4) Умение письменно излагать свои мысли - сделать критерием для приема на работу. Уже на этапе удаленного собеса смотреть, насколько лаконично, читаемо и, главное, БЫСТРО человек общается.

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

Все это надо объяснять, учить. Вообще, недосказаность - это первый источник нервов при удаленке. Человека никто не научил "как надо", а потом злятся, что он что-то делает не так. Это же не офис, в курилке не подскажут.

Поэтому - always overcommunicate. Лучше избыток коммуникации, чем недостаток.

5) Workstation allowance - бюджет на технику (ноуты, наушники).

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

Ну и вообще бюджет лучше не жать. Кто-то хочет работать на тренажере для гребли? Ради бога.

6) Coworking allowance - не все могут (и хотят) работать у себя на кухне. Кому-то проще в кофешопе или даже арендовать постоянное место в коворкинге. У нас выделен на это бюджет.

7) Company retreats - раз в год (а лучше чаще) все сотрудники вывозятся КУДА-ТО и тусят вместе. Желательно, чтобы локация провоцировала совместную деятельность - никто не заставляет переться всем вместе на условный скалодром, достаточно плейстейшена и настольных игр в общей гостиной. Хотя скалодром, конечно, веселее. Нас, интровертов лучше организовывать извне, чем ждать инициативы.

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

8) 1-on-1 видео-звонки регулярно. Хотя нормальный менеджер это и в офисе должен делать...

Если вспомню еще чтото - напишу.
Простите, я на минутку. Что-то меня триггернуло...

Apple, как известно, запустила Apple Card (пока только в Штатах). Красивая такая кредитка, интегрирована с Wallet, рисует приятные отчеты, предлагает кешбек, беспроцентный кредит на новый айфон и прочие плюшки.

Ну наконец-то! Кому, как не Эпплу делать свой fintech. Будет "нативный" аналог европейской карты Revolut (охерически удобная, кстати, штука, давно пользуюсь).

"Вжжих!!" сказала пила.
"Ух, бля!!" подумали лесорубы (tm)

Нет, правда. Я такую карту, конечно бы не завел (вендор-лок и все такое) но это же гениальный бизнес ход.

Created by Apple not a bank

Хер там.

Оказалось, Эппл к карте отношения не имеет. Карты выпускает Голдман Сакс. Решения о кредитах выносит тоже он, коллектор долгов тоже он, финансовое "плечо" предоставляет тоже он. Да и, собственно, решение кому эту карту выдавать, а кому отказать - принимают в банке.

А отказов стало подозрительно много видимо, поэтому пиар-служба Goldman Sachs на прошлой неделе вдруг вылезла изо всех дыр и поспешила обо всем вышесказанном сообщить.

Короче, опять дискриминационный black box (я, как гражданин РФ живущий в ЕС, да еще и владелец компании, постоянно с этим сталкиваюсь в традиционных банках - меня принимают то за мафию, то за чиновника-коррупционера, то за русского хакера - спасибо отчизне за испорченную репутацию).

"Стефан Шер из Голдман Сакс официально подтвердил, что Эппл официально отстранена от принятия любых решений по менеджменту счетов." Даже когда вы звоните в техподдержку Apple Card - вы на самом деле общаетесь с сотрудником GS. Эппл всеголишь сдал в аренду бренд и помог накодить приложение.

"Not a bank" my ass. Ну понятно. Расходимся.

"То-то же, бля" подумали лесорубы (tm)

https://twitter.com/AppleCard/status/1215737537639206912
Юникод крутой.

Вот сделал такой модный сёрчбокс, например - без всяких background-image, без CSS-хаков, без noscript и иконочных шрифтов. И на ретине норм.
Однажды некий чувак (кажется его звали Дрю и он работал в LeadFuse) за 3 минуты рассказал мне, как устроены b2b-продажи софта и это было гениально.

"Знаешь," говорит, "считается что бизнес покупает софт по двум причинам:

1. Make money
2. Save money

Но это полная ебаная херня"

Тут стоит уточнить, что чувак был из Аризоны, с огромной бородой а-ля ZZ-Top и сильно подвыпивший (дело было на вечеринке после одной конференции в Штатах), поэтому так и сказал - total fucking bullshit.

"Make money/save money имеет смысл только если ты продаешь собственнику бизнеса, фаундеру или CEO (хотя даже CEO уже похер). Но ты не продаешь ни собственнику, ни фаундеру. Решение о покупке принимают рядовые нанятые работники. И знаешь, они тоже покупают софт по двум причинам и причины эти:

1. Cover my ass
2. Make me a hero

Продавай ЭТО, а не свои безликие "ускорим", "сэкономим", "повысим эффективноть" и прочее говно. Чем больше компания - тем откровеннее включай это в свой мессадж. Писать на сайте "поможем наебать босса" конечно не стоит, но намекнуть - обязательно."
👍4🔥2😁1
​​#удаленка

Продолжу поток мыслей из предыдущего поста про удаленку

Основной враг на удаленке - прокрастинация. Про нее написано уже столько, что стыдно возвращаться. Тем не менее:

Распорядок

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

Например: "встал - заправь кровать". Сразу +80 к "проснутости" и работоспособности. Да да, я знаю - "кровать, што, ахаха, ты серьезно"

В офисе есть routine. Насаждаемые извне правила и распорядок. В 10 утра все пришли, расселись по галерам и взялись за весла.

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

Лучший способ наебать мозг - начать день с маленькой победы. Закрыть какой-нить простенький баг в гитхабе. Оптимизровать какой-нибудь кусок кода. Ответить на геморный емейл, который "помечен как unread" еще с понедельника.

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

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

Короче. Наш мозг довольно тупо устроен. ОК, не весь, а та часть, которую принято называть lizard brain, она вырабатывает допамин, серотонин и эндорфины - и надо учиться ей манипулировать.

Недавно на Hackernews пролетала офигенная статья как раз про все это - Procrastination is About Managing Emotions, Not Time. В целом, все понятно из заголовка, можно не читать.

-

Так, я устал писать мотивационную хрень, лучше почитайте книжки Аси Казанцевой.

Теперь скучный хак для компаний (веселые были в прошлый раз).

Как нанимать за границей - что делать, если вы нанимаете иностранца на удаленку, но в этой стране у вас нет юрлица? У вас, в целом, есть три пути:

1."деньги в конверте" - неудобно (где брать кеш?), затратно (как списывать налоги?), да и сотрудники не согласятся.

2. Sole proprietor/self employed - это аналог российского ИП и "самозанятых", есть почти в каждой стране и это для вас, как для работодателя, самое удобное. Просите сотрудника зарегистрироваться в этом статусе, заключаете договор, рисуете инвойсы и шлете деньги. Возмещать ли сотруднику налоги - это уж как договоритесь, в разных странах принято по-разному. Американцы, например, нормально относятся к самостоятельной уплате налогов (у них так принято), а французы и поляки нет.

Минусы: не все согласятся куда-то там идти, регистрироваться и тп. Особенно, если это их первый опыт удаленки. Если не первый - человек уже привычный, у него даже наверняка уже есть свой личный бухгалтер.

Это, кстати, еще одна причина почему на собеседовании обязательно надо спросить "был ли у вас опыт ремоута".

3. Employer of record - новая и очень крутая тема, появилась в последние 3-5 лет. Суть: вы обращаетесь к компании "провайдеру", у которой есть юр.лица по всему миру. Она нанимает человека "к себе", платит за него все налоги и взносы, а вы платите ей. Гениально и просто. Хотите вы, например, нанять дизайнера в Словении - находите такой сервис с локальным юрлицом, человека нанимают туда, берут на себя все местные налоги, медстраховки и отчисления, а вы все это оплачиваете + комиссию. Пример такого сервиса - https://shieldgeo.com/ я даже поверхностно знаком с фаундером, вроде нормальные ребята (не воспринимайте как рекламу).
🔥1
На Hackernews недели три назад прошло голосование "какую технологию стоит учить в 2020?"

И больше всего апвоутов набрал такой ответ:

Learn how to really use a relational database, relational data modeling, and SQL

Ну неужели, наконец-то кто-то это сказал.

Нене, я все понимаю про редис-кластеры, про веб-скейл Монгу и прочий рок-стар эджайл некст-ген, но реляционные базы данных (первое упоминание - в научной работе Эда Кодда аж 1970го года) никто не отменял. Мало того, думаю, SQL ожидает даже некий камбэк и всплеск популярности на волне ML.

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

Мы вот, например, шлем 22 тысячи емейлов в час. Это 5-8 емейлов в секунду.

Мы не юзаем ни Mailgun, ни SES, ни - что там еще есть? Sendgrid? Мы юзаем тупой postfix запущенный на копеечном убунтосервере

(shameless plug: я писал об этом пост, который даже залетел в топ Hackernews)

Или вот вернемся к SQL... В прошлом месяце мы перевалили за тысячу клиентов только в SaaS-версии нашего продукта. Это значит, что 1000 компаний ломятся в нашу софтину - одновременно. В каждой компании десятки, сотни, иногда тысячи сотрудников. Это сотни тысяч юзеров "DAU", то есть каждый день.

В базе 50 миллионов тикетов и к каждому еще переписка на 10-20 сообщений, получается полмиллиарда записей только в таблице сообщений. От этих цифр волосы шевелятся, но вся эта машинерия, включая полнотекстовый поиск, живет в одной базе на SQL Server, который крутится на средненькой двухъядерной машине - в разы слабее моего игрового ноутбука.

Because SQL.

А еще тюнинг индексов, правильный partitioning, анализ "планов" и их кеша и тд...

Перечитал - какой-то хвастливый пост получился... Но, в общем, учите, братцы, SQL. Как верно подметили там же в комментах:

"SQL seems to be the most long-lasting skill in the IT industry"
👍1