Search
Write a publication
Pull to refresh
9
0

User

Send message

In-app Billing Subscriptions со стороны сервера

Reading time8 min
Views19K
In-app Billing Subscriptions (подписки) позволяют автоматизировать списание средств со счета пользователя для приложений, разработанных под Android. Данный инструмент — большой помощник в задаче повышения монетизации приложений. В общем виде схема работы с подписками выглядит следующим образом:

  1. Пользователь покупает подписку на некоторые плюшки приложения
  2. В случае успешной покупки, приложение получает данные заказа пользователя, в частности идентификатор транзакции и токен продажи подписки, и передает их на сервер
  3. Сервер осуществляет проверку подписи заказа в Google Play, контролирует уникальность транзакции, определяет время завершения подписки и начисляет положенные блага
  4. По завершении подписки, сервер может определить факт продления и, в случае успеха, продолжить начисление благ


В статье представлены шаги по обеспечению серверной поддержки инструмента монетизации для In-App Billing version 2.
Читать дальше →

iTunes In-App Purchases со стороны сервера

Reading time13 min
Views36K
Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

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

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

Погружаясь в производительность

Reading time9 min
Views19K


Привет, меня зовут Стив Соудерс и я работаю в Google в команде, которая «делает интернет быстрее». Это невероятно круто. В команде более 50 человек и наша задача сделать весь интернет в целом быстрее, не только сервисы Google. Кроме этого, я помогаю Airbnb, Twitter, Facebook, только что отправил подробное описание системы улучшения производительности в Pinterest. Мы хотим сделать так, чтобы глобальная сеть стала быстрее. Я в основном пишу код, создаю разные утилиты и анализирую, что происходит на веб-страницах и в браузерах, и многое другое. И сегодня я расскажу о многом из того, что я уже сделал.

Данный пост сделан по мотивам выступления Стива Соудерса.

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

Docker контейнеры для web-разработчика под OS X

Reading time3 min
Views24K
Всю свою текущую разработку я веду, используя docker контейнеры, и если под Linux такой подход не вызывает никаких проблем, то под OS X некоторые моменты могут отнять невероятное количество сил и времени.

Об одном из таких моментов я и хочу рассказать.
Читать дальше →

Yii 2.0. Релиз

Reading time9 min
Views90K
После трёх лет интенсивной разработки и почти 10000 коммитов более 300 авторов вышла стабильная версия PHP фреймворка Yii 2.0! Спасибо за поддержку и терпение!

Как вы, возможно, уже знаете, Yii 2.0 был переписан с нуля. Это решение было принято, так как мы хотели получить отличный PHP фреймворк, который сохранит простоту и расширяемость Yii и, в то же время, будет использовать свежие технологии и возможности, чтобы стать ещё лучше. Сегодня мы рады сообщить, что цель достигнута.

Немного полезных ссылок про Yii и Yii 2.0:



Далее мы рассмотрим самые интересные возможности новой версии. Если вы спешите попробовать фреймворк в деле, начните с чтения раздела руководства Getting Started.

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

Как IT-фрилансеру стать предпринимателем. Часть 2

Reading time4 min
Views56K
Всем привет! В предыдущем посте мы рассказали, зачем фрилансеру ИП и почему ИП лучше, чем ООО. Сегодня вы узнаете, как зарегистрировать ИП самостоятельно и что делать потом.



Всё для самостоятельной регистрации ИП на сайте «Я люблю ИП»
Читать дальше →

Лучший подарок – книга. Делаем красивый переплет

Reading time8 min
Views263K
Идея создания книги собственными руками поселилась в голове изрядно давно. Изучив практическую сторону вопроса, я лишь укрепился в этом желании, но руки никак не доходили даже до выбора книги. И вот некоторое время назад судьба распорядилась за меня. В силу обстоятельств непреодолимой силы во мне появилось желание подарить уникальную вещь, а, как известно, лучше книги подарка нет. Выбор пал на любимое произведение объекта моего неконтролируемого интереса, невероятно мудрое и емкое, смыслом, а не словами, творение Экзюпери — «Маленький принц». Желание творить подстегивала и моя личная любовь к этой книге. Решение было принято, время неумолимо приближало момент вручения, и я приступил к работе.
Читать дальше →

Заблуждения программистов относительно времени

Reading time3 min
Views92K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

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

Authomatic: python библиотека для аутентификации и авторизации

Reading time6 min
Views42K
imageПрактически любое веб-приложение предоставляет возможность авторизации пользователя с использованием учетной записи пользователя, в каком либо из известных социальных сервисов.

Магия авторизации происходит строго по протоколу OAuth 1.0а и OAuth 2.0 и значительно упрощает жизнь и владельцу веб-приложения и самому пользователю.

Остается сущая мелочь, реализовать нужный протокол применительно к конкретному веб-приложению. Регистрация и вход в веб сервис TheOnlyPage с использованием учетных записей Facebook, Google, LinkedIn и Microsoft Live работают благодаря python библиотеке Authomatic.

Согласно документации Authomatic обладает следующими замечательными особенностями:
Читать дальше →

Несложный способ восстановления работоспособности Li-Ion аккумуляторов от портативных устройств

Reading time3 min
Views983K
image

Привет всем юзерам хабра, сегодня я буду рассказывать про то, как я довольно таки простым методом, восстанавливаю нерабочие Li-Ion аккумуляторы от портативных устройств до того как обзавёлся таким замечательным устройством как Imax B6. Таким методом я восстановил работоспособность уже, наверное, трем десяткам аккумуляторов от разных гаджетов, от фотоаппаратов до MP3 плееров, но я замечу, только восстановил работоспособность, емкость таким образом вернуть не получится, да и лично я не встречал способов вернуть емкость для такого типа аккумуляторов. К слову, емкость, которая останется в аккумуляторе, очень сильно зависит от того сколько аккумулятор пробыл в такой «клинической смерти».

Скажу сразу, данный метод не претендует на что-то из разряда «Вау, это что-то новенькое» но, тем не менее, не все про него знают. Суть данного метода чтобы «толкнуть» аккумулятор.

Вот видео всего процесса:


(информация что ниже будет дублировать информацию, предоставленную в видео)
Подробности

Разбираемся с монадами с помощью Javascript

Reading time11 min
Views44K
Оригинальная статья — Understanding Monads With JavaScript (Ionuț G. Stan).
Буду признателен за комментарии об ошибках/опечатках/неточностях перевода в личку

От автора


Последние несколько недель я пытаюсь понять монады. Я все еще изучаю Haskell, и, честно говоря, думал, что знаю, что это такое, но когда я захотел написать маленькую библиотечку — так, для тренировки — я обнаружил, что хотя и понимаю, как работают монадические bind (>>=) и return, но не представляю, откуда берется состояние. Так что, вероятно, я вообще не понимаю, как это все работает. В результате, я решил заново изучить монады на примере Javascript. План был тот же, когда я выводил Y Combinator: взял изначальную задачу (здесь это взаимодействие с неизменяемым явно состоянием), и проделал весь путь к решению, шаг за шагом изменяя изначальный код.
Читать дальше →

Выравниваем блок по центру страницы

Reading time5 min
Views994K
Очень часто стоит задача выровнять блок по центру страницы / экрана, да ещё и так, чтобы без ява-скрипта, без задания жёстких размеров или отрицательных отступов, ещё чтобы и скроллбары работали у родителя, если блок превышает его размеры. В сети ходят достаточно много однообразных примеров как выровнять блок по центру экрана. Как правило большинство из них основаны на одних принципах.
Читать далее

Пара полезных команд, которые могут пригодиться при DDoS и не только

Reading time3 min
Views82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →

Лень — двигатель прогресса или мой вариант создания окружения для веб-разработки на основе VirtualBox

Reading time11 min
Views26K


Всем веб-разработчикам так или иначе нужен какой-то сервер для разработки своих веб-приложений. Кто-то использует «Денвер», кто-то OpenServer, более продвинутые берут виртуальный сервер (VPS), а еще более продвинутые используют Vagrant, а кто-то просто ленивый. Под катом я расскажу, как разворачиваю веб-приложение для разработки с помощью VirtualBox, баша и кой-каких костылей. Для тех, кто ленив и не хочет смотреть под кат: описан один баш-сценарий, который монтирует расшареные папки в гостевую ОС и полу-демон, который запускает первый сценарий после запуска перед остановкой системы и реализует интерфейс демона.
Плюс некоторые другие свистелки

Парсер BBCode без регулярных выражений

Reading time8 min
Views7.3K
Здравствуйте. Хотел бы поделится своим опытом с сообществом Habrahabr. Речь пойдет о разработке не очень сложного парсера BBCode, который преобразует его в HTML. Парсер, который мы будем писать — это типичный конечный автомат.
Читать дальше →

Смелый стайлгайд по AngularJS для командной разработки [1/2]

Reading time5 min
Views39K
После прочтения Google's AngularJS Guidelines у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

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

Мониторинг PostgreSQL + php-fpm + nginx + диска с помощью Zabbix

Reading time11 min
Views36K
Много информации в сети по Zabbix, много и шаблонов самописных, хочу представить на суд аудитории свои модификации.
Zabbix — очень удобный и гибкий инструмент мониторинга. Хочешь — сотню мониторь, хочешь — тысячу станций, а не хочешь — следи за одним сервером, снимай сливки во всех разрезах. Буду не против отдать на github, если кто коллекционирует схожие.

image

Так случилось, что решили мы выложить на хостинг базу данных с оберткой из php-fpm+nginx. В качестве БД — postgres. Мысли собирать данные о работе машины были еще до покупки хостинга — это нужно, это полезно! Волшебным пенделем к внедрению системы послужили тормоза жесткого диска на нашей VDS станции — в начале скриптом каждую минуту кладем время и замерянную скорость в файл, а потом в экселе строим графики, сравниваем как было/стало, снимаем количественную статистику. И это всего один параметр! А вдруг виноват не VDS, а наши приложения, которые на нем работают. Вобщем, мониторить надо много, мониторить надо удобно!
Читать дальше →

[Перевод] 6 ключевых отличий юзабилити B2B и B2C

Reading time5 min
Views20K
Джефф Сауро (пионер в измерении юзабилити, основатель Measuring Usability LLC.) выделил 6 ключевых отличий юзабилити B2B (Business to Business) и B2C (Business to Consumer) систем. О них и поговорим.


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

Генерация xkcd паролей на PHP

Reading time2 min
Views22K
Известный комикс xkcd подсказывает нам, что пароль, который состоит из 4 часто употребляемых слов — легко запомнить и сложно подобрать.


Перевод, оригинал

Все текущие реализации этого метода генерации паролей рассчитаны на английские слова, а значит пароли сложнее запомнить русскоязычным. Я вооружился частотным словарем русского языка, и сделал PHP библиотеку, которая поддерживает генерацию паролей из нескольких наборов слов:
  • английские слова (например, «idea critic happy chinese»);
  • русские слова (например, «порошок земля нуль платье»);
  • транслитерированные русские слова (например, «vysota razum bumazhka razmer»).

Код и списки слов на GitHub.

Описание библиотеки

How-to: Как купить акции технологических компаний на примере «Яндекса»

Reading time6 min
Views149K
image

В комментариях к одному из прошлых топиков нашего блога читатели попросили раскрыть тему того, как купить акции российских интернет-компаний. Поэтому сегодня речь пойдет о том, как российскому гражданину это сделать, и какие шаги для этого нужно будет выполнить. В качестве примера такой технологической компании было решено взять «Яндекс» — во-первых, эта компания недавно провела размещение акций на Московской Бирже, а во-вторых, покупка именно её акций чаще всего интересует наших читателей.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity