Как стать автором
Обновить

Компания WapStart временно не ведёт блог на Хабре

Сначала показывать

how to: Как и зачем работать с svn через git

Время на прочтение3 мин
Количество просмотров58K
Добрый день!

В статье я расскажу, как мы работаем с svn через git и почему не выбрали чистый git.

SVN


Subversion — это централизованная система контроля версий. Это главный ее минус и главный ее плюс :)

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

Главный минус — это merge… Те, кто часто делает мерж средствами svn, понимает о чем я.
Это медленно (даже меееееееедлееенно), требует постоянного соединения с репозиторием, а еще эти svn-properties, которые мешают читать diff.
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии41

Обзор систем кеширования в onPHP

Время на прочтение5 мин
Количество просмотров9.4K
Добрый день!
В этой статье мы расскажем о том, как мы работаем с кешем в plus1.wapstart.ru, какие проблемы у нас возникали и как мы решали некоторые частные случаи.

Для начала о терминологии.


Под «кешем» в этой статье я буду понимать какое-то быстрое хранилище, которое может использоваться, в том числе, и для кеширования. При этом хранилище должно обладать стандартизированным интерфейсом.
Сервер/хранилище — это какое-нибудь приложение, которое может хранить данные и давать к ним доступ по интерфейсу, который описан ниже. Например, этим приложением может быть memcached.

Мы используем фреймворк onPHP. В нем есть абстрактный класс CachePeer, от которого должны наследоваться все реализации кешей. Интерфейс любой реализации сводится к следующим методам.

		abstract public function get($key);
		abstract public function delete($key);
		
		abstract public function increment($key, $value);
		abstract public function decrement($key, $value);
		
		abstract protected function store(
			$action, $key, $value, $expires = Cache::EXPIRES_MEDIUM
		);
		
		abstract public function append($key, $data);

В нашем мире существуют следующие реализации CachePeer (кликабельно)

Читать дальше →
Всего голосов 33: ↑22 и ↓11+11
Комментарии56

О «чистоте» мобильного веба, мошенниках и рекламе

Время на прочтение6 мин
Количество просмотров22K
Покажите мне только богатого человека, и я отниму у него деньги.
С деньгами нужно расставаться легко, без стонов.
Остап Бендер

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

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

О проблеме уже писали несколько раз на хабре, и вообще — http://bit.ly/ReGcFd.
В интернете информации тоже полным полно — статья википедии, например. Само по себе мобильное мошенничество невозможно без привлечения новых и новых "клиентов". Один из самых "дешевых" способов — это реклама в мобильном интернете. К моему удивлению, даже известные сети мобильной рекламы не борются с мошенниками. Примеров тому множество. Из последнего — вот эта статья на хабре.
Если вы размещаете на своих ресурсах рекламу самостоятельно, то вы тоже не защищены от мошенников, т.к. когда сервис становится массовым, остро встает вопрос модерации. В случае, если модерацию проводит не специалист в этой области, риск разместить "алярм" возрастает. В этом плане сети ИМХО даже несколько безопаснее, чем самостоятельное размещение рекламы, т.к. там запрет мошенничества как минимум заявлен.
Под катом я расскажу о видах мошенничества и о том как мы выявляем мошенников в plus1.wapstart.ru

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

Профилирование PHP скриптов на живом сервере

Время на прочтение5 мин
Количество просмотров17K
Добрый день, сообщество!

Наверняка кто-то из вас сталкивался с такой проблемой: медленно работает сайт на реальном сервере.
Важно оперативно выяснить в каких местах возникли сложности. Использовать для этого xdebug нельзя, так как он создает большую нагрузку на сервер и сам вносит погрешность в измерения. Для решения этой задачи мы выбрали систему, которая позволяет очень быстро собирать древовидную статистику по работе сайта — pinba.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии59

Что такое — выглядит как мемкеш, ведет себя как мемкеш, но не мемкеш?

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

Доброго дня, коллеги!



Сегодня я расскажу вам о том, как не внося большого количества изменений в приложение улучшить его быстродействие. Речь пойдет о нашем небольшом «велосипеде» [1], призванном заменить memcache в некоторых случаях.

Статья написана по моему докладу «Кругом обман или использование стандартных протоколов для нестандартных вещей» [2] на DevConf'12.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Архитектура plus1.wapstart.ru

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

Добрый день, сообщество!



Изначально я планировал написать статью в виде конспекта с доклада на devconf. Потом на меня снизошло понимание, что сорокапятиминутное выступление сложно переложить в статью на хабре, при этом оставив ее размер вменяемым. Поэтому в статье речь пойдет об архитектуре plus1.wapstart.ru, а слайды с конференции можно посмотреть здесь.

Plus1.wapstart.ru — это рекламная сеть для мобильного интернета. Наша «экосистема» — это рекламодатели, владельцы площадок (сайтов и приложений) и аудитория пользователей.
Владельцы площадок хотят максимально просто и эффективно монетизировать свою аудиторию, рекламодатели хотят эффективно вложить деньги, потребителей реклама должна как минимум не раздражать, а как максимум — они должны быть ей довольны.
Задача plus1.wapstart.ru — удовлетворение потребностей этих групп. Для нас их желания означают, что мы должны работать максимально быстро, не допускать ни минуты даутнайма и само собой следить за качеством и внешним видом рекламы.

Немного цифр:
  • Пиковая нагрузка > 103 динамических запросов в секунду.
  • В день мы показываем более ~ 107 объявлений.
  • Cуммарное число баннеров и площадок измеряется четырехзначными цифрами.
  • Среднее время отдачи баннера не превышает 90ms.


Если вам интересно как это всё работает — добро пожаловать под кат!

Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии19

WapStart приветствует участников Mobilefest 2012 промо акцией

Время на прочтение1 мин
Количество просмотров1.9K
Компания WapStart приветствует участников конференции Mobilefest.
Желаем продуктивного общения и возможности хорошо провести время на склоне)!!!

У нас есть небольшое промо к этому событию, а именно +25% к заработку владельцев мобильных приложений на iOS и Android которые работают по рекламной модели.

Для участия необходимо зарегистрироваться в нашей сети до конца марта, а в процессе регистрации указать партнерский код — 12512. Участники акции будут получать +25% дохода в течении 2 месяцев, но для этого, как Вы понимаете, нужно разместить рекламный код нашей сети.
Читать дальше →
Всего голосов 13: ↑6 и ↓7-1
Комментарии0

Http-заголовки расскажут многое о вашем девайсе

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

Если правильно собирать и интерпретировать заголовки, то можно сказать очень многое об устройстве, а возможно и о самом пользователе. В этой статье я расскажу как мы в Wapstart используем сведения, передаваемые в http-заголовках.
Дисклаймер — статья носит обзорный характер. Некоторые вещи могут показаться сообществу слишком "капитанистыми".

Начну с основ:
Как правило, внутри веба взаимодействие производит по протоколу http.
Читать дальше →
Всего голосов 23: ↑11 и ↓12-1
Комментарии0

Page Object — путь к совершенным автотестам

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


Всем, доброго времени суток!
Этот топик о том как мы тестируем веб-интерфейс нашего продукта Plus1 WapStart. Мы используем Page Object, т.к. этот паттерн имеет много общего с реальными задачами и позволяет писать автотесты простыми для чтения и понимания.

Что такое Page Object


Page Object — это паттерн для реализации умных автоматических проверок. Gem page-object является имплементацией этого паттерна, который помогает в создании гибких страниц с объектами для тестирования браузерных приложений. Суть в том, чтобы создавать уровни абстракции для отделения тестов от предметов тестирования, и обеспечить простой интерфейс для элементов на странице. Gem работает с watir-webdriver и selenium-webdriver.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии8

Привет, хабр!

Время на прочтение1 мин
Количество просмотров1.5K
Мы давно планировали завести хабраблог.

Во-первых, потому что 88% команды WapStart
постоянно читают Хабр.

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

Наш блог на Хабре будут вести не только маркетологи, но и программисты, системные архитекторы и тестировщики WapStart. Поэтому если будут вопросы о тайнах разработки, в рамках разумного, пишите – мы готовы приоткрыть завесу внутреннего устройства мобильной рекламной сети.

В феврале и марте мы планируем готовить топики каждую неделю.
Первой мы опубликуем статью о мультимедийном формате рекламного баннера, затем расскажем о проектировании автотестов с шаблоном PageObject на Ruby и в начале марта подготовим пост-ревью о мобильных заголовках (http headers) и о том, как мы их используем в работе.


Поехали!
Всего голосов 23: ↑9 и ↓14-5
Комментарии2