2012-02-16 specs2 + mockito
specs2のmockitoを使おうとして、
[error] class file needed by MockitoStubs is missing.
[error] reference value mockito of package org refers to nonexisting symbol.
[error] one error found
というエラーが出た方へ。
"org.mockito" % "mockito-all" % "1.9.0" % "test"
をdependencyに追加していないのではなかろうか。
2011-05-29
■IntelliJ IDEAのこんなショートカット知ってますか?
いつもお世話になってるstackoverflowで見つけた情報をぺたり。
What are the most useful Intellij IDEA keyboard shortcuts? - Stack Overflow
java - Ctrl-tab in IntelliJ IDEA - Stack Overflow
詳しいことはリンク先を見ていただくとして、今回は僕も知らなかったお役立ちショートカットだけに絞って紹介します。
Ctrl + Tab Switcher
Ctrl + TabでSwitcherが開きます。そのままCtrlを離すと直前に開いていたファイルを開くことができ、またCtrlを押したままさらにTabを押すと、今開いているファイルをエディタで開いたり、プロジェクト構造やエディタ、TODO、メンバ一覧(Structure)などのツールウインドウを選択して開いたりできます。
Ctrl + Shift + A Find Action
というときは、Find Actionを使いましょう。
キーワードでアクションを検索してENTERで実行できます。
僕は半年くらいIntelliJ IDEAを使ってきて知りませんでした。
皆さんはいかがでしょうか。
2011-03-27
■答案:時間帯重複チェック(Scala)
お題:時間帯重複チェック - No Programming, No LifeをScalaで解いてみました。
答案:時間帯重複チェック (Scala による Option モナド活用編) - akihiro4chawonの日記との一番の違いは、classをバンバン定義してimplicit defも使いまくって、難しくしてみたところでしょうかw
あと、for使ってません。foreach, map, flatMap, filter, filterNot only...。
慣れると意外と読みやすい?
長く見えますが半分はテストコードとコメントですし、
時間・分のバリデーションを行ってる部分
val HourRange = 0 to 23 val MinuteRange = 0 to 59 val SpecialCase = (24, 0) def isValid = (HourRange contains hour) && (MinuteRange contains minute) || (hour, minute) == SpecialCase
時間帯を分単位のRangeに変換してる部分
start.inMinutes to (end.inMinutes - 1)
時間帯aと時間帯bが重複しているかチェック
a duplicateWith b
とか結構直感的だと思います。
また、timeDuplicationCheckそのものの定義は10ラインしかないです。
どんなもんでしょう。
■答案:時間帯重複チェック(Scala) 簡易版
お題:時間帯重複チェック - No Programming, No LifeをScalaで解いてみた(その2)
お題:時間帯重複チェック(Python) - でこすけの日記を参考に、関数ひとつでまとめてみました。
こんな風にも書けますよ、ってことで・・。
個人的には、多少長くても前回の書き方の方が好きです。
2011-03-20
■[javascript][html5]タイピングゲームのたまご(canvas)
タイピングゲームのたまご - jsdo.it - Share JavaScript, HTML5 and CSS
こんなものを作ったので、html5のcanvasを使ってタイピングゲーム的なものを作るのに役立った情報をまとめておきます。
テキストの描画の基本や入力されたキーの取得などはここでは触れないので、こちらを参照してください。
キーボードから入力した文字をcanvasに描画する - mumoshu.log
文字色を変える
context.fillText(text, x, y)でテキストを描画する場合は、context.fillStyleに色を設定する。
灰色にするならこんな感じ。
guideWriter.context.fillStyle = "#aaaaaa";
キャンバスをクリアする
透明で塗りつぶす。表現がアレですが。ペイントソフトの消しゴムみたいなものです。
白で塗りつぶすのではなく、何も色がぬられていない状態に戻すということ。
canvasの描画領域全体を塗りつぶす場合は以下のようなコードにします。
描画領域には、style指定するようなmarginやpadding部分は含まれません。
jQueryを使う場合は、jQuery(canvas).width(), height()したときのサイズが描画領域です。
var worldContext = worldCanvas.getContext('2d'); worldContext.clearRect(0, 0, worldCanvas.width, worldCanvas.height);
context.drawImage(canvas, x, y)でできます。
引数は描画するcontextでは無く、canvasであることに注意。
2dcontextではない、別種のcontextで描画された内容もdrawImageできるようにこうなってるのかな。
worldContext.drawImage(guideCanvas, 0, 0);



> git rm -r --cached <フォルダ名>
git reset <ファイル名>
git reset <フォルダ名>
でもできますよ。
> 適当にgit add .とやっているとログやらdb/development.sqlite3やらがtreeに入ってしまって困る。
いらないものは.gitignoreに記載したほうがいいかと。
ありがとうございますm( _ _)m
> .gitignore
ですよねっ。