2011年12月31日土曜日

2011年をチョットだけ思い出してみた

ちょっとだけ思い出してみる。

Gingerbread端末がいっぱい出てきたり
Honeycomb端末が…そんなに出てきたっけ?
Ice Cream Sandwich端末が…ああ、今のところ一機種だけど出てきたり

Google+が出てきてPicasaの無料容量が増えて使うようになったのも今年。
BlogをBloggerに移したのも今年。
他にもGoogleDocmentに依存しだしたり…

とまあGoogle依存症が更に進んだ年ですね。

ほんとアカウント消されたら死ねるわ。



今年初


順番は適当
  • 蛍見た
  • 自転車買って通勤で使い出した
  • Macさわるようになった
  • SubversionからMercurailへ移行した
  • 勉強会に行くようになった
  • GDD行った

みたいなことをPicasaやらなんやら見て思い出しました。
他にも細かいことでいっぱい刺激の多い年でした。



逆にあんまり出来なかったこと


  • サーキット行ってない(前年比90%以上減)
  • 知人とそんなに会ってない気がする

サーキットは地震の影響で今年最初の機会を逃したまま、
ズルズルと行かなかったなぁ。
まあ義務でも仕事でもなく趣味だから、行かなかったからといって困ることは無いんだけど、
やっぱり今思うとモノ足りない感じです。

知人と…は、twitterとかの利用が今年本当に増えた…というか依存レベルまでいってしまった結果、
メール見なくなったりMixi見なくなったり(Mixiは前から見てないか)したことが最大の原因かと。
→ただでさえメールも電話も気が付かないのに…

どうもtwitterとかやってて当たり前みたいな環境に居るせいか、それで全て閉じていました。
よく考えなくても中の良い先輩やら友人やらがやっているとは限らないのにw




来年は何しよう


今年は凄く刺激の多い年でした。
ある面では個人的に非常にためになる年でしたので、来年も色々と継続したいと思います。

一方で自分はOutputが足りないなと、そう強く感じたのも今年でした。

ですので来年は少しでもOutputを出すようにしたいと思います。

あとは今年あんまり出来なかったことが出来るようにしたいと思います。
結局そこって自分の欲求なのでしょうし。





では良いお年を。

来年もよろしくお願いいたします。

2011年12月3日土曜日

tortoiseHgでrebaseしてみた

12月ということで各所で「Advent Calendar」やってますね。
リンク先は各所のカレンダーをまとめてくれているブログの記事となっています。
お陰で毎朝仕事にならない勉強になります。
ちなみにこの記事はそれとは全然関係なく、通常運転ですがw


ケーススタディで学ぶMercurialのRebase拡張(Mercurial Advent Calendar 2011 1日目)

を見て、そういや「tortoiseHg」でもできるんかな?と思い実行。
結果から言うとできたり出来なかったり。
いや出来たんですがやや反則な気が…



まず拡張設定を有効にしないとなんにも始まらないので「mercurial.ini」を編集。
多分C:\User\PC名\ の下にいると思われます。
普通に「.hgrc」に書くのと一緒。先日行われたらしいSCMBCのMercurialの資料
おすすめ「hgrc」ってのがあったので、参考にするのがいいかと。

こんな感じ?

[extensions]
graphlog =
color =
mq =
hgext.purge=
rebase =
…


graphlogとかcolorとかtortoiseHg使うだけなら不要な気がしますが、tortoiseHgを入れるとなんとHgコマンドがDos窓からも実行できる!(tortoiseHg以外でHg入れていないから多分あっている)
ついでに言うとcygwinからも使えるようになっている気がします。
なので設定しておいて損はないかと。


before

after 履歴修正とか増えている




個人的にはstripがWorkbenchのグラフからできるって素晴らしいと思う。



さていざrebase
(さきほどのケーススタディで学ぶMercurialのRebase拡張で公開されているex1-1-basicで
実行した場合)


…ってrebase元と先が一緒じゃん…

当然上記で実行しても意味無いです。当たり前ですが。

多少試行錯誤した結果、destとしたいリビジョンにupdateし、
かけたいリビジョンのグラフ上で
・右クリック→履歴修正→リベース
で目的は大体果たせそうです…

ってなんか違う…

コマンドライン的に書くと

hg rebase --source グラフ上で右クリックしたリビジョン --dest 今のリビジョン

という動作以外できないようです。(きっと)

ダイアログ上でリビジョン指定できればいいのに…と思いますが、
そもそも拡張機能&タダで使わせていただいているので文句はいいません。


結局細かいことをやろうと思ったらコマンドラインからやるしかなさそうなんですが、
それでも tortoiseHg は凄かった。



Workbenchから 表示→コマンドログ を選択すると、画面下にコマンドログが表示されます。
が、これ表示だけじゃなくて、入力できる




