Rapid Adventure Down the Stream | 25 сентября 2016 года, 16:38

Небольшое путешествие на байдарках по потомаку. По пути довольно сильные пороги, особенно, когда на двойке гребешь один. Отличное место, еще и в 20 мин от дома

Третий в ряду титул! | 24 сентября 2016 года, 21:41

Третье подряд первое место на соревнованиях, в этом раз на Falling Leaves в Ричмонде! Жду победительницу. Щас приедет – обниматься будем!

Собеседование: три задачки для программистов | 22 сентября 2016 года, 14:48

С интересом читаю Гришу в ФБ. Вместо ответа комментарием на вопросы про алгоритмы сортировки (https://goo.gl/pPcJEd), напишу пост, так чуть удобнее, букв много. Речь в посте Гриши шла про то, нужно ли пытать кандидатов алгоритмами, которые давно уже никто не пишет на этих языках (и он верно объясняет почему).

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

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

Мне ее интересно обсуждать, потому что я сам когда-то писал поиск и знаю связанные с этим сложности. Оцениваю задачу как легкую, но если кандидат с ней справляется – есть “продолжения”, вроде “а как быть, если слов несколько, вам же пересекать множества документов по каждому слову надо, а множества большие”, а также про постраничный просмотр и fuzzy search. Минимум кандидат должен был догадаться про пары WordId -> PageId, и даже это не выходило у 50% по резюме хороших специалистов.

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

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

Эту задачу вообще в таком виде единицы решали. Что только не придумывал народ…

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

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

Почему эти три? Теоретически к ним можно было заранее подготовиться, но, слава богу, ни разу компании, которые присылали программистов, не выясняли и не передавали детали следующим. Не знаю, плюс это для них или минус 🙂 Даже, если бы кто-то заранее прочел про поиск или сжатие, это, может, дало бы и плюсы, т.к. нельзя все знать, но сам факт подготовки к собеседованию добавляет очков.

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

Grigoriy Dobryakov, какой-то процент приходящих давал ответы в стиле “ну как, я возьму Solr и библиотеку сжатия данных”. Это лучше, чем ничего, особенно, если человек ЗНАЕТ или ИСПОЛЬЗОВАЛ это всё, но практически во всех этих случаях они не способен объяснить, как это работает внутри. Иногда – вообще.

За редкими исключениями эта система никогда не давала сбой:)

PredictionIO: Unlocking the Power of Machine Learning in E-commerce | 22 сентября 2016 года, 03:58

Крупное обновление на блоге про Хайбрис. Удалось разобраться с Apache PredictionIO. Интересное добавление к любому крупному интернет-магазину. Магазин может отправлять в эту систему логи, а система снабжать магазин подсказками, как больше заработать. Механизмы оформлены в шаблоны, которые просто работают. Можно разобраться еще глубже и править алгоритмы, но на ум быстро не приходит, когда такое может быть нужно: алгоритмы довольно универсальные для e-commerce.

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

В общем, велкам, лайки и шары приветствуются)

https://hybrismart.com/2016/09/21/predictionio-machine-learning-in-e-commerce/

Дожили до эпохи 1Тб-карт? | 20 сентября 2016 года, 21:18

Дожили. SD-карта на 1Тб. Пока только рабочий прототип. У нас в костко у кассы продаются 256Гб флэшки за 15 баксов. У меня тридцать лет назад компьютер был на 8 килобайт памяти. Это в сто тридцать четыре миллиона раз меньше, чем вот эта флэшка. Таких флэшек можно полный карман набрать. Далее будут ускорять ввод-вывод. В интересное время живем, товарищи 🙂

http://www.theverge.com/circuitbreaker/2016/9/20/12986234/biggest-sd-card-1-terabyte-sandisk

American Tastes: A Washington Perspective on School Lunches | 20 сентября 2016 года, 08:35

Интересная заметка по Лизу и Машу, про школу, завтраки и обеды, связанные с этим традиции и предпочтения. Взгляд из Вашингтона;)

http://www.eg.ru/daily/family/56081/

Microsoft Bot Framework & Hybris: Revolutionizing Chat Interactions? | 18 сентября 2016 года, 22:08

Друзья, у меня тут крупное обновление на блоге. Интеграция Microsoft Bot Framework c hybris. В целом, основная часть статьи не про интеграцию, а про бот-решение от Microsoft. В него входят два продукта: Bot Framework и Language Understanding Intelligent Service (LUIS). Интересное решение для создания аналога IVR в чатах. Велкам, на русском таких материалов или еще нет, или очень мало (но я не нашел)

https://hybrismart.com/2016/09/18/microsoft-bot-framework-and-hybris-skype-facebook-and-other-communication-channels/

Recommending Success: Seeking a Demonstrational Dataset for Big Data Analysis and Recommendations | 18 сентября 2016 года, 20:24

У меня что-то получилось с системой рекомендаций (анализ bigdata, создание рекомендаций что купить). Готовлю статью на hybrismart.

Очень нужна какая-нибудь демонстрационная база. Конкретно нужен список товаров и статистика по продажам товаров вместе в одной корзине с привязкой к некоторому абстрактному пользователю (ID). Если я смогу получить такую базу, то я смогу дать вам следующие рекомендации: (а) что покупателю ID еще можно предложить из товаров, что он еще не покупал и (б) какие товары рекомендовать на карточке товара, используя данные о продажах.

Может кто-то поделиться? В идеале, конечно, если бы товарная база была на английском, но это уже недостижимый идеал, наверное:)