Pull to refresh
40
0
Юрий Бабуров @buriy

Web, AI, Deep Learning, Python

Send message

Как мы выбирали между Elastic и Tarantool, а сделали свою (самую быструю) in-memory БД. С Join и полнотекстовым поиском

Reading time10 min
Views47K

Всем привет.


С середины 2016 года мы проектируем и разрабатываем новое поколение платформы. Принципиальное отличие от первого поколения — поддержка API "тонкого" клиента. Если старая платформа предполагает, что на клиента при запуске загружается метаинформация о всем контенте, который доступен для абонента, то новая платформа должна отдавать срезы данных отфильтрованные и отсортированы для отображения на каждом экране/странице.


Высокоуровневая архитектура на уровне хранения данных внутри системы — постоянное хранение всех данных в централизованном реляционном SQL хранилище. Выбор пал на Postgres, тут никаких откровений. В качестве основного языка для разработки — выбрал golang.


У системы порядка 10м пользователей. Мы посчитали, что с учетом профиля теле-смотрения, 10М пользователей может дать сотни тысяч RPS на всю систему.



Это означает, что запросы от клиентов и близко не стоит подпускать к реляционной SQL БД без кэширования, а между SQL БД и клиентами должен быть хороший кэш.


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

Читать дальше →
Total votes 79: ↑74 and ↓5+69
Comments117

Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

Reading time6 min
Views52K
Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

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

Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

Под катом семь простых идей, которые вы сможете использовать для улучшения своих проектов.

1. Для создания иерархии используем цвет и вес вместо размера



Читать дальше →
Total votes 68: ↑67 and ↓1+66
Comments28

Бизнес, пройдемте…

Reading time8 min
Views34K
— Бизнес, остановитесь. Пройдемте.

— Куда, зачем?

— Там узнаете. Поверьте, это в ваших же интересах.

— Надеюсь, ненадолго? У меня куча дел, надо деньги зарабатывать. Вас кормить, например.

— От вас зависит, надолго или нет. Идете?

— Да.
Читать дальше →
Total votes 77: ↑50 and ↓27+23
Comments34

Поиск под капотом. Облачная индексация

Reading time10 min
Views7.4K

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



Заодно у меня получилось рассмотреть основные функции и методы Apache Spark, так что данную статью можно рассматривать еще и как небольшой туториал по спарку.

Total votes 20: ↑19 and ↓1+18
Comments6

Почему вам должно быть скучно на работе

Reading time3 min
Views61K
Эти советы, возможно, не все найдут полезными. Они адресованы тем, кому на работе бывает скучно. Так скучно, что уныние немного скрашивают лишь утренний контактик и послеобеденный ютубчик. Вот именно от них вам придется отказаться. Зачем? Сейчас узнаете.
Чтобы стало еще скучнее, конечно же!
Total votes 128: ↑114 and ↓14+100
Comments116

Правда ли, что ПМ делает что-то полезное и что нужно, чтобы им стать

Reading time11 min
Views20K
image

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

Более 10 лет в разных должностях я занимаюсь проектным управлением. Поработал в четырёх крупных интеграторах и сейчас возглавляю департамент из 100 человек. За время работы какими только проектами не приходилось управлять: внедряли SAP, автоматизировали деятельность предприятий, разрабатывали ИСы для госзаказчиков, проектировали и строили уникальные ЦОДы, делали военные ОКРы, проводили сложные миграции ИС… — даже строили под ключ электростанции в Белоруссии и угольные котельные в п. Черском (2000 км от Якутска). Основной сложностью тогда оказалась доставка оборудования и материалов — река была проходима только 5 месяцев в году. Вылез за дедлайн или просто поймал холодный год — потерял 7 месяцев. Либо дорогущий вертолёт. Все проекты разные, и каждый по-своему уникален.

Твоя команда написала кривой код, уронили сервер на разгрузке, оборудование не пришло вовремя, заказчик задерживает приёмку, техтребования сильно меняются, а сроки и бюджет — нет… Всё это головная боль ПМа, и это только часть его работы.
Но главное — персональная ответственность за конечный результат!
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments31

5 мифов о ведущих разработчиках, от которых мне становится грустно

Reading time4 min
Views41K
Ведущие разработчики, они же Senior developers. Это те самые люди, которые на своем веку перевыполняли уже все возможные задачи. Это люди, которые входят в переговорку, открывая дверь с ноги. Они — решение всех проблем компании и гарантия светлого будущего. Они не изучают технологии, а изобретают. Они знают бизнес-требования до того, как те были сформулированы. И самое главное: они четко и отчетливо представляют себя через пять, а иногда и через десять лет.

Серьезно, мне кажется, что от сеньоров сейчас слишком много ожиданий. Судя по вакансиям, это такой аналог советских космонавтов. Если внезапно в вашем офисе перестанет работать stackoverflow, вся документация, да и вообще интернет, версия компилятора/интерпретатора доунгрейднится на 5 лет назад, а вам срочно нужно будет написать аналог Редиса, не используя сторонних фреймворков и библиотек — вы обязаны это сделать. Причем за пару часов и излучая стрессоустойчивость.

В этой статье я бы хотел немного поговорить о том, кем не должен быть ведущий разработчик. Развенчать несколько мифов.
Читать дальше →
Total votes 78: ↑55 and ↓23+32
Comments107

Суррогаты

Reading time12 min
Views56K
Бизнес не любит:

1. 1С-Франчайзи, программистов 1С вообще, и почти все, что те делают;
2. веб-программистов и компании, создающие и продвигающие сайты, и все продукты их работы;
3. системы менеджмента качества и людей, которые занимаются их внедрением;
4. бухгалтеров и бух.учет;
5. экономистов со всеми их гигантскими экселевскими портянками;
6. внутренние проекты развития, на которые без слез уже смотреть невозможно;
7. Scrum и все эти доски, на которых неделями висят одни и те же стикеры;
8. ТОС, после внедрения которого дефицитов и неликвидов становится еще больше;
9. Контроллинг, который дает цифры позже, чем бух.учет;
10. KPI, адекватность которого приходится доказывать самому себе каждый раз, когда приносят эти цифры;
11. Системы мотивации, которые, как ни крути, «оклад+премия», хоть и названы модными словами, типа «грейд».

Продолжать можно до бесконечности. Никогда не задумывались, почему бизнес всего этого не любит? Или вообще не замечали, что бизнес этого не любит?

При этом, как ни странно, бизнес любит:

1. повышение прибыльности бизнеса за счет автоматизации;
2. увеличение количества лидов и рост оборота за счет правильного продвижения;
3. повышение качества процессов производства и бизнес-процессов;
Читать дальше →
Total votes 91: ↑80 and ↓11+69
Comments122

Продвижение ПО на Запад: ожидание vs.реальность на примере одного видеоредактора

Reading time9 min
Views13K

Статьи о продвижении IT-продуктов, как правило, можно разделить на две категории.

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

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

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

В качестве примера мы будем опираться на результаты продвижения видеоредактора VSDC на западный рынок, которым занимались последний год, и расскажем, какие методы сработали, а какие — нет.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments19

Случайный лес vs нейросети: кто лучше справится с задачей распознавания пола в речи (ч.1)

Reading time7 min
Views12K
Исторически сложилось так, что наибольшего успеха глубокое обучение достигло в задачах image processing – распознавания, сегментации и обработки изображений. Однако не сверточными сетями едиными, как говорится, живет наука о данных.

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

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments4

Как правильно чесать панду

Reading time6 min
Views16K


Сначала здесь было разумное и обоснованное введение про HR-процессы в компании и тому подобное. Потом разумное и обоснованное выпилили и решили просто рассказать, как добавляем больше смысла в ежедневную офисную жизнь.


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

Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments10

Научи бота! — разметка эмоций и семантики русского языка

Reading time6 min
Views8.8K
Со всех сторон на нас сыпятся перспективы светлого роботического будущего. Или не очень светлого, в духе Матрицы и Терминатора. В самом деле — машины уже уверено справляются с переводами, не хуже и намного быстрее людей распознают лица и предметы окружающего мира, учатся понимать и синтезировать речь. Круто? Не то слово!

Но дело серьёзно осложняется тем, что компьютеры так и научились ориентироваться в нашем мире. Всё, что они так хорошо делают, они делают по аналогии, не вдаваясь в суть и не нагружая себя смыслом происходящего. Может оно и к лучшему — дольше проживём, не будучи порабощены бездушным племенем машин.

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

Как мы планируем прокачать сознание машин, научить их эмоциям, чувствам и оценочным суждениям, а также где вы можете свободно скачать размеченные
данные — читайте в статье.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments13

Учим робота слушать разговоры

Reading time4 min
Views6.2K

image

 

В ручном режиме контролировать все коммуникации — задача трудоемкая и, кроме того, малоэффективная. И мы решили ее автоматизировать. Для этого пришлось обучить нашу Виртуальную АТС новым трюкам. Технологию Text-to-speech мы внедрили давно, теперь же взялись за обратный процесс.


Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments13

Data science и качественный код

Reading time9 min
Views20K

Обычно модели машинного обучения строят в jupyter-ноутбуках, код которых выглядит, мягко говоря, не очень — длинные простыни из лапши выражений и вызовов "на коленке" написанных функций. Понятно, что такой код почти невозможно поддерживать, поэтому каждый проект переписывается чуть ли не с нуля. А о внедрении этого кода в production даже подумать страшно.


Поэтому сегодня представляем на ваш строгий суд превью python'овской библиотеки по работе с датасетами и data science моделями. С ее помощью ваш код на python'е может выглядеть так:


my_dataset.
    load('/some/path').
    normalize().
    resize(shape=(256, 256, 256)).
    random_rotate(angle=(-30, 30)).
    random_crop(shape=(64, 64, 64))

for i in range(MAX_ITER):
    batch = my_dataset.next_batch(BATCH_SIZE, shuffle=True)
    # обучаем модель, подавая ей батчи с данными    

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


Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments13

7 методик оптимизации рабочего процесса, о которых вы, возможно, не слышали

Reading time5 min
Views44K
Времени всегда в обрез, а дел всегда невпроворот – это аксиома двадцать первого века. Неудивительно, что человечество находится в непрерывном поиске магического ритуала (или же методики организации рабочего процесса, как их принято называть), который спасет нас всех от цейтнота, дедлайнов, прокрастинации и прочих темпоральных ловушек. Самые действенные из них вам, безусловно, уже известны, однако мы, усилиями своей команды, составили небольшой хит-парад чуть менее распространенных техник, которые нам доводилось успешно применять в работе.


Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments13
30 марта в Санкт-Петербурге пройдёт открытая встреча HR и сотрудников внутреннего маркетинга IT-компаний, которую проводят JUG.ru Group и Хабрахабр. На встрече мы поговорим о построении HR-бренда, способах привлечения и удержания айтишников, роли конференций и Хабра в этом. Будут развеяны мифы и сформулированы полезные советы. 100% хардкора и практики гарантируем.
Читать далее
Total votes 47: ↑36 and ↓11+25
Comments69

Качество сервиса на три буквы

Reading time7 min
Views17K


«В старом мире, мы тратили 30% нашего времени на создание хорошего сервиса и 70% времени на то, чтобы рассказать о нём. В современном мире всё наоборот» — Джефф Безос, CEO, Amazon

Это самый ужасный сервис на свете! Верните мне мои деньги немедленно!” — каждый инженер техподдержки хотя бы раз, но слышал такое от пользователя. Да что и говорить, чаще всего высказываются самые недовольные: “Я 27 минут висел на телефоне", “Мою проблему не могут решить уже четвертый день!”. Те, кто никогда не работал в саппорте судят о качестве предоставляемого сервиса по своему личному опыту. А как о нем судим мы, те, кто отвечает на звонки и решает проблемы? Как определить, хороший ли сервис вы предоставляете своим пользователям?
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments14

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

Reading time10 min
Views75K


Томас (имена вымышленные) был очень успешным и спокойным юристом, волновавшимся по поводу своего пристрастия к спиртному. Когда он попал ко мне на сеанс психотерапии, он потреблял 6-7 стаканов вина за вечер, и он уже начинал прятать эту привычку от домашних и чувствовать её влияние на свою работу. Мы обсудили стратегии лечения и назначили новую встречу. Но когда он вернулся через две недели, то был совершенно подавлен: с потреблением алкоголя ничего не изменилось.

«Я просто не могу себя ограничивать. Наверно, у меня нет силы воли».

Ещё один пациент, Джон, также изначально обратился ко мне из-за алкогольной зависимости. На первой встрече мы обсудили подходы, основанные на умеренности и назначении более здоровых ограничений. Но через месяц он пришёл ко мне, чтобы заявить, что передумал и смирился со своими алкогольными привычками. Его жена не всегда была довольна количеством выпитого им, и иногда он мучился похмельем, но отношения были довольно прочными и алкоголь не причинял ему серьёзных проблем.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments254

Нейронные сети, генетические алгоритмы и прочее… Мифы и реальность

Reading time10 min
Views44K
В продолжение статьи «Сравнение технологических подходов к решению задач по извлечению данных» рассмотрим технологии, наиболее часто упоминающиеся в связи с понятием «искусственный интеллект» в контексте поисковых задач. На habrahabr.ru опубликовано множество статей на эту тему, например, об использовании нейросетей в поиске Яндкса, в которой говорится что «Фактически, формулу ранжирования пишет машина (получалось около 300 мегабайт)», о глубоком обучении, о вероятностном программировании и т.д.

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

В качестве основы для наших рассуждений мы можем выбрать любую из приведенных ниже технологий. Ввиду того, что наиболее часто упоминается нейронные сети, их и возьмем. Набрав что-то про нейросети в поисковой строке, мы получим огромную массу статей о «невообразимых» успехах, достигнутых нейронными сетями. Это и сообщения о новых аппаратных решениях, например, и спиновые электронные устройства, и заявления IBM, о том что нейронные сети по анализу слов смогут выявлять психические болезни, и «супергеройское» зрение, и множество других чудес науки. Поэтому, попробуем сделать краткий обзор текущего положения дел.
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments27

Information

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

Specialization

Backend Developer, Chief Technology Officer (CTO)
Lead