このコマンドログ上でコマンド叩くのが楽。
グラフも見やすいし、コマンド実行直後にグラフに結果が反映するしで
色々と捗る気がします。

なんか反則な気がするけど、無理にツール上のメニューを探さなくてもいいし、
これが一番な気がする。



なおmacでおすすめするHgのGUIツールはEclipseのプラグイン(EclipseMercurial)です。
そしてsourcetreeとかMacHgよりターミナルからコマンド叩くほうが楽な気がするのは俺だけ…?


2011年11月18日金曜日

PHPUnit vfsStream メモ

PHPを触りだして3日。
サポートのはずなのになんか気が付いたら俺主体なんだけど…

という訳でメモ

なんだかんだでテスト系は情報無いよなぁ…

最初使い方に詰まったvfsStreamですが、これは使いやすいのでは?
重要なのはvfsStreamで生成したファイルをvfsStreamのディレクトリにちゃんと登録することw

// setup 何も指定しなければvfs://root というディレクトリがある前提になるはず
vfsStream::setup();
// rootの取得
$root = vfsStreamWrapper::getRoot();
// rootディレクトリパスの取得 実際にis_dirがtrueを返す
$rootDirPath = vfsStream::url($this->root->getName().DIRECTORY_SEPARATOR);

//モックファイルの生成と登録
$file = vfsStream::newFile("hoge.txt");
$root->addChild($file); // これに気が付かなくてチョットハマった

//モックファイルパス
$path = $rootDirPath.$file->getName();

//あとはこのpathをテストしたい奴に渡して何かしら処理させた後
//$fileの中身を見たりすればOKな感じ?

とりあえず動作確認



Gistを初めて使うけどまさかPHPで使用するとは思わなかったよw
でもGistいいかも?

2011年11月17日木曜日

MACに PDT + PHPUnit + XAMPP + MakeGood 環境を構築してみた

前回に引き続き、今度はphp関連の開発環境を構築してみました。

まるで環境構築マニアみたいですが、phpはちょっと必要に駆られてなので…

本末転倒ですが別にエディタでもいいとは思います。
めんどいし。
もっというとXAMPPじゃなくて個別にインストールしたほうが
後々いいかもしれません。なんとなく。
だってどうせサーバ上ではXAMPPじゃないでしょ。

とはいうもののPHP書いたこと無いし、vimさんだけで生きて行けるほど強くないし、
IDE無いとミスっていることにすら気が付かないし(ぇ



◯以下をとりあえずDL
PDTはプラグインだけでもOKですが、
なんとなくこれ以上プラグインを追加したくなかったので、
All IN One (eclipse-php?)を落としました。

XAMPPは上記サイトに従って動作確認までは余裕かと。



◯XAMPP上にPHPUnitをインストール

とりあえず以下をターミナルで実行
パスからも想像出来るようにルート権限必要です。

#cd /Applications/XAMPP/xamppfiles/bin
#sudo ./pear upgrade-all
#sudo ./pear channel-discover pear.phpunit.de
#sudo ./pear install phpunit/PHPUnit
インストールされている気配が無かったので再度実行
#sudo ./pear install phpunit/PHPUnit
Unknown remote channel: pear.symfony-project.com
と出たので
#sudo ./pear channel-discover pear.symfony-project.com
#sudo ./pear install phpunit/PHPUnit
#./phpunit --version
バージョン表記されてメデタシ(2011年11月15日 3.6.3でした)

依存関係をまとめてinstallできるpearのコマンドオプションがあった気がするけど
メモ忘れました…



◯XAMPP上にtestrunner
#cd /Applications/XAMPP/xamppfiles/bin
#sudo ./pear channel-discover pear.piece-framework.com
#sudo ./pear install piece/stagehand_testrunner



◯ /Applications/XAMPP/xamppfiles/bin にパスを通す
先にやればよかった…



◯他

またDB関連もテストするなら下記も入れておくといいかも

#sudo pear install phpunit/DbUnit

http://www.phpunit.de/manual/3.6/ja/database.html



◯PDT関連
makegood追加(help → install new software)
http://eclipse.piece-framework.com/
-clean で再起動



◯これは正直いいのかわかんない
PDT使ってPHP作ってローカルで動作確認したいのに、
当たり前といえば当たり前なんだけど、/Applications/XAMPP以下が軒並み読取り専用です。
結果としてリンク先にあるように最初から準備されているドキュメントルートに、
Eclipseがファイル配置出来なかったりします。
なので、httpd.confをいじって適当な場所にドキュメントルートを移動させるか、
最初から配置されている場所に書き込めるようにするかの2択だと思います。

ちなみに後者のhttpd.confを弄ってちゃんとうまく動くかは確認していません。

そして本当に読取り専用じゃなくしてしまっていいのかは知りませんw

まあ一番最初にpear実行段階で管理者権限でファイルイジりまくっているから
いいっちゃいいんでしょうけど…

なおeclipse-phpのPreferences → PHP → PHP Server → Edit Server に
Path Mapping ってあるんですけど、これうまく動いている気がしない。
これが動けば別にどこに配置したっていいんでしょうけどねぇ…



◯とりあえず作ってみる

まず悩みながら下記パスにワークスペースを作成

新規作成→PHPプロジェクト→hellophp.php / hellophpTest.phpを作成
環境設定でpearの設定を入れておく
(多分php.iniとかにinclude_pathを追加で指定しても一緒)



一応マニュアルを日本語のURL指定にしてみる。
まあしたんだけど英語しか出ないのはなぜなんだろ…

phpのパス指定

以下「個別プロジェクト」で設定
phpunit.xmlは指定しなくてもOK
下のテストフォルダの追加を忘れずに



include pathにさっき追加したpearを追加

上記で設定は終わり
hellophp.php

hellophpTest.php
assertEquals("hoge", $hello->hoge());
    }
}
?>
phpunit.xml



    
        
        
    


