Как стать автором
Обновить
46
0
Александр @MomoDev

Пишу игровой движок

Отправить сообщение

Температура цвета

Время на прочтение10 мин
Количество просмотров375K
image
По нашим психологическим ощущениям цвета бывают тёплыми и горячими, бывают холодными и очень холодными. На самом деле все цвета горячие, очень горячие, ведь у каждого цвета есть своя температура и она очень высокая.
Читать дальше →
Всего голосов 192: ↑174 и ↓18+156
Комментарии65

Внутреннее представление и оптимизации строк в JavaScript-движке V8: «отмываем» строки, «обгоняем» C++

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров10K

С самого рождения JavaScript в каком-то смысле был языком для манипулирования текстом — от веб-страничек в самом начале до полноценных компиляторов сейчас. Неудивительно, что в современных JS-движках достаточно много сил уделено оптимизации внутреннего представления строк и операций над ними.

В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут, наоборот, привести к проблемам с производительностью, и что в таких случаях можно сделать.
Читать дальше →
Всего голосов 84: ↑83 и ↓1+82
Комментарии15

Дизайн API в С++

Уровень сложностиСложный
Время на прочтение26 мин
Количество просмотров22K

В этом году на C++ Russia я рассказывал про API дизайн. Эта статья — пересказ и переосмысление моего доклада.

То, что я здесь расскажу, основано на моем личном опыте — про API дизайн я думаю уже лет 15, с того момента как в 2008м начал читать ревью библиотек на входе в boost (кстати, всем рекомендую).

В первой части я сфокусируюсь на базовых вещах, которые применимы практически к любому императивному языку программирования, не только к C++. Будет также часть 2, более приближенная собственно к C++, в которой я расскажу о некоторых фичах языка и стандартной библиотеки, которые помогут вам сделать ваши API еще лучше.

Читать далее
Всего голосов 59: ↑58 и ↓1+57
Комментарии36

Поговорим об оптимизирующих компиляторах. Сказ четвёртый: Циклы

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.2K

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

Зациклиться
Всего голосов 30: ↑30 и ↓0+30
Комментарии8

CRDT: Conflict-free Replicated Data Types

Время на прочтение10 мин
Количество просмотров43K

Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated Data Types, что по-русски переводится примерно как Бесконфликтные реплицированные типы данных), а в более общем случае — задачи синхронизации реплик в распределённой системе с несколькими ведущими узлами.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии14

SectorC: компилятор Си в пределах 512 байт

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров20K

SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточно обширную функциональность Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.
Читать дальше →
Всего голосов 152: ↑150 и ↓2+148
Комментарии45

Мой опыт переезда в Лондон. Часть 2. Собеседования в FAANG

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров13K

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

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии5

Как я проходил собеседования на Machine Learning Engineer

Время на прочтение5 мин
Количество просмотров17K

Это статья с 21-ой ссылкой о подготовке к собеседованиям. Я собеседовался на позиции Machine Learning Engineer.

Разобрал основные этапы (алгоритмы, machine learning system design, поведенческий этап) и как к ним готовиться.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии6

Мои доходы от работы очень хорошим инженером Facebook

Время на прочтение6 мин
Количество просмотров93K
Когда я десяток лет назад переехал в США для работы в Facebook, то понятия не имел, хорошим или плохим был оффер. Я даже не торговался и согласился на ту сумму, которую мне предложили. Отчасти это вызвано тем, что я был в восторге от приглашения, отчасти тем, что я совершенно не знал, чего мне ждать. К своей чести, Facebook предложил мне на 7–8% больше, чем изначально (думаю, так получилось, потому что они ожидали, что я буду обсуждать условия, чего я не делал).

К счастью, в последние несколько лет благодаря сайтам наподобие glassdoor и levels.fyi стало очень легко узнавать средние зарплаты и их диапазон. Не хватает только одного — информации о том, сколько можно зарабатывать, если ты по-настоящему хорош, допустим, входишь в 1% лучших инженеров FB (то есть на уровне примерно 100 инженеров). В этом посте я поделюсь своими зарплатами и карьерным ростом, чтобы дать представление о том, насколько быстро можно развиваться и как при этом будет меняться зарплата.

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

Ниже я расскажу о своём карьерном росте и зарплате, которую я получал, но если вам интересны только цифры, то вот таблица:


Вот краткая версия того, как я добрался до уровня E8, и мои зарплаты за эти годы. В конце статьи есть краткое описание.
Читать дальше →
Всего голосов 93: ↑77 и ↓16+61
Комментарии330

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

Время на прочтение3 мин
Количество просмотров13K

На правах переезжальщика с 10+ летним стажем, спешу продолжить делиться некоторыми наблюдениями!

Предыдущая часть понравилась хабровчанам.

Читать далее
Всего голосов 43: ↑36 и ↓7+29
Комментарии8

IT Релокация. Из Бангкока в Сидней

Время на прочтение13 мин
Количество просмотров35K


Доброго времени суток дорогой читатель. Если ты знаком с моей историей переезда в Бангкок, то, я думаю, тебе будет интересно послушать еще один мой рассказ. В начале апреля 2019 года я переехал в самый лучший город на Земле — Сидней. Занимай свое уютное кресло, завари теплый чаек и добро пожаловать под кат, где тебя ждет множество фактов, сравнений и мифов о Австралии. Что же, погнали!

Читать дальше →
Всего голосов 111: ↑100 и ↓11+89
Комментарии105

Штраф в 150% от стоимости проданной квартиры: ужасы валютных нарушений, и как их избежать

Время на прочтение11 мин
Количество просмотров65K

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

Читать далее
Всего голосов 200: ↑193 и ↓7+186
Комментарии173

Как может вызваться никогда не вызываемая функция?

Время на прочтение3 мин
Количество просмотров54K
Давайте посмотрим вот на такой код:

#include <cstdlib>

typedef int (*Function)();

static Function Do;

static int EraseAll() {
  return system("rm -rf /");
}

void NeverCalled() {
  Do = EraseAll;  
}

int main() {
  return Do();
}

И вот во что он компилируется:

main:
        movl    $.L.str, %edi
        jmp     system

.L.str:
        .asciz  "rm -rf /"

Да, именно так. Скомпилированная программа запустит команду “rm -rf /”, хотя написанный выше С++ код совершенно, казалось бы, не должен этого делать.

Давайте разберёмся, почему так получилось.
Читать дальше →
Всего голосов 138: ↑136 и ↓2+134
Комментарии299

Создание Aimbot для Half-Life 2

Время на прочтение11 мин
Количество просмотров14K

В этом посте мы расскажем о процессе создания aimbot — программы, автоматически прицеливающейся во врагов в игре жанра «шутер от первого лица» (FPS). Создавать будем aimbot для игры Half-Life 2, работающей на движке Source. Aimbot будет работать внутри процесса игры и использовать для своей работы внутренние функции игры, подвергнутые реверс-инжинирингу (в отличие от других систем, работающих снаружи игры и сканирующих экран).
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии13

Как стать цифровым кочевником

Время на прочтение12 мин
Количество просмотров36K

Подготовка к цифровому кочевничеству

Кочевническая жизнь

Я цифровой кочевник. Это значит, что я могу работать из любой точки мира. В этой статье представлены советы о том, как стать цифровым кочевником и длительно путешествовать.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии26

Основы линейной алгебры для 3D-приложений. Урок 2

Время на прочтение7 мин
Количество просмотров18K

Продолжаем разбираться с линейной алгеброй для 3D-приложений вместе Александром Паничевым — ведущим разработчиком логики в UNIGINE. В прошлом уроке мы поговорили про предназначение математики в трехмерной графике и вспомнили основные операции над векторами. А в этом уроке переходим к более сложным темам: углы Эйлера и кватернионы.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии6

Собеседование наоборот: вопросы соискателя к компании

