cocomoff("blog")

@cocomoffの奇妙な日常.

[Emacs]簡単なスペルチェッカーぐらい走らせておくのが礼儀か

論文を添削してもらうことは非常に多いが,最近はほぼすべての文書が英語化されたことにより,スペルチェックは欠かせない.本当はWord的なものにかけて,かつ自分の目で目grepするのが礼儀かと思うが,さすがにそんな気力はない.もちろん.texファイルから命令を全部消して,英語のテキストだけ取り出すプログラムを書けばいいだけなのだが,面倒げふんげふん,少し手間なので,ispellさんに頑張ってもらおう.Macだと設定もそれなりに楽だが,言語として英語(en_US)を指定することだけ忘れずに.

$ brew install aspell --lang=en

ホームディレクトリにaspellの設定ファイル.aspell.confが必要である.

lang en_US

あとはEmacsでispell-bufferをしてチェックする.常にスペルチェックしたいならispell-buffer-modeだっけ,ispell-minor-modeだっけ,それを使えばいい.aspellの辞書自体はapt-getでも手に入るね(Debian/Ubuntu系).他は知りません.ごめんなさい.

[Scala]設定ファイル作りたい?Javaで作ればいいんだよ

テキストファイルを用意する

key1 = value1
key2 = value2

全部文字列ベース.Javajava.util.Propertiesクラスを使って読もう.

val prop = new java.util.Properties()
val fis = new FileInputStream("conf.properties")
prop.load(fis)

val (v1, v2) = (prop.get("key1"), prop.get("key2"))

[Scala]mapとflatMapの違いを写経する

Cop本のmapとflatMapの違いを写経していた.たぶん自分のプログラムを見ていると,flatMapの方が良さそうな場面が多々存在するのだが,イマイチ使えないのである.

scala> val lr = List.range(1, 5)
scala> lr.flatMap{ i => List.range(1,i) map (j => (i, j)) }

というコードはforで書くと,だいたい

scala> for(i <- List.range(1, 5); j <- List.range(1, i)) yield (i, j)

になる.flatMapはListを返す関数を渡して上げる必要があるのだな….ただ僕が使いたいデータ構造はList("a", List("a", "b"), "b")みたいな感じなんだけどな…(これは正しくない,が.

[memo]Imagemagickでグレイスケール画像を作る

作った.

$ conter -colorspace GRAY org.png dst.eps

[memo]Imagemagickでグレイスケール画像を作る

作った.

$ conter -colorspace GRAY org.png dst.eps

[scala]ensime-modeをもう少しちゃんと使えるようになりたい

Ensime-modeはEmacsでのscala開発で補間などをしてくれるいい子らしいのだけど,なかなかsbtが動かなかった.近代のsimple-build-toolなどではbuild.sbtとかbuild.propertiesが必須になってるらしいので,これの空ファイルを作っておかないとダメらしい.

[scala]外部コマンドを実行する.

そういえばmacにlvを入れたらいいよという話だったのでbrew install lvして入れた.プロキシのお陰で途中止まったけど….

Scalaで外部コマンドを実行するためにはscala.sys.processパッケージを利用するといいらしい.ふむ.

scala > import scala.sys.process._
scala > val process = Process("ls").run
(結果が帰ってくる)