Search
Write a publication
Pull to refresh
9
0
ahaidukov @ahaidukov

User

Send message

Статистика для пользователей с использованием Piwik

Reading time4 min
Views11K
После того как мы вынесли наших пользователей на поддомены, нам захотелось иметь подробную статистику по каждому поддомену в отдельности, а также иметь возможность предоставлять эту статистику пользователю. Конечно, можно вручную подключать все поддомены к Google Analytics/Я.Метрика, но когда поддоменов становится достаточно много эта задача начинает выглядеть излишне сложной.

Захотелось какого-то автоматизированного решения, и оно было найдено в виде системы статистики с открытым исходным кодом Piwik. Эту систему можно установить на свой сервер, добавить в нее ваш сайт и пользоваться. Она предоставляет функционал, в основном аналогичный GA и Я.Метрика, + имеется возможность написания собственных плагинов (например для себя я разработал виджет «вчера-сегодня-прогноз», аналогичный по функционалу такому же блоку из яндекс.метрики).

Сначала для тестов система вела статистику по 1 домену и 1 поддомену, и справлялась с этим вполне успешно, полностью заменив для меня Я.метрику и GA. Соответсвенно было принято решение использовать Piwik API для реализации автоматического подключения статистики к пользовательским поддоменам. Требовалось выполнить следующее:
  1. Создать пользователя в системе Piwik
  2. Создать сайт в пивике
  3. Выдать пользователю права для просмотра статистики по сайту
  4. Получить id сайта для установки счетчика

Читать дальше →

10 советов по улучшению юзабилити веб-форм

Reading time4 min
Views28K
image

Веб-формы играют большую роль в ежедневном использовании интернета. Если вы разрабатываете веб-сайты, то скорее всего они в них присутствуют: будь то простая форма обратной связи или навороченное веб-приложение. Вот несколько советов, которые помогут создавать удобные в использовании формы.
Читать дальше →

Почему не стоит использовать кнопку «отправить»

Reading time2 min
Views1.9K
Когда вы видите кнопку «отправить», что приходит на ум? Очевидно, что при нажатии кнопки произойдет отправка информации в систему для обработки. Кнопка “отправить” хорошо описывает действия системы, но совсем не описывает действия пользователей.

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

Кнопка формы с надписью «отправить» создает у пользователей впечатление, что форма не ориентирована на конкретные задачи. Это также создает впечатление, что ваш сайт не удобный, потому что вы говорите на техническом языке, с которым многие не знакомы. Если при заполнении формы у пользователей сложилось такое впечатление, то будте готовы к тому, что некоторые ее не заполнят.
image
Читать дальше →

audio.js — слушаем музыку в любом браузере

Reading time1 min
Views70K
audio.js — это javascript библиотека, позволяющая использовать HTML5 тэг повсюду. Что скрывается за словом «повсюду». Если есть возможность использовать тэг , то будет использоваться он, иначе будет подключен плеер на flash. В библиотеку так же входит и UI отображение для этого плеера, которое может быть видоизменено с помощью css.
Читать дальше →

N+1 полезных книг о бизнесе

Reading time9 min
Views231K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →

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

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

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


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

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Финансирование стартапа от государства

Reading time5 min
Views3.9K
Допустим, фирму вы уже создали, отдавать инвесторам 75% долю не хотите, а денег где-то взять надо. Помощь приходит совершенно из неожиданного места – Государства. Речь идет о 350 000 рублей, которые вам (внимание!) подарят! Но заплатить придется некоторой бюрократической возней и потерей времени. Речь будет идти о малых предприятиях, зарегестрированных в городе Москве, так как пишу по собственному опыту.



По программе содействия развитию малого бизнеса г.Москвы (в других регионах есть аналоги) любой субъект малого предпринимательства имеет возможность получить до 350 000 рублей на следующих условиях:
  • Необходимо вложить не менее 50% собственных средств;
  • Нужно иметь помещение и договор аренды;
  • Необходимо потратить более 50% предоставляемой субсидии на покупку основных средств;
  • Возмещение арендной платы из бюджета — не более 3 600 руб. за кв.м. в год;
  • На расходные материалы можно потратить не более 20% субсидии.

Условия устраивают? Тогда действуем! 

Получить денег от государства...

Алгоритм популярности пользователя на сайте — «Нестандартный подход к стандартным вещам»

Reading time3 min
Views6K
Все видели на сайтах систему рейтинга статей и материалов. Многие ее даже делали сами, но не каждый делал рейтинг людей на сайте.
В этой статье я поведаю как сделать качественную систему рейтинга для пользователей вашего ресурса.
Читать дальше →

История развития и оптимизаций одного высоконагруженного ресурса

Reading time5 min
Views14K


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →

Архитектура Hyper-V: Глубокое погружение

Reading time11 min
Views120K
Всем занять свои места! Задраить люки! Приготовиться к погружению!
В этой статье я попытаюсь рассказать об архитектуре Hyper-V еще подробнее, чем я сделал это ранее.
image
Читать дальше →

Doctrine: Опыт работы с миграциями в symfony

Reading time6 min
Views33K
Для тех, кто не в курсе, миграции — это способ внесения изменений в структуру БД.
Управлять изменениями можно по-разному, но все сводится к работе инструкциями для изменения стуктуры.

Почему миграции это делают наилучшим способом:
1. Автоматизация. Вы можете хранить инструкции в sql-файликах, накатывать их при необходимости. Но это становится дико неудобно, когда встает вопрос о переключении между разными ревизиями (версиями БД), для командной разработки, когда всем разработчикам надо накатить изменения, для развертывания тестового окружения.
2. Rollback (как продолжение первого пункта). Мы можем откатить любую миграцию и получить версию БД на любой момент. Чем это удобно, см. ниже.
3. Идентичность DEV и PROD версий БД. Это очень важно, по крайней мере для меня, быть уверенным в том, что версии DEV, PROD и TEST абсолютно одинаковы. Да, этого можно добиться и другими способами. Но когда именно миграции являются носителями информации о структуре БД, вместе с автоматизацией решать эту задачу становится намного удобнее и проще.

Не буду описывать базовые вещи, можно посмотреть:
Далее - опыт, рекомендации, история и грабли при работе с миграциями

Hyper-V и сети

Reading time5 min
Views171K
Это будет, наверное, заключительная статья из серии, посвященной архитектуре Hyper-V. На одном форуме мне посоветовали написать продолжение – «Hyper-V и невидимая виртуалка», «Hyper-V и Орден Линукса», я обязательно об этом подумаю, и возможно даже – напишу.

Итак, в этой статье речь пойдет о том, как виртуальные машины в среде Hyper-V работают с сетевыми интерфейсами. Как я уже говорил в предыдущих статьях – сетевые интерфейсы – это единственный способ взаимодействия виртуальных машин как между собой, так и со «внешним миром». Поэтому понимать особенности сетевого взаимодействия в среде Hyper-V необходимо.
Читать дальше →

Hyper-V и устройства хранения данных

Reading time5 min
Views67K
image

Как я уже обещал – продолжаю «евангелировать» и пишу очередную статью про Hyper-V. На этот раз речь пойдет о работе Hyper-V с устройствами хранения данных – сиречь жесткими дисками и всякими внешними СХД.
Читать дальше →

Архитектура Hyper-V

Reading time6 min
Views22K
В этой статье мы поговорим о том, что такое Hyper-V «изнутри», и чем он отличается от VMware ESX с точки зрения архитектуры, а не маркетинговых листовок. Статья будет делиться на три части. В первой части я расскажу о самой архитектуре гипервизора, в двух других – о том, как Hyper-V работает с устройствами хранения данных и с сетью.



Читать дальше →

Визуальный редактор на jQuery

Reading time2 min
Views14K
Визуальный редактор

В мире визуальных редакторов есть CKeditor, есть tinyMCE — монстрообразные, не гибкие, их сложно изменять под задачи сайтов и интерфейсов. Есть небольшие, простые, они часто с ужасным дизайном, не развиваются, не поддерживаются. Как настоящий разработчик, несколько лет назад я решил написать свой редактор и в течение этого времени постоянно развивал его и упрощал. Суть редактора постепенно свелась к простым требованиям:
  • он должен быть красивым и одновременно ненавязчивым, чтобы вписывался без внешних изменений почти в любой интерфейс;
  • обязательно быстрым и легкий, потому что никому не нравится сидеть даже полминуты в ожидании загрузки всех кнопок и плагинов;
  • гибкий для разработки, доработки и встраивания под все возможные нужды;
  • с простым и понятным интерфейсом. В идеале визуальный редактор — это просто поле для ввода текстов, без лишних кнопок и функций. Просто люди пишут тексты в вебе и это все что им нужно.

Читать дальше →

ModularGrid — модульная сетка в браузере (и не только сетка)

Reading time1 min
Views10K
ModularGrid — это небольшая программка на javascript (около 30 КБ), которая облегчает труд HTML-верстальщика.


Основные возможности ModularGrid


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

подробности

Ещё одно Python сообщество

Reading time1 min
Views7K
Меня давно интриговал вопрос, почему в рунете нет приличного портала по языку программирования python? Вроде сделать не сложно, людей знающих язык огромное количество, но не смотря ни на что, сайтов о питоне единицы, да и те которые были, строились на PHP. Единственный сайт который изменился с тех пор, это форум Сагалаева, остальные либо забросили свои сайты, либо вообще отказались от идеи порталов, как от бесперспективного направления. Но как говорится, свято место пусто не бывает, и я решил заполнить эту нишу своим детищем: http://pyplanet.org/
Читать дальше →

Введение в шаблонизатор Blitz

Reading time5 min
Views10K
Из документации о Blitz: Чрезвычайно быстрый и мощный шаблонизатор для очень больших интернет-проектов.

Приведу несколько фактов:
  1. Это шаблонизатор используемый Хабром;
  2. Этот шаблонизатор используется на высоко-нагруженных проектах, он написан на C, подключается как расширение PHP;
  3. Его скорость сопоставима с самим php (бенчмарк под катом);
  4. Верстальщики будт счастливы, так как в шаблонах нет логики приложения, нет циклов, ветвлений и т.д.;
  5. Один из его авторов Алексей Рыбак fisher.


Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity