Review: The Geek Way by Andrew McAfee

Книга подробно рассматривает и анализирует ключевые черты успешных компаний, таких как Amazon, Apple, Microsoft и т.д. В ней выделены четыре основные области: чувство ответственности за продукт (ownership), открытость (openness), скорость (speed) и наука (science). Из всех четырех именно открытость подчёркивается как ключ к остальным качествам, поскольку она естественным образом обеспечивает их реализацию.

Для себя я свожу суть книги к двум аспектам: среда и скорость.

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

Read More…

Яркий кокаин: цвета и дофамин

Введение

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

Через месяц я заметил следующие изменения:

  1. Мне стали больше нравиться мои фотографии в новых приглушённых цветах — они кажутся более естественными.
  2. Цвета в реальном мире теперь кажутся более яркими. Они как бы те же самые, но немного другие.
  3. Мне трудно смотреть на экраны других людей — кажется, что цвета прожигают сетчатку. Они выглядят чрезмерно насыщенными.
  4. Я больше не могу редактировать свои фотографии :) В большинстве случаев они кажутся мне вполне нормальными — спокойные приглушённые тона, слегка мрачные, но мне это нравится.
    Моя жена сказала, что это похоже на вкус: если привыкнуть к простым вкусам, можно почувствовать более широкий и нюансированный диапазон по сравнению с теми, кто ест чрезмерно сладкую, острую или солёную еду.

Мне очень нравится то, как я сейчас воспринимаю цвета, и я хочу продолжать в том же духе ещё какое-то время.

Read More…

Python Pipes

Я всегда хотел иметь способ создавать конвейеры обработки данных в Python, используя пайпы, что-то вроде range(10) | F(is_odd) | P(lambda x: x * 2), вместо функций, генераторов, map’ов и циклов.
Так что я попробовал…

Идея довольно простая: давайте создадим класс с реализованными операторами | и ||, то есть пайпами.

    def __or__(self, other):
        other.source = self
        return other

    def __ror__(self, other):
        self.source = (
            iter(other)
            if not isinstance(other, (str, bytes)) and hasattr(other, "__iter__")
            else other
        )
        return self

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

Read More…

Демо экспериментальной силы: Визуализация частотного и байесовского подходов

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

Всё, что вы слышите

Мне нравится идея, которую я почерпнул из одного из постов Йоши Баха, что все, что мы слышим, автоматически исполняется нашим мозгом, как будто это собственные мысли, даже когда мы не обращаем на это внимания. И что это уязвимость безопасности, которая открывает ворота для всевозможных манипуляций. Я часто возвращаюсь к этой мысли, поэтому решил изложить ее на “бумаге”.

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

Read More…

Рекомендательная система на основе HNSW и экспоненциальных скользящих средних

Введение

Я читал оригинальную статью о “Hierarchical Navigable Small Worlds (HNSW)” https://arxiv.org/abs/1603.09320, которая оказалась гораздо легче для понимания, чем все те видео на YouTube, которые я пытался посмотреть, и статьи, которые читал. HNSW — это вероятностная структура данных для поиска соседей в многомерном пространстве.

Одно из практических применений HNSW — это поиск семантически близких объектов. Прочтение этой статьи и некоторые другие активности заставили меня задуматься, смогу ли я быстро реализовать рекомендательную систему, которая объединяет три вещи: HNSW, скользящие средние и случайность.

Read More…

Скользящие средние

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

А затем возник вопрос: если представить, что вы хотите использовать это в продакшене, как можно вычислить усреднённые эмбеддинги для миллионов пользователей с мгновенными обновлениями и без пакетной обработки данных оффлайн?

Поэтому я написал несколько тестов для следующих случаев:

Read More…

Хаотично-добрый

Несколько дней назад менеджер из соседней команды спросил меня, почему в разделе «Чем я занимаюсь» моего рабочего профиля указано «Chaotic Good» (Хаотично-добрый). Этот вопрос не выходит у меня из головы, поэтому нужно записать свои мысли, чтобы освободиться.

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

Read More…

Классическая Заправка для Салата

Ингредиенты

У меня нет понятия, сколько именно ингредиентов вам понадобится, все измерения приблизительны.

  • Бальзамический уксус или любая кислая субстанция. Попробуйте сок лайма — у него приятный аромат. 1–2 ст. ложки. Наверное.
  • Оливковое масло или любое другое масло, попробуйте арахисовое. 3–6 ст. ложек. Кто знает, сколько точно.
  • Горчица. Это стабилизатор, чтобы сохранить эмульсию. Немного.
  • Соль. Щепотка?
  • Перец. Немного.

Процесс

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

Read More…

Алгоритмы шардинга (разделения) данных

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

Введение

Шардинг — это процесс назначения элемента конкретному шарду (разделу) — меньшему фрагменту данных из большой базы данных или другого сервиса. Основная идея заключается в том, что мы можем распределить данные или сервис по нескольким местоположениям, обрабатывать большие объёмы данных, справляться с большим количеством запросов, а с репликацией мы можем масштабироваться ещё больше и повысить отказоустойчивость системы. Однако нам нужно иметь чёткие правила, как назначать разделы (шарды), чтобы корректно перенаправлять запросы в нужное место.

Read More…