最初に(Web)サービスを企画して、 マネージドサービスを使って省力化&スケールアウトできるように構成したとして、 それがうまく効果を発揮して 「やってよかったね」 って思うことよりも、運用が始まって 「運用のコストを下げたい」 ってことの方が多いように思う。 最初から素朴な構成で始めた方がいいんじゃないか? ローンチまでは夢が膨らむけど、運用になったら、 コストと収入がバ…続きを読む

Quora has taken the tech and entrepreneurial world by storm, providing a system that works so fluidly that it is sometimes hard to see what the big fuss is all about. This slick tool is powered, not only by an intelligent crowd of askers and answerers, but by a well-crafted backend created by co-founders who honed their skills at Facebook. It is not surprising that, with all the smart people using
DataStoreとは 本記事内のDataStoreは、GoogleAppEngineのデータストアのことを指す。GoogleAppEngineは、ファイルの書き込みが一切できないため、DataStoreを使う以外にデータを永続化する方法はない。短期であればmemcachedに保存することもできるが、memcachedに保存されたデータは保存期間が保証されないため、一時データをキャッシュして高速化(or 負荷軽減)以外には実質つかえない。 DataStoreの特徴 DataStoreの特徴は、スケーラブルであること。データ数が1万件でも1億件でもほぼ同じ時間で結果が返ってくる(らしい)。ただし、通常のRDBでは簡単にできる操作がDataStoreでは非常に重い処理だったり、不可能だったりするので注意。 苦手な処理 件数のカウント ⇒件数のカウントは、データ全体を取ってくる処理に近いだけの処
#!/usr/bin/env python2 import pcap import sys import string import time import socket import struct protocols={socket.IPPROTO_TCP:'tcp', socket.IPPROTO_UDP:'udp', socket.IPPROTO_ICMP:'icmp'} def decode_ip_packet(s): d={} d['version']=(ord(s[0]) & 0xf0) >> 4 d['header_len']=ord(s[0]) & 0x0f d['tos']=ord(s[1]) d['total_len']=socket.ntohs(struct.unpack('H',s[2:4])[0]) d['id']=socket.ntohs(struct.unpa
Python Overview CGI Environment Storing Data Overview Entities and Models Creating, Getting and Deleting Data Keys and Entity Groups Queries and Indexes Transactions Types and Property Classes GQL Reference Statistics Reference Model Expando PolyModel Property Query GqlQuery Key Functions Exceptions Services Memcache Overview Using Memcache Reference Client Functions URL Fetch Overview Reference T
Full-stack software engineer based in San Diego, California. I input ideas, mix them with code and expertise, and output dynamic modern applications for mobile and the web. Alex Clemesha has extensive experience with full-stack web & mobile software development, in topics such as mathematics software, science based platforms, location-based mobile applications, and interactive educational web game
このページは、Rubyレシピブック (詳細) をPythonで書こうというたくらみです。内容は当たり前のことばかりですが、たまにしかコードを書かない人間は、こうしたことがわからなくてイライラしてしまいます。10行くらいのプログラムならさっと見てさっとかけるようにするのが目標です。 2008年1月21日19:00 ロボットによる荒らし対策を施しました。 レシピブック作成にご協力いただける方がいらっしゃいましたら、最初にユーザー登録をお願いします。 レシピブックを修正する際は、一度ログインをしてください。ログインすると右肩の部分に編集の項目が現れます。 記述方法は、structuredText もしくはreStructuredText でお願いできればと思います。 WEB上の情報 Python クイックリファレンス日本語訳 pythonライブラリリファレンス pythonチュートリアル Per
Posted by Nick Johnson | Filed under python, tech, app-engine, coding, capabilities After the unfortunate outage the other day, how to handle downtime with your App Engine app is a bit of a hot topic. So what better time to address proper error handling for situations where App Engine isn't performing at 100%? There's three major topics to cover here: Handling timeouts from API calls, using the Ca
Python modules provide powerful building blocks for extending Python’s functionality across various programming domains. This list of Python modules covers the core categories of Python modules, focusing on system operations, data processing, web development, databases, user interfaces, and multimedia tools. You’ll learn about built-in modules from the standard library and popular third-party pack
前から常々思っていることだが、何かについて勉強する一番効率的な方法はそれを誰かに教えること。人に教えようとすると、それなりに準備をしなければならないし、自分の頭の中を整理しなければならない。また教える過程でするどい質問をされたり間違いを指摘されて、さらに勉強を強いられることもある。 私がこの手の「入門編エントリー」を書くのは、ほとんどの場合「自分自身の理解をより深めたい」ことが一番の目的であるが、ブログの場合、教室などと違って「その道の達人」みたいな人たちがツッコミを入れてくれるケースもしばしばあるので、そのメリットは何倍にもなる。 先日のクロージャに関するエントリーなどは良い例で、「そんな用途にはmemoizeというデコレータが便利」などの指摘がいただけだけであれを書いた価値があるというもの。 そこで、今日はPythonのデコレータに関して。デコレータがPythonという言語に導入された
App EngineのEntitiGroupは、Keyの親子関係を利用して組み立てられたEntityの集まりです。 Entityとは、Bigtable上の1つの行で、ユニークに識別するためのKeyを持っています。 Keyは、種類をあらわすkindとAppEngineから自動的に採番されるidもしくはアプリケーション側で自由に決めることのできるnameで構成されます。 通常は、AppEngineの自動採番に任せますが、Emailのアドレスをキーに使いたい場合などは、nameを使います。kindはテーブル名のようなものだと思ってください。 Keyの親子関係は次のようにして作ります。 Key grandparentKey = KeyFactory.createKey("Grandparent", "しげお"); Key parentKey = KeyFactory.createKey(grand
最近 JavaScript を書く機会が増えているが、それに従って自分のコーディングスタイルが少しづつだが変化してきているのが分かる。もともと「コードの読みやすさ」や「実行効率」にとことんこだわるタイプだが、(JavaやC++になくて)JavaScriptやRubyにあるクロージャや無名関数が私のコーディングスタイルにとてもマッチしているからだと思う。 簡単な例を紹介しよう。Pythonで書かれた config.py というモジュール。config.yamlという設定ファイルを読み込んで Dictionary として返す config.get() という関数。普通に実装すると、以下のような感じになる。 import yaml _config = None def get(): global _config if not _config: data = open('config.yaml')
Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ
© Nexedi KK 2009 – All rights reserved – GNU Free Documentation License ERP5 Python の Web 開発の過去と現在 用語の整理と解説 代表的なフレームワークの概説 Web 開発者に贈る昨今の Python 事情 Yoshinori Okuji, Nexedi KK President, <yo@nexedi.com> © Nexedi KK 2009 – All rights reserved – GNU Free Documentation License ERP5 昔の Python はこうだった © Nexedi KK 2009 – All rights reserved – GNU Free Documentation License ERP5 ソフトウェアの配布なら、 distutils (標準モ
米Facebookは米国時間2009年9月10日,オープンソースのWebアプリケーション統合フレームワーク「Tornado」を発表した。複数のWebアプリケーションやソーシャル・サービスを統合し,リアルタイムに情報を更新できる。 リアルタイム性の高いWeb対応サービスの基盤を狙い,大量トラフィックの同時処理ができるよう設計した。スクリプト言語Pythonで開発したが,Djangoや米Googleのwebapp,web.pyといったPythonベースの既存Webアプリケーション・フレームワークに比べ高速だという。 テンプレートを用意しており,クッキー,ユーザー認証,セキュリティ,ローカライズ,静的ファイル配信などの機能も備える。Django用テンプレートも使用可能。 なおTornadoは,Facebookが先ごろ買収した米FriendFeedの技術を使って開発された(関連記事:Faceboo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く