んで右クリック→すべてのテストを実行すると

やった!グリーンだね!

ちなみにこやつは設定次第では保存時に毎回全テストを実行してくれるので、
知らず知らずのうちにデグレが避けれる?
まあなんかうざい時もあるけど、ちょっとしたCI気分が味わえます。

なお、phpunit.xmlを上記のように設定していると
テスト完了後に指定したパス(ここでは/tmp/hello_report)以下にコードカバレッジ結果も。
phpunit.xmlは色々と設定ができそうで面白そうです。
Jenkinsなんかと合わせ安いんじゃなかろうか。
Jenkins使ったこと無いんで想像で書いてますが。そして使ってみたいけど…
上記を抜けなくやったのに、テストが実行されない場合は
一旦eclipse-phpを再起動するとなぜか動く場合も…

その前にコマンドラインでPHPUnitが使用可能かは確認してもいいかも。

まあこんだけやったけど、俺がPHPを書くのって多分今だけな気がする…
てかなんでPHP書く事になったんだっけ…

2011年11月6日日曜日

AndroidMock環境構築メモ 〜java.lang.RuntimeException: Could not find mockに嵌っている人へ〜

最近ようやくテストを書くようになりました、こんにちは。
以下はAndroidMockを使用する上でのメモ。

Android Test部による翻訳ページやtestterTestのソース、
そもそもAndroidMockのページのAndroidMockinEclipse.pdfを見てもうまく行かなかった俺向けmemo。

誤解を恐れずに言うとそもそものpdfが間違っているというか不親切。たぶん、きっと、もしかしたら…
ちなみに「interfaceに対してmockを生成するだけ」なら
  • AndroidMockRuntime.jarをプロジェクトに追加するだけ
でOK


まず陥ったこと
classのモックを生成しようとすると
java.lang.RuntimeException: Could not find mock…
が発生

ここではinterfaceでもclassでもMock作るよ〜的なこと書いてあるし、
こっちではMyClassとかいうclassのMock作っているしなんで??

とまあ結局こいつを解消するのに一晩掛かったというか、朝6時になった…/(^o^)\

以下アホみたいにスクショを混ぜて設定方法
動作確認環境は
  • Mac Book Air OSX 10.7
  • Eclipse 3.7
  • X06HT
  • INFOBAR A01
  • XOOM
AndroidMockのバージョンは1.1.1


まずMockを生成したいテストプロジェクトのプロパティを選択


AndroidMockRuntime.jarをプロジェクトに追加
Generator.jarではない。

後々プロジェクトを他人と共有したりするのなら、
プロジェクト以下の適当なディレクトリ(libとかlibsとか)に
コピって参照する方がいいかも。

繰り返すけど、Mockを生成する対象がInterfaceだけなら、
ここから下は設定してもしなくても一緒。


Java Compiler を選択してJDK1.6が選択されていることを確認

その下のAnnotation Processingを選択し、下図のようにチェックを入れる。
Enale processing in editorにはチェックを入れない



Annotation Processing の Processor optionsを下記のように修正

確かにpdfを見ると思わず
  • bin_dirにはテストプロジェクトのbinディレクトリへのフルパス
  • logfileにはファイル名のみ
とやりたくなるが、そうすると嵌る。

ここでは、
  • bin_dirにはテストプロジェクト/bin/classesへのフルパス
  • logfileにはテストプロジェクト/ AnnotationProcessor.logへのフルパス   
を指定したと仮定
俺が嵌ったところなので大きく書きます。


2011-11-08 追記
logfileを単にファイル名だけ記載すると
…/Eclipse.app/Contents/MacOS/ 以下に出来てました。
ってことは同ディレクトリ以下にワークスペース作れば(まあ作らないけど)
bin_dirも相対パスで書けるんじゃね?とか思います。
本当はもっと環境に依存しない書き方があればいいんですけど
ぱっとは思いつかね。



次にFactoryPathを設定
ここはpdfと一緒
AndroidMockGenerator.jarのパスを追加し忘れないように。

あとANDROID_RUNTIME の値はとりあえず手元の最新のandroid.jarを指定すればいいと思う。
俺の場合はr14だったのでICS用ですが、2.2~3.1端末で動きました。
→多分下方互換があるからなんだと思うけど。

また「自分で作成したクラスのMockが必須」であるのならば、pdfで言うAPP_UNDER_TESTを作らないとダメ。(名前はなんでもいい)
なので設定値は
  • テストプロジェクト/bin/classes
とかになるはず。
このAPP_UNDER_TESTに相当するパスを間違えると、たしかAnnotation.logに
「classが見つかんねーよ!」とログが出るはず。

その他外部ライブラリのモックを作るのなら、ここでそのライブラリへのパスを指定する。



と、ここまで設定したら、とりあえずお試しということで以下の様なソースを
適当に書いてみる。(テストとしては全く役に立たないけどw)
/**UsesMocksを忘れないように*/
    @UsesMocks(HogeUtil.class)
    public void testMockTest() {
        HogeUtil mockUtil = AndroidMock.createMock(HogeUtil.class);
    }

HogeUtil.classは元プロジェクトにあるなんかのクラスと仮定してください。
@UsesMocksが無くてもコンパイルは通りますが、下記が生成されません。

上記でビルドすると
bin_dirで指定したディレクトリ以下に「genmocks」ディレクトリが出来ており、
  • HogeUtilDelegateInterface.class
  • HogeUtilDelegateSubclass.class
が生成されているのが確認できるはず。
もし出来ていなければ、設定がどっか間違っていると思われる。
Annotation.logになにかヒントが出ているかもしれないので、見るといいかも?

次にとりあえずJUnitを実行させて、緑になるのを確認したほうがいいと思う。
仮に
java.lang.RuntimeException: Could not find mock…
が発生するようなら、やっぱり設定が間違っている。


ちなみにAnnotationで@UsesMocksを指定しているが、Interfaceは無くても問題なく動く。

createMockのソース追いかければわかるけど、interfaceの場合はすぐEasyMockへ
クラス名渡してその戻り値を使っている。
一方でクラスの場合は、上記の生成したクラスファイルを探しに行っていることがわかる。

なのでinterfaceの場合はAnnotationを書かず、Generatorが動作せずに
classファイルを生成しなかったとしても何も問題ない。
どっちにしてもinterfaceの場合DelegateInterface/SubClassどっちも作成されないけど。

結果最初に書いた、「InterfaceのMockを作るだけならRuntime.jarを追加するだけでOK」につながる。



なぜAndroidMockGenerator.jarでなくて、Rutime.jarをプロジェクトに追加したか?

実はどっちも試しました。
一晩あれこれ嵌ればそりゃあ色々と試しますw
結果どっちも同じように動きました。

ここからは単なる仮定なんですが、ファイルサイズからすると
Runtime.jarのほうが小さい。
でまあ名前とFactory Path の設定から
  • Generator.jarはDelegateInterface.class/DelegateSubclass.classを生成するための実行ファイル
  • Runtime.jarはAndroidMockをAndroid上で動かすために必要な最低限のクラスファイルの塊
なんだと思います。
当然処理が被るから、Generator.jarにはRuntime.jarも包含していると。

まあ細かく見てないから知らないけど多分そんな感じ。


以下NGな場合
bin_dirにテストプロジェクト/binを指定すると確かにgenmocksディレクトリが
bin以下に生成される。

ただし、この生成されたclassがテストプロジェクトによって生成されたapkに
含まれることがないようだ。
この状態だとAnnotationProcessor.logを見ても、きちんと生成されているので
実際に動作させて「createMock」を呼んだ所で
java.lang.RuntimeException: Could not find mock…
が発生する。

InterfaceのMock作成の場合はそもそもMockGeneratorが
事前生成しない(する必要がない)ので発生しない。

ただし、bin/classesを吐き出し先とするとEclipse上からは
フィルタがかかっているのようなので見えない。
→多分解除できると思うけどFilterにそれっぽいのが見つからない…

これが嫌ならテストプロジェクト/hoge ディレクトリとかを吐き出し先として、
そのhogeディレクトリをリンクさせてもOK
ただしクリーンをかけてもhogeディレクトリが対象にならないので、
自前でgenmocksディレクトリを削除する必要がある。

当然bin/genmocksをコンパイル対象にすればいいじゃんと思ったが、
実際に行うとコンソールにこっそりと下記が出力され、やっぱり
java.lang.RuntimeException: Could not find mock…
が発生する
trouble processing:
[2011-11-06 14:25:31 - HelloMockTest] Dx class name (genmocks/jp/omokageru/dnk/hellomock/HogeUtilDelegateInterface) does not match path (jp/omokageru/dnk/hellomock/HogeUtilDelegateInterface.class)
...while parsing jp/omokageru/dnk/hellomock/HogeUtilDelegateInterface.class
...while processing jp/omokageru/dnk/hellomock/HogeUtilDelegateInterface.class

結局genmocksディレクトリを直接指定してはダメで、
genmocksディレクトリの親ディレクトリを指定するのだが、
binディレクトリはすでに直下のclassesディレクトリをパスとしているので
binは指定できない。



以下疑問
残った android_framework_mocks.jar っていつ使うんだろ…
想像するに名前とサイズからAndroid特有のクラスのモックを作る際に必要なのかな?
いやでも、android.jarを指定させているからそこから参照して勝手に作りそうな気もするけど…

まあきっとなんかで詰まったらFactoryPathにでも指定すれば解決する日が来るのだろうw

もしなんか間違っていたりしたらご指摘ください。

2011年10月23日日曜日

【解決】Eclipseの比較エディタがおかしい原因の調査

2012/02/22 追記
コメントで投稿してくださった方の言うようにやってみたところ、直りました。
ありがとうございました!

Preferences>Aptana>Themes でテーマの設定をいじればOKなようです。





な、なんでだ…どうしてこうなった状態!のEclipseのDiffエディタ。
何比較してんのかさっぱりです。
設定いじっても変わらないという素晴らしい状態w
いつまでも放置していたら作業効率に関わるので調査しました。

当然人のwinもmacも見たけど普通の表示なの。(そらそうだ)
こっちはこっちで、ワークスペースを新規に作って(設定まっさら)もこうなる。

怪しいのはプラグインか??
と思い、Eclipseを再度ダウンロードしてしてみた。

とりあえず適当なjavaソース書いて比較
問題なし。

以下記憶を頼りに順番にいれてみる
  • ADT(https://dl-ssl.google.com/android/eclipse/)
  • Full Screen Enabler(http://github.bandlem.com/)
  • MercurialEclipse(http://cbes.javaforge.com/update)
  • Aptana (http://www.aptana.com/downloads/start)
    Aptana Out!!!

    ええええ…

    ちょっとちょっと、どういうことですかAptanaさん…
    まあタダで使わせていただいている以上、文句は言いません。
    とりあえずはアンインストール。これで比較エディタが元に…

    戻らない件

    ウソォ━━━Σ(д゚|||ノ)ノ━━━ン!?

    ちょっとどういうことですか…

    ああ、クリーンブートですか?
    え、違う??

    Uninstallじゃ物足りないのか?
    よろしいならばPlugInsフォルダからも「aptana」と書いてあるものを消し去ってやろう!


    戻らない…

    …設定ファイル全部消すか…
    ってことでワークスペース下の「.metadata」削除したら治りました…(;´д`)トホホ…
    とりあえずは必要な設定はexportしておくしかないのか…

    ついプラグイン追加時に何も考えずに追加しちゃいますが、
    追加前にかならずバックアップをとっておくべきでしたね…はぁ…


    これの解決方法だれか教えて下さい。






    PyDevをインストールしてみた

    いい加減pythonを触ろう触ろうと思い続けはや数カ月…
    ようやく行動に移しました。

    まあ先日もたまたまSL4Aに触れる機会がありまして、
    pythonを初めて書いたわけではないです。
    つってもHelloWorldと加速度を取得しただけで、10行ちょっとですが。



    とりあえず環境構築メモ
    • Mac OSX10.7(っていうんだっけ?)
    • eclipse 3.7.1
    で環境構築しました。
    俺が入れた記憶が無いので10.7は標準でpython入っているはずです。
    間違ってたらスミマセンw(Xcodeに付属してたのかもしれない)


    まず必要なもの
    上記のDLサイトに行けばわかりますが、右に「Quick Install」にある通り
    以下の順にどっちかをEclipseのプラグインを入れればOKのようです。
    • Aptana
    • PyDev
    ※ちなみにAptanaを入れると比較エディタがおかしくなりました。(2011/10/23)


    突っ込んだら一応Eclipseをクリーンで再起動

    環境設定を見ます。


    PyDevの項目が増えているので
    • Interpreter Python
    の項目を選択
    環境が全く無いんでNewを選択し、Pythonへのフルパスを入力


    Macだったら多分上記
    一応whichコマンドで確認すればいいと思います。
    次のダイアログはとりあえずデフォルトのまま選択しても全選択でもいいんじゃないのかな?
    複数バージョン突っ込みたかったらここで何個か突っ込めばいいみたい。



    さて、PyDevの部分を見るとPyLintって項目があります。
    何じゃこりゃということでググると、「Pythonの文法をチェックしてくれるもの」らしい。

    こういうの大好きなので早速入れてみる。
    とりあえず下記3つが必要なようだ
    それぞれ解凍して、解凍したディレクトリ直下のsetup.pyを実行。

    whichコマンドでpylintのパスをチェックしてその内容をセット


    でまあ、あとは使えばこうなるっぽいんですが…
    いかにもProblemsタブの中に警告やらが出てきて素晴らしい感じなんですけど、
    私の環境だとConsoleに結果が出力されるだけ…

    適当にググると
    • そもそも動かね
    • いや動くし
    みたいな感じです。俺みたいに動いているけど、期待した動作じゃない!
    というのはどうすればいいんだろ?
    ちなみに「Redirect Pylint output to console」にチェックが入っているから
    結果がコンソール出力かと思ったけどそうではないみたい。
    チェックを外すと、それこそ何か意味あるの??状態w



    あとはここの動画を見て、使い方を学ぶ!(写経する)
    http://pydev.org/video_pydev_20.html

    まあ hello world 的なもの完全にすっ飛ばしているけどいいのか、俺ww
    上記は最初にTDDと書いてあるように、TDDっぽく始めてくれますので、
    pyUnitに関してもそこまで困ることなく使えるようになりそうです。

    上記動画のメモ

    とりあえずctrl→commandと読みかえれば大体大丈夫

    1:54ぐらいで矩形選択して編集しているんだけど
    macの場合、option + command + A
    順序としては
    • 矩形選択モードに入る
    • shift押しながら上
    • 「+」入力
    • option + command + Aで矩形選択モード終了
    だった。
    なお日本語入力は無理なので注意w


    …もしかしてeclipseに矩形選択モードがあったのを知らなかったのは俺だけ…?
    うわぁ、俺情弱…


    途中「coverage」を使う場面があったが、そもそもモジュールがなかったのでインストール。
    http://nedbatchelder.com/code/coverage/
    こっちはサイトにあるように easy_install を叩けばいいので楽です。

    名前の通りテスト動作させたときに、どの程度網羅したかがわかるというものっぽい。
    テスト書くには凄く良いツールですね〜

    って思ったんだけど、当然他のでもあるんだろうな…とドキドキしながら調べた。
    案の定EclemmaというJava のCode coverage のためのプラグインがあった/(^o^)\
    まあ日本語で優しく解説してくれていたのはぱっと見た感じ以下でしょうか
    http://www.mitchy-world.jp/java/test/eclemma.htm
    他にも調べればどんどん出てくる…

    またしても情弱であることをひけらかしてしまった


    とまあ結構一時停止しながら楽しく写経してんだけど…この動画には落ちがあります。

    5分チョットの動画なんですが、短いなぁと思ったら…
    案の定終わらずに、続きはwebで!みたいな状態でした('A`)
    ( for more information on PyDev って言われても、そのPyDevのtopから来たんだが…)
    どうするんだ、このrobotとかいうプロジェクトww
    2回歩行命令したら疲れるという仕様からどうなるのか凄く気になるぞ!!

    以下未解決

    この便利そうな開いているEditor一覧を出力方法する方法。
    動画中にいっぱい使っています。
    だれかこのショートカット教えてください、お願いします〜


    2011年12月14日 追記
    command + F6 で出ました

    あとPylintの結果もちゃんとエディタ部分やProblemsのタブにいつの間にか反映していました。

    2011年10月16日日曜日

    sourcetreeに外部diffツールを設定する

    結論から言うと…
    相変わらずHelp見なかったことが原因です/(^o^)\

    どうにもこうにも
    1. ググる
    2. 配布しているサイトを調べる
    という順序で調べてしまいますが…

    helpにおもいっきり書いてあったとは…
    絶対パスを指定しろとはっきり書いてあったよ!


    まあ現状のP4mergeに不満は無いんですが、一点上げるとすると…
    起動するたびにDockに増えること…かな…

    Command+Q で閉じればいいんですが、だいたいWか閉じるボタンで閉じます。
    そうすると…こうなる…


    コラでもなんでもないです。マジでこうなる。


    なのでまずは前回諦めたmeldの場合


    これだけ。

    実際に差分を見てみるとこうなる


    ※文言が中途半端にテンション高いのは仕様です

    meldを使った場合気になった点
    1. X11上で動作するので、そもそもX11が立ち上がっていないと起動が遅い
    2. 一部手動で修正したいときに、日本語入力が効かない
    3. meldのショートカットはctrlキーだ!
    一つ目は初回起動時だけと思えばいいのですが、2つ目はダメだろ。
    クリップボード経由では日本語もイケるけどね。
    3つ目は…ようやくmacの配置に慣れてきたのに混乱するっちゅーねん。
    んー、なにか設定があるのかなぁ…




    てか、vimdiffあるじゃん。これ使えないかなぁ?
    ってことで試した。


    これだとターミナルで立ち上がるのかなぁ?
    と思ったのですが、動かず

    じゃあMacVimにすれば…
    ということで色々やった結果、まずmvimコマンドを入れましたと。

    コンソールからMacVim.appを起動する
    こちらからmvimシェルスクリプトを落としてきて、/usr/bin に配置。
    実行権限を与えて以下のように動かすと…

    # mvim -d a.txt b.txt
    

    こうなる。

    ということでこうしてみた。


    立ち上がらない。
    ああ、引数は右の項目?


    立ち上がるけど差分表示じゃなくて普通にVim…

    そういや使用できる引数はどうもsourcetree指定のものだけっぽいな…
    ふむ…

    ってことでmvim -d を適当にaliasきればいいのか?
    いやでもそれの絶対パスって何だろ??

    んー、とりあえずはあんまりやったこと無いけどシェルスクリプトを書くか

    #!/bin/sh
    /usr/bin/mvim -d $*
    

    こんな適当なのをmvimdiffとして登録
    …まあ細かいことは気にしない。


    これで外部diffを立ちあげると…
    差分表示なんだけど…なんだけど…LOCALのファイルしかちゃんと読めてないよ!!

    あとは直接 ~/.hgrc を弄るとか…?

    ってそこまでやったら、sourcetree使うの諦めれば?
    って言われそうだな…うーん。

    まあまた時間のあるときに色々とやってみよう〜
    (会社のvim使いの人に聞いてみようとも言う)


    2011年10月12日水曜日

    とりあえず.DS_Storeファイルを消した

    新しいおもちゃは楽しいですね。
    その新しいおもちゃでゲンナリしながら楽しく仕事してます、こんばんは。

    mac にてeclipseが空のパッケージまで表示するようになりました。
    イメージ的にはこんな感じ

    結果から言うと、「.DS_Store」とかいうファイルが
    ディレクトリに存在していたのが原因のようでした。

    なんかディレクトリ内のアイコンの配置とか覚えているものとか
    どこかのサイトに書いてあったきがするけど忘れました。

    質:.DS_Storeってナーニ?
    回:OSが作るファイル。消してもいい。
    http://okwave.jp/qa/q1236593.html

    なんじゃそら…

    なので…消しました。
    そしてもう作成させないようにしてみました。


    とりあえずはターミナルをおもむろに立ち上げます。

    まず、.DS_Storeの作成を抑制する方法
    defaults write com.apple.desktopservices DSDontWriteNetworkStores true
    
    を実行して再起動またはログアウトして再度IN
    http://support.apple.com/kb/HT1629?viewlocale=ja_JP

    続いて.DS_Storeを消す
    (とりあえずは自分のホーム以下に限るということで、ルートからやってもいいとは思いますが責任取りませんw)
    find ~/ -name .DS_Store -exec rm -f {} ¥;
    

    このあと、eclipseの対象プロジェクトをリフレッシュしたところ、
    空のパッケージは表示されなくなりました。

    めでたしめでたし…なのかなぁ…



    と思ったら、あくまでネットワークストレージへ「.DS_Store」ファイルを作らなくなるだけなのね。

    まあリンク先にもそう書いてあるか。

    結局ローカルを含め完全に作成しなくする方法は…無い…のか。

    う〜ん…

    Mac book airが届いた その6

    マージツールとエディタですが、
    P4Merge
    MacVim
    で落ち着くことにしました。

    いや、まだP4Mergeに至ってはほとんど使ってませんが…
    なお、DiffMergeもいっぺん入れて見ましたが、UTF-8等を指定しても全然日本語読めないという状態でしたので、諦めました。

    vimに関しては、ターミナルのエディタとして標準で入っていましたし、
    もうエディタ使うときはターミナルからvi叩こうかしら…
    とか血迷ったこと考えたのでそれならいっそ…ということで。

    ついでにwin環境もvimにして、強制的にvimに慣れるというのもありだとは思いますが、それは又の機会ということで。

    一応備忘としてsourcetreeに外部diffツールを設定する方法
    環境設定→外部Diff で選ぶだけ

    winで言うファイルの関連付け
    対象ファイルを選んでコンテキストメニュー→情報を見る

    このアプリケーションで開くで対象を選んで、すべてを変更…を選択



    で変えられるっぽいです。

    おまけ
    なんでかしらんが、MacVimのアイコンがP4Mergeに…
    なぜなんだぜ?

    とりあえずはこんな感じでしばらく使ってみようと思います。
    使用しての感想はある程度使ってからにします。

    で、すでに空き容量が83GBなんだけど…すごく不安…
    昨日は90GBあった気がしたんだけど…増えた7GBは何なんだ??

    2011年10月9日日曜日

    Mac book airが届いた その5

    車の後部座席からこんばんは。
    書いてたら酔いそうになったw

    Androidのビルドはとりあえずは然程問題なくできました。
    が、Eclipseの設定で気に入らいない部分が多数…
    特に解消して満足したのは下記の設定です。

    フルスクリーンモード
    http://d.hatena.ne.jp/ks0608/20110729/1311924247
    Eclipseはフルスクリーンモードで動作しないのを、動作するようにしてくれる
    プラグインが存在していました。素晴らしい。
    http://github.bandlem.com/
    macを使ってこのフルスクリーンモードにドハマリしてます。
    この辺は正直素晴らしいと思う。
    ついでに言うとキーパッドの操作感も個人的には好みかも?
    →指でスマートフォンやtabletみたいな操作感が良い感じ


    補完入力等の調整
    ctrl + スペースとか便利なショートカットが幾つか使えなかったので
    下記を参考に設定を変更しました。
    http://blog.livedoor.jp/javadox/archives/324810.html

    あと文字コード。
    最初コピーしてきたプロジェクトの中身の文字コードと
    設定が異なっていたとかでビルドできませんでした…
    チョット覚えていませんが、ちゃんと合わせたらビルドできたのでとりあえずはよし。


    とりあえずはこれでそこそこwinと遜色ない環境となった気がします。
    多分…
    環境をexportしておけばよかった…けどあっちは3.6のeclipse pleiadesのAll in one パッケージ。
    こっちは3.7純正。
    合うのだろうか…
    →formatterだけ持ってきていたのは準備が良かったのかなんなのかw
    あとは、マージツールとエディタと…
    コマンドラインからvi叩いたらvimが起動するのに
    通常のエディタはまた違うってのもねぇ…

    明日中になんとかいいのが見つかる or 良い操作を覚えられればいいなぁ…


    2011年10月8日土曜日

    Mac book airが届いた その4

    すでに眠気で分けがわからない状況ですが、
    とりあえずはマージツールだけでもどうにかしたい今日この頃です。

    でとりあえずはsourcetreeが認識できるものを適当に検索

    FileMergeが使えればねぇ…
    なんというか起動すらしないってのが意味わかんない…

    リポジトリのクローンとかがさくっと行くだけに余計に悔しい!!

    とまあ色々とやっているうちに意図的に競合させていたファイルを解消させてしまいました/(^o^)\

    …いいや後回しにしよう。
    とりあえずはeclipseでAndroidがビルドできるようにしよう。
    いや良くはないんだけど、3連休中に直したい部分があるし…
    ということで、

    eclipseをDL
    AndroidSDKをDL
    SDKのパスを通したり…

    ってやってて思ったんですけど、eclipseのpreferenceって
    window → preferenceじゃなかったでしたっけ??
    3.7から変わったんかなぁ…


    ここで環境設定という項目から行けました。

    windowに項目がなくって焦りましたw

    その他debug.keystoreとFormatterをwin環境と揃えて、
    あとは実際にビルドしてみるだけ!!

    Mac Book Airが届いた その3

    とりあえずはeclipseとほかチョットさえインストールできればいいんですけどね、
    最低限ならw

    これがXcodeまで行った流れとしては…

    ・バージョン管理ソフト欲しいよね〜
    ・sourcetreeというのがただになったらしい
    ・macのマージツールがいまいちらしい
    ・Linuxのが使えるらしい
    ・meld入れたい
    ・Fink要る
    ・FinkインストールにJDKが要る ← これは勝手に入れてくれた
    ・FinkインストールにCコンパイラが要る
    ・CコンパイラのためにXcodeが…

    という流れでした。

    まあ結果からいうとmeldさんをsourcetreeに認識させる方法が
    わかんなくてショボーンでしたがw


    Xcodeのインストールに関して

    ・AppStoreから検索
    ・頑張ってインストーラー落とす
    ・インストールする

    ええ、スゲー時間かかった、DLにw

    ちなみにAppStoreを生まれてはじめて使った。
    無料のものを落とすのにクレジットカード登録というのが怖い…

    この間にいつでも環境変数通せるように、「.bash_profile」を
    作成しておきました。
    macの環境変数がまさかこれで設定するとは思わなかったです。

    てか、手動で作成するとは思わなかった…

    以下ターミナルでの作業

    Finkのインストール
    このあたりを参考
    ・結構色々と聞かれるけど、とりあえずはdefaultでOK

    Meldのインストール
    ・fink install meld と叩く
    ・なんか色々と時間かかる

    ・途中でDL失敗して選択させられたりというのを何度か
    ・てかGiveUpって…
    ・落とし終わったらビルドがスタート(これがまた長い…)
    ・多分初回だから色々と構成しているんだろうなぁ…と勝手に脳内補完

    とまあすごい時間をかけた結果meldってターミナルから叩くと
    meldが起動します。


    やった!頑張った!!

    と思ったんだけどsourcetreeから認識できなくて途方にくれるというオチ…

    うん…困った。


    なお、ヘルプを読まなかったという落ちがあり、ちゃんと呼べました