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

Как быть CTO/CEO одновременно, как растить bootstrapped-стартапы и прочая айтишечка.
Download Telegram
Минутка tech porn.

У нас огромная multi-tenant реляционная база данных. Таблицы по 200 ГБ - рехнуться, если честно. При этом для multi-tenant архитектуры мы юзаем самую тупую модель - "Pool" - это когда во все таблицы добавляется ключик "tenant_id". Модель неэффективная, но зато простая в реализации и поддержке.

(кстати у AWS пролетала классная дока про дизайн multi-tenant систем, где разобраны все варианты, мастрид для всех CTO)

Все тормозило и заикалось. Клиенты бесились, сервера перегревались. Задачи типа "получить запись по ID" работали нормально, но любой список типа "непрочитанные письма за сегодня" в многотерабайтной базе начинает жестко тупить. Даже с правильными индексами. Один жирный клиент с дохреллионом записей притормаживает мелких клиентов, у которых данных совсем мало. Надо что-то делать.

И тут нам пришло Великое Озарение [sarcasm], которое рано или поздно приходит любому DBA - о том, что основная работа всегда ведется с "верхушкой" данных. А огромный "long tail" всегда лежит мертвым грузом и нахуй не нужен юзается только в отчетах.

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

Мысль правильная, но нет.

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

Я уже слышу крики из зала: "шардинг", "кликхаус", "разделяй OLTP и DWH". И прочий оверинжиниринг. Сразу нет. У нас есть self-hosted версия, которая должна заводиться в один клик даже у домохозяек. Хотелось простой хак, который решит все проблемы одной строчкой.

И тут я случайно вспомнил про офигенный читкод - фильтрованные индексы. Ведь по умолчанию индекс делается по всей таблице. Но зачем, если можно индексировать только 0.1%?

В коде любого CRUD-приложения, в бизнес-логике всегда есть признак, который отличает "старые" данные от "новых". Ну типа "статус проекта = сдан". Или "статус заказа = обработан". И это условие уже есть в большинстве ваших SELECT'ов. В нашем случае это был "статус тикета = закрыт".

Что делает DBA-джун? Создает индекс по этой колонке. Чтобы, значит, поиск незакрытых тикетов был быстрым и классным.

CREATE INDEX myIndex
ON messages (processed)

Что делает прошаренный DBA-синьор? Создает еще "filtered index" с этим условием

CREATE INDEX myIndex
ON messages (column1, column2...)
WHERE processed = 0 --вот так

И следит, чтобы это условие было в селектах.

В результате даже в многотерабайтной базе мы имеем маленький быстрый индекс всего в десятки мегабайт (!), который всегда показывает на самые последние данные. Как только данные перестают удовлетворять признаку - они из индекса улетают. Сами.

Когда мы прикрутили первый фильтрованный индекс и стали смотреть статистику использования, мы офонарели - SQL Server бросил все дела, и стал жадно его жрать. Приложение ускорилось в разы, нагрузка на проц снизилась на 80%. Посмотрите график - до и после внедрения только ОДНОГО пробного индекса.

Наш бд-сервер имеет всего 4 ядра и 32 гига памяти, при этом запросто тянет базу в несколько терабайт и сотни тысяч DAU. У нас в команде есть негласный челлендж - сколько можно протянуть на этом железе без апгрейдов? Уже годы держимся))

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

PS. "Filtered/partial index" есть в SQL Server, PG и в Монге. В мускуле есть воркераунд

PPS. есть нюанс, кстати. Когда делаете filtered index, обязательно включайте фильтрованную колонку в "include". Так мы заставляем сервер поддерживать "статистику" по колонке. Без статистики все это великолепие работать не будет, сервер индекс не заметит.

CREATE INDEX myIndex
ON Messages (Column1, Column2...)
INCLUDE (Processed) --важно
WHERE Processed = 0
"Copy-paste driven development" выходит на новый уровень:

https://copilot.github.com/

P.S. Анонс тут

P.P.S. помните, MS вложила в OpenAI миллиард долларов и получила эксклюзивные права на GPT-3? Это, видимо, первые плоды. Теперь код за нас пишет машина.

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

Джоел в легендарном посте Things you should never do в свое время сформулировал фундаментальную проблему всей разработки:

Писать код проще, чем читать

