Archive for 1月, 2011

クラスについてのページを追加

1月 30th, 2011 by

クラスについてのページを追加しました。Pythonでは、インスタンスメソッドは自然に記述できるのですが、クラスメソッドは記述に一工夫必要でした。デコレータ(@classmethod)を使うとかなり自然.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

プログラミングGoogle App Engine

1月 30th, 2011 by

Programming Google App Engineの日本語版が発売されていた。私は英語版しか持っていませんが、かなり役に立っています。 .... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

URL短縮君をさらに改良

1月 30th, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

URL短縮君を改良しました

1月 29th, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

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

1月 29th, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

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行を切っています。短いです。

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

GAE/Python デプロイできない。

1月 28th, 2011 by

GAE/Pythonのデプロイに非常に長い時間がかかりました。サーバが混雑しているのかもしれません。 ::CODECOLORER_BLOCK_1:: .... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

本日の実装予定

1月 28th, 2011 by

短縮URLサービスを実装しようと思います。コア部分は既に完成しているので、細かい調整をしたり、デザインをつけたりして、実際にサービスとして提供できるところまで作りこむつもりで頑張ります。Ustream.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

サイト運営方針について

1月 28th, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

ZIPでGAEにサイト構築

1月 28th, 2011 by

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

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

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

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

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

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

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

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Favicon設置

1月 26th, 2011 by

Faviconがついていないのも寂しいので、Pythonっぽいのをつけました。このブログは、ドメインのルートに設置していないので、WPのテンプレートに、faviconのURLを指定する記述を追加しまし.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

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と表示されます。

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

本日の実装内容

1月 25th, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

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

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属性を、フォーマットして表示するようにしました。

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

RequestHandlerとdb.Modelを追加

1月 23rd, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

文字列フォーマット

1月 21st, 2011 by

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


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

インデント/スペースとタブ混ぜてみた

1月 19th, 2011 by

Pythonは、プログラムのブロック構造をインデント(字下げ)で表現します。字下げには、半角スペースを使っても、タブを使ってもいいけれども、混ぜてはいけない、というのが常識になっています。では、混ぜる.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Windows上の64bit版Pythonの整数型が32bitの理由

1月 19th, 2011 by

Windows上でPythonを使っている場合、64ビット版のPythonを使っていても整数型の上限が2^31-1になっている、それっぽい説明を見つけました。 Q. Windows XP 64bit環.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

実行速度測定

1月 18th, 2011 by

実行速度計測の記事に対して、MacbookProでやったほうが速かったとの記事がでていたので、原因を考えてみました。 Pythonのバージョンの違い このブログでの評価はPython2.5系、処理が.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

リスト操作/Stack・Queue

1月 18th, 2011 by

リストの基本操作についてまとめてみました。インデックスを指定してpopできる事に気づかない人もおおいのではないでしょうか? 基本操作 Pythonのリストでは以下の4つの基本操作ができます。 1. 末.... Read more


Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Get Adobe Flash player