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

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

Send message

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

Reading time 5 min
Views 5K

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

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

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

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

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

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


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

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

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

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

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

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

image

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

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

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

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

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

Reading time 4 min
Views 2.3K


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

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

Reading time 2 min
Views 37K
В рамках инициативы 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
Comments 43

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

Reading time 3 min
Views 51K
Задача: поставить Windows 8 Developer Preview поиграться.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reading time 5 min
Views 47K


Статей про 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
Comments 16

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

image

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

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

Reading time 8 min
Views 70K

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

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

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

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


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

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

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

Reading time 4 min
Views 4.9K

Введение


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

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

Reading time 5 min
Views 65K

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

Information

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