Как стать автором
Обновить
8
0
Игорь Штельмах @WebPhd

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

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

Попытка реализации универсального парсера интернет магазинов с помощью SlimerJS

Время на прочтение5 мин
Количество просмотров20K
Хочу представить пример шаблонного парсера интернет-магазина. Пример ни как не претендует на звание универсального инструмента для получения структурированных данных с интернет магазина, но возможно подойдет для некоторых шаблонных интернет магазинов коих в интернете очень много.
парсинг интернет магазина
В качестве инструмента для парсинга сайта я использую SlimerJS.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии38

Традиционное тестирование скоро умрет

Время на прочтение2 мин
Количество просмотров38K
Рутинные задачи в разработке ПО автоматизируются посредством приложений Continuous Delivery и DevOps. Разработчики берут на себя все больше и больше ответственности. Мне стало интересно какова будет роль традиционного тестирования и тестировщиков если посмотреть немного вперед.


Читать дальше →
Всего голосов 38: ↑22 и ↓16+6
Комментарии64

Apache Spark или возвращение блудного пользователя

Время на прочтение10 мин
Количество просмотров12K
Продолжаем цикл статей про DMP и технологический стек компании Targetix.

На это раз речь пойдет о применении в нашей практике Apache Spark и инструментe, позволяющем создавать ремаркетинговые аудитории.

Именно благодаря этому инструменту, однажды посмотрев лобзик, вы будете видеть его во всех уголках интернета до конца своей жизни.
Здесь мы и набили первые шишки в обращении с Apache Spark.

Архитектура и Spark-код под катом.


Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии30

Простой метод для извлечения соотношений и фактов из текста

Время на прочтение4 мин
Количество просмотров16K
Ранее мы писали об анализе отзывов о ресторанах, с целью извлечения упоминаний разных аспектов (еды, обстановки, и подобного). Недавно в комментариях возник вопрос о извлечении из текста фактической информации, т.е. можно ли, например, из отзывов об автомобилях извлечь факты, например «быстро ломается коробка передач» => ломается(коробка передач, быстро), чтобы с этими фактами можно было потом работать. В этой статье мы опишем один из подходов к решению такой проблемы.



Метод, о котором мы расскажем, опирается на ряд упрощений, он не самый точный, но зато легок в реализации и позволяет быстро создать прототип приложения, в котором он должен использоваться. В ряде случаев его будет и вполне достаточно, а для других можно ввести усовершенствования, не отступая от основного принципа.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии7

Оптимизация производительности MySQL

Время на прочтение2 мин
Количество просмотров18K
В нашем блоге мы много пишем о построении облачного сервиса 1cloud, но немало интересного можно почерпнуть и из опыта по работе с инфраструктурой других компаний.

Мы уже рассказывали о дата-центре фотосервиса imgix, а сегодня затронем тему повышения производительности MySQL и взглянем на советы инженеров соцсети Pinterest.

Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии7

Как собрать умный дом

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


Всем привет, с вами команда Wiren Board!

Нас часто спрашивают: «Что можно подключать к вашему контроллеру? Как на нём собрать “умный дом”?»
Чтобы немного прояснить этот вопрос, мы покажем стенд, где к Wiren Board 4 подключены периферийные устройства. На его примере расскажем про типовые варианты подключения устройств и датчиков.

На стенд можно посмотреть на него через онлайн-трансляцию и зайти в демонстрационный веб-интерфейс.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии40

Как мы делали облачную систему автоматизации ресторанного бизнеса

Время на прочтение7 мин
Количество просмотров40K
Привет, Хабр! Первая запись в корпоративном блоге не претендует на некую энциклопедическую значимость, поэтому просим не судить строго, это всего лишь знакомство с компанией и разрабатываемым продуктом.

И эта история о том, как мы разрабатывали систему автоматизации для ресторанов.


Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии76

50+ лучших дополнений к Bootstrap

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


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Всего голосов 123: ↑111 и ↓12+99
Комментарии25

Elasticsearch — сортируем выдачу руками

Время на прочтение5 мин
Количество просмотров18K
Благодаря своей гибкости и масштабируемости, сегодня Elasticsearch находит применение во все более широком круге задач — от поиска до аналитики. Однако есть ряд вопросов, с которыми Elasticsearch не справится в одиночку.

Например, ваша поисковая выдача меняется от пользователя к пользователю. И сортировка, основанная только на данных самого документа (TF/IDF или сортировки по любым полям документа), не дает нужного результата. При этом в поисковой выдаче интернет-магазина вы хотите показать товар, который пользователь уже смотрел на первых позициях.

Другой пример. Параметр, влияющий на сортировку, меняется слишком часто: Elasticsearch построен на базе Lucene и использует append-only хранилище, обновление документов фактически отсутствует. Каждое изменение документа приводит к его переиндексации и влечет периодическое перестроение сегментов хранилища. Иными словами, если вы хотите отсортировать выдачу по количеству просмотров документа на сайте, то самое тупое, что можно сделать, — это записывать каждый просмотр в Elasticsearch. И здесь, похоже, назрел вопрос использования внешнего хранилища мета-информации, используемой для сортировки документов.


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

Geo индекс для поиска новых знакомых или революционное открытие ученых из Австрии

Время на прочтение3 мин
Количество просмотров22K
Как вы знаете, Badoo — сервис для поиска новых людей. Кроме всего прочего, мы позволяем искать людей вокруг и в «игре» тоже показываем людей, которые находятся недалеко от вас. Эта часть «вокруг» очень и очень важна. Ведь молодому человеку из Новосибирска гораздо интереснее познакомиться с девушкой, которая живет в пяти минутах ходьбы от него, а не во Владивостоке.
Мы до сих пор не рассказывали публично о том, как мы это делаем. Но новое открытие австрийских ученых настолько нас обрадовало, что мы решились это сделать. Перейдем же к делу.
Badoo работает по всему миру и наш поиск работает абсолютно одинаково, вне зависимости от того, в какой точке земного шара вы находитесь. Как же эффективно искать людей вокруг среди всех 200+ миллионов пользователей?
Решение нетривиально, честно говоря. Нам нужен какой-то индекс, какой-то способ сразу же сузить область поиска. В случае с земным шаром, самым простым разбиением является сетка географических широт и долгот. Однако проблема с этой сеткой в ее неравномерности. Ячейка у северного полюса и ячейка у экватора имеют совсем разные формы. Такое несимметричное разбиение вносит большие проблемы, если мы хотим равномерно распределить нагрузку по поисковому кластеру.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии31

Методы наведения летательных аппаратов в разработке игр

Время на прочтение3 мин
Количество просмотров58K
image

Год назад я закончил Московский Авиационный Институт и получил квалификацию «Инженер». Но поскольку к тому времени я уже год отработал программистом и знал, что в этой области буду работать и в дальнейшем, получение «корочки» не стало для меня чем-то переломным, в отличие от моих многих одногруппников. Знания, полученные на 4-5 курсах, казались мне довольно интересными и расширяющими кругозор, но не слишком полезными для работы программистом. Однако есть несколько тем, которые мне помогли и в работе. Про одну из них я и хочу рассказать, и имя ей — методы наведения летательного аппарата.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии7

Как переписать большой проект или безболезненный для бизнеса рефакторинг

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

Вопрос, который мне задают чаще всего, — как разговаривать о рефакторинге с руководителем?
В таких случаях я даю несколько спорный совет: не говорите ему ничего!
Мартин Фаулер, «Рефакторинг. Улучшение существующего кода»

Устаревание кода, трудности с поддержкой, непредсказуемые баги — эти термины один за другим появляются в жизни разработчика по мере разработки продукта. И если первое — это скорее интересы разработчика, то последнее — это прямая проблема бизнеса.

В этой статье я хочу поделиться опытом переписывания большого проекта и как бонус привести пару кусков кода, которые помогли нам и, надеюсь, помогут вам начать этот интересный путь.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии37

Что такое хорошо: как мы разрабатывали критерии для оценки качества вёрстки веб-проектов

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


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

Очевидно, что учить нужно так, чтобы потом люди (не все из которых «технари») могли приходить в компании и работать «правильно» — то есть создавая вёрстку, которая красиво выглядит и не требует больших усилий по поддержке. Процесс создания списка универсальных критериев для оценки занял довольно длительное время и был сопряжён с рядом трудностей. Сегодня мы расскажем о том, что же у нас в итоге получилось.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии47

Зелёная энергетика для базовых станций и всего до 2 КВт — трёхлетний опыт с ветряками, солнечной генераций + геозондом

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

Монтаж ветрогенератора


Ветрогенератор, контейнер с батареями, геозонд и базовая станция в Самаре

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

Расскажу про сломанные ветряки и то, что мы поняли за три года, и уникальный геозонд для охлаждения стойки с оборудованием связи.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии46

Текстовый чат для сайта

Время на прочтение3 мин
Количество просмотров25K
image

Хочу поделиться опытом создания текстового чата на основе nginx-push-stream-module модуля Nginx, PHP и Javascript. Этот модуль функционирует по принципу long polling и может быть использован как для обмена мгновенными сообщениями между пользователями, так и для системы push–уведомлений.
Читать дальше →
Всего голосов 40: ↑26 и ↓14+12
Комментарии17

3 лучших инструмента для описания RESTful API

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

Взаимодействие различных сервисов с использованием АPI, из новаторства превращается в обыденность. Количество бесплатных и платных API уже исчисляется тысячами, и с каждым днем их число активно растет. А почему бы и нет? Продажа удаленных запросов к своему новаторскому сервису может принести больше прибыли, чем распространение услуг через свою площадку. И пусть, в таком случае, уже ваши клиенты ломают голову и тратят деньги на привлечение аудитории. Используя свой опыт работы, я предлагаю краткий обзор лучших решений по реализации API на сегодняшний день.
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии17

PHPCI обновился до версии 1.6

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


Система непрерывной интеграции PHPCI доросла до версии 1.6 (обзор, обновление до 1.3), и я хотел бы рассказать об изменениях, произошедших с версии 1.3.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии8

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Время на прочтение29 мин
Количество просмотров107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

БЭМ упрощает разработку сайтов, которые нужно быстро создавать и долго поддерживать. Эту технологию используют во фронтенде почти всех сервисов Яндекса, и она уже успела обрасти множеством библиотек и инструментов, которыми мы хотим с вами поделиться.



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Всего голосов 96: ↑79 и ↓17+62
Комментарии37

Нестандартная оптимизация проектов на PHP

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

image

Традиционные методы, думаю, всем известны:
  • Оптимизация SQL-запросов;
  • Поиск и исправление узких мест;
  • Переход на Memcache для часто используемых данных;
  • Установка APC, XCache и подобных;
  • Клиентская оптимизация: CSS спрайты и т.п.


В нашем же проекте всё это было сделано, но при этом проблема скорости обработки страниц сохранялась. Средняя скорость обработки страницы была в районе 500мс. В один прекрасный момент пришла идея проанализировать, какие ресурсы есть, и на что они могут тратиться.
Читать дальше →
Всего голосов 53: ↑40 и ↓13+27
Комментарии103

Как мы написали helpdesk (часть 2)

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

В продолжении части 1, мы решили написать статью, как вышли на «новый уровень» по созданию веб-продукта. Хочу сразу уточнить, что это не совсем хелпдеск, который основан на создании заявок клиентами (хоть такая возможность и присутствует), а больше рассчитан на внутреннюю работу организации или IT-департамента. Так же хочу напомнить, что система создавалась конкретно под наши требования, поэтому она не лучше других, но и не хуже. Она просто «другая», у которой есть свои функции под конкретные задачи и возможно займёт достойное место в общем мире продуктов, делающих IT-мир лучше.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии22

Информация

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