Pull to refresh
135
0
Михаил Бусырев @Aquahawk

инженер

Send message

Основы полнотекстового поиска в ElasticSearch. Часть вторая

Level of difficultyMedium
Reading time9 min
Views24K

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

Несколько слов про анализ текста

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

Мы уже познакомились с некоторыми типами Elasticsearch, но в этом разделе будем рассматривать только два — keyword и text. Тип text анализируется для полнотекстового поиска. Тип keyword преимущественно остается без изменений для точного поиска, сортировки и агрегации.

Читать далее

Основы полнотекстового поиска в ElasticSearch. Часть третья

Level of difficultyMedium
Reading time4 min
Views8.9K

Это третья и заключительная статья из цикла, в которой рассмотрим стандартную модель ранжирования документов в Elasticsearch.

После того как определено множество документов, которые удовлетворяют параметрам полнотекстового запроса, Elasticsearch рассчитывает метрику релевантности для каждого найденного документа. По значению метрики набор документов сортируется и отдается потребителю.

В Elasticsearch существует несколько моделей ранжирования документов. По умолчанию используется Okapi BM25.

Читать далее

Баланс и кривая интереса в казуальных играх

Level of difficultyMedium
Reading time6 min
Views4.4K

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

В этой статье я расскажу, как реализовал баланс для своей мобильной игры в жанре Match-2.

Читать далее

Как управлять финансами, чтобы выйти на раннюю пенсию, а не в окно

Level of difficultyMedium
Reading time7 min
Views24K

Сегодня поговорим о банальных вещах: надо мыть руки перед едой, регулярно делать зарядку и получать доходы от инвестирования. Кто выполняет все три условия, может дальше не читать, с остальными будем обсуждать жидкое мыло с кремом и примеры “инвестирования” в 2023 г. 

Надо отметить, что под инвестированием будут рассматриваться и спекуляции, условное отличие этих понятий в сроках и способах применения денег.

Читать далее

Godot — это не новая Unity. Анатомия вызова API в Godot

Reading time26 min
Views27K

Эта статья выросла из бесед с Godot-разработчиками. Они заботятся о том, чтобы поднимаемые проблемы решались, и стремятся улучшать ситуацию. Определённо, в Godot грядут серьёзные изменения, но сама платформа пока находится на ранней стадии развития. Поэтому сложно говорить с уверенностью, что именно изменится и в какой степени. На самом деле, я полагаю, что Godot ждёт самое светлое будущее.  

Апдейт: ведущий разработчик Godot Хуан Линьетски опубликовал ответ на этот пост.

Читать далее

25 Гбит/с дома, часть 1

Level of difficultyMedium
Reading time16 min
Views50K

Я живу в маленьком сельском городке в Швейцарии и довольно давно являюсь клиентом init7 (местный провайдер). Этот провайдер хорошо известен тем, что в данный момент только они начали пару лет назад рекламировать доступное для частных лиц 25 Гбит/с подключение. Впрочем, им требуется время, чтобы обновить оборудование в точке присутствия, а, в моем случае, им нужно было открыть где-нибудь поблизости новую точку присутствия (до этого у них был договор с другим провайдером об аренде части оборудования и места в стойке, что по прежнему давало мне оптику в квартиру, она по прежнему была не GPON'ом, но скорость была ограничена гигабитом). Но в 2023 году они наконец анонсировали скорое открытие POPа и перевод всех пользователей на их основной продукт (fibre7). То что это новый POP для меня означает, что там сразу будет доступен 25 Гбит/с тариф.

Читать далее

Неочевидные возможности короля картографического ПО на гаджетах

Reading time10 min
Views57K

⋮Дисклеймер:
Все нижеизложенное является лишь наблюдением и субъективной оценкой на основе личного опыта автора, а не утверждением.

🔥 Примечание — эта статья автора расположилась на первом месте по рейтингу/просмотрам в хабе OSM за 2023г.

Читать далее

Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS

Reading time17 min
Views5.8K

Чем больше задач выполняет приложение, тем тщательнее нужно следить за его производительностью. Под катом на примере Яндекс Браузера и приложения Яндекс с Алисой подробно расскажу о том, как мы отслеживаем аномалии метрик производительности на стороне клиента с помощью перф‑тестов: основные принципы универсальны, и вы легко сможете использовать их для других типов приложений.

А ещё вас ждёт чек‑лист, на что обратить внимание и к каким инструментам присмотреться.

Читать далее

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views48K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

Лидерство руководителя: как привести коллектив к работе не за страх, а за совесть

Level of difficultyEasy
Reading time24 min
Views16K

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

Читать далее

Что наука не может сказать об изменении климата

Level of difficultyEasy
Reading time17 min
Views3.8K

Как "…говорит наука" захватила власть в климатических дискуссиях - и почему она сбила нас с пути

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

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

Читать далее

Windows — причина медленного интернета

Level of difficultyEasy
Reading time4 min
Views126K

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

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

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

Читать далее

«Чистый» код, ужасная производительность

Level of difficultyEasy
Reading time17 min
Views73K

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

Читать далее

Я бы пересмотрел вообще всё

Reading time4 min
Views78K

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


Вот примеры.


1) Например, DRY — don’t repeat yourself. Хорошее полезное правило, но его можно довести до маразма. Из того что я встречал на практике: есть два разных по бизнес-смыслу раздела, которые начинались с простого CRUD, и многие части (и фронта и бека) выглядели во многом абсолютно одинаково. Если их объединить с помощью общей высосанной из пальца абстракции и тем самым избавиться от небольшого дублирования кода, то потом (очень скоро) можно будет сойти с ума, потому что эти две вещи скоро разъедутся, обрастая кастомными фичами, и абстракция будет только вредить. Нельзя абстрагировать неабстрагуемое, даже если DRY нарушен.