А с этой штукой придется, как раз, читать... Постоянно проверяя, что же там накодил вселенский разум. А читать программисты не любят и не умеют. В общем вангую, что это так и останется прикольной игрушкой. Или нет?
Золотые слова.
В комментах к предыдущему посту спросили, неужели я настолько хорошо рисую интерфейсы, что мое «дешевое» время как дизайнера настолько эффективно, чтобы заниматься им вместо «дорогого» кодинга? Отвечаю.

Во-первых, ребята, очнитесь. Время дизайнера не «дешевое», это самое дорогое время, которое в разработке продукта вообще может быть. Всем глубоко пофиг и насрать, что там у их ежедневных программ под капотом: лапша, не лапша, монолит или микросервисы, электрон или позитрон, json или xml, хаскель или джаваскрипт, стратегия или фабрика. Вот серьезно, мем с Райаном Гослингом, объясняющим девушке на вечеринке.

А на то, как продукт выглядит и как работает – нет, не пофиг. Неправильно поставленная кнопка может буквально разорить компанию. Сложная навигация — похоронить продукт. Неприятный визуал — сдержать рост. Я уж не говорю про просранные пользовательские сценарии или, прости господи, про левую идею продукта.

А баги — ну, а что баги? Любую мартышку посади, она будет разгребать тебе жиру и фиксить, если что-то серьезное. Вы же не думаете, что нужно каким-то особо умным быть, чтобы этим заниматься? Занудным, да, склонным к монотонной работе — тоже да, но только и всего, ум тут не особо нужен.

И я так же надеюсь, что вы не думаете, что вот те самые продукты, зарабатывающие «серьезные» миллиарды, что из этого каким-то причудливым образом следует, что у них под капотом тоже что-то серьезное? Да самый скучнейший на свете код там под капотом, а программисты, которые его написали — самые взаимозаменяемые люди на свете. А вся разница между джуном и сеньором сводится к тому, что сеньор ворчит больше, делает меньше, обходится дороже и носит пончо.

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

Что не отменяет того, что программировать я по-прежнему очень люблю и, хочется думать, умею. Просто не надо думать, что это имеет какую-то глобальную ценность для кого-то ещё кроме меня.

Во-вторых, по фактам. У любой программы, которой вы пользуетесь, есть интерфейс. Да, даже у CLI утилит.

Теперь, вы можете игнорировать этот факт и не прилагать к дизайну этого интерфейса сознательных усилий. Но это не значит, что интерфейса у вашей программы не будет. Это значит, что он будет случайный, а в среднем это значит, что очень плохой.

Ну а дальше сама польза продукта может быть настолько высокой, что люди закроют глаза на проблемы интерфейса и будут им пользоваться скрепя зубы. Мы все знаем такие примеры: Git, Kubernetes, JavaScript. Такие продукты можно пересчитать по пальцам одной руки.

Дальше собственно вопрос, на что вы собираетесь делать ставку: на то, что вы случайно найдете того самого золотого гуся (которых, вообще-то, единицы, даже не десятки) среди триллионов возможных идей и всем будет пофиг на интерфейс? Звучит это как разумная, рациональная стратегия?

Или все-таки заморочитесь и сделаете нормально, чтобы люди могли пользоваться вашей программой не превозмогая себя, не вопреки?

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

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

Между тем Кортланд Аллен позвал в свой подкаст "Indie hackers" Андрея Азимова - живущего на Бали парня, который кодить почти не умел и продукты делал настолько "на коленке", что волосы шевелятся.

Когда он писал свою тулзу "year in progress" - Андрюха не знал, как сделать в макоси прогресс-бар. Поэтому он нарисовал сто (!) картинок от 1% до 100% и написал сто if-ов

if (x==1) нарисовать 1.gif

(это буквальная цитата из его рассказа, я так ржал, что почти врезался в человека на пробежке)

От такого кода у любого уважающего себя синьора, конечно, вытекут глаза. Андрей, между тем, зарабатывает $10к в месяц, выигрывает "ProductHunt Maker of the Year" и сам над собой хохочет.

Когда он строил какой-то очередной сайт-поделку, он не умел в базы данных. Поэтому засунул все в google sheets и за пару дней наговнокодил скрипт (на php конечно) который забирает контент по API и пихает в HTML. После чего почесал репу и создал из этого красивый продукт https://www.sheet2site.com/

(на этом месте вытекли глаза не только у сеньоров, а вообще у всех продактов/стартаперов)

И знаете, все маркетологи мира очень ему благодарны. Поправил табличку - сайт обновился. Никаких тебе логинов, вордпрессов, CMS-ов или, простигосподи, маркдауна с джемстеком, тейлвиндом и деплоем в клаудфлер через git (это я сейчас описал реально популярный сетап для статических сайтов, если что).

Просто дай права на гугл-доку, выбери шаблон - и все, забирайте готовый сайт. Свободная касса.

P.S. подкаст тут (там сверху ссылки itunes/spotify и тд.) - он на английском, но Андрей говорит очень понятно с нашим родным акцентом. Реально послушайте, вдохновляющая, добрая и открытая история. А Андрюхе респект и лучи поддержки. 🎉

UPDATE: Sheet2Site недавно был продан. Учитывая выручку (120к в год) и текущие мультиплкаторы (4-5х), продан где-то за 400-500тыс.

Ма. Ла. Дец.
Ну когда же, когда же облачные провайдеры понизят цены на траффик? Ведь они берут за него почти в 80 раз больше себестоимости, ало?

НИКОГДА.

Высокие цены за траффик - это не способ заработать. Это способ удерживать клиентов внутри walled garden.

Нефиг строить кросс-облачные решения.

Нефиг юзать внешние сервисы, ищи аналог внутри продуктовой линейки AWS/Azure/GCP.

А главное, нефиг мигрировать между облаками. Хочешь перегнать свой петабайт из AWS в Azure? Плати 100тыс долларов ($0.10 * 1000000gb).

А то ишь, развелось вас, умников... Тут вам не DigitalOcean.

Вот CloudFlare хоть и раскричался на весь хакерньюс - а все равно, суки, за свой "Argo" берут те же 10 центов за гиг. Как и GCP. Как и Azure. Как и AWS.

Именно поэтому, кстати, игровые компании не сидят в этих ваших облаках, а юзают старый добрый colo. Та же Майнкрафт-сетка, говорят, жрет 3-5 петабайт в месяц. Это ж... Это ж... (считает нолики на калькуляторе)... это ж почти полмиллиона долларов в месяц только за траф.

Кто-то пошутил, что в жизни компании есть три стадии: (1) свои железки (2) миграция в облако (3) миграция обратно на свои железки. Самые умные доходят до 4й стадии - становятся облачным провайдером сами.
👍1
Ну вот опять. Все выходные ушли на борьбу с хакеро-спамерами. Регают триальные аккаунты в нашем SaaS и шлют "юзерам" фейковые "уведомления". В которых, конечно, фишинг: "вам пришел банковский перевод, нажмите сюда". Как же я устал от них.

В гитхабе шлют веерный спам через @-меншены. В гугл-доках шлют спам через упоминания в комментариях к документам... Когда твой продукт дорастает до некой критической массы, то почти 30-40% работы начинает уходить на набежавших хакеро-спамеров. Нотификейшен-спам - это большая боль и подводная часть айсберга, про которую никто, почему-то, не пишет. При этом тысячи инженеров по всему миру занимаются гребаным сизифовым трудом.

Что характерно, спамят в основном из рос-укро-беларуси. Никакой Китай и Индия вообще рядом не валялись. Не будь я русским давно бы забанил весь СНГ нахуй, извините. Все равно у нас там клиентов три с половиной инвалида...

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

1) аккаунт с фри емейлом? Получи +80 очков "риска"

(обошли - регают времнные домены)

2) несколько триалов с одного IP? Держи еще +80

(обошли - поднимают сотни vpn-ов и лезут через них)

3) кириллица в пейлоаде? Сорри, конечно, братья-славяне, но вот вам еще +80

(обошли - теперь пишут транслитом или кодируют)

4) клиент подключен через VPN/Tor? Н-на с ноги туда же

5) ASN ip-шника принадлежит мобильному оператору? Получай по рыжей морде (особенно Мегафон, почему-то, зверствует... кто в РФ - объясните, почему такие гигантские объемы абьюза именно от них?)

Мы уже столько понаделали всяких защит, что пора продавать отдельный продукт. Ведем каталог из 23тыс disposable емейл-провайдеров, репутационную базу IP-пулов, всякие WAF/OWASP, VPN-детекторы и черт знает что еще.

Эх.
👍1
Лет восемь назад у нас взломали AWS-аккаунт и запустили гору GPU-виртуалок для криптомайнинга. Из-за чего месячный счет за одну ночь вырос c 200 баксов до $50к. У нас не был куплен платный "саппорт", мы не были большим и важным клиентом (скорее наоборот, мы были двумя перепуганными сопляками, тогда еще - из России). Но один звонок - и проблему решили за 10 минут.

Причем, я с испугу все перепутал и позвонил даже не в AWS, а в саппорт обычного Амазона (магазина). Почему-то - итальянского. Я даже не знаю почему... Что вылезло при паническом гуглинге, туда и позвонил. И за 10 минут меня успели перевести на линию AWS US East, верифицировать, что я - это я, переключить на нужного человека, который посмотрел статистику аккаунта, выругался "damn those miners" и обнулил эти $50 тысяч.

Или вот пару месяцев назад мы переключили EC2-диски с "gp1" на новый "gp2". После чего в метриках сильно вырос "read/write latency", с 1мс до 4-6мс. Мелочь, а неприятно. В этот раз я даже не писал в поддержку, я просто запостил скриншот графика на реддит. Типа, смотрите, народ, какая шляпа.

В комменты через час пришел сотрудник AWS, дал свой емейл, связался в личке, подключил в копию какого-то инженера, и через 4 часа диск работал нормально.

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

Амазон - единственная FAANG-компания, где я могу достучаться до живого человека.

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

Попробуйте добраться до живого человека в Фейсбуке. Или Гугле. Да это же, блять, просто невозможно.

Не знаю, для кого я это пишу. Но вот мы сейчас подключаем расширенный API фейсбука, для которого надо отправить запрос на ревью. Для этого надо верифицировать юр.лицо. Для чего надо иметь аккаунт платящего рекламодателя. Который у нас есть, но почему-то заблокировался (???) за какую-то неправильную рекламу (???). А чтобы разблокировать нужна тысяча документов, включая паспорта, налоговые выписки и чуть ли не справку от венеролога...

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

Мде.

Скотт Фарквар (фаундер Атлассиан) когда-то сказал "support is cheap marketing". Штош. Все правильно сказал. Тут, наверно, надо вставить шутку, что Атлассиан скатился в такое же говно, как остальные. Но лучше посмотрите его выступление по ссыле - о том, как все начиналась, как они жили в съемной комнатушке в СФ, как он чинил взломанные сервера находясь в пустыне Калахари на медовом месяце и прочие вкусности. Люблю такое.
Восьмитысячный раз спросили "как найти идею для стартапа?"

Да епрст, никак.

Как писатели ищут идеи для новой книги? Вряд ли же сидят за компом, глядя в потолок и думая "че бы такое написать". Вряд ли спрашивают у друзей в телеге "какую бы мне запилить книгу? я вот уже и язык выучил, и ручку купил..."

Писатели пакуют чемодан и едут в кругосветное путешествие. Набираться впечатлений и эмоций. Ходят под парусом, забираются в горы, бухают с незнакомцами, нанимаются на странные работы (лесоруб, повар, дальнобойщик) и влезают в новые тусовки.

Мозг рождает креатив когда вокруг - движуха. И смена картинки.

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

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

Есть такая теория "luck surface area". Это когда кто-то жалуется "ах, почему Васе везет, а Пете нет" - да нет, всем везет примерно одинаково. Просто Вася замечает, а Петя - нет. Надо вертеть башкой и расставлять пошире сети. Никакого говнокоучинга, это просто мат.стат. Закон, сука, больших чисел. Чем больше экспериментов - тем острее пик на биномиальном графике.
👍3
.и в продакшен
Ну когда же, когда же облачные провайдеры понизят цены на траффик? Ведь они берут за него почти в 80 раз больше себестоимости, ало? НИКОГДА. Высокие цены за траффик - это не способ заработать. Это способ удерживать клиентов внутри walled garden. Нефиг строить…
Кажется, я еще не писал про простой хак, как быстро сэкономить на AWS-счетах за траффик.

Траффик в Амазоне стоит дорого. Примерно $100 за терабайт. Если у вас, допустим, 100ТБ в месяц - это сразу $10к. Десять тысяч долларов. В месяц. Ну не суки?

Причем, 100ТБ - это вообще-то немного. Это плюс-минус обычный CRUD-SaaS с файл-аттачами. А уж если ваш стартап стримит видео или там хостит подкасты и клабхаусы - ох, боюсь даже подумать...

При этом у Амазона есть продукт "AWS Lightsail" - это такое, типа, облако для нубов. Панелька попроще, сервисов поменьше, цены потупее... Зато к серверу за $3.5 прилагается бесплатный траффик на 1 TB.

"$3.5 в месяц" vs "$100 в месяц"... Хммм, даже не знаю что выбрать....

Для тех, кто не понял:

- покупаем AWS Lightsail сервер(а)
- заводим nginx или haproxy
- профит

Траффик между Lightsail и "большим" AWS не тарифицируется. Но есть catch - в амазоновском TOS мелким шрифтом написано, что Lightsail нельзя использовать для прямого проксирования "больших" AWS-продуктов. Могут поймать и надавать по шее (хотя это маловероятно, знаю людей которые гоняют так траффик годами).

Поэтому вместо тупого реверс-прокси можно вынести туда фронтендовые микросервисы. Ну типа "микросервис по скачиванию файлов из S3", хихи. Юзер жмет ссылку "скачать файл" - мы не отдаем файл сразу, а редиректим на Lightsail со специальной магией в URL. А там уже крутится примитивный бекенд из трех строчек на node, который ходит в S3...

В общем, вариантов миллион. Дерзайте.
Напоминаю, что сегодня кончается рут-серт LetsEncrypt "R3". В тех странах, где 30 сентября уже наступило - некоторые браузеры выдают ворнинги. REST-клиенты, мобилки и IoT могут отвалиться вообще без предупреждения.

TLDR: сертификаты Letsentrypt - cross signed сразу двумя CA и один из них станет сегодня устаревшим. Если на вашем сервере стоят intermediary серты из цепочки - их надо либо удалить, либо поставить актуальные. Т.к. если серт имеет два "path" и только один из них отдаётся сервером, то второй path браузеру надо скачивать "снаружи" и некоторые этого не делают, кидая ошибку.

И чтоб два раза не вставать не ребутить: после последнего апдейта айфоны и макось стали ругаться на сайты с TLS 1.0 и TLS 1.1, Отрубите их, если еще не.

тулза https://www.ssllabs.com/ssltest в помощь
К вопросу о "сделать плохо, но быстро" VS "сделать круто, но за год"

Я, кстати, всегда был за первое - "из говна и палок, зато вчера". Но мне, наверное, просто везло с коллегами. Которые умели и быстро, и без откровенного шлака. Зато сразу вспоминается история про GST - "Google Standard Time".

Все сервера гугла, где бы они не находились, работают в часовом поясе "Pacific Time". Сколько у них серверов, миллионы? И на всех - калифорнийское время. "UTC"? Не, не слышали. В логах, в базах, в новостных лентах все хранится в "PST". Даже в BigQuery если написать new Date() - будет PST. Когда-то в самом начале делали "быстро" и решили забить. А теперь чинить настолько страшно и сложно, что проще оставить как есть.

Кто-то в шутку решил назвать "Google Standard Time". Так и прижилось. И ничего, работает.
Есть два типа CTO - выросшие "снизу" и выросшие "сверху".

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

Потихоньку учились делегировать, нанимать, рулить командой и вот это все. Чтобы стать, наконец, CTO.

Узнаются по важному тону и любви повыступать на конференциях.

А есть "выросшие сверху" - это когда ты, сцука, сразу ЦТО. Потому что тебя взяли единственным инженером в маленький стартап. И бросили разбираться со всем "айти" сразу. Ты и фуллстек, и девопс, и seo-шник, а еще принтер почини. Ну или ты соло-фаундер своего стартапа (👋) и там - все то же самое, плюс еще вагон с тележкой.

Эти - росли вместе с компанией. И тоже потихоньку учились делегировать, нанимать, рулить командой и вот это все.

Узнаются по синдрому самозванца, красным глазам и торчащей из рюкзака клавиатуре. На конференции ездят раз в год - выспаться.

Зато те, кто выживают - становятся великими. Такими, как Эван Уоллес (CTO и кофаундер Figma), или Ли Холловей (CTO и кофаундер Сloudflare).

Последний, к сожалению, давно отошел от дел. Если еще не читали - гляньте его (грустную) историю тут. Гениальный чувак.

P.S. в комментах подсказали, что есть русский перевод на хабре: https://habr.com/ru/post/498406/
👍1
Гугл поймали на таком количестве гадостей, манипуляций и просто нарушений закона, что волосы шевелятся.

Если кто пропустил, сразу 13 штатов подали в суд на Гугл. Разборка будет проходить в суде южного округа штата Нью-Йорк (привет сериалу "Billions") и вчера в сеть выложили неотцензурированный текст иска. Хотя адвокаты Гугла оооочень старались этого не допустить, но судья решил иначе.

Там от каждого абзаца челюсть выпадает.

