Открыть список
Как стать автором
Обновить
111.2
Карма
0
Рейтинг
Протько Сергей @Fesor

Full-stack developer

Организуем релевантный поиск по разнородным данным с помощью Sphinx

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

Постановка задачи


В проекте есть на данный момент 2 зоны:
  1. географическая зона, реализованная на базе Google Maps, которая отображает нанесенные пользователями на карту географические объекты (маркеры, маршруты и области);
  2. информационная зона, которая представляет собой большой иерархически организованный каталог, содержащий информационные материалы.
Необходимо было решить задачу одновременного текстового поиска по 3-м типам объектов: географическим объектам, категориям информационной зоны и материалам информационной зоны — c возможностью фильтрации по дате публикации объектов и категориям, к которым они относятся.
Решаем задачу
Всего голосов 44: ↑44 и ↓0 +44
Просмотры19.7K
Комментарии 41

Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 1

AjaxРазработка веб-сайтовJavaScript
Перевод
(от 27 июля 2012)
При написании нативного веб-приложения легко начать чувствовать себя богом, способным работать просто с библиотекой работы с DOM (такой как jQuery) и горсткой сервисных плагинов. Вскоре возникает проблема в виде груды вложенных возвратных функций jQuery и разбросанных DOM-элементов без всякой структуры вместо приложения.

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

■ Что такое MVC или, лучше сказать, MV*?


Эти современные библиотеки дают разработчикам простой путь к организации кода, используя вариации паттерна проектирования, известного как MVC (Model-View-Controller). MVC разделяет задачи в приложении на 3 части:
Читать дальше →
Всего голосов 58: ↑56 и ↓2 +54
Просмотры110.9K
Комментарии 23

Что если бы Google выпустил свой Bootstrap?

CSS
Поздравляю всех с пятницей и в качестве небольшого развлечения предлагаю представить, как бы выглядел популярный CSS-фреймворк Twitter Bootstrap, если бы он был от Google? Встречайте Plusstrap.


Читать дальше →
Всего голосов 216: ↑200 и ↓16 +184
Просмотры18.6K
Комментарии 91

Вся правда об XSS или Почему межсайтовое выполнение сценариев не является уязвимостью?

Блог компании Positive TechnologiesИнформационная безопасностьРазработка веб-сайтов
Должен признаться, что чтение комментариев на Хабре к практически любым постам, описывающим очередную XSS на каком-либо популярном сервисе или сайте, способно повергнуть в уныние любого, кто так или иначе связан с безопасностью веб-приложений. С учетом распространенных среди разработчиков мифов и заблуждений о межсайтовом выполнении сценариев, нет ничего удивительного в том, что он и по сегодняшний день входит в число наиболее распространенных проблем безопасности веб-приложений: согласно данным отчета Positive Technologies за 2010-2011 годы, XSS были подвержены 40% проанализированных веб-приложений, а из отчета Firehost за второй квартал 2012 года следует, что XSS составила 27% от числа зарегистрированных хостером атак.

И поскольку, заминусовать этот пост можно и за один только его заголовок, то поспешу пояснить: межсайтовое выполнение сценариев действительно не является уязвимостью, но только потому, что оно является атакой. В чем разница, почему это важно, как со всем этим бороться и какие еще мифы и заблуждения распространены об XSS — читаем под катом.
Читать дальше →
Всего голосов 178: ↑169 и ↓9 +160
Просмотры110.9K
Комментарии 48

Юнит-тестирование моделей в Yii

