Yoichi's diary


2015-03-03

_ [windows] Visual Studio 2008 でファイルを開く

かつてはSonicFileFinder入れていたのだけど、 Ctrl+d ">of filename" でいけることを知った。


2015-03-06

_ 送別会

同期入社でとてもお世話になった方が辞めることになったため、 飲んで送り出したいということで急遽送別会が開かれた。


2015-03-07

_ 名古屋へ

  • 寝坊はしなかったが特急券売り切れという事態により、立ち席で名古屋へ。
  • お世話になった先生にお礼をする会でした。
  • 研究室の昔話やらいろいろ聞け、楽しい時を過ごせました。
  • ういろう買って帰った。

2015-03-11

_ [Haskell] すごいHaskell読書会 in 大阪 2週目 #15

「第13章 モナドがいっぱい」について発表をしました。Maybe, Listでの具体的な使い方を見ていくという流れでした。次の章で便利な使い方の話が出てくるようなので楽しみです。

発表資料, 宇佐見さんのレポート


2015-03-12

_ [scala] Functional Programming in Scala 社内読書会

遂に始まった。みんなで理解を深めながら進めていきたいと思っています。


2015-03-14

_ 法事

祖母の一周忌のため御浜町へ。帰りに鬼ヶ城に寄り道してカンヒザクラを見てきました。


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 で実行できる?
% 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

_ お花見

実家に行っていた息子を送り届けてくれるのに、母・妹・祖母と、父以外の中山家御一行様が押し寄せてきたので、天気もいいし、桜も少し咲いていると期待して近所の公園へ。咲き始めたところという感じでまだまだ花は少なめでしたが、今にも開かんとする膨らんだ蕾たちを青空の下で見れて、少しいい気分になりました。


2015-03-29

_ [scala] ENSIME 触ってみた。

fpinscala の解答を clone してきたところを対象にして、軽く動きをみるところまでやった。