Archive for 3月, 2011

gitコマンドまとめ

3月 31st, 2011 by

::CODECOLORER_BLOCK_1:: .... Read more


Share and Enjoy

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

Git使い方メモ

3月 30th, 2011 by

git init リポジトリを作成する git status 変更ファイルを表示する git diff 変更点を表示する git add コミットファイルを指定する git commit コミット g.... Read more


Share and Enjoy

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

GAE/PythonでPython3が使えるようになるのは・・

3月 27th, 2011 by

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


Share and Enjoy

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

Ubuntu10.10をインストール

3月 27th, 2011 by

WubiでUbuntu10.10をインストールしてみました。インストール自体は簡単にできたのですが、2点ハマりました。 1. 無線LANのAOSSが使えない いろいろ調べて見ましたが、UbuntuはA.... Read more


Share and Enjoy

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

3の倍数と3のつく数字だけ

3月 26th, 2011 by

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


Share and Enjoy

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

gaecron アカウント上限を300に緩和

3月 26th, 2011 by

gaecronを運用しているのですが、200環境埋まった時点で、一番厳しいリソースで3割弱しか使っていないことが分かったため、上限を200→300に増やしました。 .... Read more


Share and Enjoy

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

震災後アクセスが減った原因

3月 25th, 2011 by

震災後、がくっとブログのアクセスが減りました。検索エンジンからの訪問者が突如として半分ぐらいまで減りました。更新をサボってたのが原因かなーっておもってたんですが、どうやら違ったようです。 震災後にPy.... Read more


Share and Enjoy

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

GAE/Pythonでサービス作ろう!

3月 23rd, 2011 by

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


Share and Enjoy

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

URLLinkerを改良/YouTubeプレイヤーを自動設置

3月 22nd, 2011 by

URLLinkerをYouTubeに対応させました。YouTubeっぽいURLを見つけると引数を解析して自動的にYouTubeのプレイヤーを埋めこみます。また、生成したHTMLのプレビューを画面の下部.... Read more


Share and Enjoy

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

今日はブログ更新します!!

3月 22nd, 2011 by

震災以降、いろいろあわただしくて更新がとまってしまったいましたが、今夜はきっちり部ログ更新します。12時ごろには何か公開できる予定です。 .... Read more


Share and Enjoy

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

メタ構文変数

3月 11th, 2011 by

Python入門者に贈る16の鍵で、Pythonの変数名の例にfooやbarは使わないよって指摘いただいたので、調べてみた。Pythonという言語名はモンティ・パイソンにちなんでつけられたので、そのこ.... Read more


Share and Enjoy

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

URLをアンカーリンクとIMGタグに置換

3月 10th, 2011 by

テキスト内のURLを、アンカーリンクとIMGタグに置換するサービスをリリースしました。

なお、ttpで始まるプロトコルは、httpに自動修正します。

ソースコード

Share and Enjoy

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

Python入門者に贈る16の鍵

3月 7th, 2011 by

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


Share and Enjoy

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

AmazonEC2 Tokyoリージョンオープン!

3月 5th, 2011 by

Pythonとは全く関係ないですが、AmazonEC2の東京リージョンがオープンしたので試してみました。作成したインスタンスはmicroです。1時間で0.02ドルなので、1ヶ月で1200円で運営できち.... Read more


Share and Enjoy

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

MacBookProでPythonを使ってうれしかったこと。

3月 4th, 2011 by

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


Share and Enjoy

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

WordPress / Facebookのコメント表示プラグイン

3月 3rd, 2011 by

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


Share and Enjoy

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

Memcachedで負荷が3分の1/GAE無料枠で1日200万PV

3月 1st, 2011 by

GAE/PythonのアプリにMemcached組み込んだら、CPU負荷が3分の1になった。

GAEは宇宙最強のデータセンタで動いてる。なら、負荷なんて気にしなくていい。お金さえあればね。ってことで、お金払いたくないので最適化しました。数行の変更で、性能3倍以上になっちゃいましたよ!!!!

最適化対象

ブログに埋め込むパーツです。シンプルですが、とあるまとめサイトに埋めたところ、1日数万リクエストがありました。Memcachedを使わなくても、1日50万PV程度は大丈夫だったのですが、最適化してみました。

スクリーンショット

スクリーンショット

Memcached導入による負荷の変化

赤い線がAPIが使ったCPU時間、青い線が全体のCPU時間です。Memcachedを組み込んだとたん、CPU使用量が3分の1になりました。特に、APIのCPU使用量は劇的に減っています。

無料利用分でどれだけつかえるの?

超過しそうなリソースはCPU時間とOutboundの転送量。それぞれ1リクエスト当たり10msと400byteです。

CPU無料枠
6.5時間/10ms = 234万PV

Outbound転送無料枠
1GB/400byte = 250万PV

これなら、1日200万PVは余裕ですね。

Memcached組み込み後のソースコード

※Memcachedを組み込む際には、元のデータの更新にあわせて、Memcachedのキャッシュをクリア(もしくは新しい値を上書き)すること。さもないと古いデータが表示され続けます。

データ読み取り処理(quickGet)
 Memcachedにデータがあるか確認します。あれば使います。なければ、DataStoreから取得しMemcachedに保存します。

データ書き換え処理(18行目)
 DataStoreに保存したデータと同じものをMemcachedに保存します。

Share and Enjoy

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

記事の末尾に「いい」「だめ」ボタンをつけました。

3月 1st, 2011 by

世間ではFacebookなどの「いいね」ボタンがすごく注目されていますが、敢えて、「いい」「だめ」ぼたんを自分で実装してみました。

何ができるの?

個別記事に以下のソースを埋めてると「いい」「だめ」ボタンが表示されます。いいの数のランキングも見れます。
※site=の後ろのxxxxを自分を識別するコードに書き換えてください。英数で適当に・・

1
2
<script>window.onload = function(){ document.getElementById("like_dislike").src="http://like-or-dislike.appspot.com/?site=xxxx&title="+encodeURI(document.title)}</script>
<iframe id="like_dislike" style="border:none;background-color:#fff;width:180px;height:30px"></iframe>

このブログランキングは以下のアドレスで確認できます。
http://like-or-dislike.appspot.com/?site=001

何でつくったの?

なんでつくったんだろうね。理由あげるとすると、こんなところかな。

  • いいね、だけじゃなくて、だめボタンをつけたかったから。
  • 単に実装してみたかった
  • サイト内のランキングを表示したかった
  • 外部サービスに依存したくなかった
  • 改良予定

    OAuthでログインして、自分専用のコードを発行できるようにする予定です。

    ソースコード

    おやくそくのソースコードです。まだバージョン管理してません。明日、Githubに登録するよていです。

    Share and Enjoy

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

    • 人気記事

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        ディクショナリ(dict)とは、他の言語でいうところの連想配列やハッシュと同じ機能を提供する。最近流行しているKey-Value型のデータストアもディクショナリの一種であるといえる。 辞書の作成 中.... Read more

    • タグ

    • Archives

    • Recent Comments

      • ブログロール


      Get Adobe Flash player