Yii
Из песочницы
Сейчас я расскажу про применение техники TDD для разработки моделей, используя Yii-framework.
Изначально предполагается, что была прочитана тема «Тестирование» из официального мануала (http://yiiframework.ru/doc/guide/ru/test.overview).

Итак, окружение настроено и сейчас нашей задачей будет — создать модели категории и продуктов(Category, Product) и покрыть их тестами.

Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры18.5K
Комментарии 11

Джоэль Спольски: производственные запасы в разработке ПО

Разработка веб-сайтов
Перевод
Представьте на минутку, что вы оказались на хлебозаводе. Сначала всё выглядит совершенно непонятно: куча оборудования неизвестного назначения, вокруг него суетятся люди. Затем вы немного осваиваетесь и замечаете более простые и привычные вещи. Вот контейнеры с кунжутом. Вот большие чаны с тестом. Вот маленькие шарики из этого теста. Вот уже выпеченные булочки.

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

Хранение запасов стоит денег. Предположим, что на хлебозаводе есть шесть 50-тонных силосов для хранения муки. Это значит, что в среднем каждый день в них находится около 150 тонн муки. По сегодняшним ценам это 73000$ мёртвого капитала.

Есть и другие издержки, например порча. Мука может храниться месяцами, но готовые булочки начинают терять в цене как только выйдут из печи; через 24 часа они не стоят почти ничего.

Зачем тогда вообще хранить запасы? Затем что есть ещё и расходы связанные с их нехваткой. Если на заказ новой партии булочек с кунжутом уходит два дня, то, если они вдруг закончатся в вашей закусочной, ваш бизнес по продаже гамбургеров остановится на двое суток. Запасы — это буфер, который предотвращает непредвиденные остановки. Сейчас придумано множество алогоритмов для вычисления оптимального объёма этих буферов (для начала: бережливое производство, теория ограничений).

Зачем я вам всё это рассказываю? Затем, что в производстве ПО тоже существуют места, где накапливаются «производственные запасы». И хранение этих запасов может стоить кучу времени и денег.
Читать дальше →
Всего голосов 77: ↑70 и ↓7 +63
Просмотры6.6K
Комментарии 42

JPEG сжатие картинки с альфа-каналом или SVG masks

Разработка веб-сайтовHTMLОбработка изображений
Привет, Хабр! Недавняя статья про сжатие в png-8 с сохранение полупрозрачности, напомнила мне об одной технике, которая позволяет применять на сайтах изображения с альфа-каналом, при этом используя алгоритм сжатия с потерями — JPEG, что позволяет существенно сократить их объём.
Читать дальше →
Всего голосов 98: ↑98 и ↓0 +98
Просмотры9.7K
Комментарии 17

Честная генерация DOCX файлов на PHP. Часть 2

PHP
image Здравствуйте, уважаемое хабрасообщество!
Продолжаем историю про генерацию DOCX средствами PHP.

Что нас ждет сегодня:
  • Мы узнаем, как вставлять изображения в документ;
  • Просветимся на счет English Metric Units;
  • Сделаем задел на будущую генерацию Exel.

Тем, кто не в курсе, рекомендуется прочитать первую часть. Ну а кто в теме – прошу под кат
Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Просмотры26.5K
Комментарии 19

Tinyicon — счетчик в favicon на js

Разработка веб-сайтов
Tinyicon это небольшая библиотека для манипуляции с favicon сайта для передачи информации о новых событиях. Для браузеров не поддерживающих canvas счетчик отображается в title страницы.

image

Примеры и ссылки инсайд
Всего голосов 119: ↑113 и ↓6 +107
Просмотры3.7K
Комментарии 30

Простая интеграция сайта и 1С

Разработка веб-сайтов
image
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.
Читать дальше →
Всего голосов 65: ↑56 и ↓9 +47
Просмотры133K
Комментарии 41

Ранжирование страниц по степени важности для интернет-магазина

Разработка веб-сайтов
Есть некоторый опыт проектирования, и реализации интернет магазинов который мы решили обобщить. Мы были удивлены выводами о степени важности разделов в интернет магазине, но приняли их к сведению. В каждом новом проекте мы идем по этому списку и в этом порядке. Объясняем заказчику, почему нужно начинать с описания «аудитории», а не с «главной страницы» сайта.
Читать дальше →
Всего голосов 57: ↑50 и ↓7 +43
Просмотры3.7K
Комментарии 24

Пиксельные искажения с билинейной фильтрацией в HTML5 canvas

JavaScriptОбработка изображенийCanvas

В данном посте я хочу описать простую методику пиксельного искажения изображения на «чистом» javascript в 2D-Canvas без использования специальных библиотек и шейдеров, путём прямого доступа к пикселям изображения. Надеюсь, это будет интересно и полезно как для общего развития, так и для решения каких-то задач.

Читать дальше →
Всего голосов 55: ↑52 и ↓3 +49
Просмотры7.4K
Комментарии 23

Unit-тестирование от начинающего начинающим

PHP
Из песочницы
Здравствуйте.

На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.

Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
Читать дальше →
Всего голосов 47: ↑40 и ↓7 +33
Просмотры77.4K
Комментарии 46

Поддержка атрибута «form» для старых браузеров

HTML
Добрый вторник, хабр.

По нужде написал fallback скрипт для поддержки атрибута form в старых браузерах.

Атрибут form связывает элементы или группу элементов <fieldset> с формой по её идентификатору. Такая связь необходима в случае, когда элемент не располагается внутри формы. Таким образом, можно отправлять данные на сервер и работать с формой, как если бы элементы находились внутри формы.

Просто подключите jquery и этот скрипт:
github.com/Ti-webdev/js-attr-form/blob/master/html5-attr-form-fallback.js
Всего голосов 32: ↑25 и ↓7 +18
Просмотры580
Комментарии 8

Пристальный взгляд на шаблоны мобильных интерфейсов

Интерфейсы
Перевод


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

Эти 70 шаблонов проиллюстрированы сотнями примеров приложений для операционных систем Apple, BlackBerry, Android, Symbian, Windows и WebOS будут изданы O’Reilly Media как «Mobile Design Pattern Gallery». Ниже приведена одна из моих любимых глав — Приглашение.

* Не смотря на то, что эти шаблоны ориентированы на разработку мобильных приложений, они так же могут быть использованы при работе над мобильным веб-сайтом.
Читать дальше →
Всего голосов 76: ↑68 и ↓8 +60
Просмотры5.8K
Комментарии 16

Определение доминирующих тонов на изображении [v 1.1]

Алгоритмы
После публикации прошлой статьи, я полностью забил на попытку выполнить алгоритм при помощи HSV или Lab координат. Забил на использовании библиотек цветов и вообще на сам скрипт забил.

Но что-то стало скучно и опять зачесались руки поработать с изображениями и одновременно захотелось исправить уже имеющийся алгоритм.
Скрипт: link

Читать дальше →
Всего голосов 113: ↑107 и ↓6 +101
Просмотры49.8K
Комментарии 76

Axis — интернет магазин своими руками

CMS
Добрый день Хабр,

Хочу познакомить пользователей Хабра с проектом над которым работает наша небольшая команда. Axis — это CMS для создания интернет магазинов под открытой лицензией.

Репозиторий на GitHub: http://github.com/axis/axiscommerce
Сайт: http://axiscommerce.com

image

Читать дальше →
Всего голосов 65: ↑59 и ↓6 +53
Просмотры17.1K
Комментарии 137

Как стать успешным фрилансером

Фриланс

Совсем недавно я побывал на мини-конференции местного разлива, где я размышлял на тему фриланса, с точки зрения веб-дизайнера. Даже подготовил для этого действа презентацию (на украинском). Здесь же попробую описать то, что хотел донести до слушателей Coffee Design Code.
Читать дальше →
Всего голосов 80: ↑60 и ↓20 +40
Просмотры12.8K
Комментарии 37

Kendo UI — новейший UI-фреймворк от Telerik

JavaScript
Из песочницы

Предлагаю краткий обзор свежего UI-фреймворка от Telerik под названием Kendo UI.

Предыстория



Совсем недавно я размещал тикет в поддержке Telerik и спрашивал у них, можно ли использовать компоненты (в частности MVC) в приложении, написанном на Classic ASP.

Конечно, ответ огорчил.
Читать дальше →
Всего голосов 62: ↑55 и ↓7 +48
Просмотры73.8K
Комментарии 23

Информация

В рейтинге
5,896-й
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность