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

Google App Engine *

Платформа для размещения приложений

Сначала показывать
Порог рейтинга
Уровень сложности

Крестики-нолики с помощью Channel API на Google App Engine и Java

Время на прочтение3 мин
Количество просмотров4.3K
Представляю вашему вниманию рассказ об использовании Сhannel API в игре крестики-нолики по мотивам вот этой статьи: Channel API Overview (Java).

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

Сохранение контактной информации в Google Contacts

Время на прочтение8 мин
Количество просмотров6.1K
Добрый день, коллеги!

Как я и обещал в своей предыдущей статье, хочу поделится с вами информацией касательно использования Google Contacts API. Кому интересно узнать, как вызывать Google Contacts API из Java на Google Apps Engine — добро пожаловать под кат.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

GWT Grid

Время на прочтение1 мин
Количество просмотров8.5K
Недавно на Хабре обсуждались таблицы, используемые в веб-интерфейсах учётных систем. Вдохновившись этой темой, мы решили выложить в открытый доступ исходные продуктивные коды своей таблицы: https://finbudgetgrid.googlecode.com
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии16

Использование фильтра сервлетов для «всплытия» страницы из фрейма

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

В одном проекте мне потребовалось сохранять контакты в Google Contacts. Это несложно — надо только авторизоваться через OAuth в Google и получить ключ доступа. Но дело в том, что при этом делается переход на сайт Google, где собственно происходит авторизация и подтверждение доступа приложения к контактным данным. Я же предполагал делать работу с контактом в iframe, а в целях предотвращения clickjacking'а Google не позволяет этого делать. Стало быть, требуется как-то сделать, чтобы страница OAuth открывалась в главном окне, а не во фрейме. Мой вариант решения — под катом.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Истории

Написание сервиса японских кросвордов на gae, backbone, underscore, require и еще с помощью черт знает чего

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

Вступление


Многие знают про инфраструктуру от google под названием gae, некоторые считают её слишком проприетарной, другие слишком дорогой. Да она не дешевая, и мы попробуем написать оптимальное приложение для gae, которое жрало бы очень мало ресурсов и в идеале не выходило из бесплатных квот даже при хабраэффекте. Опишу мои ошибки, удачные технологические решения при написания сервиса японских кроссвордов. Фишка сайта в том что он позволяет создавать свои кроссворды и из обычной картинки тоже и делиться ими с друзьями.
Для построения сайта используется след. технологии:
backbone.js — фреймворк для обработки запросов на javascript'е. C его помощью будем надеяться, что уложимся в бесплатные квоты, так как весь код выполняется на клиенте, с сервера запрашиваются только данные о кроссвордах в json формате.
require.js — библиотека для дозагрузки любых ресурсом(js, html), можно указать код, который выполнится после загрузки всех ресурсов. Идеальна если у вас есть на сайте javascript и он используется в 1% случаев, и вы не хотите включать js-файл в index.html, то она вам подойдет.
undescore.js — всякие плюшки для слежения за изменением всего объекта или за конкретным его свойством. Очень большая и крутая библиотека, но я использую её как шаблонизатор.
bootstrap — чтобы не заморачиться с дизайном.
less — не ну, а почему б не использовать? (Потому что мы можем)
Ну и конечно же gae — на чем все это будет крутиться.

Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии19

Простой файловый хостинг на Google App Engine

Время на прочтение5 мин
Количество просмотров11K
Наверняка каждый из вас в своей жизни находил удобный для себя файловый хостинг, а через какое-то время обнаруживал, что на нем от количества рекламы начинают болеть глаза, условия уже далеко не такие лояльные и вообще пора бы уже найти что-то новое. Вариантов дальнейших действий два — или найти новый, пока еще не раскрученный файлообменник и использовать его, пока он не испортится, или организовать собственное решение. Для второго варианта, в свою очередь, можно приобрести хостинг (придется правда набить шишек, пока не найдется добросовестный хостер с качественными услугами) или воспользоваться облачным сервисом.

Довольно интересной находкой оказался PaaS-хостинг от Google — Google App Engine (далее GAE), который дает возможность хранить до 5 Гб файлов при 1 Гб входящего и 1 Гб исходящего трафика в день, и кроме всего прочего, в нем используется модель High Replication, то есть ваши данные будут хранится сразу на нескольких серверах по всему миру!
Особенностью GAE является несколько нестандартный интерфейс для работы с файлами, поэтому я и сделал собственный сервис, о чем расскажу в данной статье.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии44

Знакомимся с PayPal Standard Checkout

Время на прочтение8 мин
Количество просмотров45K
Подключение PayPal Standard Checkout

В данном руководстве последовательно описан мой опыт внедрения PayPal Standard Checkout с использованием языка Java на платформе Google App Engine. Данная статья рассчитана на людей уже имеющих опыт работы с облачной платформой GAE.

Задача

Потребовалось мне интегрировать платёжную систему PayPal на сайт собственного проекта который будет предоставлять сервис по подписке. Начав работу с PayPal Express Checkout API через некоторое время пришло осознание того что система приёма платежа становится слишком громоздкой, в то время как у готовых кнопок Standard Checkout отсутствует необходимая гибкость, которая требуется в случае интеграции сайта с другими платёжными системами.
Выход был найден в использовании инструментов Standard Checkout которые предоставляет PayPal разработчикам сторонних “корзин” для сайта.

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

Делюсь статистикой использования

Время на прочтение2 мин
Количество просмотров909
Недавно в одном моём проекте понадобилось добавить простенькую статистику. Не буду углубляться в детали самого проекта, скажу лишь, что это shareware программа, которая стоит у нескольких десятков тысяч пользователей. Моя цель — знать сколько человек в день пользуется Trial версией программы.

Очевидным решением является поставить веб-сервер, написать маленький скрипт, обрабатывающий запрос на некий URL вида http: //myproject/ontrial и далее моя программа при запуске должна делать запрос на этот URL.

Ранее я уже делал небольшие поделки на GAE, поэтому есть кое какой опыт, да и развертывания сервисов меня привлекла. Поэтому долго даже не думал над тем где расположить свой сервис, тем более он состоит из 1 простого метода, который по сути ничего не делает. Что еще более обрадовало, так это статистика в панели администратора GAE, в которой можно видеть какие методы и сколько раз дергались. Далее привожу сухую статистику использования и цены (много картинок)
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии27

Ошибка склеивания нескольких Set-Cookie применительно к urllib2/mechanize и её исправление (для Python)

Время на прочтение2 мин
Количество просмотров2.1K
Возможно, кто-то из читателей сталкивался с этой проблемой. В багтрекере GAE она уже давно висит в виде незакрытого Issue 3379. Кажется, изначально проблема касалась только Java, но сейчас она наблюдается и в Python (по крайней мере в 2.7). Описание ошибки и решение для Java можно найти, например, там, а в этом топике речь пойдёт про Python.

Коротко о сути. Часто сайты пытаются установить более одной cookie за раз. Делают они это путём указания нескольких заголовков Set-Cookie в ответе на запрос. По странному ведёт себя в этом случае urlfetch (и базирующиеся на нём urllib/urllib2): все эти заголовки склеиваются в один и разделяются запятыми. Надо ли напоминать, что запятые также присутствуют в полях expiries, а порой и в самих значениях cookie, что очень затрудняет обратный разбор такой строки. А стандартный HTTPCookieProcessor из urllib2 и mechanize просто не справляется с такой ситуацией.

Итак, если ваш проект использует поддержку cookies «из коробки» в urllib2 или mechanize, то вам безусловно подойдёт
следующее простое решение.
Всего голосов 12: ↑11 и ↓1+10
Комментарии2

Вышла версия 1.6.0

Время на прочтение2 мин
Количество просмотров1K
Спустя три с половиной года после презентации платформы на Campfire One, App Engine выросла и стала полноправным продуктом Google. Мы создавали прокдукт, следуя простой философии: «удобно использовать, просто масштабировать и легко начать». Сейчас у нас более 100 миллиардов посещений в месяц, более 300 тысяч активных приложений и более 100 тысяч разработчиков, использующий продукт. Подход полностью оправдал себя. Спасибо за Вашу поддержку. Google верит в светлое будущее App Engine.
via The App Engine Team
Обзор изменений
Всего голосов 28: ↑25 и ↓3+22
Комментарии3

Google анонсировала Google Cloud SQL

Время на прочтение1 мин
Количество просмотров7.2K
Неужели свершилось? Основное ограничение, мешавшее переносу существующих приложений на платформу GAE — отсутствие обычного, нормального SQL уходит в прошлое? Компания Google анонсировала свой новых продукт: Google Cloud SQL.

Для того, что бы получить доступ к данному API необходимо на странице Services вашего проекта в GAE «Запросить» данное API — заполнить небольшую форму (кстати реализованную при помощи Google Docs) — и остается дальше только ждать когда же дадут доступ — что бы воочию пощупать — действительно ли там нормальный SQL без каких-либо ограничений?
Всего голосов 41: ↑39 и ↓2+37
Комментарии42

Вышла версия 1.5.4

Время на прочтение1 мин
Количество просмотров557
Вышла новая версия GAE SDK 1.5.4.

Основные изменения:
  • Blobstore API — появилась возможность задать максимальный размер для загружаемого файла
  • Datastore — улучшение внутреннего механизма выборки по нескольким полям с использованием операции = (равно)
  • Prospective Search API теперь доступна и для Java
  • Memcache — стало возможным делать запись в Memcache без ожидания ответа от сервиса. Мы просто передаем данные, и не дожидаемся пока они будут обработаны этим сервисом для продолжения работы

Несмотря на последние события, связанные с повышением цен, Google App Engine продолжает работать над улучшением качества своего продукта, что нас радует.

Список изменений для Python
Список изменений для Java
Скачать GAE SDK 1.5.4

Источник: официальный блог Google App Engine

P.S. В текущей версии SDK не появилась возможность выборки по условию несоответствия <, >, !=.
Всего голосов 12: ↑9 и ↓3+6
Комментарии6

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Ленивая загрузка webapp

Время на прочтение3 мин
Количество просмотров3.1K
В стандартном фреймворке webapp есть много полезного и мало лишнего. Но есть в этом неплохом творении гугла одна особенность — все используемые модули подгружаются при старте приложения. Это удобно для разработки и отладки, но грозит одной проблемой: слишком долгий старт инстанса немаленького приложения. В результате пользователь вынужден ждать пока загрузится всё приложение, даже если для отображения нужной ему страницы нужна лишь малая часть кода.

Сегодня мы «научим» webapp не загружать лишнее.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии17

Корректировка новых правил учета ресурсов для приложений App Engine. Хорошие новости

Время на прочтение1 мин
Количество просмотров715
Google объявила об изменениях, касающихся введения новых правил учета ресурсов, используемых приложениями под App Engine.
Главная новость в том, что теперь будет предоставлено 28 бесплатных часов в сутки на приложение вместо 24. Это дает хороший шанс для слабо нагруженных приложений оставаться в рамках бесплатных квот.
Кроме того, переход на новую систему отложен до 1 ноября. Peter Magnusson (технический директор Google, ответственный, за App Engine) признал, что было ошибкой дать так мало времени пользователям системы на предварительную оценку ситуации и оптимизацию своих приложений. Обещаются улучшения в консоли, касающиеся учета инстансов, а отчеты (usage reports) теперь будут доступны уже на следующий день.
Также продлен срок действия 50%-ной скидки. Теперь она будет сохранена до 1 декабря (предполагается, что к тому времени будет доступен Python 2.7).
Всего голосов 12: ↑9 и ↓3+6
Комментарии10

Оптимизация под новый прайс

Время на прочтение7 мин
Количество просмотров1.2K
image
App Engine полным ходом идёт к светлому будущему и новой методике расчёта за ресурсы. Паника и хаос вселились в ряды разработчиков под AE — слишком многое держится в строжайшем секрете (или в компании тоже толком не знают что как будет). Но сегодня мы не будем обсуждать, будет ли blobstore включен в бесплатные квоты, или за один лишь доступ к нему придётся платить. Не обсудим куда податься, если новые цены совсем не по карману и не будем говорить о $50 «халявы», которыму гугъл пытается смягчить переход на новые рельсы (тем более, что эту радостную весть разослали всем администраторам приложений).

Сегодня речь будет идти об оптимизации приложений. Вы же уже оптимизировали своё приложение на минимальное потребление процессорного времени и памяти? Забудьте об этом, теперь это вторично и Ваши кровные будут сниматься по другим меркам.
Итак, начнём.
Всего голосов 31: ↑25 и ↓6+19
Комментарии29

Вышла версия 1.5.3

Время на прочтение2 мин
Количество просмотров577
Основные изменения:
  • Blobstore API — нет ограничения на размер добавления
  • Список Индексов — пограммный доступ к списку индексов и их статусам
  • Datastore Admin — можно влючить из консоли администратора
  • Memcache API для Python — теперь поддерживает CAS операции
  • Java Обновления — с помощью команды AppCfg download_app, можно скачать любые файлы, загруженные с war каталога приложения

Подробности ниже…
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

Оптимизация HTTP-сервера через версионность ресурсов. Особенности реализации

Время на прочтение5 мин
Количество просмотров3.2K
  1. Суть оптимизации
  2. Page load vs forced refresh
  3. Потребуется автоматизация
  4. Реализация серверной части
  5. Оптимизация серверной части
  6. Особенности google app engine
  7. Исходный код
  8. Резюме


Рассматривается пример реализации для Google App Engine / Python.

Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии23

Простой чат с помощью Channel API на Google App Engine для Python

Время на прочтение10 мин
Количество просмотров5.6K
Представляю вашему вниманию вольный перевод статьи под названием "A Simple Chat using the Channel API". Так же я решил немного добавить своего кода.

Сегодня мы представляем вам новую статью для Google App Engine посвященную Сhannel API, которое появилось в декабре 2010 года в релизе 1.4. С этого момента стала возможной отправка сообщений напрямую с сервера клиенту и обратно без использования polling.
Поэтому стало достаточно просто реализовать чат на Google App Engine. Процесс реализации описан под катом.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии13

Странное поведение dev server при использовании GAE Plugin для Eclipse Indigo (3.7)

Время на прочтение2 мин
Количество просмотров665
Доброго всем времени суток!
Недавно занялся разработкой своего первого приложения на Google App Engine и моментально столкнулся с забавной проблемой — эмулятор сервера GAE, входящий в пакет GAE SDK для Java отказывался применять изменения в коде проекта. Далее описание проблемы и то, как я от нее избавился. Возможно это сэкономит кому-нибудь время
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Вклад авторов