2010-11-01から1ヶ月間の記事一覧

昨日の内容をcythonで拡張モジュール

http://d.hatena.ne.jp/podhmo/20101129/1291038575の内容をcythonで cython sudo pip install cython 必要なもの setup.py .soファイルの作成に利用 xyzzy.pyx pyx -> cにcythonが変換してくれる setup.py cythonのbuild_extを使うことに注意 from distutil…

setup.pyを利用したpythonの拡張モジュールの作成

(あとでもう少し詳しく書く) 参考 Extending Python with C or C++ ― Python v2.7.1 documentation Python/C API Reference Manual ― Python v2.7.1 documentation 必要なもの setup.py xyzzy.c (pythonのコードについてくるdemo.cをrename) initxyzzyとい…

pyzmqを使ってみる。

pyzmq ZeroMQのpython binding install pipを使う(virtualenvは使っていない) sudo pip install pygmq code Read The Manual - zeromqのビデオにあるclient/serverモデルのメッセージのやりとりをpythonで書いてみる。(この例だけだと1:1での通信なので普通…

"man -k"(apropos)からurlのlinkのリストを作成するスクリプト

motivation "man -k zmq"などで利用できる関数のリストを表示したら、その解説をしているドキュメントへのリンクへ飛びたい。 how to use input man -k python | grep "^python " | python man-k-replace.py "http://www.%s.org" "|%s %s| %s|" output |<a href='http://www.python.org'>pyth</a>…

ZeroMQを使ってみる

ZeroMQW http://www.zeromq.org/ The socket library that acts as a concurrency framework. install sudo apt-get install uuid-dev wget http://www.zeromq.org/local--files/area:download/zeromq-2.0.10.tar.gz tar xvf zeromq-2.0.10.tar.gz cd zeromq…

visitorパターンとダックタイピングの比較

エキスパートpythonに載っているvisitorパターンの例をpythonとrubyで書いてみて違いを見てみる。 本には、通常のvisitorパターンの例とダックタイピングを使った例が載っている。pythonは関数をオブジェクトから引っ張り出してきて呼び、rubyはオブジェクト…

コマンドの実行履歴をanythingで選んでコピーする。

呼び出した後に、C-SPCで幾つかmarkしておいて"kill-new (marked canidates)"を選ぶと複数行を一気にコピーできて便利です。 code (defun anything-select-from-zsh-history () (interactive) (let1 source '((name . "zsh history") (init . (lambda () (le…

Minitube "could not open media source" -> PPA利用

minitube youtubeのsimilarページを連続で視聴できるソフトウェアです。作業用のBGM代わりに使えます。 aptで sudo apt-get insatll minitube "Cannot find plugin for MRL" というエラーを吐く。 phonon-backend-gstreamerが足りない。 "could not open med…

text2epubを使ってみる。

text2epubって? テキストファイルをepub形式に変換するツールです。clojureで書かれています。 clojureはjavaで書かれているのでjavaも必要です。 install ubuntu10.04で実際にtext2epubをつかえるようにするための手順を紹介します。 javaのインストール l…

コマンドの非同期呼び出しshell-command->string/async

python-ex.elを作成中。 自分の好みに合ったpythonの環境を提供するためのelisp。まだまだ開発途中。 その中で、非同期に外部プロセスを呼び出す方法が便利そうなので紹介します。 同期的な呼び出し コマンドの出力結果を文字列として欲しい場合には、よくsh…

lispyを写している途中

http://norvig.com/lispy2.html

srfi-1の関数をだいたいelispで書いた。

emacs-widgetで色の選択。

16進6桁の値を入力しているとそれに対応した色に"target:"の文字の色がリアルタイムで変化。 (defface asc:target-face '((t (:foreground "white" :background "#0080ff" :italic nil :bold t))) "face for selected by mouse") (defvar asc:target-face 'a…

表示変更@に

大抵elispのファイルは.elというファイル名に[-:]という感じの関数がたくさん定義されている。 [:-]を@とかにしてみたら見やすいのかも? これを (defun python-ex:eval-internal-async (source-code &optional call-back) (python-ex:with-async (source-c…

python-ex.el

個人的なpython用のelisp作成中。まだ途中。code 欲しい機能 ipythonと通信して実行結果を取得 ipythonと通信して実行結果を取得を非同期で 実行結果を現在のバッファのところにコメントとして出力したい。 python.elのsend-regionなどから抜け出したい(何か…

itertoolsモジュールの利用。

itertools eagerに計算せずにIteratorオブジェクトを返してくれる関数のセット。 haskellのListだとか、schemeのstream + srfi-1のような感じ。使い方を覚えておくと便利そうなのでどんなものがあるのか使ってみる。 実行結果とコード はじめが実行結果。そ…

importの部分からffapで該当するファイルを開く

python-ffap.el python_mode_ffap.py 以上の2つのファイルを同じディレクトリに入れてください。 ffapで該当するファイルを開けるようになります。*1 *1:もちろん、virtualenvには対応してません

エキスパートpythonのメタディスクリプタの部分をschemeで書いてみる。

結果の値として出しているのはちがうけれど…。こんな感じなのかな? maybe-monad$はメイビーモナドじゃないかも。失敗したら止まるようなループみたいな感覚で付けただけなので。

pythonのデコレータについて

結構面白い。 def dec(fn): return lambda x, *arg, **kw : fn(x-1,*arg,**kw) @dec def f(n): print "input: %d" % n return 1 if n<=0 else n * f(n-1) print f(10) # input: 9 # input: 7 # input: 5 # input: 3 # input: 1 # input: -1 # 945 これは結局…

zencodingのようなstring->htmlの変換(buggy)

まったく何をやっているんだか…

診断メーカーの結果を取得するスクリプト

pythonのコードを毎日書くということで、診断メーカーの結果を返すスクリプト。 code import urllib import BeautifulSoup import sys import time def shindan(num_str,name): params = urllib.urlencode({"u" : name}) url = format("http://shindanmaker.…

pythonで単語の出現頻度で降順に表示(wordhist.py)

Pythonプログラミング25: 英単語の頻度順 をみてちょっとやってみようと思ったのだけれど、単語のファイルを探すのが面倒なのでplanet pythonの記事の出現頻度を集めることにした。 今回は少し大きくなりそうなので、色々細かくわけて考える。 振る舞いを分…

pythonで文字列の探索(grep.py)

grepコマンドのような振る舞いをするコードを書いた。動作は以下の通り マッチした行を表示する際に行番号も一緒に表示する 引数が1つの場合には標準入力をフィルタする それ以上の場合は2つ目移行の引数をファイル名として扱ってフィルタする その際には、s…

pythonはじめコマンドラインアプリの作成(nabe.py)

昔流行った世界のナベアツのように3のつく数字と3の倍数でアホになるようなコマンドを作成する。引数でどの数まで数えるか指定する。 $ python nabe.py invalid arguments % nabe.py <int> $ python nabe.py 20 [1, 2, 'aho', 4, 5, 'aho', 7, 8, 'aho', 10, 11, </int>…

pyhon勉強中

pythonは教養程度にしか知らない。実用レベルに持っていくにはもう少し手に馴染ませる必要があると思った。教養程度と言っても、昔にpythonの本を通読した程度なので細かな内容を覚えていなかったりする。なので以下の作業を繰り返すことでpythonを書く力を…

ipythonをemacs上から使う。

comintで立ち上げたプロセスと通信 tipython:eval まだ、複数行の出力には対応していない。 (tipython) (insert "; => " (tipython:eval "1+1")); => 2 (insert "; => " (tipython:eval "print 1+1")); => 2 (let1 r (tipython:eval " import time time.slee…

パターンマッチみたいなことをするプログラム(schemeで)

http://d.hatena.ne.jp/tana-laevatein/20101111/1289483291 ちょっと面白そうだったのでやってみました。 matchという名前にするとutil.matchと名前が被ってしまうので@matchという名前にしました。*1 (define (@match xs ys) (let/cc break (define (colle…

後でここを見る

http://labs.unoh.net/2009/12/2009python.html http://d.hatena.ne.jp/pyxis-dev/20090219/1235917168

python使う

えーと pythonを使った方が良いような気がしてきた。 とりあえず、以下の内容が必要そう。 python ライブラリの管理 (複数のversionを使い分ける) testツール ドキュメントツール ドキュメントを手軽に置けるようにする方法 pythonの環境設定 $ sudo apt-get…

gaucheでmarkdown-parserを作ってみる (途中 buggy)

何これ? markdown -> s式 -> htmlという手続きを書こうとした「markdown -> S式」の部分。 リンク先の例を参考に作成中。 http://www.sixapart.jp/movabletype/plugins/markdown.html http://www.symfony.gr.jp/markdown-sample code 途中結果。 known bug …