Pull to refresh
138
0
Беляев Роман @frig

Fullstack (PHP), PM, PO. Ищу работу.

Send message

Рекомендательный движок за 2 строчки кода

Reading time5 min
Views5.1K

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

Алгоритм можно описать всего в одном предложении: берём историю продаж и обучаем на ней гугловый Word2Veс, фильтруем результат.

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments7

Прототип. От идеи до опытной партии. Литье в силикон

Reading time2 min
Views182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →
Total votes 168: ↑166 and ↓2+164
Comments75

Быстрый старт в разработке дополнений Firefox

Reading time5 min
Views1.3K
Про создание дополнений Firefox я знаю мало, но для того чтобы узнать это немногое мне потребовалось несколько дней. Эти знания мне не довелось пока применить для реальной задачи, и кто знает когда придётся. По теме есть много информации на английском языке, но в силу скудности моего английского эта информация была для меня трудновоспринимаема. Статьи, что я видел на русском, это в основном переводы, в которых много внимания уделяется деталям, но после их прочтения не возникает целостной картины. Моя статья — это попытка создать маленькое, но целостное знание: с чего начать и как с этим можно работать.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments5

Re: Виртуальный магазин в корейском метро

Reading time1 min
Views5.4K
На Хабре уже была статья про виртуальный магазин в метро города Сеул, Южная Корея. Наконец-то нашлоcь время, чтобы съездить лично на станцию Seolleung и подготовить чуть-чуть более подробный фотоотчет и поделиться своими впечатлениями.

Витрины виртуального магазина уходящего вдаль.

image

На самом деле оказалось, что магазин развернут только на одной из двух платформ станции, причем только где-то треть витрин отдана под магазин, и все они находятся с краю.
Читать дальше →
Total votes 83: ↑51 and ↓32+19
Comments39

«Умный дом» собственными руками

Reading time5 min
Views126K
Представьте картину: вы входите домой, автоматически включается свет и приятный женский (мужской, впрочем — кому как) голос приветствует вас. Вы небрежно бросаете фразу в сторону микрофона: «Дом, включи мой компьютер». Через несколько секунд слышите привычный шелест кулеров своего родного железного коня.

Фантастика? Под хабракатом я хочу поделиться своими успехами в построении подобной системы у себя дома.
Читать дальше →
Total votes 88: ↑68 and ↓20+48
Comments47

Мировой кризис и it-сектор

Reading time4 min
Views2.3K


Когда я писал предыдущие статьи о кризисе пару месяцев назад сама идея его еще не проникла в массы. Нет, есть много специалистов, которые уже довольно давно пишут о нем. Но сейчас о нем начали говорить много и везде, а значит положение становится всё серьезнее. На рынках воцарил пессимизм, экономические показатели ведущих стран ухудшаются, в Европе Греция лихорадочно пытается получить новые кредиты чтобы выплатить старые, а разговоры о том, что это её дефолт неизбежен становятся всё громче. И вот сегодня утром Standard & Poor's снизило кредитный рейтинг Италии с A+ до A, а прогноз на «негативный».
На этом фоне приятно выделяется “фруктовая компания”, которая обогнала по капитализации лидера последних лет ExxonMobil (крупнейшая нефтеперерабатывающая компания в мире). Это конечно радует приверженцев теории “новой экономики”, которые заблуждаются считая, что it и высокотехнологичный сектор кризис обойдет стороной.
Читать дальше →
Total votes 78: ↑60 and ↓18+42
Comments161

Microsoft реализовала аналог Synergy (управление несколькими ПК одной мышкой)

Reading time2 min
Views37K
В рамках инициативы Microsoft Garage разработана утилита Mouse without Borders (MWB), которая позволяет управлять четырьмя компьютерами с помощью одной мыши и клавиатуры. Концепция напоминает известную open-source программу Synergy, которая уже обсуждалась на Хабре.

В отличие от Synergy, разработка Microsoft проще в установке и настройке, а также имеет ряд дополнительных возможностей: например, перетаскивание файлов мышкой с одного десктопа на другой, одновременная авторизация на всех компьютерах или PrtScreen с любого экрана. Недостаток по сравнению с Synergy очевиден: MWB работает только на одной платформе Windows, в то время как Synergy поддерживает Linux и Mac.
Читать дальше →
Total votes 56: ↑46 and ↓10+36
Comments43

Установка Windows 8 Developer Preview для ленивых

Reading time3 min
Views51K
Задача: поставить Windows 8 Developer Preview поиграться.

Условия: старая винда должна выжить, привода DVD нет, большой флешки на десять гигов тоже.

Классические решения:

  1. Поставить в виртуалку. Это медленно, нужен дополнительный софт и без хардварной виртуализации ничего не заработает.
  2. Поставить на другой жёсткий диск. Увы, в ноутбук второй винт не вставишь, да и нету его у меня.
  3. Выделить отдельный раздел на винте. А это ставить лишний софт, танцевать с бубнами вокруг разделов… Лениво!

К тому же последние два варианта обычно требуют физический DVD, которого нет. Выход? VHD!

Кроме ISO образа Windows 8 нам также понадобится установленная Windows 7 — более ранние версии не умеют работать с VHD. А из под Linux мы не сможем так просто запустить инсталлятор.

Читать дальше →
Total votes 216: ↑181 and ↓35+146
Comments139

Как выкачать исходники Android под Windows

Reading time3 min
Views13K
В недавнем посте о восстановлении работы git-репозитория Android многие жаловались, что пока нет веб-интерфейса доступа к исходникам из Windows тоже нет. Это не так, git под Windows есть и их можно легко забрать. Единственное что не работает без пинка — это repo, который весьма удобен для выкачивания сырцов. Однако пинок требуется минимальный, имя пинку — Cygwin. Этот пост о том, как поставить Cygwin с нуля, какие пакеты выбрать для работоспособности repo и как всё выкачать пользователям Windows. Для понимания поста требуется умение работать с консолью на базовом уровне, понимать что такое приглашение, уметь печатать текст и жать Enter.

Читать дальше →
Total votes 27: ↑18 and ↓9+9
Comments14

Как работают браузеры: принципы работы современных веб-браузеров

Reading time2 min
Views189K
Просматривая одно из обучающих видео "Школы разработки интерфейсов" Яндекса, наткнулся на ссылку на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).

Она в течение нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 30-40. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!

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

Под катом содержание перевода, чтобы решить стоит ли читать.
Читать дальше →
Total votes 200: ↑179 and ↓21+158
Comments27

Не все комментарии одинаково полезны

Reading time7 min
Views34K
Все животные равны, но некоторые животные равнее других. Скотный Двор, Джордж Оруэлл (оригинал).

Достаточно много статей на хабре набирает существенное количество комментариев, e.g. в статьях "лучшее за месяц" их, как правило, более сотни. За годы чтения хабра, создалось впечатление, что примерно в половине случаев для комментариев первого уровня получается вот такая вот картина

(картинка сделана на основе хабра-статьи «Список скептика»).

Под катом рассказ, какие бывают сортировки комментариев, где они применяются и краткое рассуждение о том, как вообще можно сортировать комментарии (и зачем).
Читать дальше →
Total votes 122: ↑109 and ↓13+96
Comments57

Как мы делали сервис на WebRTC

Reading time5 min
Views48K


Статей про WebRTC уже достаточно много и в интернетах, и на Хабре (здесь и здесь), повторять их ещё раз не имеет особого смысла, поэтому тут приведем наш личный опыт и впечатления, полученные при разработке live.pics.io.

Идея



Live.pics.io позволяет создавать приватные сессии для совместного просмотра и обсуждения изображений голосом. Это могут быть любые изображения: от фотографий, до макетов дизайна и презентаций. Pазрабатывая pics.io, мы достаточно хорошо научились работать с разными raw форматами в браузере, поэтому можно не заморачиваться с конвертацией и закидывать фотографии сразу после съемки (будут рады владельцы Canon’ов и Nikon’ов, остальные камеры пока требуют конвертации в DNG).

Очень коротко о webRTC


На самом деле, использовать WebRTC — это практически то же самое, что использовать сокеты. Но немного по-другому (совсем чуть-чуть). Нам нужно передавать изображение и звук. Берем RTCPeerConnection для соединения между пирами, MediaStream для трансляции аудио и RTCDataChannel для передачи изображений. Еще, для того, чтобы все это заработало, понадобится небольшой серверсайд для соединения пиров и передачи управляющих инструкций. Но об этом чуть позже.

Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments16

Опрос: почему люди увольняются

Reading time1 min
Views67K
Не секрет, что в последнее время IT компании тратят очень много сил и ресурсов на «удержание сотрудников». У меня лично складывается впечатление, что «удержание сотрудников» — это что-то про манипуляции и не слишком честных руководителей. А для того, чтобы ребята оставались работать в вашей команде, достаточно вовремя платить конкурентную зарплату, дать им интересные проекты и создать условия, в которых им будет комфортно работать.

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

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

Надеюсь, данные результаты будут интересны и полезны многим :)
Total votes 77: ↑69 and ↓8+61
Comments102

Подбор маски ввода по телефонному номеру

Reading time7 min
Views169K
Данный плагин для jQuery позволяет автоматически подбирать подходящую маску ввода на основе введённого начала телефонного номера. Это позволяет сделать ввод номера телефона на странице web-cайта более быстрым и безошибочным. Кроме того, разработанный плагин может быть использован в других областях, если правила ввода возможно представить в виде нескольких масок ввода.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments56

Улучшение субъективной скорости работы сайта при помощи подсказок браузеру

Reading time4 min
Views39K
Я удивлен, что эта техника упоминалась на Хабре только один раз и вскользь — если верить поиску, конечно.
Меня не покидает ощущение, что на самом деле все про это знают, но я всё же расскажу.

Суть в том, что браузеру можно подсказать, какую страницу пользователь откроет следующей — и он начнет её загружать заранее.

Делается это несложно — нужно всего-то добавить пару мета-тегов в head:

<link rel="prefetch" href="NEXT PAGE URI" />
<link rel="prerender" href="NEXT PAGE URI" />


Теперь подробнее про ограничения и нюансы.
Читать дальше →
Total votes 124: ↑119 and ↓5+114
Comments44

Рекомендательные системы: теорема Байеса и наивный байесовский классификатор

Reading time4 min
Views61K
В этой части мы не будем говорить о рекомендательных системах как таковых. Вместо этого мы отдельно сконцентрируемся на главном инструменте машинного обучения — теореме Байеса — и рассмотрим один простой пример её применения — наивный байесовский классификатор. Disclaimer: знакомому с предметом читателю я вряд ли тут сообщу что-то новое, поговорим в основном о базовой философии машинного обучения.

image
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments9

Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI

Reading time2 min
Views11K
С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год.

image

Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован, разбираться в нем не было никакого желания, и тут до меня дошло — ведь Google выпустил API для аналитикса! Поэтому было решено не обрабатывать напильником существующую версию, а просто получить данные цивилизованно, посредством API, тем не менее, оставив при этом «структуру» и основные моменты предыдущей версии.
Читать дальше →
Total votes 62: ↑58 and ↓4+54
Comments52

Парсим русский язык

Reading time8 min
Views70K

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

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

"Мама мыла раму":

(предложение
    (именная гр. (сущ мама))
    (глаг. гр. (глаг мыла)
        (именная гр. (сущ раму)))
    (. .)))


Это называется синтаксическим деревом предложения. В графическом виде его можно представить следующим образом (в упрощенном виде):

Читать дальше →
Total votes 128: ↑124 and ↓4+120
Comments97

Write once, render anywhere — используем один шаблонизатор на клиенте и сервере

Reading time4 min
Views4.9K

Введение


Все вы наверняка уже слышали или используете в повседневной жизни различные шаблонизаторы, они же template engine-ы. Используем мы их обычно для генерации HTML кода. В этом процессе у нас как правило есть какая-то модель данных и HTML шаблон который мы этими данными наполняем.
Раньше HTML страницы мы генерировали только на серверной стороное, а сегодня все чаще делаем это и на клиенте. Спрос родил предложение, и у нас стало все больше появляться шаблонизаторов которые работают на JavaScript, а есть и шаблонизаторы с реализациями на множестве языков одновременно, в том числе и на серверных, какие возможности нам это дает, я попытаюсь описать в данной статье.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments12

Профилирование и отладка php-приложений с помощью xhprof & FirePHP

Reading time5 min
Views65K

Всем веб-разработчикам, особенно в высоконагруженных проектах, рано или поздно приходится сталкиваться с профилированием своих приложений. Конечно, все мы знаем xdebug, с помощью которого можно проводить отладку серверной части. Однако, в тяжелых RIA-приложениях значительно чаще приходится отлаживаться в связке фронтенда+бэкэнд, всякие ajax-запросы, скорость отработки конкретных скриптов и все такое прочее. И для этих задач есть довольно-таки не плохой набор инструментов. Это xhprof и firephp.
Читать дальше →
Total votes 60: ↑53 and ↓7+46
Comments22

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity