2009年6月29日月曜日

misc: 組込みソフトウェア産業実態調査報告書 (2008)

http://sec.ipa.go.jp/reports/20080715.html

2009 年版が出るのはもうすぐかな。

2009年6月28日日曜日

python: バイトコンパイル

setup.py 使うほどでもないライブラリのインストール。

python -m py_compile hogelib.py

で、できた *.pyc を site-packages とかにコピー。

最適化は -O オプション。

2009年6月26日金曜日

blogger: syntax hilighter

インストールしなおしを繰り返していたら元に戻った! なんだったんだろう。まあ、いっか

2009年6月23日火曜日

misc: クラウドソーシング uTest

クラウド、という言葉は嫌いだけど、こういうアプローチは面白い。

http://www.utest.com/

クヌース先生の、tex のバグを見つけたら小切手、を大規模にしたようなもんか。

しかも割と成功しているみたい。日本でもサービスしてないのかな。

2009年6月18日木曜日

blogger: blogger syntax hilighter

syntax hilight ができなくなった。なんかしたっけかな?
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

testlink: teslink 語

testlink はドキュメントと UI がイケてないと思う。 なんかすごいらしいって聞いて、インストールしたまではいいけど、この後どうしようも なくなちゃうんじゃないかな。

で、とっつきにくさの原因の一つは、用語の定義が抽象的で分かりにくい、だと 思うので、windows を例にまとめてみた

テストプロジェクト Test Project
Windows 7 とか Windows vista とか Windows xp とか。以前はプロダクトという 名前だったらしい
テスト計画 Test Plan
月例パッチのリリースのタイミング (ちょっと無理があるか)
ビルド Build
ビルド番号。多くのチームではビルド毎に通し番号を付けている (と思う)

ここから質的に変わる。

テストケース Test Case
テストの最小単位
テストスイート Test Suite
テストケースの集合
テスト仕様 Test Specification
テスト仕様

2009年6月8日月曜日

cocoa: NSOutlineView

NSOutlineView で最低限実装しなければならないメソッドは4つ。

outlineView:numberOfChildrenOfItem:
item の下にぶらさがる 子item の数を返す。
outlineView:isItemExpandable:
子item のある/なし
outlineview:child:ofItem
子item を返す。index は 0 から始まり、numberOfChildren だけコールされる。
outlineView:objectValueForTableColumn:byItem:
item に対応する表示を返す。 ここを僕は勘違いしていて、item は識別子なんですね。item != 表示。
で、作ってみました。 なんとなく分かった気がする。
#import <cocoa.h>

@interface DataSource : NSObject {
    IBOutlet NSOutlineView *outlineView;
}

@end
#import "DataSource.h"

@implementation DataSource
// Data Source methods

- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
NSLog(@"[numberOfChildrenOfItem] item:%@", item);
   return (item == nil) ? 2 : 2;
}

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
NSLog(@"[isItemExpandable] item:%@", item);
    return ([item length] == 6) ? YES : NO;
}


- (id)outlineView:(NSOutlineView *)outlineView
  child:(int)index
    ofItem:(id)item
{
    NSLog(@"[child ofItem] index:%d item:%@", index, item);
    if (item == nil) {
        NSString *string = [[NSString alloc] initWithFormat:@"root-%d", index];
        return string;
    } else {
        NSString *string = [[NSString alloc] initWithFormat:@"%@-%d", item, index];
        return string;
    }
}

- (id)outlineView:(NSOutlineView *)outlineView
objectValueForTableColumn:(NSTableColumn *)tableColumn
    byItem:(id)item
{
     NSLog(@"[objectValueForTableColumnd]  item:%@", item);
     return (item == nil) ? @"/" : @"fuga/";
}

@end
Blogger Syntax Highliter は Objective-C に対応してないのね。がっくし。

cocoa: よく使う文字列操作

とりあえずこの 3 つをおさえておけば大丈夫そう。

連結
  • NSString *stringB = [stringA stringByAppendingString:@"hogehoge"];
  • NSString *stringC = [stringA stringByAppendingString:@"%d", 1];
比較
  • BOOL result = [stringA isEqualToString:@"hogehoge"];
  • BOOL result = [stringA hasPrefix:"ho"]; // startswith
  • BOOL result = [stringA hasSuffix:"ge"]; // endswith
長さ
  • unsigned int len = [string length]; // [@"ほげ" length] == 2

2009年6月6日土曜日

testlink: インストール

あまりにも testlink を持ち上げる人が多くて忌避していたんだけど、いろんな圧力に 負けて使ってみることにした。

で、testlinkjp.org の How to install がこれまたなえる内容だったので、 まとめなおしておこう。

  1. tar ball をゲット
  2. tar zxvf testlink*.tar.gz
  3. cp -r testlink /path/to/DocumentRoot/...
  1. httpd と mysqld を起動
  2. http://crassus.iij.ad.jp/testlink/install/index.php にアクセス
  3. あとは指示にしたがって適当に。

日本語化はユーザの管理からlocaleをjapanにすることで変更できた。