2012-01-01から1ヶ月間の記事一覧
StackOverFlowで見つけて面白かったのでメモdictに*を1つつけるとキーが順番に渡されますが、2つつけるとキーと同名の引数に値が渡されるんですね def draw_point(x, y): print x, y point_foo = (3, 4) point_bar = {'y': 3, 'x': 2} draw_point(*point_foo…
今まで知らなかったんですが、Pythonだとfor〜elseが使えます elseブロックが処理されるのは、breakされることなく、ループ処理が終了した後です for i in 10: if i == 0: break else: print("foo") この場合、breakでループを抜けるので、elseブロックは処…
普段fold-dwim.el経由でhideshow.elを使ってます。 で、先日ひさびさにrubyコードを読んでて気づいたんですが、ruby-modeでのフォールディングは対応していないので効きません。 ちょっと調べたところ、以下の情報を見つけましたElisp/hideshow.el http://ww…
pareditでparedit-forward-downというファンクションがあって、デフォルトでC-M-dに割り当ててあるんですが、どうも使えないので調べてました。 describe-keyでC-M-dを叩いても、無反応で、ミニバッファに「C-M-d is undefined」と出力すらされません。 emac…
emacsでコードフォールディングするのに、以下の設定でfold-dwim.elを使っています (global-set-key (kbd "<f7>") 'fold-dwim-toggle) (global-set-key (kbd "<M-f7>") 'fold-dwim-hide-all) (global-set-key (kbd "<S-M-f7>") 'fold-dwim-show-all) 便利なんですけど、メソッ</s-m-f7></m-f7></f7>…
普段、C-wをbackword-kill-wordに割り当ててます。(シェルと同じ挙動にしたいので) kill-regionは別のキーを割り当ててます (global-set-key "\C-w" 'backward-kill-word) (global-set-key "\C-x\C-k" 'kill-region) (global-set-key "\C-c\C-k" 'kill-reg…
ruby FileTest.directory?('/Applications') # => true FileTest.directory?('/Application') # => false python import os os.path.isdir('/Applications') # => True os.path.isdir('/Application') # => False
タイトルそのままですが、気づいたのでメモ import os import argparse parser = argparse.ArgumentParser() parser.add_argument('source-file') parser.add_argument('output-file') parser.add_argument('-F') parser.add_argument('-f') parser.add_argu…
エラー時にstderrへメッセージを出力し、sys.exitするスクリプトをテストするのに以下のように書いてみました sys.exitについてはSystemExitで補足できますので、それでテストできます。 sys.stderrについてはmockに置き換えて、writeされた値を保存しておい…
rubyのActiveSupportを使うとDate型にend_of_monthというメソッドが追加され、Dateオブジェクトから月末のDateオブジェクトを得ることができます require 'active_support/core_ext/time/calculations' today = Date.today() puts today # => 2012-01-21 put…
2つのdatetimeオブジェクトがあって、その期間の1日ごとに処理を行いたいケースがあったので、調べたところ以下のような感じに落ち着いた from datetime import datetime, timedelta start = datetime.strptime('201201', '%Y%m') end = datetime.strptime('…
文字列からdatetimeオブジェクトを生成する場合、2.5で追加されたdatetime.strptimeが使えます from datetime import datetime datetime.strptime('20120120', '%Y%m%d') # => 2012-01-20 00:00:00 第1引数に日付を表す文字列を、第2引数にフォーマット文字…
Emacsを使い出して、もう5、6年経つはずなんだけど、未だに発見があります 今までbookmarkを使っていませんでした よくdiredで開く、いくつかフォルダがあって、いままではわざわざパスを指定してたんですが、急にめんどくさく感じるようになったので、なに…
anything-for-filesをkbd("C-:")に割り当てて使ってます (global-set-key (kbd "C-:") 'anything-for-files) ファイル開くときは全部これで開きます。便利です ただ、anything起動中にanythingを起動してエラーを発生させてしまうことがたびたびあってイラっ…
expand-region.elを試してみましたhttps://github.com/magnars/expand-region.el 名前を見たときに、「あ、これよさそう」と思ったんですが、いい感じです 使わなくなって、設定を消してしまう拡張機能も結構あるんですが、これは生き残りそう インストール/…
メタプログラミングRubyで動的プロキシというものが紹介されていますどのメソッドにも当てはまらないメッセージを他のオブジェクトに委譲する、というものです下記はメタプログラミングRubyで紹介されているサンプルコードとほぼ同じものです class MyDynami…
動的ディスパッチ 動的ディスパッチは、「実行時に呼び出すメソッドを決める」ことを指します。 rubyではsendによって動的ディスパッチができます method_to_call = :upcase obj = "abc" obj.send(method_to_call) # => "ABC" pythonではメソッドがオブジェ…
ちょっと前まではrubyで、最近はpythonで仕事をしているので、rubyでやっていたアレ、pythonだとどうやるんだろ?と思うことがたまにあります。 逆にpython書いてて、あれこれrubyで(ry とか で、インスタンス変数の操作ですが、 pythonではあらかじめ定義を…
ちょっと前まではrubyで、最近はpythonで仕事をしているので、rubyでやっていたアレ、pythonだとどうやるんだろ?と思うことがたまにあります。 で、クラスへのインスタンスメソッド追加ですが、 rubyではオープンクラスによって、インスタンスメソッドが追…
pythonのコマンドラインツールclintが面白そうなので試してみますhttps://github.com/kennethreitz/clintclint自体がコマンドラインツールというわけではなく、pythonでコマンドラインツールを作成するときに便利なライブラリです インストール pip install …
emacsでコードを読むとき、タグジャンプが便利です。 僕はanything-etags+.elを使ってます。 で、今日も思ったんですが、行数の多い関数の定義に飛んだ後とか、カーソル行を1行目に持ってきて欲しい、と思うときがあります。 デフォルトでそういう挙動にで…
backbone-boilerplate https://github.com/tbranyen/backbone-boilerplate クライアントサイドMVCフレームワークであるbackbone.jsを使用したアプリケーションのテンプレートですね なんかbackbone.jsってこういうの多いですね。 使ってみる 上記URLからzip…
ファイルローカル変数とは、ファイルの1行目に以下のようなコメントを設定しておくことで、ファイル内で有効なemacsの変数を定義できる、というものです (1行目に設定する以外の方法もあります) # -*- mode: python; coding:utf-8; -*- 上記の設定でmajar-mo…
http://rosettacode.org/wiki/FizzBuzz新しく言語を習得しようとするときに、その言語のFizzBuzzを読むとなんとなく雰囲気がつかめる、、かもしれない 他にも数独ソルバーとか http://rosettacode.org/wiki/Sudoku
仕事してるとテストデータを作ったり、またはシステムのデータをダウンロードさせたりとかで、結構csvやxls形式を使います そんなときに便利そうなライブラリがあったのでちょっと試して見ましたtablib https://github.com/kennethreitz/tablibdocument http…
なんとなくTwitterStreamingAPIを試してたのでメモ キーワードでレスポンスを絞り込む trakingというファイルを用意して、以下を入力 キーワードは400まで指定できるみたいだけど、ヒット件数が多くなると取りこぼしも多くなるんだと思う。 track=basketball…
python from datetime import datetime, timedelta today = datetime.today() today + timedelta(minutes=1) # => 1分後 today + timedelta(hours=1) # => 1時間後 today + timedelta(days=1) # => 1日後 ruby require 'date' today = DateTime.now() today …
pythonのデザパタ本をDLしてPDFで読めます。http://dpip.testingperspective.com/紹介されているパターンは以下の7つ。 1. Model-View-Controller Pattern 2. Command Pattern 3. Observer Pattern 4. Facade Pattern 5. Mediator Pattern 6. Factory Patte…
node.js、backbone.js、mongodb、coffeescriptなどを使用したシンプルなCRUDアプリのサンプルがgithubで公開されていましたので、動かして遊んでました フレームワークはexpressを使用しています。https://github.com/gelnior/ponyoちゃんと動きます そもそ…
今使っているmacを買ったときにいろいろとツールのインストールやらなんやら環境設定をしたけど、なんとなくシェルがbashのままだった。 新年ということで今年からめんどくさがらずにちゃんとzshを使おうと思い立ち、とりあえず導入したのでメモを残す イン…