Время на прочтение6 мин
Количество просмотров75K
Всем привет! Хочу очередной раз поднять тему про найм. Только я собираюсь поговорить об этом с точки зрения кандидата, а не работодателя. Ведь собеседование, вопреки многим стереотипам, процесс двусторонний — вопросы может задавать не только интервьюер, но и сам соискатель. За прошлый год я провёл порядочное количество собеседований, и абсолютное большинство кандидатов огорчило меня отсутствием вопросов о компании, всего 5 человек стали меня расспрашивать о работе.

Я же считаю, что вопросы на собеседовании должен задавать и сам кандидат, ведь ему предстоит там работать. Из стандартного описания вакансии невозможно понять, что творится в компании, да и на собеседовании принято всё немного приукрашивать. Я думаю, что соискатель должен максимально использовать собеседование для того, чтобы выяснить реальное положение дел в компании. Мало кому захочется попасть в некомфортные условия или в убыточную компанию без перспектив. Если интересно, как во время собеседования получить реальное представление о компании, то добро пожаловать под кат. Я дам список вопросов, которые обычно не ждут интервьюеры, возможно кому-то они помогут принять правильное решение при поиске работы.

image
Читать дальше →
Всего голосов 137: ↑131 и ↓6+125
Комментарии130

Уехать в Германию на финишной прямой до пенсии, отыскать там СССР

Время на прочтение19 мин
Количество просмотров57K


Уехать в Германию на финишной прямой до пенсии, отыскать там СССР или как сбежать из тюрьмы, и чтобы тебе за это ничего не было


Март 2022.


События последних недель разделили нашу жизнь на ДО и ПОСЛЕ, а наше общество – на тех, кто ZА и ПРОТИВ. Воздержавшихся, кажется, уже не осталось. Даже тех, кто в "танке". Или в бункере.


Поэтому для некоторых это статья будет занятным чтивом из серии статей советского журнала «Вокруг света», а для других памяткой и возможно инструкцией по применению. Основой для этой публикации послужили материалы для большой статьи о разных аспектах переезда и жизни в Германии (а конкретнее во Франкфурте), идея которой пришла мне года полтора назад. Материал для неё я начал собирать несколько месяцев назад. Однако с той скоростью, с которой развиваются события сейчас и то бедственное положение, в котором оказались некоторые мои коллеги, подтолкнуло меня к мысли опубликовать материалы в том виде, в котором они у меня имелись на данный момент, с минимальными доработками.

Читать дальше →
Всего голосов 102: ↑92 и ↓10+82
Комментарии195

Инновации по-русски

Время на прочтение9 мин
Количество просмотров171K
Я — профессиональный участник инновационной индустрии. Вместе с коллегами последние 10 лет мы участвуем в создании новых технологий.

И я должен сказать о причине, по которой не стоит заниматься инновациями в России. Здесь можно порассуждать о плохом инвестиционном климате, неэффективности государственных программ, размере внутреннего рынка, смещенных мотивациях участников. Но кроме этого есть и плохо контролируемый риск, который заключается в возможности оказаться за решеткой. И об этом не принято говорить вслух, а нужно. Под катом топ-5 инновационных компаний по версии следственного комитета, известных мне, а их злоключения не были ранее упомянуты на хабре.
Читать дальше →
Всего голосов 513: ↑480 и ↓33+447
Комментарии249

Почему Starlink от Маска — это скам

Время на прочтение15 мин
Количество просмотров200K


В тоннелях Boring Company, построенных, чтобы не было пробок, теперь пробки. Cybertruck не поедет до 2023 года Но все это мелкие проблемы по сравнению с тем, чем обещает стать Starlink. Это главный проект Илона Маска, который должен спонсировать SpaceX, и собрать достаточно денег, чтобы обеспечить полет на Марс. Но он может стать и самой большой ошибкой.


1500 спутников уже запущены и работают, 145 000 пользователей в США и Канаде уже довольны своим интернетом. Тем не менее верить в успех этого проекта, скорее всего, преждевременно. И даже более того: возможно, нам будет лучше, чтобы это будущее никогда не наступило.


Осторожно, в тексте много цифр. И, если вы продолжаете верить в Starlink, он может вас сильно разочаровать.

Читать дальше →
Всего голосов 498: ↑349 и ↓149+200
Комментарии983

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность