Google App Engine → Простой файловый хостинг на Google App Engine из песочницы
Наверняка каждый из вас в своей жизни находил удобный для себя файловый хостинг, а через какое-то время обнаруживал, что на нем от количества рекламы начинают болеть глаза, условия уже далеко не такие лояльные и вообще пора бы уже найти что-то новое. Вариантов дальнейших действий два — или найти новый, пока еще не раскрученный файлообменник и использовать его, пока он не испортится, или организовать собственное решение. Для второго варианта, в свою очередь, можно приобрести хостинг (придется правда набить шишек, пока не найдется добросовестный хостер с качественными услугами) или воспользоваться облачным сервисом.
Довольно интересной находкой оказался PaaS-хостинг от Google — Google App Engine (далее GAE), который дает возможность хранить до 5 Гб файлов при 1 Гб входящего и 1 Гб исходящего трафика в день, и кроме всего прочего, в нем используется модель High Replication, то есть ваши данные будут хранится сразу на нескольких серверах по всему миру!
Особенностью GAE является несколько нестандартный интерфейс для работы с файлами, поэтому я и сделал собственный сервис, о чем расскажу в данной статье.
Довольно интересной находкой оказался PaaS-хостинг от Google — Google App Engine (далее GAE), который дает возможность хранить до 5 Гб файлов при 1 Гб входящего и 1 Гб исходящего трафика в день, и кроме всего прочего, в нем используется модель High Replication, то есть ваши данные будут хранится сразу на нескольких серверах по всему миру!
Особенностью GAE является несколько нестандартный интерфейс для работы с файлами, поэтому я и сделал собственный сервис, о чем расскажу в данной статье.
Google App Engine → Делюсь статистикой использования
Недавно в одном моём проекте понадобилось добавить простенькую статистику. Не буду углубляться в детали самого проекта, скажу лишь, что это shareware программа, которая стоит у нескольких десятков тысяч пользователей. Моя цель — знать сколько человек в день пользуется Trial версией программы.
Очевидным решением является поставить веб-сервер, написать маленький скрипт, обрабатывающий запрос на некий URL вида http: //myproject/ontrial и далее моя программа при запуске должна делать запрос на этот URL.
Ранее я уже делал небольшие поделки на GAE, поэтому есть кое какой опыт, да и развертывания сервисов меня привлекла. Поэтому долго даже не думал над тем где расположить свой сервис, тем более он состоит из 1 простого метода, который по сути ничего не делает. Что еще более обрадовало, так это статистика в панели администратора GAE, в которой можно видеть какие методы и сколько раз дергались. Далее привожу сухую статистику использования и цены (много картинок)
Очевидным решением является поставить веб-сервер, написать маленький скрипт, обрабатывающий запрос на некий URL вида http: //myproject/ontrial и далее моя программа при запуске должна делать запрос на этот URL.
Ранее я уже делал небольшие поделки на GAE, поэтому есть кое какой опыт, да и развертывания сервисов меня привлекла. Поэтому долго даже не думал над тем где расположить свой сервис, тем более он состоит из 1 простого метода, который по сути ничего не делает. Что еще более обрадовало, так это статистика в панели администратора GAE, в которой можно видеть какие методы и сколько раз дергались. Далее привожу сухую статистику использования и цены (много картинок)
Google App Engine → Ошибка склеивания нескольких Set-Cookie применительно к urllib2/mechanize и её исправление (для Python)
Возможно, кто-то из читателей сталкивался с этой проблемой. В багтрекере GAE она уже давно висит в виде незакрытого Issue 3379. Кажется, изначально проблема касалась только Java, но сейчас она наблюдается и в Python (по крайней мере в 2.7). Описание ошибки и решение для Java можно найти, например, там, а в этом топике речь пойдёт про Python.
Коротко о сути. Часто сайты пытаются установить более одной cookie за раз. Делают они это путём указания нескольких заголовков Set-Cookie в ответе на запрос. По странному ведёт себя в этом случае urlfetch (и базирующиеся на нём urllib/urllib2): все эти заголовки склеиваются в один и разделяются запятыми. Надо ли напоминать, что запятые также присутствуют в полях expiries, а порой и в самих значениях cookie, что очень затрудняет обратный разбор такой строки. А стандартный HTTPCookieProcessor из urllib2 и mechanize просто не справляется с такой ситуацией.
Итак, если ваш проект использует поддержку cookies «из коробки» в urllib2 или mechanize, то вам безусловно подойдёт
Коротко о сути. Часто сайты пытаются установить более одной cookie за раз. Делают они это путём указания нескольких заголовков Set-Cookie в ответе на запрос. По странному ведёт себя в этом случае urlfetch (и базирующиеся на нём urllib/urllib2): все эти заголовки склеиваются в один и разделяются запятыми. Надо ли напоминать, что запятые также присутствуют в полях expiries, а порой и в самих значениях cookie, что очень затрудняет обратный разбор такой строки. А стандартный HTTPCookieProcessor из urllib2 и mechanize просто не справляется с такой ситуацией.
Итак, если ваш проект использует поддержку cookies «из коробки» в urllib2 или mechanize, то вам безусловно подойдёт
Google App Engine → Вышла версия 1.5.5
Python 2.7, повышение лимитов, Cloud SQL Preview, Google Storage for Developers, Premier Accounts
Я пиарюсь → Принципы партнёрства в стартапе MyClasses.org — история, манящая в Доминикану
В этом посте я расскажу реальную историю о том как четыре человека (экспат-проказник, москвич, лимитчик да косолапый мишка) договорились о принципах партнёрства, закрепили эти договорённости простым письмом по электронной почте и, доверившись друг другу, за 9 месяцев географически-распределённой работы приблизились к своей мечте о независимости. Лично у меня эта мечта зародилась давно, но окончательно сформулировалась после прочтения «Четырёхчасовой рабочей недели» Тима Ферриса: идея о том, что надо создавать продукт, а не просто работать за зарплату, стала просто навязчивой.
Немного предыстории. Три года назад я поставил крест на своём предыдущем двухгодичном самоокупаемом, но слабо растущем проекте и начал регистрировать домены для нового: MyClasses.org — сеть локальных справочников (уровня города) о всевозможных курсах и уроках. На сайтах организуется процесс общения между школами, учителями и учениками. Этакая смесь Yellow pages + CMS + CRM + Feedback/Review + Social network. Локально-глобального масштаба.

Регистрировал домены я много, увлечённо и постоянно. Домейнерство, не в прямом смысле этого слова, — моя слабость — появилась идея и бац! — надо срочно зарегистрировать домен! Потом ажиотаж проходит, и появляется понимание что ни сил, ни времени, ни достаточных перспектив нет. Но домены остаются. Иногда их удавалось продать (3 раза по запросу, сам никогда не выставляю на продажу, лучшая сделка — $2.200, всего на $3.000 — не разбогатеешь). Но в этот раз всё было не так.
Очередная авантюра подкупала целым набором благоприятных факторов:
Немного предыстории. Три года назад я поставил крест на своём предыдущем двухгодичном самоокупаемом, но слабо растущем проекте и начал регистрировать домены для нового: MyClasses.org — сеть локальных справочников (уровня города) о всевозможных курсах и уроках. На сайтах организуется процесс общения между школами, учителями и учениками. Этакая смесь Yellow pages + CMS + CRM + Feedback/Review + Social network. Локально-глобального масштаба.

Регистрировал домены я много, увлечённо и постоянно. Домейнерство, не в прямом смысле этого слова, — моя слабость — появилась идея и бац! — надо срочно зарегистрировать домен! Потом ажиотаж проходит, и появляется понимание что ни сил, ни времени, ни достаточных перспектив нет. Но домены остаются. Иногда их удавалось продать (3 раза по запросу, сам никогда не выставляю на продажу, лучшая сделка — $2.200, всего на $3.000 — не разбогатеешь). Но в этот раз всё было не так.
Очередная авантюра подкупала целым набором благоприятных факторов:
Хостинг → Быстродействие EC2, Azure, App Engine, Rackspace и других облачных хостингов
Независимая компания Compuware в течение года проводила тесты на быстродействие всех облачных хостингов. Для тестов использовалось собственное ПО CloudSleuth. На их сайте любой может посмотреть результаты тестов за последние 30 дней, но сейчас впервые опубликована полная статистика за 12 месяцев.

Все результаты в xlsx

Все результаты в xlsx
Google App Engine → Google анонсировала Google Cloud SQL
Неужели свершилось? Основное ограничение, мешавшее переносу существующих приложений на платформу GAE — отсутствие обычного, нормального SQL уходит в прошлое? Компания Google анонсировала свой новых продукт: Google Cloud SQL.
Для того, что бы получить доступ к данному API необходимо на странице Services вашего проекта в GAE «Запросить» данное API — заполнить небольшую форму (кстати реализованную при помощи Google Docs) — и остается дальше только ждать когда же дадут доступ — что бы воочию пощупать — действительно ли там нормальный SQL без каких-либо ограничений?
Для того, что бы получить доступ к данному API необходимо на странице Services вашего проекта в GAE «Запросить» данное API — заполнить небольшую форму (кстати реализованную при помощи Google Docs) — и остается дальше только ждать когда же дадут доступ — что бы воочию пощупать — действительно ли там нормальный SQL без каких-либо ограничений?
Google App Engine → Вышла версия 1.5.4
Вышла новая версия GAE SDK 1.5.4.
Основные изменения:
Несмотря на последние события, связанные с повышением цен, Google App Engine продолжает работать над улучшением качества своего продукта, что нас радует.
Список изменений для Python
Список изменений для Java
Скачать GAE SDK 1.5.4
Источник: официальный блог Google App Engine
P.S. В текущей версии SDK не появилась возможность выборки по условию несоответствия
Основные изменения:
- 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 не появилась возможность выборки по условию несоответствия
<, >, !=.
Google App Engine → Ленивая загрузка webapp
В стандартном фреймворке webapp есть много полезного и мало лишнего. Но есть в этом неплохом творении гугла одна особенность — все используемые модули подгружаются при старте приложения. Это удобно для разработки и отладки, но грозит одной проблемой: слишком долгий старт инстанса немаленького приложения. В результате пользователь вынужден ждать пока загрузится всё приложение, даже если для отображения нужной ему страницы нужна лишь малая часть кода.
Сегодня мы «научим» webapp не загружать лишнее.
Сегодня мы «научим» webapp не загружать лишнее.
Google App Engine → Корректировка новых правил учета ресурсов для приложений App Engine. Хорошие новости
Google объявила об изменениях, касающихся введения новых правил учета ресурсов, используемых приложениями под App Engine.
Главная новость в том, что теперь будет предоставлено 28 бесплатных часов в сутки на приложение вместо 24. Это дает хороший шанс для слабо нагруженных приложений оставаться в рамках бесплатных квот.
Кроме того, переход на новую систему отложен до 1 ноября. Peter Magnusson (технический директор Google, ответственный, за App Engine) признал, что было ошибкой дать так мало времени пользователям системы на предварительную оценку ситуации и оптимизацию своих приложений. Обещаются улучшения в консоли, касающиеся учета инстансов, а отчеты (usage reports) теперь будут доступны уже на следующий день.
Также продлен срок действия 50%-ной скидки. Теперь она будет сохранена до 1 декабря (предполагается, что к тому времени будет доступен Python 2.7).
Главная новость в том, что теперь будет предоставлено 28 бесплатных часов в сутки на приложение вместо 24. Это дает хороший шанс для слабо нагруженных приложений оставаться в рамках бесплатных квот.
Кроме того, переход на новую систему отложен до 1 ноября. Peter Magnusson (технический директор Google, ответственный, за App Engine) признал, что было ошибкой дать так мало времени пользователям системы на предварительную оценку ситуации и оптимизацию своих приложений. Обещаются улучшения в консоли, касающиеся учета инстансов, а отчеты (usage reports) теперь будут доступны уже на следующий день.
Также продлен срок действия 50%-ной скидки. Теперь она будет сохранена до 1 декабря (предполагается, что к тому времени будет доступен Python 2.7).