SlideShare a Scribd company logo
1 of 88
Download to read offline
Полнотекстовый	
  поиск	
  по	
  почте	
  
Mail.Ru	
  
Дмитрий	
  Калугин-­‐Балашов	
  
Браузер	
  
Перлячка	
   Браузер	
  
Перлячка	
   Браузер	
  
Поисковый	
  демон	
   Перлячка	
   Браузер	
  
Поисковый	
  демон	
   Перлячка	
   Браузер	
  
Почтовый	
  демон	
  
Поисковый	
  демон	
   Перлячка	
   Браузер	
  
Почтовый	
  демон	
  
Поисковый	
  демон	
   Перлячка	
   Браузер	
  
Почтовый	
  демон	
  
Поисковый	
  демон	
   Перлячка	
   Браузер	
  
Обратный	
  индекс	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Word	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Word	
   FirstForms	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Word	
   FirstForms	
   ToUpper	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Word	
   FirstForms	
   ToUpper	
   CRC32	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Word	
   FirstForms	
   ToUpper	
   CRC32	
  
Токенизация	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
Токенизация	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  
Токенизация	
  
/var/mail/vdomains/mail.ru/…	
  
Токенизация	
  
/var/mail/vdomains/mail.ru/…	
  
Токенизация	
  
/var/mail/vdomains/mail.ru/…	
  
Токенизация	
  
hap://aaa.bbb/ccc?ddd=eee#fff	
  
Токенизация	
  
hap://aaa.bbb/ccc?ddd=eee#fff	
  
Обратный	
  индекс	
  
Word	
  
Word	
  
…	
  
Word	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
NULL	
   NULL	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
NULL	
   NULL	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
NULL	
   NULL	
  
N	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
NULL	
   NULL	
  
N	
   DocID	
   DocID	
   …	
   DocID	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
NULL	
   NULL	
  
N	
   DocID	
   Zone	
   DocID	
   Zone	
   …	
   DocID	
   Zone	
  
Обратный	
  индекс	
  
Word	
   Offset	
  
Word	
   Offset	
  
…	
   …	
  
Word	
   Offset	
  
N	
   DocID	
   Zone	
   DocID	
   Zone	
   …	
   DocID	
   Zone	
  
Meta[0]	
   Meta[1]	
   …	
   Meta[255]	
  
Бинарный	
  лог	
  
Бинарный	
  лог	
  
Transacson	
   Transacson	
   Transacson	
   …	
   Transacson	
  
Бинарный	
  лог	
  
Transacson	
   Transacson	
   Transacson	
   …	
   Transacson	
  
Header	
   Body	
  
Бинарный	
  лог	
  
Transacson	
   Transacson	
   Transacson	
   …	
   Transacson	
  
Header	
   Body	
  
DocID	
  
Length	
  
CRC32	
  
Бинарный	
  лог	
  
Transacson	
   Transacson	
   Transacson	
   …	
   Transacson	
  
Header	
   Body	
  
DocID	
  
Length	
  
CRC32	
  
Command	
   Command	
   Command	
   …	
   Command	
  
Бинарный	
  лог	
  
Transacson	
   Transacson	
   Transacson	
   …	
   Transacson	
  
Header	
   Body	
  
DocID	
  
Length	
  
CRC32	
  
Command	
   Command	
   Command	
   …	
   Command	
  
CMD_WORDS	
  
CMD_WORDS2	
  
Поиск	
  
Поиск	
  
Двоичный	
  поиск	
  по	
  обратному	
  индексу	
  
Поиск	
  
Двоичный	
  поиск	
  по	
  обратному	
  индексу	
   Линейный	
  поиск	
  по	
  бинарному	
  логу	
  
Поиск	
  
Двоичный	
  поиск	
  по	
  обратному	
  индексу	
   Линейный	
  поиск	
  по	
  бинарному	
  логу	
  
U	
  
Поиск	
  
Двоичный	
  поиск	
  по	
  обратному	
  индексу	
   Линейный	
  поиск	
  по	
  бинарному	
  логу	
  
U	
  
Поиск	
  
Двоичный	
  поиск	
  по	
  обратному	
  индексу	
   Линейный	
  поиск	
  по	
  бинарному	
  логу	
  
U	
  
20	
  Mb,	
  400	
  ms	
  
Компактификация	
  
Компактификация	
  
Компактификация	
  
Компактификация	
  
qsort()	
   qsort()	
   qsort()	
   qsort()	
   qsort()	
  
Компактификация	
  
qsort()	
   qsort()	
   qsort()	
   qsort()	
   qsort()	
  
Компактификация	
  
qsort()	
   qsort()	
   qsort()	
   qsort()	
   qsort()	
  
merge	
  
Числовые	
  зоны	
  
Числовые	
  зоны	
  
DocID	
   Offset	
  
DocID	
   Offset	
  
…	
   …	
  
DocID	
   Offset	
  
NULL	
   NULL	
  
Числовые	
  зоны	
  
DocID	
   Offset	
  
DocID	
   Offset	
  
…	
   …	
  
DocID	
   Offset	
  
NULL	
   NULL	
  
N	
   NZ	
   NZ	
   …	
   NZ	
  
Числовые	
  зоны	
  
10000	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
  
10000	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
  
10000	
   2000	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
  
10000	
   2000	
   500	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
  
10000	
   2000	
   500	
   150	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
   Ranker	
  
10000	
   2000	
   500	
   150	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
   Ranker	
  
10000	
   2000	
   500	
   150	
   150	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
   Ranker	
   Limiter	
  
10000	
   2000	
   500	
   150	
   150	
  
Числовые	
  зоны	
  
Filter	
   Filter	
   Filter	
   Ranker	
   Limiter	
  
10000	
   2000	
   500	
   150	
   150	
   25	
  
Текстовые	
  зоны	
  
Текстовые	
  зоны	
  
Length	
   Text	
  
Текстовые	
  зоны	
  
I	
   G Length	
   Text	
  
Текстовые	
  зоны	
  
I	
   G Length	
   Text	
  
iconv:	
  cp1251/uƒ8	
  
Текстовые	
  зоны	
  
I	
   G Length	
   Text	
  
iconv:	
  cp1251/uƒ8	
  
gzip:	
  yes/no	
  
Текстовые	
  зоны	
  
DocID	
   Offset	
  
DocID	
   Offset	
  
…	
   …	
  
DocID	
   Offset	
  
NULL	
   NULL	
  
N	
   NZ	
   NZ	
   …	
   NZ	
  
Текстовые	
  зоны	
  
DocID	
   Offset	
  
DocID	
   Offset	
  
…	
   …	
  
DocID	
   Offset	
  
NULL	
   NULL	
  
N	
   NZ	
   NZ	
   …	
   NZ	
   N	
   TZ	
   TZ	
  
Индекс	
  саджестов	
  
Индекс	
  саджестов	
  
Prefix	
  
Prefix	
  
…	
  
Prefix	
  
NULL	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
  
Prefix	
   Count	
  
…	
   …	
  
Prefix	
   Count	
  
NULL	
   NULL	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
N	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
N	
   Posƒix	
   …	
   Posƒix	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
N	
   Length	
   Posƒix	
   …	
   Length	
   Posƒix	
  
Индекс	
  саджестов	
  
Prefix	
   Count	
   Offset	
  
Prefix	
   Count	
   Offset	
  =	
  NULL	
  
…	
   …	
   …	
  
Prefix	
   Count	
   Offset	
  
NULL	
   NULL	
   NULL	
  
N	
   Length	
   Posƒix	
   Count	
   …	
   Length	
   Posƒix	
   Count	
  
Что	
  дальше?	
  
Поиск	
  в	
  облаке	
  
•  set(key,	
  value);	
  
•  get(key1,	
  key2);	
  
•  del(key1,	
  key2);	
  
Поиск	
  в	
  облаке	
  
•  email|w[WORD][DOCID]	
  :	
  z1,z2,z3	
  
•  email|t[TZ]	
  :	
  text	
  
•  email|d	
  :	
  docid,docid,…	
  
Вопросы?	
  
rvncerr@rvncerr.org	
  
d.kalugin-­‐balashov@corp.mail.ru	
  
	
  

More Related Content

What's hot

Лекция 5
Лекция 5Лекция 5
Лекция 5itc73
 
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)corehard_by
 
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/LinuxSECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/LinuxSECON
 
Python&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.byPython&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.byPython Meetup
 

What's hot (6)

file handling in c
file handling in cfile handling in c
file handling in c
 
Linux commands
Linux commandsLinux commands
Linux commands
 
Лекция 5
Лекция 5Лекция 5
Лекция 5
 
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)
упрощаем переход от Json к c++ структурам и обратно (николай гродзицкий)
 
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/LinuxSECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
 
Python&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.byPython&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.by
 

Similar to DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, Mail.ru, Москва

!Predictive analytics part_3
!Predictive analytics part_3!Predictive analytics part_3
!Predictive analytics part_3Vladimir Krylov
 
Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)Alexander Kirillov
 
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияЕсть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияNicolay Velizhanin
 
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниAndroid: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниGregory Klyushnikov
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с ElasticsearchОмские ИТ-субботники
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupMail.ru Group
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.MageCloud
 
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Platonov Sergey
 
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API: SyntaxTree vs CodeDom, SemanticModel vs ReflectionRoslyn API: SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs ReflectionDenis Tsvettsih
 
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Yandex
 
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)mainstreamless
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машинRoman Dvornov
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Alex Ott
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхVasil Remeniuk
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняAlexander Granin
 
Универсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPУниверсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPИван Кочуркин
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 

Similar to DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, Mail.ru, Москва (20)

Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
!Predictive analytics part_3
!Predictive analytics part_3!Predictive analytics part_3
!Predictive analytics part_3
 
Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)
 
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияЕсть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
 
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизниAndroid: низкоуровневые мультимедиа API и их применение в реальной жизни
Android: низкоуровневые мультимедиа API и их применение в реальной жизни
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.
 
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“
 
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API: SyntaxTree vs CodeDom, SemanticModel vs ReflectionRoslyn API: SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
 
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
 
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодня
 
Универсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHPУниверсальный сигнатурный анализ кода на C#, Java, PHP
Универсальный сигнатурный анализ кода на C#, Java, PHP
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 

More from it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 

DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, Mail.ru, Москва