tanihito’s blog

デジタル・新規事業開発・健康など、興味のあることについてつらつらと書いてきます。

Head First Design Pattern

リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニックを読みました。どうやったらきれいなコードが書けるかについて、分かりやすく説明しています。200ページと薄いので、エンジニアなら読んでみて損はないです。これぐらい当たり前に…

iPhone版『空気読み。』の隠しのリスト

たまにはプログラミングと関係ない話題を。 最近iPhoneアプリの空気読み。にはまってます。ここを参考にして「隠しのリスト」がほぼコンプリートできたので、やりかたをまとめました。残ってるのはNo.72だけですが、全然わからない…。 No. 問題 隠しのリスト…

Java開発環境の設定

自分のJava開発環境についてまとめました。もっといいツールが見つかれば更新します。 Tomcat $ wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz $ tar xzvf apache-tomcat-6.0.33.tar.gz $ mkdir…

YouTubeに歌詞を表示するGreasemonkeyスクリプト

を書きました。http://userscripts.org/scripts/show/116088からインストールすると、ビデオの下に歌詞が自動的に表示されます。

Fabricによるデプロイの自動化

Python製デプロイツール『Fabric』について調べました。これを使って業務を楽にするスクリプトを作成したいと思っています。 Automated Deployment with Fabric View more presentations from tanihito

Pythonの文字列の話

エキスパートPythonプログラミング読書会19に参加して、Unicodeの話を聞いてきました。自分が理解できた範囲でメモしておきます。decode(), encode(), io.open()を使いこなせるようになれば、UnicodeErrorに困ることも減るのでは、と感じました。文字列にはs…

Gow + NYAOS + ckw-mod でコマンドプロンプトをLinuxのように使う

最近はWindowsで開発することが多いのですが、Windowsのコマンドプロンプトは使いにくくてイライラします。かといって、Cygwinを入れるのも面倒だし…。そこで、Windowsで手軽にLinux風シェルを使う方法を紹介します。 Gowをダウンロードし、実行 ckw-mod-0.9…

PyCon JP 2011 に行ってきました

自分が見たセッションの内容をまとめました。その他のセッションについては、aodagさんの資料まとめやnokunoさんの内容まとめをみてください。 Keynote パッケージング 今のパッケージングは複雑なので、新しくpysetupを作っている。Python3.3またはdistutil…

TOEICを600点から900点に上げるための英語勉強法

最近やっとTOEICで900点を超えることができました。記念に私の英語勉強方法をメモしておきます。 600点以下のとき 勉強すれば点数は上がります。どうやって勉強するか分からん!という人は『TOEICテスト900点・TOEFLテスト250点への王道』を読んでみてくださ…

SMD5の実装

パスワードを平文で保存するのは危険であり、MD5などでパスワードをハッシュ化した値を持っておくのが一般的です。しかしMD5を使った場合、一般的なパスワードでは辞書攻撃で解読されてしまいます。例えば、「5f4dcc3b5aa765d61d8327deb882cf99」というハッ…

様々な類似度の計算

ある2つの単語a, bの関連を調べる場合に検索エンジンのヒット数を利用することが多いですが、ヒット数から類似度を計算する方法はたくさんあります。そこで様々な類似度の計算方法をPythonで実装しました。なお、類似度や距離についての解説は類似度と距離 …

エンジニアのためのWindowsフリーソフト集

仕事でWindowを使う機会が増えてきたので、Windowsで快適に作業するためのフリーソフトを集めてみました。 キーバインド AutoHotkey_L:設定ファイル (emacs.ahk) を使ってどこでもEmacsキーバインドに! Change Key:CtrlとCapsの変更。 エディタ NotePad++…

zc.buildoutでClassiasを簡単インストール

前回はMeCabのインストールをzc.buildoutを使ってやったので、今度はClassiasのインストールをやります。Classiasは機械学習アルゴリズムの実装で、素性名として任意の文字列を使えるという特徴があります。buildout.cfgは以下のようになります。いつものよ…

zc.buildoutでMeCabを簡単インストール

最近はpythonの環境設定をbuildoutでやってしまうのが流行りみたいですね。そこで、私がよく使う形態素解析エンジンMeCabのインストールをコマンド一発でできるようにしてみました。まずはbuildout用のディレクトリfooを作成します。 $ mkdir foo $ cd foo $…

moxの使い方

pythonのモックといえばminimockが有名ですが、私はmoxを利用しています。moxで検索してもあまり情報がないので、簡単に使い方を記載しておきます。 以下のような、URLを受け取ってソースを表示するprint_sourceという関数のテストを考えます。インターネッ…

ドットファイルの管理

Linuxをしばらく使っていると、.emacsなどの設定ファイルが増えてきます。僕はこれらの設定ファイルを1つのディレクトリに保存し、ホームディレクトリにリンクを張って使っています。こうすれば新しいPCに移行する際に1つのディレクトリをコピーするだけで…

Word2007で論文を書くときに知っておくべき10のこと

論文を書くときはTeXを使うのが当たり前でしたが、最近はWordのスタイルしか提供されない学会も多くなっています。TeXでできることは全てWordでもできるので、きちんとしたWordの使い方をマスターしましょう。なお、ここに書いてある事をもっと詳しく知りた…

A successful Git branching modelの初期設定をする

バージョン管理システムをSubversionからGitに移行しました。Gitではブランチの使い方が重要になってきますが、A successful Git branching modelがいいみたいです。このモデルではリモートにmaster・developブランチを作る必要があるので、設定方法を記録し…

PyPIデビュー!

Python Hack-a-thon 4: ハンズオンを読んでPyPIデビューしました!意外と簡単にPyPIに登録できましたが、変なところではまったので記録しておきます。 パッケージを作る 今回は練習のため簡単なパッケージhogehogeを作ってみます。 $ mkdir hogehoge $ cd ho…

Pythonのクロージャで末尾再帰最適化をする。

元ネタはPythonで末尾再帰最適化をする。 - wasabizの日記。Pythonのデコレータを使って、関数の末尾再起最適化を行う、というものです。元エントリではクラスを使ってデコレータを作っていますが、これではラップした関数がクラスになってしまいます。 >>> …

TeXをGitでバージョン管理

Gitを使い始めたので、TeXで書いている論文もGitでバージョン管理してみます。この場合の問題は以下の2つです。 GitはUTF-8でないと文字化けするが、pLaTeXはUTF-8に対応していない TeXをコンパイルする際に*.aux, *.logなどの中間ファイルが作成され、分か…

Wordの文献リストをBibTeXに変換する

最近WordからTeXに乗り換えました。図の位置とかを気にしなくていいので楽ですね。今までWordで作ってきた文献リストをTeXでも使いたいので、Wordの文献リスト(マスタリスト)をBibTeXに変換するスクリプトを書きました。Wordの文献リストは"C:\Documents a…

platex-utf8

日本語論文をTexで書く場合はEUC-JPを使うのが(多分)一般的ですが、バージョン管理をしている場合はログが文字化けしてしまいます。そこでUTF-8で書かれたTexファイルをコンパイルするシェルスクリプトを作りました。foo.tex, foo.bibというファイルをコン…

対応のあるt検定

提案手法とベースラインが有意差があるかを調べるためには、対応のあるt検定を行なう必要があります。そこで練習のためにハンバーガー統計学にようこそ!に出ていた例をPythonで実装してみました。8人の女子高生が2種類のハンバーガーを食べて、下表の得点を…

はてなダイアリーでソースコードに色をつける

ソースコード貼り付けるときに色つけたいなー、と思ったら簡単できた。 ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ >|python| # -*- coding: utf-8 -*- for i in xrange(10): print i, "hello, world!" ||<…

PrefixSpan-relで取得した未知語をMeCabの辞書に登録する

モチベーション ある文章中にどのような単語がよく出現するか調べることは、基本的な分析手法の1つです。1文節のみを対象とする場合は形態素に分けて頻度を数えればいいですし、2文節以上でも既知語ならば簡単に取得できます。しかし、複数の単語からなる…

moxを使ってMySQLdbのテストを行う

ユニットテストを行う際に面倒なのが、外部のデータベースを利用している場合です。 ここではmoxというモックを使ってMySQLdbのテストを行なう方法を紹介します。 moxはpythonのモックライブラリの一種で、JavaのEasyMockを元にしています。 詳細はpymoxのペ…

単語出現頻度をSVMlight形式の学習データに変換する

文書分類などを行なう場合にはSVMlightやLIBSVMなどのライブラリを使います。 その場合素性名を数値にする必要があるので、 変換する関数converter.pyを作ってみました。 (Classiasという素性に任意の文字列が使えるライブラリもあります) 素性を数値に変…

Ajaxでページを読み込む

なんとなくJavaScriptから逃げていたんですが、Webサービスを作ろうとするとやっぱり必要ですね。 ということでAjaxのお勉強です。 main.htmlのボタンを押すと、ページ遷移なしにtsuika.htmlの内容を読み込みます。 ポイントはload_entity.jsの最終行にある …