Пользователь
Практики автоматического тестирования Retail Rocket

Я часто собеседую кандидатов на позиции .Net разработчиков в Retail Rocket. В прошлом работал в компаниях с различными командами. И далеко не один раз встречал и продолжаю встречать мнение, что “автотесты хорошо, но на них нет времени, писать их дорого, тестировать должны тестировщики”. Такое мнение не у всех, но встречается нередко (не исключаю, что мне так «везет»). В связи с этим хочу поделиться нашим подходом к автоматическому тестированию и обеспечению качества. Расскажу путь, который мы в Retail Rocket прошли за последние 3-4 года, к чему пришли сейчас, и — главное — что дают нам автотесты и для чего мы их пишем. Надеюсь, статья кого-нибудь сподвигнет писать автотесты, кого-то — писать больше автотестов, а кому-то, возможно, поможет избежать ошибок, с которыми мы сталкивались.
10 уроков рекомендательной системы Quora

Привет, Хабр! Как директор по аналитике Retail Rocket, я периодически посещаю различные профильные мероприятия, и в сентябре 2016 года мне посчастливилось побывать на конференции RecSys, посвященной рекомендательным системам, в Бостоне. Было очень много интересных докладов, но мы решили сделать перевод одного из них Lessons Learned from Building Real-Life Recommender Systems. Он очень интересен с позиции того, как Machine Learning применять в production системах. Про сам ML написано множество статей: алгоритмы, практика применения, конкурсы Kaggle. Но вывод алгоритмов в production — это отдельная и большая работа. Скажу по секрету, разработка алгоритма занимает всего 10%-20% времени, а вывод его в бой все 80-90%. Здесь появляется множество ограничений: какие данные где обрабатывать (в онлайне или оффлайне), время обучения модели, время применения модели на серверах в онлайне и т.д. Критически важным аспектом также является выбор оффлайн/онлайн метрик и их корреляция. На этой же конференции мы делали похожий доклад Hypothesis Testing: How to Eliminate Ideas as Soon as Possible, но выбрали вышеупомянутый учебный доклад от Quora, т.к. он менее специфичный и его можно применять за пределами рекомендательных систем.
Рабочее место .NET разработчика или трудности выбора идеальной конфигурации
Мы продолжаем приоткрывать дверь в технологическую кухню Retail Rocket. В сегодняшней статье мы решили поделиться историей о нашем «корпоративном backend`е», речь пойдет о рабочем месте для разработчика. Та самая зона комфорта, которая окружает нас в жизни, но является не менее важной, чем выбор стека технологий.
Передо мной встала задача подготовить рабочее место для нового члена команды разработки, казалось бы, что может быть проще? На практике оказалось все гораздо сложнее, чем я ожидал. Раньше мы покупали стол «Галант» в IKEA, любое офисное кресло + MacBook Pro – и у нас готово новое рабочее место.

Старое рабочее место .NET разработчика в офисе Retail Rocket
С тех пор прошло 2 года, мы выросли, у нас изменился стиль работы — пора подбирать новую конфигурацию. Половина нашей команды работает на технологическом стеке от Microsoft. Это большой проект в Visual Studio 2015 + Resharper: 26 приложений, 9 библиотек, 3 проекта с тестами, что в сумме на момент публикации статьи дает 4 312 файлов и более 60 тыс. строк кода. Плюс IIS с компиляцией и запуском приложения на локальной машине, что накладывает повышенные требования к вычислительной мощности используемого оборудования.
На выбор подходящей конфигурации я потратил 4 недели и все еще не уверен, что все сделал правильно, поэтому решил, что мой опыт будет полезен сообществу, тем более, что вы всегда сможете скорректировать конфигурацию индивидуально под себя.
Подводные камни A/Б-тестирования или почему 99% ваших сплит-тестов проводятся неверно?

«Горячая» и часто обсуждаемая сегодня тема оптимизации конверсии привела к безусловной популяризации А/Б-тестирования, как единственного объективного способа узнать правду о работоспособности тех или иных технологий/решений, связанных с увеличением экономической эффективности для онлайн-бизнеса.
За этой популярностью скрывается практически полное отсутствие культуры в организации, проведении и анализе результатов экспериментов. В Retail Rocket мы накопили большую экспертизу в оценке экономической эффективности от систем персонализации в электронной коммерции. За два года был отстроен идеальный процесс проведения A/Б-тестов, которым мы и хотим поделиться в рамках этой статьи.
Персонализация в электронной коммерции
Сегодня мы начинаем цикл статей о том, как мы строим сервис Retail Rocket. За без малого три года работы, мы собрали солидный технологический стек, разочаровались в большом количестве «модных» технологий и построили очень сложную систему.
Вкратце, Retail Rocket – платформа для мультиканальной персонализации интернет-магазина на основе Big Data. Наш сервис анализирует поведение посетителей интернет-магазина, выявляет потребности и в нужный момент показывает интересные именно им предложения на сайте, в email и display кампаниях, увеличивая доход интернет-магазина за счет роста конверсии, среднего чека и частоты повторных покупок.
Этой статьей мы открываем инженерный блог Retail Rocket (маркетинговый блог мы ведем почти два года) с рассказом об используемых подходах в области анализа данных и кратким перечнем используемых технологий. Ко всему описанному в статье мы пришли итеративно и в следующих статьях постараемся подробно описать наш путь в каждой из областей.
SSD и HDD в теле одного MacBook Pro
Мой опыт, которым я хочу с вами поделиться, должен оказаться полезным для всех пользователей ноутбуков, хотя мой частный пример — MacBook Pro.
После покупки сего агрегата, с порядковым номером в линейке: 6.1, я ожидал невиданных ранее скоростей, но, увы, предательская каруселька перегрузки, на месте курсора >

Такие показатели + периодические подвисания оказались досадным и обидным заключением, ведь под капотом процессор i7 / 4Gb DDR3 / 5 Series Chipset с возможной скоростью обмена данными в 3 гигабита.
Тогда я решил разобраться с досадной загвоздкой в скорости работы и решить проблему апгрейдом доступных внутренностей ноутбука; не смотря на то, что сам по себе ноутбук уже встал в солидную копеечку, мириться с такой его манерой работы — я не мог.
Apple (AAPL): первый квартал 2011 — новые рекорды к больничному Джобса

Что же касается отчетности, то Apple продолжила рекордные цифры всей индустрии (см. мои предыдущие статьи про Google, Microsoft, Adobe и сам Apple, Intel на этой неделе показал рекордные цифры за всю историю), показав абсолютно лучший квартал. Рекордным было почти все – суммарная выручка, чистая прибыль, продажи Mac, iPhone, iPad. Прибыль за первый квартал – $26,7 млрд, рост 71% за год, чистая прибыль – $6 млрд. Напомню, последний квартал включает все рождественские продажи.
Основным действующим лицом на звонке с аналитиками был текущий глава компании и COO Тим Кук, он отвечал на все вопросы.
Ситуация по продуктовым сегментам следующая:
Игры на движке Unreal скоро на iPhone,iPad и iPod touch

На прошедшей конференции Korea Games Conference Epic Games анонсировали, что набор инструментов разработчика для их популярного движка Unreal в скором времени сможет также «генерировать iOS-приложения». Другими словами, один из самых популярных и продвинутых движков в скором времени будет радовать нас удивительно красивой картинкой на iPhone,iPad и iPod touch. Описание, ссылка на демо и демонстрационный ролик под катом.
Бизнес для программистов. Как начать свое дело

Ее написал Эрик Синк – бывший разработчик Spyglass, основатель и руководитель SourceGear, одного из основных поставщиков ПО в области контроля версий, а также колумнист MSDN.
Основная тема книги – это как стартовать и развить свою маленькую компанию независимого поставщика ПО. Эрик разбивает эту задачу на несколько традиционных компонентов: как стать предпринимателем, люди, маркетинг, продажи. Но каждый из них рассматривает через призму восприятия программиста. Например, приводит следующий совет по поиску идей:
Idea FindGoodProductIdea ()
{
ArrayList candidateList = BrainstormLotsOfIdeas();
return ChooseTheBestIdea(candidateList);
}
О HTML5 в инфографике

Рыская в интернете я натолкнулся на весьма приятную по исполнению и интересную к прочтению инфографику о HTML5.
Я решил ее перевести. Что из этого вышло можете лицезреть по клику на уменьшенной картинке.
На ней вкратце описываются основные функции, которые включены в HTML5. А также уровень поддержки новых возможностей популярными браузерами. И как должна измениться ситуация на этот счет в ближайшем будущем.
Имени автора, я к сожалению не нашел. Только ссылку на его твиттер.
P.S. Убрал опечатки и обновил картинку с инфографикой.
Apple Special Event '10: Retail Stores, iOS 4.1&4.2, iPods, iTunes 10, Apple TV и немного Coldplay :)

Вот и прошёл Apple Special Event — утром за океаном и вечером где-то тут у нас… В очередной раз ребята из Apple доказали, что могут создавать прекрасные продукты, очень мощные, но в то же время компактные и удобные. Давайте же подведём итоги и обсудим то, чем нас порадовали.
(осторожно, много картинок)
Фоторепортаж с битвы на советских игровых автоматах

Grab — python библиотека для парсинга сайтов
Отличия в адаптации сайта и AJAX веб-приложения для iOS

Создаем чат на Node.js и Socket.IO
В моем случае сервер работает под Ubuntu, поэтому все примеры будут для неё (и ссылки в примерах — на него же).
Установка компонентов
Первым делом нам потребуются собственно Node.js (инструкция по инсталляции и ссылки на скачивание здесь) и Socket.IO. Модули для Node.js проще всего устанавливать, используя менеджер npm —
curl http://npmjs.org/install.sh | sh
npm install socket.io
Серверная часть
Структура серверной части такова: сервер принимает сообщение, если это команда — выполняет определенные действия, если просто сообщение — рассылает всем остальным участникам.
Руководство по оформлению HTML/CSS кода от Google
От переводчика
С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.
Введение
Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.
Это относится к рабочим версиям файлов использующих HTML, CSS и GSS
Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Как правильно сортировать контент на основе оценок пользователей

В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.
Постановка проблемы
Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».
Неправильное решение №1
Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)
Стартапомания: как перестать искать богатых лохов и сменить галстук на шлепанцы
Путь новичков-оптимистов в лабиринте iOs разработки. Дорогу осилит идущий

15 июля 2010 года. За утренним чаем весь коллектив нашей конторы с восторгом рассматривал интерактивную книгу “Alice in Wonderland” от Atomic Antelope на iPad'е.
Идея создания подобного приложения настолько нас вдохновила, что на следующий же день мы с коллегой сели вдвоем и примерно представили себе то, что нам потребуется для реализации замысла:
- детский писатель;
- художник;
- программист;
- переводчики (мы сразу решили делать английскую и испанскую версии нашей книги).
Техническая база у нас на работе и дома уже была — техника Apple в наличии имелась.
Надо сразу сказать, что по роду деятельности к разработке приложений мы не имели ни малейшего отношения, поэтому весь процесс создания книги представляли себе крайне смутно.
Информация
- В рейтинге
- Не участвует
- Откуда
- Долгопрудный, Москва и Московская обл., Россия
- Зарегистрирован
- Активность