Tags » ‘GAE’

CSV2Tableパワーアップ

2月 5th, 2011 by

今日は、CSV2Tableをパワーアップの改良作業を行いました。追加した機能は以下の通りです。 ラベル位置選択 1行目、1列目、1行目+1列目、ラベルなし、の4通りから選択できるようになりました。 .... Read more


掲示板

2月 1st, 2011 by

掲示板をつくってみた。

管理者側で入力した内容が、5秒ごとにユーザ画面に転送されます。

さすがに、メタリフレッシュはかっこ悪いので、AJAXなどで書き換えるように変更しないとなー。

掲示板

掲示板

ソースコード

ソースコードは以下の通り。

データストアのページを追加

2月 1st, 2011 by

データストアのページを追加しました。RDBなら簡単にできる操作も、GAE上のDataStoreだと実現が難しい場合もあります。GAEの性能を100%生かすためには、RDB上での考え方をいったん忘れ、G.... Read more


URL短縮君をさらに改良

1月 30th, 2011 by

URL短縮君にログイン機能を実装しました。ログインして短縮URLを作成すると、あとで、どんな短縮URLを作成したか確認できます。また、短縮URLごとの、クリック数も確認できます。 .... Read more


URL短縮君を改良しました

1月 29th, 2011 by

URL短縮君を改良しました。 改良点は以下の通り。 URL入力画面に、説明を追加 URL入力画面に、確認ボタンを設置 URL入力画面に、生成したURLの総数を表示 短縮URL取得画面に、確認ボタンを.... Read more


GAE用のGoogleアカウント2つ目確保

1月 29th, 2011 by

GAEのアプリケーションは、1つのGoogleアカウントで、10個までのアプリケーションを公開できます。運用していないアカウントも含めると、既に10個使い切ってしまったので、2つ目のGoogleアカウ.... Read more


URL短縮サービス作りました

1月 29th, 2011 by

以前作成していたURL短縮サービスを、大幅改造しました。改良したのは以下の3点です。

  • 独自ドメインの設定
    ドメインが[APPLICATION_NAME].appspot.comでは短縮後のURLが長すぎるので、独自ドメインを設定しました。
  • 例外処理の追加
    正しいURLが入力されていない場合にサーバの投げる例外ではなく、適切なメッセージを表示するようにしました。
  • デザインの適用
    簡単なデザインをつけました。前回と比べればはるかに使いやすくなったはずです。

スクリーンショット

こんな感じになりました。スクリーンショットをクリックすると、サービスのURLに移動します。

GAE/Pythonで作るメリット

GAEで運用すれば、サーバのメンテナンスをしなくて良い。個人で提供するサービスで、正直、サーバの面倒までみている暇はありません。またPythonを使うと、メンテナンス性の高い短いソースコードでサービスを開発できます。大規模プロジェクトであれば、きっちり設計して、Javaなどのコンパイル言語をつかったほうが高速で安定したサービスを開発できるとは思いますが、個人でサービスを作成するなら、開発効率の高いPythonが楽だとおもいます。

ソースコード

いつものお約束。ソースコード全文公開です。今回は、メインのpyファイルのほかに、yamlファイルとCSSファイルも掲載します。メインのプログラムは、デザイン部分やらGoogleAnalyticsのロギングコードまで含めて90行を切っています。短いです。

サイト運営方針について

1月 28th, 2011 by

本サイトは、Pythonを勉強していく過程を公開していくために作成しました。GAE上でのWebアプリケーション開発を中心に勉強していく予定ですが、それ以外のテーマの記事も書いていく予定です。系統だった.... Read more


ZIPでGAEにサイト構築

1月 28th, 2011 by

みなさん、GoogleAppEngineってご存知でしょうか?

そうです、Googleの提供するWebアプリケーションプラットフォームです。

1日1GBまでのトラフィックであれば、料金は一切かかりません。中小規模のサイトであれば無料利用分で運用でちゃいます!しかも、万が一、サイトがめちゃくちゃ人気になって、1日100万pvを超えるようになったとしても、利用料を支払うだけでそのまま運用できちゃいます。きっと、広告収入の一部で利用料はまかなえちゃうと思いますよ。

とはいうものの、GoogleAppEngineって難しそうですよね。

HTMLとCSSしか分からないけど、無料で使えるならつかってみたい。そんな方、多いのではないでしょうか?

そんなあなたのために、サイトのZIPファイルをアップロードするだけでGAE上にWebサイトを構築できるアプリを作ってみました!

ソースコードは以下の通り。

GAE/PythonでMemcachedを使ってみた

1月 25th, 2011 by

Memcached使ってみました。単純な例で動作を確認後、python-blog-systemの画像出力部分に適用し、ベンチマークをとりました。

Memcachedとは

分散KVS(キーバリューシステム)の一種です。いわゆるRDB(リレーショナルデータベース)は、スケールアウトに向かない構造をしているために、安いサーバをいっぱい並べても性能がリニアに向上しません。Memcachedでは、トランザクションや、データの耐久性などを保証しないかわりに、大量のデータを、高速にキャッシュすることができます。詳しい説明は本家でどうぞ⇒http://memcached.org/ 概要が知りたければwikipediaがお手軽です。

シンプルな例

まずは、非常にシンプルなコードを書いて動作を確認しました。

  1. 初回アクセス: 何も表示されません。
    キーweatherに対して何も設定されておらず、Noneが返されるため、何も表示されません。
  2. 2回目以降: snowingと表示されます。
    初回アクセス時に、キーweatherに”snowing”が設定さたので、snowingと表示されます。

ソースコード

読み出し⇒書き込みという順序になっているので、初回アクセス時は何も表示されませんが、3600秒以内に再アクセスするとsnowingと表示されます。

本日の実装内容

1月 25th, 2011 by

python-blog-systemに以下の4項目のアップデートをしました。 ■下書き機能 外から見ても分からない機能ですが、運用上ほしい機能なので作ってしまいます。 ■公開日時指定をGMTではなく.... Read more


ブログに予約投稿機能を実装

1月 24th, 2011 by

python-blog-systemに予約投稿機能を実装しました。

記事一覧表示

1
2
3
4
5
6
    entries = Entry.all().order("-datetime")
    if not users.is_current_user_admin():
      entries = entries.filter("datetime < ", datetime.datetime.now())
    entries = entries.fetch(step + 1, page * step)
    for entry in entries[:step]:
      printEntry(self, entry)

entry.datetime(記事の公開日時)が、現在時刻よりも古いものだけを取り出すようにしました。RSSも同様の修正をしています。

記事投稿
フォームの表示では、entryのdatetime属性を、フォーマットして表示するようにしました。

RequestHandlerとdb.Modelを追加

1月 23rd, 2011 by

db.ModelページとRequestHandlerページを追加しました。RequestHandlerページは一通りのことを説明できたと思いますが、db.Modelページはまだまだ加筆が必要です。 今.... Read more


URL短縮サービスつくってみた

1月 16th, 2011 by

GAE/PythonでURL短縮サービス作ってみたので、ソースコード丸ごと公開しちゃいます。 作成したサービスはこちらから利用できます。⇒http://pyshortener.appspot.com/.... Read more


GAE/PythonのPOSTは上限10485760バイト

1月 14th, 2011 by

GAE/Pythonでの、POSTの上限サイズは10MBです。開発環境と本番環境のそれぞれで実際に確認してみました。 開発環境でのメッセージ 10 * 2^20バイトまでしか対応していないようです。 .... Read more


ZIPアップロード

1月 8th, 2011 by

ZIPファイルをアップロードして、そのままホスティングできるアプリケーションを作ってみました。 サンプル環境 http://study-python2.appspot.com/ ※特にセキュリティーを.... Read more


Google App Engine 1.4.1リリース

1月 8th, 2011 by

Version 1.4.1が、2011年1月5日にリリースされていました。変更点は以下のとおりです。データストア関連の機能追加と不具合修正が行われているようです。この修正は、Python環境に対して適.... Read more


GAEをプライベートクラウドで運用する

1月 6th, 2011 by

GAEをプライベートクラウド(というか、自社サーバ)で運用する方法がないか簡単にしらべてみました。 2010年の5月20日に、VMWareとの提携などのリリースがでていますが、それ以降は動きがないよう.... Read more


PILインストール/画像処理でエラー

1月 5th, 2011 by

GoogleAppEngineの開発環境はよく出来ているのですが、デフォルトでは画像処理ライブラリがインストールされません。GoogleAppEngineの公式サイトの、PIL のインストールにも掲載.... Read more


コメント削除機能を実装

1月 3rd, 2011 by

python-blog-systemにコメント削除機能を実装しました。コメント投稿時に入力したパスワードを指定した場合のみ、コメントの削除が実行されます。投稿時にパスワードを指定しなかった場合は、削除.... Read more


  • Python

  • 人気記事

      このエントリーは、Python入門者と、Python入門予備軍の方を対象としています。 どうしてPythonやるの? Pythonって覚えやすい言語なんです。といっても、それなりに使いこなせるようにな.... Read more

      リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです。ループ、Map、Filterなどを使っても同じ操作をできますが、リスト内包表記には以下の利点があります。 コードがシンプ.... Read more

      Pythonには固有の文字列フォーマット(モジュロ)操作が用意されている。文字列中の%?であらわされる部分が、文字列の後ろに与えられた変数で置換される。 単一値の置換 単一の変数を置換する場合は、文字.... Read more

      Pythonの世界は、整数などの単純な値も含め、すべての値はobjectクラスを継承したクラスのインスタンスでできています。 ::CODECOLORER_BLOCK_51:: classを定義する も.... Read more

      だまって↓インストールすれば、Facebookのコメントプラグインがすべての投稿とページにつくよ。動かなかったらごめん。 wp-facebook-comment .... Read more

      リスト(List)とはPythonの組み込み型の1つで、シーケンス(sequence)の一種です。他の言語におけるインデックス配列に似ていますが、かなり柔軟な操作ができます。このページではリストをつか.... Read more

      プログラム内でループを使うのは以下の3パターン。C言語などになれていると1番や2番を使いたくなるかもしれないが、Pythonでは3番が適してるケースが多い。 N回ループ一番基本的なタイプ 条件を満た.... Read more

      Pythonでは、print文を使わないと日本語を正しく出力されない。print文を使うと、あらかじめ設定されているエンコードにしたがって適切に出力される。 ::CODECOLORER_BLOCK_9.... Read more

      みなさん、Google App Engineって聞いたことありますか? あっ、それしってる。Google Docsとかでしょ?って思った方。惜しいけど違います。 Google App Engineとは.... Read more

      DataStoreとは 本記事内のDataStoreは、GoogleAppEngineのデータストアのことを指す。GoogleAppEngineは、ファイルの書き込みが一切できないため、DataSto.... Read more

      GoogleAppEngineでは、世界標準時で時刻を管理する。でも、そのまま表示すると分かりにくい。このページでは世界標準時を日本時間に変換したり、日本時間を世界標準時に変換する方法を紹介する。 現.... Read more

      Pythonの条件分岐は、if, else, elifの3つの構成要素から成ります。条件成立時、非成立時の実行範囲は、インデント(indent)であらわします。条件部 If elseから成る条件分岐 .... Read more

      Pythonの文法構造には、単行のコメントアウトしかありません。 複数行のコメントアウトが必要な場合は、コメントを文字列にします。 単行コメントアウト #以降がコメントとして扱われます。 ::CODE.... Read more

      GAE/Pythonで、一体いつになったらPython3系が使えるようになるのか。興味深いページがあったのでざっくり翻訳してみました。 http://code.google.com/p/googlea.... Read more

      タプルとは、シーケンス型のオブジェクトです。同じくシーケンス型のオブジェクトとの違いは、不変であるということです。リストは生成後に要素を追加したり削除したりできますが、タプルは生成後に内容を修正できま.... Read more

      昨夜、OAuthでの認証がうまくいったので、今日はTwitterのTLの取得と発言を実装してみた。 お試し環境 → http://nisetwitter.appspot.com/で公開している。 エラ.... Read more

      GAE/Pythonで最初に戸惑うのはRequestHandlerだと思います。新規アプリケーション作成時に自動生成されるので必要に応じて書き換えることができれば問題ありません。 RequestHan.... Read more

      Pythonには基本的な型として、数値、bool、文字列があります。type() を使うと変数の型を確認できます。 数値 数値を表す型には、整数型 、 長整数型 、浮動小数点型 、複素数型の4つがあり.... Read more

      この10日間ほど、地震のニュースばかり追いかける日々をすごしていないでしょうか?大勢の方が被災され、原発関連の二次災害も発生する中で落ち着きづらいというのも事実なのですが、心配しすぎてもしかたない。そ.... Read more

      日経ソフトウェア 2010年4月号特別付録の問題をPythonでといてみた。 Amazon.co.jp ウィジェット 問題1: 「3の倍数と3のつく数字だけ・・・」 1から100までの整数を1行に.... Read more

      なんと、int型が64bitまで使えるんです。当たり前だけどうれしいです。 ::CODECOLORER_BLOCK_130:: windowsだと64bitCPU使っていてもこんな感じになります。In.... Read more

      文字列は文字の列(シーケンス)のこと。文字列リテラルの表記方法は、以下の4つがある。 シングルクオーテーション1個‘string comes here’ ダブルクオーテーショ.... Read more

      モジュールとはPythonの定義や文が入ったファイルです。 標準モジュールや第3者によって公開されているモジュールを組み合わせることで、容易に高度な処理を実現できます。また、自作のモジュールを作ること.... Read more

      GoogleAppEngineでPythonを使う場合は、特別な理由がない限り、バージョン2.5を使いましょう。2.5以外の環境で開発すると、開発環境では動作していたアプリケーションが、GAEでは動作.... Read more

      実行速度(改)で、最適化をし尽くしたつもりが、早速 mohayonao@hatena さんから、改善案をいただきました。rangeではなく、xrangeを使うとより高速化するとのこと。早速書き換えてみ.... Read more

  • タグ

  • Archives

  • Recent Comments

    • ブログロール


    Get Adobe Flash player