Как стать автором
Обновить
91
0
Михаил Томшинский @tomshinsky

Пользователь

Отправить сообщение

Рекомендательные системы: SVD и базовые предикторы

Время на прочтение3 мин
Количество просмотров30K
В прошлый раз я рассказал, пока в самых общих чертах, о сингулярном разложении – главном инструменте современной коллаборативной фильтрации. Однако в прошлый раз мы в основном говорили только об общих математических фактах: о том, что SVD – это очень крутая штука, которая даёт хорошие низкоранговые приближения. Сегодня мы продолжим разговор об SVD и обсудим, как же, собственно, использовать всю эту математику на практике.
image

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии5

Рекомендательные системы: user-based и item-based

Время на прочтение5 мин
Количество просмотров40K
Итак, в прошлый раз мы немного поговорили о том, что такое вообще рекомендательные системы и какие перед ними стоят проблемы, а также о том, как выглядит постановка задачи коллаборативной фильтрации. Сегодня я расскажу об одном из самых простых и естественных методов коллаборативной фильтрации, с которого в 90-х годах и начались исследования в этой области. Базовая идея очень проста: как понять, понравится ли Васе фильм «Трактористы»? Нужно просто найти других пользователей, похожих на Васю, и посмотреть, какие рейтинги они ставили «Трактористам». Или с другой стороны: как понять, понравится ли фильм «Трактористы» Васе? Нужно просто найти другие фильмы, похожие на «Трактористов», и посмотреть, как Вася их оценивал.


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии17

Рекомендательная система: text mining как средство борьбы с холодным стартом

Время на прочтение5 мин
Количество просмотров18K
В предыдущей статье я уже обозначил основные направления решения задачи холодного старта в рекомендательной системе веб-страниц. Напомню, что проблема холодного старта делится на холодный старт для пользователей (что показывать новым пользователям) и холодный старт для сайтов (кому рекомендовать вновь добавленные сайты). Сегодня я более подробно остановлюсь на методе семантического анализа текстов (text mining) как основном подходе к решению проблемы холодного старта для новых сайтов.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии8

Рекомендательные системы: SVD, часть I

Время на прочтение3 мин
Количество просмотров64K
Продолжаем разговор о рекомендательных системах. В прошлый раз мы сделали первую попытку определить схожесть между пользователями и схожесть между продуктами. Сегодня мы подойдём к той же задаче с другой стороны – попытаемся обучить факторы, характеризующие пользователей и продукты. Если Васе из предыдущего поста нравятся фильмы о тракторах и не нравятся фильмы о поросятах, а Петру – наоборот, было бы просто замечательно научиться понимать, какие фильмы «о поросятах», и рекомендовать их Петру, а какие фильмы – «о тракторах», и рекомендовать их Васе.

image
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии5

Семантический поиск: мифы и реальность

Время на прочтение6 мин
Количество просмотров23K

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

Например, при вводе в строку поиска «Столица Франции», оба метода дают один и то же правильный ответ: «Париж». Кроме того, большинство запросов, которые мы вбиваем в строку поиска в виде аббревиатур, дают те же результаты, если вводить термин полностью. Очевидно, что тут что-то не так. Всем известно, что семантические технологии способны на многое, но почему? И как они работают? Ознакомившись с этой статьей, вы узнаете, что на самом деле, мы просто-напросто задаем не те вопросы.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии31

Первая версия Opera 15 для компьютеров

Время на прочтение5 мин
Количество просмотров189K


Из ещё не остывшей после релиза Opera 14 для Андроида печи, прямиком для вас — первая версия Opera 15 для компьютеров на основе движка Blink. Называется она Opera 15 потому, что сделана на Chromium 28 (тогда как Opera 14 на Chrome 26). Но не слишком увлекайтесь нумерологией (мы устали отвечать на вопросы про магию числа 13), наш новый вечнозелёный браузер будет обновляться достаточно часто, чтобы номера версий потеряли смысл — давайте лучше поговорим о том, что внутри первой версии.
Читать дальше →
Всего голосов 272: ↑184 и ↓88+96
Комментарии1585

AngularJs. Отложенная загрузка модулей

Время на прочтение5 мин
Количество просмотров34K
AngularJs – великолепный фреймворк для разработки web-приложений. Разработка бизнес-логики приложения полностью отделена от сопутствующей суеты вокруг DOM. Angular модульный – это замечательно, но так же является источником проблемы. Количество модулей быстро растёт. И если директивы ещё можно упаковывать в отдельные пакеты типа angular-ui, то с контроллёрами бизнес-логики всё сложнее. Всё становится ещё хуже, когда требования безопасности в принципе запрещают загрузку на клиента контроллёров с бизнес-логикой, которые недоступны текущему пользователю. При развитой ролевой системе доступа к приложению масштаб проблемы становится очевиден.
Решение
Всего голосов 23: ↑21 и ↓2+19
Комментарии22

Рекомендательные системы: You can (not) advise

Время на прочтение9 мин
Количество просмотров44K

Более полугода назад в поисках что посмотреть, я листал топ произведений. Это занятие повторялось уже много раз и успело надоесть — постоянно приходилось пропускать то, что я смотреть не хочу. Имхонетами раньше не пользовался, да и не доверял им из-за специфики искомых произведений. На сайте, где я производил поиски, была возможность создать свой список просмотренных произведений и выставить оценку, также были доступны оценки других пользователей. Тут мне в голову пришла гениальная идея, как оказалось позднее банальная, — используя оценки других пользователей делать рекомендации. Данная деятельность называется коллаборативной фильтрацией, а программа её реализующая — Рекомендательной системой(РС). Оглядываясь назад я понимаю, что совершил множество ошибок из-за недостатка информации и её труднодоступности в данной тематике, а что самое главное — сильно переоценил РС. В данном посте я сделаю обзор основных типов и алгоритмов РС, а также постараюсь передать часть своих знаний и опыта.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии20

Немного о технологии Z-Wave

Время на прочтение17 мин
Количество просмотров102K
В данной статье хотелось бы осветить немного внутренностей протокола Z-Wave. Учитывая, что владелец протокола компания Sigma Designs (поглотившая Zensys) просит подписывать NDA перед раскрытием особенностей реализации, а часть вообще никому не показывает, подробных данных а сети не найти. Я не собираюсь рассказывать здесь слишком много, чтобы не нарушить подписанный NDA. Надеюсь, и данная информация окажется полезной и сподвигнет кого-нибудь занятся разработкой собственных железок на этом протоколе. Итак, начнём!
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии34

Умный дом на базе Z-Wave

Время на прочтение5 мин
Количество просмотров244K


Долгое время я вынашивал идею, как лучше сделать удобное управление светом и электроприборами в квартире. При этом, мне хотелось иметь некое готовое модульное решение для относительно несложной самостоятельной настройки. Так, совершенно случайно, я наткнулся на оборудование, которое можно внедрить уже в существующую дома сеть совершенно «безболезненно». Им оказались устройства, работающие по протоколу Z-Wave.
Читать дальше →
Всего голосов 68: ↑65 и ↓3+62
Комментарии96

7 Продуктовых техник, на которые стоит обратить внимание разработчику

Время на прочтение4 мин
Количество просмотров37K
Когда мы заказываем костюм в ателье или дизайн интерьера, нас не просят прийти с готовыми мерками, выбранным фасоном или цветом потолка. Профессиональные модельеры и дизайнеры задают вопросы и предлагают решения на основе наших целей.

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

Чуть лучше дело обстоит в продуктовой разработке, особенно в стартапах, где генерация требований равномерно распределена по всему жизненному циклу работы над продуктом. Благодаря принципам Lean StartUp: построить -> измерить -> изучить, продуктовые команды работают более короткими циклами. На входе каждой итерации — новая порция требований для «эксперимента», в формулирование которых часто вовлечена вся команда.

В заказной разработке я наблюдаю 3 типа проблем, связанных с ожиданием готовых требований от клиента:

  1. “Бизнес” не умеет формулировать хорошие требования, потому что не понимает процесса разработки и технологических возможностей. Спецификация содержит представление заказчика о решении проблемы, докопаться до сути которой по документу сложно.

  2. “Бизнесу” не хватает времени на проработку требований. Часть вариантов использования системы, не продуманная заранее, вбрасывается в ходе разработки. Чем меньше практик, поддерживающих итеративный процесс (CI, автоматизированное тестирование, ограничение по количеству фич в работе), тем сложнее вносить изменения в требования.

  3. “Бизнес” и “разработка” говорят на разных языках. Как следствие — ложное понимание требований, не проясненные предположения, вытекающие из них 'сюрпризы' в момент демонстрации. Несуществующую систему сложно описать на бумаге. Отсюда вытекают проблемы, которые можно обобщить словами заказчика: “Я не знаю точно чего хочу, но точно знаю чего не хочу”.


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

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

Ниже — обзор продуктовых техник, которые могут в этом помочь.
Читать дальше →
Всего голосов 49: ↑41 и ↓8+33
Комментарии18

Теория относительности в картинках

Время на прочтение6 мин
Количество просмотров367K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →
Всего голосов 272: ↑266 и ↓6+260
Комментарии345

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Время на прочтение4 мин
Количество просмотров114K
Увы, но этот способ перестанет работать с 27-го июня 2015, т.к. Google отключает функцию sms-оповещений для календаря.
support.google.com/calendar/answer/45351?hl=ru

Важно! SMS-оповещения будут отключены 27 июня
С 27 июня 2015 года вы больше не будете получать SMS-оповещения от Google Календаря. Функция SMS-оповещений была внедрена ещё до широкого распространения смартфонов. Однако современные мобильные устройства позволяют получать оповещения в более удобном формате и даже в офлайн-режиме.
Для просмотра оповещений вы можете использовать приложение календаря, которое было установлено на смартфоне по умолчанию, либо скачать Google Календарь для Android или iPhone. Подробнее об оповещениях…
Примечание. Это изменение не коснется пользователей Google Apps for Work, Education и Government.




Хочу поделиться с Харбра-обществом полезным, с моей точки зрения, лайвхаком: уведомления по SMS о новой почте в ящике Gmail. Реализуется это небольшим скриптом, который живет и работает в Google Drive (бывшие Google Docs).

Принцип работы следующий: скрипт по таймеру проверяет папку «Входящие» в почтовом ящике и если обнаруживает новые письма, то создает в google calendar событие с именем, как тема письма, и включает для него SMS уведомление. В результате вам приходит SMS сообщение следующего содержания:

Напоминание: Тема письма @ дата и время

Подробности реализации, как всегда, под «катом».
Подробности
Всего голосов 102: ↑98 и ↓4+94
Комментарии72

Пускаем пыль в глаза или как получить больше заказов на разработку

Время на прочтение6 мин
Количество просмотров64K
У большинства компаний и фрилансеров есть свое видение как нужно привлекать клиентов и конвертировать их в заказчиков. Некоторым это удается хорошо, некоторым хуже, но для многих это проблема, пусть даже сами они об этом неподозревают.



Если при наличии современного сайта, представительного портфолио и рыночных рейтов, процент заказов у вас остается относительно низким, то с большой долей вероятности причина в неправильном процессе начальной коммуникации. Как сделать его более эффективным? Об этом пойдет речь под катом.
Читать дальше →
Всего голосов 123: ↑104 и ↓19+85
Комментарии50

RealTimeBoard — новый способ совместной работы

Время на прочтение1 мин
Количество просмотров90K
Совсем недавно открыл для себя новый интересный и крайне полезный сервис для совместной работы российский проект RealtimeBoard – бесконечные виртуальные доски, на которых можно работать с любым визуальным контентом (прикреплять картинки, рисовать схемы и графики, создавать коллажи и пр.) индивидуально или с командой.
На данном этапе сервис находится в открытом бета-тестировании, но это нисколько не мешает работать с ним уже сейчас и решать широкий круг задач.
image

Какие же задачи можно решать с помощью RealTimeBoard ?
Читать дальше →
Всего голосов 69: ↑56 и ↓13+43
Комментарии76

ScrumMaster — сильный лидер с правом на отстрел

Время на прочтение5 мин
Количество просмотров37K
Сегодня хочу обсудить одну из краеугольных тем в мире Agile — по каким визуальным и обонятельным признакам подобрать эффективного лидера Agile команды, работающей, допустим, по Scrum, среди множества двухдневных самоучек, могущих привести команду и проекты к хаосу.

Для начала вспомним отличия традиционной системы управления — репрессивной, от гуманной и творческой Agile модели.

Репрессивная модель управления


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

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

image

Модель, разумеется, очень эффективна на коротких и средних дистанциях. Еще бы — вспомним Фашистскую Германию, ее бурный рост и развитие. Но… модель имеет косяки, т.к. «посеявший ветер, пожнёт бурю» (чем заканчивает владыка ситх и его последователи, мы знаем :-)).

Читать дальше →
Всего голосов 69: ↑45 и ↓24+21
Комментарии48

HTML и CSS безумие [перевод]

Время на прочтение6 мин
Количество просмотров106K

или Создаем 3D миры при помощи HTML, CSS и JS


image
В прошлом году, я сделал демо, которое показывает как можно использовать CSS 3D transforms для создания 3D пространства. Демо было технической демонстрацией того, чего можно достичь при помощи CSS на то время, но я хотел увидеть насколько далеко я могу зайти, поэтому последние несколько месяцев я работал над новой версией с еще более сложными моделями, реалистичным освещением, тенями и определением столкновений. Этот пост документирует то, как я это делал и какие техники применял.

Демо Демо2
Читать дальше →
Всего голосов 207: ↑198 и ↓9+189
Комментарии71

Обзор инструментов для сжатия изображений

Время на прочтение15 мин
Количество просмотров365K


Для ускорения сайта, некоторые рекомендуют проанализировать каждую страницу: оптимизировать запросы HTTP и любые перенаправления, сжать скрипты и стили и т. д. Все это без сомнения необходимо, но в первую очередь важно рассмотреть основы. В частности, вы уверены, что любая графика, которую вы используете на создаваемых сайтах, полностью оптимизирована для Интернета?
Читать дальше →
Всего голосов 73: ↑66 и ↓7+59
Комментарии47

Мобильный интернет в Финляндии. 3G от Saunalahti

Время на прочтение4 мин
Количество просмотров121K
Очень многие жители северо-запада часто ездят в Финляндию за покупками и на отдых. В таких поездках очень не помешал бы нормальный интернет для звонков по СИПу/Skype'у (друзья просят привезти им чего-нибудь вкусненького из магазинов, а по скайпу им можно показать витрину), да и гуглокарты с он-лайн переводчиком очень полезны.

В своей первой же поездке в Лаппенранту я озаботился мобильным интернетом. В Финляндии развита контрактная система, поэтому для приезжих остается только «Prepaid» (т.е. предоплатная система расчётов, которая как раз сильно развита у нас). Вариантов с препейдом в Финляндии три:
  1. DNA Dataprepaid, от оператора DNA. Даёт определенное количество трафика на 180 дней на скорости 21 мбит/с
  2. SaunalahtiPREPAID, от оператора Elisa. Безлимитка на скорости до 4 мбит/с с оплатой по дням или пакетами на несколько дней.
  3. Sonera Easy Prepaid безлимитка за 1.9€/сутки. Со скоростью не очень ясно.

Т.к. я езжу в Финляндию периодически и особые скорости мне не нужны, то меня заинтересовала Saunalahti.
Об этом тарифе и поговорим
Всего голосов 35: ↑29 и ↓6+23
Комментарии34

Всесторонняя оптимизация сайта на WordPress

Время на прочтение8 мин
Количество просмотров57K
Уважаемые жители Хабра!

Вашему вниманию представляется история о том, как мы оптимизировали свой сайт. Сайт работает на движке Wordpress (на этой фразе большинство читателей должны поморщиться, зная, как обстоят дела у WordPress со скоростью). Однако все-таки у нас получилось, и сайт стал летать. Сразу скажу, что меня вряд ли можно считать профессионалом по серверной оптимизации, однако то, чего удалось достичь, меня сильно радует. Также, был получен бесценный опыт, которым я хочу поделиться с читателями Хабра.
Читать дальше →
Всего голосов 96: ↑90 и ↓6+84
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность