Pull to refresh
45
0
Табота Олег @nProfessor

Руководитель команды общих компонент в Яндекс.Еде

Send message

Видео докладов Badoo с конференции Highload 2015

Reading time1 min
Views13K
Наконец-то у нас появились видео выступления наших спикеров на Highload 2015, которые мы с удовольствием выкладываем.

Если у вас появятся вопросы к докладчикам, задавайте их в комментариях. Ребята на них обязательно ответят.

1. «Near-realtime аналитика событий в высоконагруженном проекте», доклад Александра Крашенинникова



Еще 3 отличных доклада

Инструменты быстрого прототипирования

Reading time9 min
Views206K
Прототипы, как инструменты дизайна, находятся на подъёме, и вот почему. Я твёрдо верю, что прототипирование помогает нам в процессе создания качественных пользовательских интерфейсов. Мы работаем в мире богатых, обладающих динамикой интерфейсов пользователя как в сети, так и на наших устройствах. Интерфейсы, которые мы создаём, интерактивны, откликаются на воздействие пользователя и обладают эмоциями. Прототипы позволяют сформулировать чувства и функции дизайна так, как этого не могут сделать простые экранные формы. Но как выбрать лучший инструмент прототипирования для работы?
Много текста. Читать дальше

Как MySQL оптимизирует ORDER BY, LIMIT и DISTINCT

Reading time16 min
Views15K
Есть задачи, которые в рамках реляционных СУБД не имеют универсальных решений и для того чтобы получить хоть какой-то приемлемый результат, приходится придумывать целый набор костылей, который ты потом гордо называешь “Архитектура”. Не так давно мне как раз встретилась именно такая.

Предположим, имеется некоторые сущности А и Б, связанные между собой по принципу One-to-Many. Количество экземпляров данных сущностей достаточно велико. При отображении сущностей для пользователя необходимо применить ряд независимых критериев, как для сущности А так и для сущности Б. Причем результатом применения критериев являются множества достаточно большой мощности — порядка нескольких миллионов записей. Критерии фильтрации и принцип сортировки задается пользователем. Как (я бы ещё спросил: Зачем им миллионы записей на одном экране? — но говорят надо) показать все это пользователю за время 0 секунд?
Решать такие задачи всегда интересно, но их решение сильно зависит от СУБД, под управлением которой крутится твоя база данных. Если у тебя в рукаве козырной туз в виде Oracle, то есть шанс, что эти костыли он подставит сам. Но спустимся на землю — у нас есть только MySQL, так что придется почитать теорию.
Далее ...

Программа-помощник для освоения слепой печати на клавиатуре в Linux

Reading time7 min
Views34K
Хочу показать и рассказать о небольшой программке, которая принесла пользу.

Однажды на работе мне написал друг. Диалог у нас состоялся примерно следующий:
— Привет, я тут обучаюсь технике слепой печати. Дело в том, что на линуксе нет программки, которая могла бы мне помочь. В общем, может ты сможешь быстренько написать такую?

Так как помочь другу — святое дело, да и задача выглядела интересной, помочь я согласился.

В итоге получилось вот что:



Кому интересно, подробности ниже
Читать дальше →

Оптимизация Android-игры mTricks Looting Crown для платформы Intel Atom

Reading time12 min
Views12K
Самая популярная категория мобильных приложений – игры. В былые времена возможности процессоров и графических ускорителей портативных устройств были весьма ограничены, что сказывалось на их производительности. В итоге большинство игр приходилось делать достаточно простыми. Сегодня вычислительные мощности смартфонов и планшетов значительно выросли, а значит, появилась возможность создавать высококачественные, ресурсоёмкие игры. Однако мобильные CPU и GPU всё еще уступают тем, которые устанавливают в персональные компьютеры.

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



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

Составление запросов со сложными условиями

Reading time1 min
Views9.8K
Доброго времени суток всем поклонникам Zend Framework. Думаю, что многие из вас знают, любят и используют класс Zend_Db_Select для построения sql запросов. Несомненно, у такого подхода есть масса плюсов. Достаточно изучить документацию, чтобы с легкостью писать простейшие запросы в БД. Но что, если требуемые запросы не совсем просты?
Узнать как сделать их простыми

Zend Framework 2: Service Manager

Reading time7 min
Views21K

Service Manager (SM, CM) в ZF2.


Service Manager — это один из ключевых компонентов Zend Framework 2, который существенно облегчает жизнь разрабочика избавляя его от дублирования кода и рутинных операций по созданию и настройки сервисов, позволяя их конфигурировать на максимально высоком уровне. СМ, по своей натуре, является реестром сервисов, основная задача которого — создание и хранение сервисов. Можно сказать, СМ является очень продвинутой версий компонента Zend_Registry из Zend Framework 1.
СМ реализует паттерн Service Locator. Во многих частях приложения (например, в AbstractActionController) можно встретить функции getServiceLocator(), которые возвращают класс Zend\ServiceManager\ServiceManager. Такое несоответствие названия метода и возвращаемого типа легко объясняется тем, что getServiceLocator() возвращает объект, реализующий интерфейс ServiceLocatorInterface:
Читать дальше →

Пример разработки блога на Zend Framework 2. Часть 1. ZendSkeletonApplication

Reading time10 min
Views68K
В последние несколько лет моя работа связана с использованием CMS Drupal, но на досуге я изучал и just for fun запускал проекты на питоновских фреймворках Django, Flask и Twisted. Сейчас я решил освоить основы двух-трех популярных PHP-фреймфорков и первыми я решил изучить Zend Framework 2 и Yii.

В процессе ознакомления с Zend Framework 2 я изучил туториал с официального сайта (http://framework.zend.com/manual/2.2/en/user-guide/overview.html), просмотрел документацию фреймворка (http://framework.zend.com/manual/2.2/en/index.html), прочитал книгу Michael Romer “Web development with Zend Framework 2” и собрал собственное тестовое приложение.

Переварив всю эту информацию, я пришел к мысли, что официальный туториал к фреймворку суховат:
  • в нем не рассказывается о работе с пользователями, сессиями и правами доступа,
  • лишь вскользь рассматривается такая основополагающая часть фреймворка как ServiceManager,
  • в качестве интерфейса с базой данных безальтернативно используется паттерн Table Gateway (и соответствующая его реализация в фреймворке),
  • используется встроенный в фреймворк шаблонизатор, который после питоновского Jinja 2 кажется совершенно неудобным и примитивным,
  • и т.д.

В итоге, более-менее удовлетворительное по функционалу приложение я смог создать после прочтения книги.

В этой статье я хочу привести пример разработки простого блога, в ней будет несколько отличий от официального туториала. В первую очередь я постараюсь заострить внимание на тех вопросах, которые во время изучения показались мне недостаточно раскрытыми в официальном туториале. Кроме того я буду использовать некоторые технологии, альтернативные тем, что используются в Zend фреймворке по умолчанию:
  • в качестве шаблонизатора будет использоваться Twig,
  • для работы с БД — Doctrine ORM,
  • для авторизации/аутентификации и распределения прав доступа я буду использовать существующие модули ZfcUser и BjyAuthorize,
  • также я рассмотрю вопросы разработки собственных валидаторов форм, View плагинов и другие.

За деталями добро пожаловать под кат

Интернет-магазины приучают покупателей платить онлайн

Reading time3 min
Views6.2K


Еще несколько лет назад российские покупатели интернет-магазинов чаще всего оплачивали товар при получении, а не на сайте онлайн. Большинство пользователей заявляли, что они не доверяют магазинам и системам онлайн-платежей. Сейчас ситуация постепенно меняется, и доля интернет-платежей растет с каждым годом. «Яндекс» выяснил, какие варианты оплаты предлагают онлайн-магазины, а агентство Data Insight провело исследование предпочтений покупателей Рунета.

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

Умный поиск в интернет-магазине

Reading time3 min
Views8.7K
Поиск в интернет-магазине всегда входил в общий пакет создания интернет-магазина. И только недавно стал предлагаться как отдельный продукт, например, сервис findologoc или как плагинами к cms searchanise.com. Нельзя сказать, что на них сразу кинулись клиенты, но начало положено. И появление таких сервисов неизбежно по одной причине. Год назад один ритейлер цифровой техники (Кей), перед тем как делать свой новый фронтенд сайта с целью повышения юзабилити, провел фокус группу по выявлению наиболее важных элементов поиска товаров.
Читать дальше →

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

Reading time5 min
Views202K


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

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →

Что мешает вам получать трафик бесплатно?

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


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

Гай Кавасаки. Искусство задавать простые вопросы

Reading time3 min
Views8.5K
image
Предлагаю вашему вниманию перевод очередной статьи замечательного евангелиста Гая Кавасаки: «The Art of Simple Questions: How Simple Questions Lead to Great Innovations».

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

Как использовать психологические принципы для увеличения конверсии

Reading time5 min
Views12K
Оптимизация конверсии — это увеличение вероятности того, что пользователь выполнит какое-либо целевое действие на вашей странице.

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

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

Опыт продвижения проекта с минимальными затратами

Reading time2 min
Views38K


Год назад началась история Raindrop.io. За это время сервис посетило 250 000 человек, а количество сохраненных закладок перевалило за 2.5 миллиона. На данный момент реализована веб-версия, расширения для всех браузеров, Android и iOS клиент. Как и прежде в проекте я один. В этом посте я постараюсь поделиться накопленным опытом и рассказать о важных событиях случившихся с проектом.
Читать дальше →

Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

Reading time9 min
Views96K
Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

Определяем доступную память и активность swap.

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

$ free -m

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

$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы

Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



Здесь представлен список сервисов, которые я изменил.

  • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
  • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
  • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Читать дальше →

Парные товары. Размещения товаров в торговом зале

Reading time2 min
Views23K


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

Итак, Пары — это товары, часто покупаемые вместе. В паре один товар является ключевым (якорным), а второй — сопутствующим. On-line сервис Datawiz.io выявляет парные взаимосвязи товаров при помощи алгоритма APRIORI.
Читать дальше →

Немного статистики по email-маркетингу

Reading time3 min
Views47K
Данным постом мы открываем блог сервиса email-маркетинга Pechkin-mail.ru на Хабре. Мы долгое время не решались сделать это, т.к. считали, что нам нечего дать Хабрасообществу, кроме как попиариться. Но за полтора года работы мы накопили знаний, которые будут полезны всем it-шникам, так или иначе, связанным с email-рассылками. Мы будем публиковать как статистическую, так и техническую информацию о работе нашего сервиса. В первом посте мы расскажем и покажем свою статистику по открытиям email-рассылок и статистику почтовых провайдеров Рунета, которую накопили за это время от сотен наших клиентов.

Статистика открытий писем на Печкине


Открытия писем — это один из важнейших параметров успешности рассылки. Нас часто спрашивают — “Почему это мою рассылку открыло 40% подписчиков. Остальные что, ее не получили? Вы все отправили?”. Мы смотрим на размер адресных баз данного клиента, видим, что он составляет > 10 000 подписчиков и “выпадаем в осадок”, ведь это чрезвычайно высокая эффективность рассылки. В этом случае мы сразу “метим” данную рассылку и готовим ее к публикации, как супер-кейс, на котором можем показывать как надо вести работу с подписчиками. А почему мы это делаем? Да потому что средний процент открытий на таком размере адресных баз составляет 12,06%.

На скриншоте выше видна зависимость открываемости email-рассылок от размера адресных баз, по которым они были отправлены.

Еще больше графиков и данных под катом.

7 эффективных A/B-тестирований с приветственными письмами

Reading time11 min
Views34K
Рост популярности email-рассылок — следствие их эффективности. Чтобы использовать этот инструмент на все 100%, надо провести серьезную подготовку. Например, разобраться с тем, как приветствовать потенциального клиента. Это, оказывается, не так уж просто. Приветственные письма клиентам — залог успеха всех взаимоотношений. Текст, дизайн, время отправки и структура влияют на то, станут ли клиенты активными, купят ли еще. Ранее мы рассмотрели советы по времени, частоте, срочности, персонализации, призывам к целевому действию, в этой же статье хотим поговорить о том, как можно (и нужно!) тестировать приветственные письма. Опытом делится Питер Танхам, который имеет обширный практический опыт тестирования, которое давало результаты..
Читать дальше →

500 слов в минуту без подготовки

Reading time1 min
Views519K


Обычная скорость чтения на русском языке составляет 120—180 слов в минуту. С помощью долгих тренировок можно повысить её где-то до 600 слов в минуту. Совсем недавно небольшой стартап из Бостона представил новую технологию под названием Spritz.

Мне удалось без подготовки читать со скоростью 500 слов в минуту. Разработчики утверждают, что можно достигнуть 1000; без ущерба для смысла. Более того, утверждается, что использование Spritz также увеличивает скорость чтения обычных текстов.

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

Information

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

Specialization

Backend Developer, Fullstack Developer
Lead
From 10,000 $
Symfony
PHP
High-loaded systems
OOP
Database
SQL