Yoichi's diary
2015-03-03
_ [windows] Visual Studio 2008 でファイルを開く
かつてはSonicFileFinder入れていたのだけど、 Ctrl+d ">of filename" でいけることを知った。
2015-03-07
_ 名古屋へ
- 寝坊はしなかったが特急券売り切れという事態により、立ち席で名古屋へ。
- お世話になった先生にお礼をする会でした。
- 研究室の昔話やらいろいろ聞け、楽しい時を過ごせました。
- ういろう買って帰った。
2015-03-11
_ [Haskell] すごいHaskell読書会 in 大阪 2週目 #15
「第13章 モナドがいっぱい」について発表をしました。Maybe, Listでの具体的な使い方を見ていくという流れでした。次の章で便利な使い方の話が出てくるようなので楽しみです。
2015-03-16
_ [python][emacs] flake8 with flymake
Qiita:Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う -によるとflake8使えということらしいので、
% pip3 install hacking Downloading/unpacking hacking ... Successfully installed hacking pep8 flake8 mccabe pbr Cleaning up...
とインストールして、~/.emacs.d/init.el に
(defun flymake-python-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "flake8" (list local-file)))) (when (load "flymake" t) (add-to-list 'flymake-allowed-file-name-masks '("\\.py\\'" flymake-python-init))) (add-hook 'python-mode-hook '(lambda () (flymake-mode)))
と書いてflymakeで使うようにしといた。
2015-03-17
_ [python] Re: flake8
編集中にflymakeが走ってエラーダイアログが出て気づいたが、書きかけで
import
とだけ書いた行があるとエラーになるな。
Process Process-1: Traceback (most recent call last): File "/usr/local/Cellar/python3/3.3.5/Frameworks/Python.framework/Versions/3.3/lib/python3.3/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/local/Cellar/python3/3.3.5/Frameworks/Python.framework/Versions/3.3/lib/python3.3/multiprocessing/process.py", line 95, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.3/site-packages/flake8/reporter.py", line 73, in process_main self._process_main() File "/usr/local/lib/python3.3/site-packages/flake8/reporter.py", line 49, in _process_main self.input_file(filename) File "/usr/local/lib/python3.3/site-packages/flake8/engine.py", line 99, in input_file
時間あるときに詳細みてみよう。 使っているバージョンは
% flake8 --version 2.2.4 (pep8: 1.5.7, pyflakes: 0.8.1, hacking.core: 0.0.1, ProxyChecker: 0.0.1, mccabe: 0.2.1) CPython 3.3.5 on Darwin
2015-03-19
_ [scala] Functional Programming in Scala 社内読書会#2
今回の範囲は2.1〜2.4。後の章で使うために必要最低限のScalaの練習。
- import で同じ名前のメソッド (e.g. Hoge.fuga と Fuga.fuga) を重複して取り込むとどうなる?
- 試してみたところ、後勝ち (fuga とすると後から import した方が使われる)のようだった。
- 呼び分けたい場合は qualified name で呼べばいい。
- scalac で生成した class は java command で実行できる?
- エントリポイントは見つけられているが、クラスのロードに失敗する。
- 依存するjarをclasspathに入れてやれば動くらしい。
- 確認してみたところ、 scala コマンドは bash script で、java コマンドを叩いているようでした。
% java MyModule Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq at MyModule.main(MyModule.scala) Caused by: java.lang.ClassNotFoundException: scala.collection.Seq at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more
2015-03-20
_ [DevLove] 事業会社の現場を知ろう~モノタロウ編~
- 本題とは関係ないが、安井さんの話で大学の時にやった集い の話がちらっと出てて懐かしかった。
- 本題のモノタロウの現場の話では、無駄をそぎ落とし、目的に集中してスピード感のある開発をしているという印象を受けた。
- 技術的負債と不定期のイベントで発生した障害の話は、自分の現場で今起きていることと類似点があったので考えながら聞いた。
- 受付に何で電池が並んでるんだろう?と思っていたが、おみやげだったのだというのを帰ってから気づいた。
2015-03-23
_ [python] pep8
ひと通り読んで、CheckIOの自分の解答を見なおして、ルールに合うようにいくつか手元で直してみた。 まだ完全に頭に入ったわけではないが、今後は注意して書くようにしていこう。
- ちょっと前にbryukhに教えてもらった、「lを変数名に使うな」というのも入ってた。
- public でないメソッドは1つのunderscoreで始める。(2つではない)
- 一番低い優先度の演算子の前後に一つずつスペースを入れる。(x*x + y*y)
- 英語について、 The Elements of Style, William Strunk Jr. and E. B. White に従えとのことなのでアマゾンでぽちっといた。
2015-03-26
_ [scala] Functional Programming in Scala 社内読書会#3
今回の範囲は2.5〜3.2。 追加の練習問題を作っていって手を動かしてもらった (資料 の末尾にある) 。 次も何か考えていこう。
- match の後の case で型違いはコンパイルエラーになる。match の手前を無理やり Any にしてやると?
→ そうすればエラーにならず、同じ型の case にマッチングしてくれるみたい。
scala> :paste // Entering paste mode (ctrl-D to finish) (List(1,2) : Any) match { case 1 => 1 case 2 => 2 case List() => 3 case List(1,2) => 4 } // Exiting paste mode, now interpreting. res0: Int = 4
- def le(x: Int, y: Int) = x <= yのような関数を多相関数にできる?
→ <: で使いたいメソッドを持つ upper type bound を付けてやればいいみたい (参考: http://www.scala-lang.org/old/node/136)
scala> def le(x: Int, y: Int): Boolean = x <= y le: (x: Int, y: Int)Boolean scala> def le[A](x: A, y: A): Boolean = x <= y <console>:7: error: value <= is not a member of type parameter A def le[A](x: A, y: A): Boolean = x <= y scala> def le[A <: Int](x: A, y: A): Boolean = x <= y le: [A <: Int](x: A, y: A)Boolean
2015-03-28
_ お花見
実家に行っていた息子を送り届けてくれるのに、母・妹・祖母と、父以外の中山家御一行様が押し寄せてきたので、天気もいいし、桜も少し咲いていると期待して近所の公園へ。咲き始めたところという感じでまだまだ花は少なめでしたが、今にも開かんとする膨らんだ蕾たちを青空の下で見れて、少しいい気分になりました。