2010-01-01から1年間の記事一覧

java.rmi.server.UID is a restricted

GAEjでcompojureを使う場合、cljの先頭で (ns servlet (:gen-class :extends javax.servlet.http.HttpServlet) (:use compojure.html)) としてはいけません!!もし、compojure.htmlを使おうとすると・・・ HTTP ERROR 500 Problem accessing /. Reason: jav…

Compojure, Leiningenのインストール

CompojureはClojure製のWebフレームワークです。 インストール Conpojureを使うには、 Compojureが依存するライブラリのjarを用意する事 Compojure自身のjarを生成する事 が必要です。 それには分かった名前のClojure製ビルドシステム、"Leiningen"を使いま…

Hello Clojure!

GAEでClojureを使う場合、Compojureとappengine-cljを使って作るべきなのでしょうが、初めあえてスッピンのClojureでHello Worldを表示してみます。 new_project_templateのコピー 適当な場所にnew_project_templateをコピーし、適当な名前を変更します。こ…

孤立したモジュールを見つける

いつの間にか何所からも使われなくなったモジュールを探すスクリプトです。自作アプリ"sffairmaker"の中から探します。 python -m sffairmaker.main を実行すると、アプリが動くようになっているので、 "C:\\Python26\\Lib\\site-packages\\sffairmaker\\mai…

Google App Engine for Javaのインストールとテスト

私、今年で修士課程一年になりましたので、就職活動をしているのですが、インターンを申し込んだ先の面接で「『車輪の再発明』をやらなければ腕は上がらない」と言われたので、それを真に受け、前からWebアプリを作ってみたかったのと、Clojureを試してみた…

Google App Engine for JavaでHello World!

Eclipseを使うと便利らしいのですが、PCのスペックが足りないので、コマンドラインを打ち込んで開発する事にします。コマンドラインからGAEを使う場合、Apache Antが必要です。 Binary Distributionsからapache-ant-1.*.*-bin.zipをダウンロードします。 適…

イテレータを分割する

itertoolsには、Trueになる要素を返すifilterと、Falseになる要素を返すifilterfalseがありますが、ifilterとifilterfalseの両方を返す関数があったら便利じゃないか? (schemeやclojureなどにはあるようです)あるいは、True/Falseだけでなく、任意の値で…

Pythonから外部プログラムを起動

Python初心者の友人がバッチファイルの真似事をしようとして、Pythonで外部プログラムの呼び出しかたが分からず悩んでいました。自分自身も初心者のころつまった経験があるので、メモしておきます。 外部プログラムを扱う方法はたくさんある os (system, spa…

パフォーマンス計測のメモ

cProfileとpstats(ボトルネックの調査) 「実行経過のデータをファイルに出力 → データを読める形に出力」という手順で測定します。 実行経過のデータをファイルに出力するには、cProfileを使います。 #encoding:shift-jis # import profile # pure Python…

世間では、単に好きな曲のメドレーを作業用BGMと呼ぶらしいですが、私は曲の境目で集中力がそがれるタイプなので、1つの曲を1時間延々とループさせるwavを作ることにします。wavで出力するので、容量はバカでかくなります。 1. RadioLine Freeというソフト…

py2exeでiconを付ける

setup( options = {'py2exe': py2exe_options}, console = [dict( script = 'dw2.py', other_resources = [], icon_resources = [(0, "dw.ico")], #ここにアイコンを指定 )], data_files = [], zipfile = None )

bloggerからはてなに記事を移行

bloggerからエクスポートした記事のxmlを、はてな記法に変換するスクリプトです。 参考:Conveyorを使ってBloggerからはてなダイアリーへ移行する #encoding:shift-jis from __future__ import division, print_function __metaclass__ = type import sys imp…

WeakKeyDictionaryが本当にメモリ節約になるのか試してみた。

weakrefモジュールのクラスを使うと弱参照を作れます。例えば、WeakKeyDictionaryの場合、keyに使用されているobjectが他の場所で全く使用されない状態になると、自動的にWeakKeyDictionaryから削除されます。・・・と、いうことだと思うのですが、なんか不…

PyWin32で、スクリプトのメモリ使用量取得

すぐ忘れるのでメモ def memorySize(): from win32process import GetProcessMemoryInfo, GetCurrentProcess info = GetProcessMemoryInfo(GetCurrentProcess()) return info["WorkingSetSize"]

Clojureで単語を数える

一時間で覚える Rubyを見習い、 ファイル内の単語数を数えるコマンド、wcを作ってみます。 ;word-count.clj (use 'clojure.contrib.duck-streams) (use 'clojure.contrib.str-utils) (defn read-words [path] (for [line (read-lines path) word (re-split #…

一時間で覚えるClojure

一時間で覚える Ruby を真似して書いてみました(この文章はあまり役に立ちません)。 各種リンク 公式ページ リファレンス チートシート インストール ここから、 最新版(2010/05/10現在 ver.1.1.0)のzipをダウンロードして解凍します。Javaランタイム も…

py2exeでバージョン番号などを付加する場合の注意

py2exeでは、setup関数に引数を追加することで、exeにバージョン情報などを追加できます。 ファイルを右クリック→プロパティ→バージョン番号で、見られるヤツの事です。追加できる情報の種類については、distutils.core.setup関数についてのドキュメントを参…

TopCoderの問題をちょっと解いてみた。

『問題を解くこと』より『解法をC++に翻訳すること』の方が難しいです。 permutationが欲しいです、combinationが欲しいです、powersetが(ry

ブロックの役割

PythonにRuby風のブロックを追加したら良いんじゃないか、という記事がありました。 Ruby-style Blocks in PythonPythonにブロックは必要ないんじゃないかと思います。 まず、blockには少なくとも以下の種類に分類できるように思えます。 その場で何回も呼ば…

Win XP HOME で NTFSのアクセス権を設定

コマンドプロンプトから、"cacls"コマンドを使う。 詳細は/?で。 cacls フォルダ名 /G Everyone:F で、誰でもフリーダムにアクセス可能になる。もちろん、これは危険。

1時間作文

文体診断ロゴーンなるものを見つけたのですが、 『自分で書いた文章』というものがPC上に多分無いので、 先人(http://t33f.tumblr.com/post/553632433)にだらだらと、何か書いてみましょう。 とりあえず、1000文字くらい。 ・・・と、言ってもネタが…

noseとdoctestを同時に使う

noseでテストを実行するとき、doctestを同時に使うにはどうすればよいのでしょう?noseのドキュメントを見ると、nosetests に --with-doctest コマンドライン引数を渡すと、 doctestもチェックしてくれるようです。 コマンドラインから実行するなら簡単です…

おおきなタイトルバー

たまにこうなります。Firefoxのせいか?

wavをいじくる

スパロボ大戦CDで、曲の末尾になぜかノイズが入っていたので、 いったんwavに変換した後、Pythonでノイズを削除。wave.openがwith文で使えないことに失望しました。 from __future__ import division, print_function __metaclass__ = type import wave from…

Windowsでフォルダ内容の監視

タイトルの通り、フォルダ内容の変化を監視するスクリプトです。検索したら、http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.htmlのサイトに全て書かれていました。以下の内容は、彼のサイトのデッドコピーです。win32上…

Haskellでポン!(4)

今回はポンの完成偏です。 まずGUI部分だけを作って、ロジックは後からつくろうとも思いましたが、 分割するほどコード量が多くないので、結局一度に書きます。まず、完成品の画面です。 本当に最小限のポンです。ボールのスピードを変化させたりする前に…

私のスキルで飯は食えるか?

あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定Pythonで解きました。所要時間は1時間ぐらいだと思います(時間を測るのを忘れました)。 #encoding:shift-jis from __future__ import division, print_function __metaclass__ = type im…

Haskellでポン!(3)

途中のモロモロの解説は他のサイト・本に任せて、さっそくGUIにかかります. Pragmatic Haskell 〜おもちゃじゃないHaskell〜 を参考に、まずはwxHaskellのインストール。 WxHaskell なお、WxHaskellはとりあえずGHC版しかないようなので、 GHC もインストー…

Haskellでポン! (2)

第2回は面接試験を潜り抜けるために、FizzBuzzを書きます。 {- fizzbuzz.hs -} fizzbuzz_nth :: Integer -> String fizzbuzz_nth x | mod x 15 == 0 = "FizzBuzz" | mod x 3 == 0 = "Fizz" | mod x 5 == 0 = "Buzz" | otherwise = show x fizzbuzz = map fi…

Haskellでポン! (1)

研究室の先輩に、「Haskellに興味があるが、誰か勉強しないか」と言われたので、 制作中のソフトそっちのけでHaskellでPongを作ってみます。Pongと言うのは原始の卓球ゲームです。名前を間違ってるかもしれません。 Pongを作るのは出入力が必須な気がするの…