Гугл манипулирует ценами на рекламу через подставных покупателей, подставных продавцов и подставные биржи. В гугле есть целый отдел gTrade, который занимается только этими манипуляциями.

Гугл вступил в сговор с Facebook ("проект Blue Jedi") чтобы, в числе прочего, бороться с последними фичами Apple по блокировке трекинга на айфонах. Самое смешное, что в документах есть целый раздел, как Гугл и Фейсбук должны друг друга выгораживать, если афера вдруг вскроется.

Гугл искусственно завышает AMP-страницы в результатах новостного поиска (AMP это проприетарный гугловый CDN). А также специально замедляет "не-AMP" страницы на 1 секунду (!), чтобы доказать, что "AMP работает быстрее" - все это чтобы заманить паблишеров на формат AMP, в котором они отсекают показы других рекламных сетей.

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

Гугл Хром, в котором нельзя вырубить гугл-логин - это часть долгосрочного "проекта NERA" по осознанному и постепенному захвату контроля над Интернетом. Прямо так и пишут во внутренних документах.

Гугл постоянно вступает в переговоры с MS, Apple и Facebook, как только те запускают прайваси-фишки, пытаясь давлением и уговорами этого не допустить.

И прочая жесть.

Сам я уже года четыре не пользуюсь Хромом, а два года назад мы убрали с сайтов Гугл-аналитику и переехали на селф-хостед гугл-фонты (да, через них тоже трекают). Чего и вам советую. Единственное, с чего никак не получается слезть - это gmail :(

(кстати о кэнселлинге Хрома. Я честно пытался в FF, но если ты хоть немного фронт - это ад. Дебаг кривой, сорсы не подгружаются, де-минимизация не работает, а степ-бай-степ перескакивает через строки. Да и кого мы обманываем, все равно придется тестить в хромиуме. Пару лет назад я попробовал MS Edge на маке, да так и остался. Быстрее хрома, совместим с экстеншенами, вертикальные табы ❤️... А главное, кому еще доверить аудит кода корпорации зла - как не другой корпорации зла?)

P.S. кому интересны подробности, твит-стормы и прочие новости по теме - просто гляньте HN-поиск по "google" за неделю

P.P.S. не мог не обратить внимания, что большинство подавших иск штатов - это "красные", республиканские, традиционно консервативные штаты. Техас, Монтана, Аляска, Арканзас, Кентаки, Айдахо и тд. Это не значит что "республиканцы хорошие". Это значит, что политическая конкуренция (в обе стороны) - это очень круто.
Когда кто-то начинает спорить "чем UX-дизайн отличается от UI-дизайна", я всегда вспоминаю крутую историю про дропдаун-меню Амазона.

Вы наверняка замечали каскадные меню, которые исчезают, если "неправильно" провести по ним мышкой. Вот так. Бесит же.

Обычно с этим борются задержкой/debounce. Но глаз замечает задержку и это раздражает.

Амазон, у которого тогда был здоровенный дропдаун категорий товаров, решил проблему по другому. Скрипт следит за курсором и если "маршрут" мышки проходит внутри вот такого треугольника - правое меню не сбрасывается.

В результате дропдаун летает и не пропадает. Ничего другого от Амазона и не ждали: именно Амазон еще в 2006 году сделал знаменитое открытие, что каждые 100ms задержки роняют им выручку на 1%. Я уверен, что каждый пиксель на их, казалось бы, уродливой главной странице - на самом деле АБ-тестирован и оптимизирован до абсурда.


P.S. Я не могу понять, почему тот же самый Амазон сделал абсолютно дибильную панель AWS аж с тремя скроллбарами. Вот вам два разных отношения к дизайну - там где он влияет на выручку, и там где не очень.

P.P.S вот оригинал истории с исходниками, кому интересно
👍5
Извините, воспользуюсь каналом в личных целях. У нас вакансия. Мы ищем фуллтайм тех.саппортера (-ршу) на удаленку, с отличным английским, отвечать на тикеты клиентов.

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

Примеры тикетов



КЛИЕНТ: "Хочу инвойс"

ВЫ: "Клик-клик, вот инвойс"

ВЫ (в слэке): "Меня бесит генерить долбаные инвойсы, запилите клиентам кнопку!"



КЛИЕНТ: "Я хочу фичу Х розового цвета"

ВЫ: "А что вы пытаетесь сделать? ааа, так это уже есть! вон там"

ВЫ (в слэке): "Вашу дурацкую фичу опять никто не может найти"



КЛИЕНТ: "Селф-хостед приложение на IIS за nginx-прокси выдает ошибку [текст ошибки] после апгрейда с версии Х на Y"

ВЫ: "Смотрю исходный код, судя по коллстеку на вашем виндовс-сервере нужно обновить .net core hosting bundle"

ИЛИ: "Похоже баг, клик-клик, я завела issue в беклоге, скоро починим"

ИЛИ: "Ой, ничего не понятно, щас позову кого-нибудь"



КЛИЕНТ: ...a.....1....0LHQu9GP0YI=

ВЫ (в слэке): "АЛО, ПРОД УПАЛ, где все?!!"



ВЫ (в слэке): У меня важное свидание с парнем/девушкой, меня завтра нет

МЫ: Ок

__

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

Начальная вилка 1000-2500 Евро в зависимости от тех. знаний. У нас есть плюшки и нет зум-созвонов и митингов. Наш стек - ASPNETCore + SQL Server. Есть клиенты и из мира линух, и виндовс. Последних к сожалению много, поэтому нужно отдаленно понимать, что такое "windows-integrated авторизация" или "AD домен". Это нужно редко, но нужно... Впрочем, такому "айти" мы научим, главное хоть какой-то опыт в саппорте, свободный английский, софты и выдержка )) Плюс умение грамотно выражать мысли в письменном виде. Как говорится, Clear writing == Clear thinking

Вакансию я пока никуда не выкладывал, пусть тут повисит. Если вам понятны и комфортны все слова в примере тикета №3, шлите резюме в телеге @jitbit

UPD: в РФ у нас нет юридического лица. Но мы вместе придумаем как все официально оформить, опыт есть.

UPD2: уточню еще раз: речь о фуллтайм-занятости, не о фрилансе

UPD3: все, мы кажется нашли классного кандидата!
👍2
Обожаю "Fork", очень удобный GUI-клиент для git.

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

Но и без этого клиент прямо классный, не зря он регулярно вылезает в топы Hacker News. Быстрее, проще и удобнее всяких ГитКракенов, SourceTree, Tower и т.д.

И конечно всегда приятно увидеть хоть что-то кроссплатформенное не на долбанном электроне

Гит-гуй нужен нечасто, но когда нужен, Форк - топ. Мой любимый use case - стейджить файлы "по кусочкам". Старый добрый git add -p конечно работает, но скроллить диффы в терминале - это не для меня. Или вот интерактивный rebase, как верно подсказали в комментах.

P.S. это ни разу не реклама и вообще там есть бесплатная версия. Она раз в месяц робко напоминает, что "меня ваще-то можно купить".
Самат (❤️) позвал и допросил в своем подкасте венчурного инвестора и... я не могу это спокойно слушать.

Раз в пять минут приходилось выключать звук и орать "бляяяя" на весь пляж (ну как "пляж"... я живу в глуши и бегаю по ночам вдоль холодного, серого, дождливого моря, don't get too excited).

Все интервью пронизано красной линией "фаундеры идут на поклон к инвесторам".

Мол, это мы, фаундеры, должны заинтересовать инвестора питчем из трех предложений. Это мы, фаундеры, должны искать инвесторов в соц.сетях и осторожно писать им в личку. Это мы должны развивать софт-скиллы, знакомиться, строить нетворк и просить других, уже проинвестировнных фаундеров, порекомендовать нас фонду.

ДА СХУЯЛИ

Российские vc живут в каком-то выдуманном мире 10-летней давности.

На западе невиданный переизбыток свободных денег, в том числе из-за рекордных размеров ковидных вбросов в экономику. У всех vc- и private equity-фондов адски горит - куда бы вложить деньги своих LP. Настолько, что половина фондов уже тупо пуляет деньги в крипту.

На рынке VC происходит та же история, что и в ИТ-найме. Когда-то давно это был рынок работодателя, на котором все мы "искали работу". А теперь - это рынок кандидата, где HR-ы изо всех сил бегают за разработчиками.

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

А мы, фаундеры, будем сидеть, развалившись, на диване и выбирать среди вас самую красивую.

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

Сюрприз - заниматься маркетингом своего классного продукта. Это все равно придется делать, даже когда вам дадут инвестиции. Взаимодействие с прессой, PPC, SEO, сейлз - все эти скучные занятия вам ой как предстоят, даже после раунда на стопицот миллионов. Вот и займитесь этим заранее. И сразу цельтесь в западный рынок.

А там, глядишь, пойдут клиенты... Образуется какой-то traction, а может и выручка, а может и прибыль, а может и вуа-ля - и инвесторы-то уже не нужны? Может у вас и без них 8-значная годовая выручка в долларах?

И вот тут наступает вообще самый-самый sweet spot. Можно забыть про "инвесторов" и спокойно зарабатывать деньги. А в почте настроить фильтр: если в письме есть слова "vc" "equity" "m&a" и прочее "non-dilutive funding options" - сразу в спам, идите пожалуйста нахер. Я так и сделал, очень удобно.

Классная есть поговорка "the best time to sell is when you don't need to sell", так и с инвестициями то же самое. The best time to raise is when you don't need to raise.
Знаете, почему флаг компиляции в 64-бита называется "amd64"? Откуда вдруг "amd"?

Потому, что когда пришло время переходить на 64, умные дядьки из Интел научно посовещались и придумали архитектуру Intel 64 "Itanium". Новый, логичный, красивый стандарт светлого будущего.

Правда, набор инструкций был абсолютно новый и все старые программы немедленно сломались. Тогда пришел AMD и сказал, "мы тут на выходных слепили уродливый хак поверх x86 ISA, он типа 64, но зато типа и нет! Поэтому ваш старый 32-битный код будет просто работать". И конечно вынесли весь рынок.

И молодцы. Правильно сделали. Вошли в историю.

А слово "Itanium" не помнят даже деды вроде меня.

Я все жду, когда появится такой "amd" для протокола IPv6. На который человечество пытается безуспешно перейти уже лет... 500?

Хаки - это классно. С другой стороны, именно хаки - та причина, почему с технологиями все плохо (tm)

Мы живем в мире костылей, ставших стандартами. В мире, где про то, "как в вебе выровнять что-то по вертикали" написаны аж целые книги. Где на переход с HTTP/1 на HTTP/2 ушло 20 лет. В мире где "ChuckNorris" - это красный цвет.

Подведите к HTML-коду далекого от программирования человека и спросите "как думаешь, каким тегом делаются линки в документах?" и он такой "ну может быть <link>?"

"А вот хуй тебе!", победно крикнете вы. Нужен тег <a>! Потому что [вставить нудное и душное историческое объяснение]

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

Или вот, например, емейл. Классная штука. Уже 40 лет живет. Открытый стандарт. Знаю адрес человека - могу ему написать. Бесплатно. Но вот end-2-end шифрования в емейле - нету. Воу-воу-воу, стойте, я не про эту вашу ебаторию с PGP, GPG, публичными ключами и прочим геморроем на три дня. А вот просто - хобана - и весь емейл в мире с завтрашнего дня стал зашифрован. Нету же.

"Зашифрованный емейл" в наше время - это отправить zip-файл с паролем.

И что делать? Писать новый, "более лучший" емейл с нуля? Получится Itanium. Но ведь WhatsApp как-то смог перейти на p2p-шифрование всего за несколько месяцев? Да, но мы не хотим делать емейл закрытым и централизованным, как WhatsApp - со всеми вытекающими продажами наших данных. И "amd" для емейла тоже никак не придумают.

В общем, выхода нет и никто нам не поможет.

К чему я это все. Фаундер мессенджера Signal разродился большим постом, почему web3 - херня. Вот прямо из моей головы взял. Даже про емейл-шифрование написал, умница. Почитайте.
🔥54👍227🎉5🤩1
Меня тут спросили, за сколько в 2022 году можно продать маленький работающий стартап. Я допросил всех, до кого смог дотянуться, выяснил подробности у дружественного фонда, полистал твиттеры знакомых брокеров и вот что вышло:

SaaS с выручкой до $2млн в год: 4x-6x от годового кешфлоу.

SaaS с выручкой выше $2млн в год: 6x-12x

E-commerce: 3x-6x

Контент: 2х-4х

Речь про американский рынок. Выборка - примерно 1300 сделок за 2021 год.

Годовой кеш считают через SDE = "seller's discretionary earnings", т.е. прибыль до налогов плюс зарплаты фаундеров.

В общем, если SaaS генерирует $4млн/год вам в карман, инкорпорирован в нормальной стране, а "бас фактор" фаундера сведён к минимуму (т.е. тебя сбивает автобус, а все продолжает работать), можно постараться продать его за 40.

--

UPD по вопросам из комментов: если прибыли нет - смотрят на выручку, на хайповость ниши и на growth rate. Но такие стартапы не покупают, в них инвестируют.
👍24🤩12