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

2011年に買った本

2011年は大きな地震がありましたが、個人的にも、今まで住んだことがなかった大阪への引越しをしたり、2年くらい関わったプロジェクトを離れたり、いろいろと個人的に変化があった年でした。引越し後、新しく頂いた仕事はpythonを使うということで、未経験だ…

navi2chの導入メモ

環境 MacOSX 10.7.2 Emacs 23.3 ※ emacsインストール時のメモ ダウンロード git clone で持ってきます git clone git://navi2ch.git.sourceforge.net/gitroot/navi2ch/navi2ch インストール ./configure --with-lispdir=/Applications/Emacs.app/Contents/Re…

Emacsでプロジェクト eprojectでwarning

emacsを立ち上げ直したら、以下のようなWarningが出てました。 Warning (initialization): An error occurred while loading `/Users/yuhei/.emacs.d/init.el': Symbol's value as variable is void: prj-currentprj-currentはeproject内で使用されている変…

Emacsでproject管理 eprojectを試してみた その2

先日導入してみたeprojectですが、割と調子いいです。 先日設定したテストの実行や開発サーバーの起動以外に、tagファイルの作成もToolsに追加して見ました。別にキーを割り当てなくても、カーソルで選んでEnterで実行できます。 その他のTIPS プロジェクト…

Emacsでプロジェクト管理 eprojectを試してみた

emacsでプロジェクトの管理をするeprojectというのがあると知ったので試して見ました。 http://www.emacswiki.org/emacs/eproject同名のプロジェクトがgithubにありますが、関係はないようです http://wiki.github.com/jrockway/eproject/ インストール elpa…

anything-project.elを試してみる

インストール auto-installでいれました。 M-x auto-install-from-url https://raw.github.com/imakado/anything-project/master/anything-project.el 設定 M-tに割り当てました。デフォルトだとtranspose-wordsなんですが、使わないので。 あと今のプロジェ…

emacsのウィンドウ操作コマンドまとめ

分割する ウィンドウを上下に分割する(split-window-vertically) C-x 2 ウインドウを左右に分割する(split-window-horizontally) C-x 3 削除する 他のウィンドウを削除(delete-other-windows) 分割したウィンドウを削除してウィンドウをカーソルがあるウィン…

emacsでフォールディングをしたくてfold-dwim.elを試してみる

dwimは「do what i mean」空気をよんでフォールディングずる インストール elpaから M-x list-packagesでfold-dwimがあるのでiでマークつけてxでインストール (require 'fold-dwim) 使ってみる コメントにあるキーの設定例は以下の通り。 (global-set-key (k…

M-x align-regexp

上記のような文字列があった場合、リージョンをセットして M-x align-regexp でミニバッファにAlign regexp: と聞かれるので '('を入力してEnterすれば、以下のように整形できる。例えば、以下のようなコードも同様の方法でプロパティ定義を整列させたりでき…

emacsでカーソル位置のシンボルをハイライトする

eclipseだとカーソル位置のシンボルをハイライトできるのが地味に便利だったので、emacsでできないかと探したところ まさにこれ、というのが見つかりました。auto-highlight-symbol-mode https://github.com/mitsuo-saito/auto-highlight-symbol-mode instal…

emacsでスクロールを1行ずつにする

デフォルトだと半画面ずつくらいスクロールして不便なので、以下を設定。 (setq scroll-conservatively 1)

hg diff で改行を無視する

wオプションで無視 hg diff -w

GoogleAppEngine1.6.1とvirtualenv

GoogleAppEngineとvirtualenvは相性が悪くて、1.6.0までは、パッチを当てないとエラーになってしまってましたが、1.6.1で修正されたようです。めでたしめでたしリリースノート https://docs.google.com/document/pub?id=1AZjOs_it3FwPF5ZjUYsbpntGTbbnPqtl0k…

urllib.urlopenでTypeError: endheaders() takes exactly 1 argument (2 given)

google app engine1.6.0でurllib.urlopenを使用したところ、以下のようなエラーが発生。 File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 84, in urlopen return opener.open(url) File "/System/Library/F…

pythonでスクレイピング

入門ソーシャルデータにBeautifulSoupを使ってスクレイピングをしている例がありました。 BeautifulSoupはrubyでいうMechanizeやNokogiriに相当するライブラリです。http://www.crummy.com/software/BeautifulSoup/ 初めて使用したので基本的な使い方をメモ…

pygraphvizのインストールでエラー

環境はMac OS X 10.7.2です Graphvizのインストール 以下のURLからダウンロードできます http://www.graphviz.org/Download_macos.php pygraphvizのインストール pip install pygraphviz以下のエラーになりました Downloading/unpacking pygraphviz Running …

twitterのtrends取得

入門ソーシャルデータを読んでみてます。p6にtwitterのtrendsを叩いて結果を取得するサンプルコードが示されてますが、api側の仕様変更で動かなくなっているようです。 https://github.com/sixohsix/twitter/issues/56 import twitter twitter_api = twitter…

textmate.elを使ってみる

textmate.elはTextMateと同じショートカットでTextMateと似たような操作性を実現するマイナーモードhttps://github.com/defunkt/textmate.el インストール elpaからインストールした M-x list-pakcages(require 'textmate) (textmate-mode) 使ってみた感想 i…

同名のファイルのバッファ名にディレクトリ名を追加するuniquify.el

フレームワークによっては同名のファイルをいっぱい開いたりします。emacsで作業していると、バッファ名に views.py、views.pyのように連番が振られますが、 これだと中身がわからなくて不便ですそこで、uniquify.elというライブラリがあります。 バッファ名…

ruby、pythonのハッシュ/辞書の値取得

rubyにばかり慣れていたので、pythonの辞書から値を取得しようとして、キーがない場合にErrorになることに、ちょっとだけとまどいました。 せっかくなのでハッシュ/辞書の扱い方のメモを残しておきます。 python my_dict = {"a": 1, "b": 2} # 値の取得 prin…

python-amazon-product-apiを触ってみたメモ

インストール pip install python-amazon-product-api config.py 設定は別ファイルにしておきます。 AWS_ACCESS_KEY = '********************' SECRET_KEY = '****************************************' ASSOCIATE_TAG = '********-22' AWS_ACCESS_KEY、SEC…

rubyでメソッドの前処理、後処理を行うメモ

module Foo module PreExtension def method p " pre " super end end module Base def method p " base " end end module PostExtension def method super p " post " end end include Base include PostExtension include PreExtension end class Bar incl…

formに表示しないパラメータを指定する

from google.appengine.ext import db from google.appengine.ext.db import djangoforms class Todo(db.Model): title = db.StringProperty() content = db.TextProperty() added_by = db.UserProperty() class TodoForm(djangoforms.ModelForm): class Met…

ワンライナーで画像をbase64エンコード

rubyだと ruby -r base64 -e "print Base64.encode64(File.new('test.jpg').read)" もしくは ruby -e "print [File.new('test.jpg').read].pack('m')" pythonだと python -m base64 < test.jpg rubyだと60文字ごと、pythonだと76文字ごとに改行コードが入り…

python、rubyで辞書、ハッシュを走査する

keyとvalueを取得する pythonはiteritemsを使います myDict = {"a": 1, "b": 2, "c": 3} for key, value in myDict.iteritems(): print("%s %s" % (key, value)) # => a 1 # => c 3 # => b 2 rubyはeachを使います myHash = {"a" => 1, "b" => 2, "c" => 3} …

djangoのforms.ChoiceFieldにselectedを設定する

Formのインスタンスを作成するときに、initialとして初期値を渡す import djangoforms from django import forms class MyForm(djangoforms.ModelForm): month = forms.ChoiceField(choices=MONTH_CHOICES, widget=forms.Select()) MyForm(initial={'month':…

backbone-railsを触ってみた

backbone-railsを触ってみたのでメモです。https://github.com/codebrew/backbone-rails インストール bakcbone-railsはrailsの3.1系で使えます。 railsのプロジェクトを作り、Gemfileに以下を記述します。 gem rails-backbone あとはbundle install bundle …

html5アプリ作成のためのフレームワーク brunch

brunchというhtml5アプリを作るためのフレームワークがあります。 http://brunch.io/以下の言語、ライブラリ、ツールを使用してます。 CoffeeScript http://jashkenas.github.com/coffee-script/ Backbone.js http://documentcloud.github.com/backbone/ Und…

coffee-modeを使い始めた

emacsでcoffeescriptをサポートするライブラリとしてcoffee-modeがあるので使って見ました https://github.com/defunkt/coffee-mode インストール list-packagesからインストールできます M-x list-packages packagesの設定はこちら (require 'package) ;;リ…

backbone.jsでフラグメントがない場合は#homeに遷移させる

先日作成したRouterのサンプルで、フラグメントがない場合、#homeを表示するようにしてみました。 http://dl.dropbox.com/u/494487/backbone-sample/routing/index.html $(function(){ App.router = new App.Router; if(Backbone.history.getFragment() === …