((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型 構文 #t と #f はTrue
GAEにどんどん機能が追加されていく中、なかなか実装されないのが全文検索。品詞がとれるセグメンターだけでも提供してくれたら全然便利だと思うんだけどそんなアナウンスはまだ有りません。 なきゃ作ればいいじゃんという事で、全文検索もどきを実装してみました。ひとつ前のエントリー通りTriGramです。 以前、恵比寿のイケメン イアンさんと一緒に作ったmisopotetoというモジュールをベースにしています。 今回のポイントは、転置インデックスをredisサーバに送っているところ、GAE(とうかDB全般)は、インサートがめちゃくちゃ遅いので、Ngramでgram毎にエントリーIDをappendしていくというのは辛いです。Twitterの検索結果15個x100文字位をTriGramでインデックスを作ろうとすると、1500個くらいをgetしてappendして、putする必要があります。以前は、TaskQ
Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基本とし
Android端末をリモートカメラにしてしまう方法「Spycam」という記事経由でTurn your Android Phone Into a Remote Spy Camera with Ruby in 15 Minutesを知った。SL4AのJRubyを使ってAndroid端末を15分で遠隔操作のスパイカメラにしてしまえるらしい。これは面白い。そこで、Rubyが15分ならPythonを使って5分でリモートカメラにしてしまおうと思い立った。 まず、Pythonでは標準モジュールのSimpleHTTPServerやwsgiref.simple_serverを使って簡単にWebサーバを構築することができる。そしてSL4Aを使えばAndroid端末をそのままサーバとして起動させることができる。これを組み合わせればできたも同然だ。 それで書いたのが以下のコードだ。10行そこそこでAndroid端
The Zen of Python 解題 - 前編 "The Zen of Python" の役割 "The Zen of Python" は Tim Peters氏が1999年に「Pythonらしさとはなにか?」と問われて書き上げたものであることは前述した。Python 2.0 のリリースに向けて活発に開発が進められていたころである。 この Python 2.0 は、いろいろな意味で重要なリリースだ。まず、Python の著作権の帰属、ライセンス等について数々の「大人の話し合い」をくぐり抜け、現在の PSF (Python Software Foundation) による安定した体制を築き上げる第一歩となった、記念すべきリリースである。 また、このリリースでは リスト内包(例 [x*x for x in range(10)]) や累積代入文(例 a += 10) などの Python 文
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In
こんにちは。 少し前にPythonのことをしらべていましたら、OpenCVが結構簡単に使えることがわかって早速やってみました。普段Perlを使うことが多いのですがこういうC系のモジュールになると、自分の力不足ですが、Win32にうまくインストールできないことがおおいのです。 Pythonだとスゴイ簡単にインストールできました。 OpenCV.jp http://opencv.jp/ にいってWindows版をインストールすると C:\OpenCV2.1\Python2.6\Lib\site-packages というフォルダに cv.lib cv.pyd というのができるので、これをPythonの C:\Python\Lib\site-packages にいれるだけ、っぽいです。 このサイトを参考にテストスクリプトを書きました。 http://my.opera.com/tanoue/blog
久しぶりのエキスパートPythonプログラミング補足記事です。今回はプロファイリングの補足です。 Pythonは標準ライブラリにプロファイラ(profile/cProfileモジュールのProfileクラス)を持っていて、 その結果を格納しているpstats.Statsクラスにはプロファイル結果を解析するのに必要な機能(実行時間でのソートや、呼び出し元/呼び出し先の表示など)が一通りそろっています。これらのクラスについてはエキスパートPythonプログラミングで使い方を解説してあります。 コマンドラインで作業するときにはIPythonからStatsオブジェクトを直接操作してプロファイル結果を調べられるのですが、やはりプロファイル結果はグラフィカルに表示してくれた方が見やすいものです。特に「エキスパートPythonプログラミング」の中でも言及されているKCacheGrindというGUIツール
この項目はまだ作成されていません。もし、文書作成の権限がある場合は、文書の作成をクリックして最初の文書を作成することができます。
python2.7使用 oauth認証 easy_installが入ってないので下からDLして、保存されたのをダブルクリックして次へを押しまくってDL。 http://pypi.python.org/pypi/setuptools#files httplib2もpython27の中を検索したら入ってなかったのでそれも入れときましょう http://code.google.com/p/httplib2/downloads/list httplib2-0.6.0.zipでいいのかな?よくわかんないね。 コマンドプロンプトで python setup.py install でinstallできました。 次に http://github.com/simplegeo/python-oauth2/downloads でpython-oauth2をDLしましょう。 ようわからんけど 1.2.1をDLしま
最近Pythonを学んでました。オススメ→Learn Python The Hard Way (第1回) 作業フォルダの作成 Pythonのダウンロードとインストール hello.pyの作成と実行 (第2回) アイコンファイルの作成 py2exeのダウンロードとインストール hello.exeの作成と実行 (第3回) WiXのダウンロードとインストール WiXEditのダウンロードとインストール HelloWorld.msiの作成 HelloWorld.msiのインストールとアンインストール ※今回はこの第3回分です。 WiXのダウンロードとインストール 1.「wix 3.0 download」でググってWiXというソフトをダウンロードします。 2.ダウンロードしたものをインストール(途中はそのまま「Next」でOK) VisualStudioがインストールされていないと最初に「Votiv
Taru-hime's waterfall posted by (C)t2y PyMOTW-ja *1 という Python 標準モジュールのチュートリアルを翻訳しています。2009年の5月頃から始めて、一時中断していたものの、現在は数10個のチュートリアルの翻訳が完了し、まだまだ鋭意翻訳中です。 PyMOTW それ自体がパッケージングして配布することを意識しているため、オリジナルのリポジトリ と 翻訳中のリポジトリ は bitbucket で公開されています。翻訳プロジェクトと言うとちょっと大げさですが、PyMOTW-ja の翻訳の進め方を1つの方法論として提案してみようと思います。Python の勉強をしたい方、英語の勉強をしたい方、その両方をやりたい方など、ご興味のある方は PyMOTW-ja の翻訳にぜひ参加してください(@t2y にご連絡ください)。 この翻訳の進め方のオリジナル
プログラマをしていると、ちょくちょくバイナリデータから情報を読みたくなりますね。そんな時は、ブツブツ言いながらバイナリエディタと睨めっこすることになるわけですが、これが結構大変なので、何とか楽にならないかなぁと思って探していると、hachoirというナイスなpythonモジュールが見つかりました。このモジュールを使うとバイナリデータをパースして様々なデータを取得できます。かなり多くのデータフォーマットに対応している(現時点で70種類)のが素晴らしいです。 hachoirはいくつかのモジュールに分かれているのですが、大抵は以下をインストールすれば良いと思います。 $ easy_install hachoir_parser $ easy_install hachoir_metadata このモジュールにはhachoir-metadataというコマンドラインツールが含まれていて、コードを書かなく
予想外に簡単でした。 手順 1. MikuMikuDance for XNA を入手 リリース MikuMikuDance for XNA binary v1.50a - MMDX(MikuMikuDance for XNA/SlimDX) - OSDN をダウンロードして解凍する。そして Demo1 フォルダに入って MikuMikuDanceXNADemo.exe を実行してみる。実行できないならば XNA を使う環境が整っていないので適当にググって揃える。 ゆっくりの迷宮(Windows版) | ゆっくりXNA あたりが動くなら大丈夫なはず。 2. IronPython 2.6.1 を入手 CodePlex Archive から IronPython 2.6.1 for .NET 2.0 SP1.msi をダウンロードしてインストールする。(IronPython 2.6.1 for
SeeMe for Windows の Opera 10.60 対応版は IronPython で作ります。 一年前に途中まで作ってみたけど色々あってボツにした下記をベースで。 SeeMe is to IronPython Linux しか使わなくなった作者が Windows のアプリを作るのは苦痛でしかない。 というより作者自身が使わないアプリを作ってもメンテナンスに疑問が残る。 こんな需要が少ないアプリを他の人がやってくれるとも思えない。 それより今の C# という言語が自分の趣味に合わない、Ruby が嫌いな理由と同じ。 ついでに VisualStudio を使いたくない、コンパイルもメンドクサイ。 一週間悩んだ結果、好き勝手にやることにした。 使いたい人は IronPython を導入してくれ、というトンデモネェ暴挙をマジでやる。 もちろんスクリプトのままで配る。 Windows
機械翻訳のWebサービスがないか探していたのですが、Google AJAX Language APIってのを見つけました。本来はJavascriptから使うみたいですが、Pythonからも使えたのでまとめときます。結果はJSONでかえってくるのでその解釈にsimplejsonというPythonライブラリが必要です。 #coding:utf-8 import urllib import simplejson def translate(query, frm="en", to="ja"): query = query.encode("utf-8") data = {"q":query, "v":"1.0", "hl":"ja", "langpair":"%s|%s" % (frm, to),} f = urllib.urlopen("http://ajax.googleapis.com/aja
► 2025 (2) ► 9月 (2) ► 2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (3
そろそろGAE上でユーザ登録が必要なサービスを作りたいのですが、ユーザ登録周りの実装はやりたくないので、twitterのOAuthを代わりに使ってみる事にしました。twitterのAPIを叩くのにこれまではtwythonを使っていたのですが,OAuthに対応していなかったので、今回はtweepyを使います。以前2-legged OAuthを試してみましたが、今回は3-legged OAuthです。 twitterのOAuth認証によるログイン、ログアウトとログイン後にユーザのタイムライン表示と、tweetを実装しています。ロジックのソースは以下になりますが、まず動作しているサンプルを見るのが早いと思います。 # -*- coding: utf-8 -*- import os import cgi import logging from google.appengine.ext.webapp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く