«[Немного] дублирования обходится гораздо дешевле, чем неправильная абстракция» — Сэнди Мец

Т.е. DRY — хороший принцип, но бывают исключения.

Читать дальше →

Делаем import/require ясными и красивыми

Level of difficultyMedium
Reading time4 min
Views7.1K

Довольно часто в проектах встречается использование относительных import/require. Если это маленький проект, и подключается модуль из текущей папки, то это приемлемо, но при разрастании проекта и глубины вложенности папочной структуры без слез смотреть на это нельзя:

Читать далее

Учим PixiJS на играх

Level of difficultyEasy
Reading time60 min
Views36K

В статье описал разработку 13-ти игр на PixiJS. Около 70% текста - это описание механики игр, остальное - реализация на PixiJS. Получилось много текста, т.к. описывать советы для PixiJS интереснее с примером из игр.
Самая последняя игра будет самой сложной и интересной.

Читать далее

Не Jira единой: какие продукты формируют рынок систем управления проектами

Reading time6 min
Views8.3K

Говоря об управлении проектами или руководстве деятельностью  команд, трудно обойти стороной Jira. Одни считают, что это одна из лучших систем управления проектами, другие называют ее баг-трекером или идеальной тикет-системой (инструментом для организации работы с клиентскими обращениями). Jira также рассматривают как полноценную ITSM-систему и мощный инструмент для Agile-трансформации. Если взглянуть на одну из ниш, которую занимают продукты Attlasian на зарубежном рынке, а именно bug’n’issue tracking, то можно увидеть, что Jira является стандартом де-факто для более чем 85% компаний. Что касается российского рынка, то ситуация примерно такая же. По опыту экспертов “Консист Бизнес Групп”, которые взаимодействуют со многими заказчиками и дистрибьюторами, безоговорочным лидером в корпоративном сегменте для нужд управления задачами/заявками оказалась именно Jira. Теперь давайте рассмотрим, как же изменился российский рынок систем управления проектами с уходом Jira и какие продукты за этот год на нем обосновались. 

Читать далее

Быстрый старт карьеры в бизнес-анализе или путь к профессии бизнес-аналитика через работу консультантом по внедрению ПО

Level of difficultyEasy
Reading time5 min
Views4.4K

В качестве лирического отступления ?

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

В интернете имеется бесчисленное количество материалов по этой теме, а также всевозможных курсов по профессии бизнес‑аналитика.

Не могу не отметить, что время неумолимо движется вперед, но никто не описал профессию бизнес‑аналитика лучше, чем Карл Вигерс и Джой Битти в своей книге «Разработка требований к программному обеспечению».

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

Читать далее

Быстрый двоичный поиск без ветвления

Level of difficultyMedium
Reading time15 min
Views17K

Мои читатели — занятые люди, поэтому сразу перейду к делу. Вот она, самая быстрая обобщённая (и простая) реализация двоичного поиска на C++:

template <class ForwardIt, class T, class Compare>
constexpr ForwardIt sb_lower_bound(
      ForwardIt first, ForwardIt last, const T& value, Compare comp) {
   auto length = last - first;
   while (length > 0) {
      auto rem = length % 2;
      length /= 2;
      if (comp(first[length], value)) {
         first += length + rem;
      }
   }
   return first;
}

Тот же интерфейс функции, что и у std::lower_bound, но вдвое быстрее и короче. «Без ветвления», потому что if компилируется в команду условной передачи, а не в ветвление/условный переход. Ближе к концу статьи мы изучим опции компилятора и даже более быстрые версии полностью без ветвления. Для понимания этой статьи не нужны особые знания в C++. Достаточно понимать, что итераторы (first и last) по сути являются указателями на элементы массива, хотя могут указывать на один элемент дальше, чем последний элемент массива. Можете не обращать внимания на template, class, constexpr и &. Вот если бы существовал быстрый и чистый язык, работающий на уровне железа...1 2
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity