tanihito’s blog

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

プログラミング

Ruby技術者認定試験 Gold の勉強方法

Ruby技術者認定試験Goldに合格しました!Silverに比べると、継承関係など暗記ではなく考えれば分かる問題が増えました。難易度は上がっていますが、クイズのようで面白い試験です。 勉強方法 Ruby公式資格教科書の演習問題を解いて、分からないところは解説…

Boxenを使ったMacの開発環境構築

Github社が作ったMacの設定ツール Boxenを使って、Mac Book Airの開発環境を作りました。結構はまった...。 事前準備 競合するツールを削除します。 Homebrew: https://gist.github.com/mxcl/1173223 rvm: "rvm seppuku" rbenv インストール ## Boxenのイン…

Ruby技術者認定試験 Silver の勉強方法

Ruby技術者認定試験 Silverに合格しました!標準ライブラリについての問題がほとんどなので、普段Rubyを使っている人ならば2,3日で合格できます。 勉強方法 Ruby技術者認定試験 公式ガイドをやりました。Silver/Gold対応の参考書もありますが、Goldにしか出…

楽天テクノロジーカンファレンス 2013 に行ってきました

楽天テクノロジーカンファレンスに参加してきました。Dave Thomas, James O. Coplien, Matzなどの有名人の話を聞けたのが良かったです。 UX Analytics - How to measure ROI of content and functions UXの測定をするには、以下の4つのステップを実行する。 …

Web+DB PRESS vol.77

スマートフォンテスト最前線 スマートフォン向けの開発をやっていないので、あまり参考になるところはなかった。 Amazon Web Services 最新活用 AWS (Amazon Web Services) :Amazonの提供しているクラウドサービス EC2 (Amazon Elastic Compute Cloud):仮…

Macの開発環境構築

新しくMacBookAirをゲットしたので、RubyOnRailsの開発環境ができるまでをメモしておきます。 一般ツール Alfred:ランチャー。最近はQuicksilverよりも有名?自分で検索サイトを追加できるのが便利。 OmniFocus:タスク管理。便利だけどMacしか使えない&高…

Web+DB PRESS vol.76

最近Web+DBのまとめしか書いてない気がします。読みたい本はたくさんあるのですが、まずは大量のバックナンバーを消費しないと本棚に入らないんです…。というわけで、Web+DB PRESS vol.76のまとめ・感想です。 実践UIデザイン UIをデザインするためには、ま…

理論で学ぶSQL再入門

Web+DBで連載している「理論で学ぶSQL再入門」が、大学のDB工学の授業の復習になって面白いです。最近はAPI経由でデータを取ることが多く、SQLを直接使うことは減りましたが、やはりSQLやDBの知識は必要ですね。 SQLにおける「リレーション」とは、テーブル…

WEB+DB PRESS vol.70, 72, 73を読み返した

積ん読していたWeb+DBをやっと読み終わりました。面白かった記事をまとめておきます。 Javaでナノチューニング! (vol.70) ループ時の繰り返し判定を避ける for (int i=0; i

RubyKaigi2013に参加しました

2013/05/30~6/1の3日間で開催されたRubyKaigiに参加してきました。自分が参加した発表について、内容をまとめておきます。Ustream・スライドはここにまとまっています。 Ruby2.0 reference manual for Japanese http://rubykaigi.org/2013/talk/S69 るりまの…

Head First Design Pattern

リーダブルコード

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

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…

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つのディレクトリをコピーするだけで…

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などの中間ファイルが作成され、分か…

platex-utf8

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