Hatena::ブログ(Diary)

mumoshu.log

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-09-10

gitで不要なaddを取り消す方法 15:40

gitで不要なaddを取り消す方法 - mumoshu.log

tyrutyru 2011/09/11 07:19 > git rm --cached <ファイル名>
> git rm -r --cached <フォルダ名>
git reset <ファイル名>
git reset <フォルダ名>
でもできますよ。

> 適当にgit add .とやっているとログやらdb/development.sqlite3やらがtreeに入ってしまって困る。
いらないものは.gitignoreに記載したほうがいいかと。

mumoshumumoshu 2011/09/26 15:13 この記事、2年前に書いたものを間違って再投稿してしまったものなので、前の記事にマージしつつ、ご指摘いただいた内容を反映させていただきました。
ありがとうございますm( _ _)m

> .gitignore
ですよねっ。

2011-05-29

IntelliJ IDEAのこんなショートカット知ってますか? 00:27

いつもお世話になってる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)などのツールウインドウを選択して開いたりできます。

f:id:mumoshu:20110530003308p:image

Ctrl + Shift + A Find Action

というときは、Find Actionを使いましょう。

キーワードでアクションを検索してENTERで実行できます。

f:id:mumoshu:20110530003309p:image

僕は半年くらいIntelliJ IDEAを使ってきて知りませんでした。

皆さんはいかがでしょうか。

hakuta2hakuta2 2011/06/17 15:13 こんいちは、
webnotiferについて質問あるんですが
ヤフージャパン用のスクリプトは現在でも使用できますでしょうか?
メモ帳にコピペして拡張子をjsにしましたが
「チェックされません」
とエラーが出ます。

2011-03-27

答案:時間帯重複チェック(Scala) 18:50

お題:時間帯重複チェック - No Programming, No LifeScalaで解いてみました。

答案:時間帯重複チェック (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)  簡易版 21:45

お題:時間帯重複チェック - No Programming, No LifeScalaで解いてみた(その2)

お題:時間帯重複チェック(Python) - でこすけの日記を参考に、関数ひとつでまとめてみました。

こんな風にも書けますよ、ってことで・・。

個人的には、多少長くても前回の書き方の方が好きです。

2011-03-20

[][]タイピングゲームのたまご(canvas) 18:28

タイピングゲームのたまご - jsdo.it - Share JavaScript, HTML5 and CSS

こんなものを作ったので、html5canvasを使ってタイピングゲーム的なものを作るのに役立った情報をまとめておきます。

テキストの描画の基本や入力されたキーの取得などはここでは触れないので、こちらを参照してください。

キーボードから入力した文字をcanvasに描画する - mumoshu.log

文字色を変える

context.fillText(text, x, y)でテキストを描画する場合は、context.fillStyleに色を設定する。

色はcssのcolorプロパティと同じ書式して指定する。

灰色にするならこんな感じ。

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);