2012年 6月 の投稿一覧

quickrun.vimでRSpecの実行結果のカラー設定をする

Rails少し勉強してTDDとはなんぞや、テストってなんぞやと思ったのでRailsのテストでよく使われているらしいRSpecを勉強してる。
The RSpec BookはRSpecのみならずTDD(BDD)についても分かりやすく書いてあると評判だったので買ってみて写経を開始。

Vimでコードを書いていてふとRSpec関連で良いプラグインないかなーって思ってググッたけど特に見つからず。そのかわりquickrun.vimでRSpecの実行結果を見れるようにするという記事をいくつか発見。

続きを読む

Javaでクイックソート書いてみた。

授業でJavaやってる。今日はソートということで授業の課題は選択ソートだったんだけど自分は一歩踏み込んでクイックソートを書いてみた。

[java]
import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;

/*
* 100〜999の3桁のランダムな整数10個をソートする
*/
class QuickSort {
static JButton sortButton = new JButton("クイックソート");
static JLabel resultLabel = new JLabel("");
static int[] data = getRandomList(10);
static int length = data.length;
static JLabel arrayLabel = new JLabel(IntToString(data));

public static void main(String args[]) {

final JFrame frame = new JFrame("クイックソート");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
});
Container cont = frame.getContentPane();
cont.setLayout(new GridLayout(0,1));

sortButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
qSort(data, 0, length-1);
resultLabel.setText(IntToString(data));
}
});

cont.add(arrayLabel);
cont.add(sortButton);
cont.add(resultLabel);

frame.pack();
frame.setVisible(true);
}

public static void qSort(int[] array, int l, int r) {
if(l < r) {
int m = l;
for (int i = l+1; i <= r; i++) {
if (array[i] < array[l]) {
swap(array, ++m, i);
}
}
swap(array, l, m);
qSort(array, l, m-1);
qSort(array, m+1, r);
}
}

private static void swap(int a[], int n, int m) {
int temp = a[m];
a[m] = a[n];
a[n] = temp;
}

public static int[] getRandomList(int size) {
int[] list = new int[size];
int nMax = 999;
int nMin = 100;
for (int j = 0; j < size; j++) {
list[j] = (int)(Math.floor(Math.random()*(nMax-nMin+1))+nMin);
}

return list;
}

public static String IntToString(int a[]){
String result="";
for(int i=0; i<a.length; i++){
result = result + Integer.toString(a[i]) + " ";
}
return result;
}
}

[/java]

一応うまくいったっぽい。たまにはアルゴリズム勉強しようと思った。。

[Rails3]ActionMailerで日本語メールを送る

最近は時間を見つけてはRailsによるアジャイルWebアプリケーション開発 第4版を写経しておる。
これ翻訳書なせいかアプリがちゃんと動いてもテストがなかなか通らないのね。Rails初心者だからどうしていいかわかんない。イテレーション一つ進めるのにものすごく時間がかかって疲れる。

今日はイテレーションH1の確認メールの送信をやっていたのだけどテストが通らないのね。
メール本文が文字化けしているからassert_matchが通らない。
そりゃそうだ。
Railsの文字エンコードはデフォルトでUTF-8だから日本語の文字化けで困ることはほとんどないんだけど、日本語メールはUTF-8じゃなくてISO-2022-JPに指定しなくちゃね。

解決策はGemでmail-iso-2022-jpを取ってきて、

続きを読む