2014年12月20日土曜日

関数プログラミング実践入門読了

関数プログラミング実践入門を読み終わりました。(1回目)

#1回目はさくっと読んで、もう1度じっくり読む派なので、全て理解しているわけではないです。

結果としては、「良い本」だと思います。
以下、良かった点、悪かった点を書き示します。

良かった点
  • 関数型言語(主にHaskell)を実践で使える様になるための説明になっていた。
    • サンプルコード、図解なども多かった。
  • 「6.2のトップダウンで考える」は参考になる。
    • トップダウンで設計するのは当然だが、他の本にはあまり書かれていない内容だったので、面白いと思う。

悪かった点:
  •     初版だけに誤植が多かった。
    • これはしょうがないと思うので、今後の版で修正されると思われます。注記が多すぎるのも気になった。
  • Haskellと他の言語の比較の際に、他の言語の設計がよくない。
    • 多分述べたいことは、関数型言語にすると、悪い設計ができなくなる(主に副作用)ことを言いたいのだが、そこまでの根拠が薄い感じがした。
  • 7.4以降の依存関係の話は不要ではないかと。
    • ちゃんと説明はできているのだが、穴が多い気がする。バージョン4桁の説明も曖昧だし。


 関数型に触れたこと無い人が読んだ時の感想って全く違うんだろうなぁ。
自分の会社の人間に回して読んでもらおう。
果たして読める人がどれくらいいるのだろうか。。。。。


2014年12月14日日曜日

Eclipse Siriusを使ってみた

2014/10/24 にSirius2.0.0がリリースされたということで使ってみました。

Eclipse Siriusとは



  • EMF、GMFをベースにグラフィカルなモデリングワークベンチを作成可能
  • ダイアグラム、テーブル、ツリーなどが簡単に作成可能
  • Siriusの設定ファイルは動的に解釈されるため、動的に画面を確認することが可能。

使用事例


結構沢山なところで使われています。といっても、殆どがSiriusを作成した、Obeoのツールです。


使ってみた感触

ダイアグラムを作成するのは、Get Start を参照すると作成は可能。
操作感も悪くないので、社内ツール等には使えそう。
しかし、Get Start 以上のことをやろうとするとドキュメントが少ないため、結構苦労する。特に日本語ドキュメントは皆無。

今後同じようなことをする人のためドキュメントを作成していった方がよいのかなと。


簡単なサンプル

とりあえず、試行錯誤で作ってみたデザインとか抜きのFTA図作成ツール。

  • FTA図作成ダイアグラム
  • FTAツリー表示




もうちょっといいものを作れたら公開していこうかな。



2014年10月19日日曜日

Raspberry Pi にmongodbをインストール

mongodbをインストールでちょっと手こずったので備忘録

1. バイナリダウンロード

http://www.mongodb.org/downloads
上記URLからバイナリをダウンロードして、展開。
mongodbを実行してみた。

-bash: ./mongo: バイナリファイルを実行できません

そりゃ、ARMアーキテクチャじゃ動かないよなぁ。
ということで、ARMアーキテクチャ用のバイナリがgithubにあるのでゲットする。

https://github.com/Barryrowe/mongo-arm

>./mongod --nojournal --noprealloc --dbpath /mnt/usbhdd/mongodb

動いた。

2014年9月6日土曜日

Raspberry Piにnode.jsをインストール

色々踏んでいるため、インストールログを残す。

# まずはgit インストール
> sudo apt-get install git-core

# nvmのclone
> git clone git://github.com/creationix/nvm.git ~/.nvm
# nvmの実行を有効にする
> source ~/.nvm/nvm.sh
> nvm help

# バージョン取得
> nvm ls-remote
#インストール
> nvm install 0.11.13

#インストール時に下記エラー

gyp: name 'arm_version' is not defined while evaluating condition 'arm_version==7' in /home/pi/.nvm/src/node-v0.11.13/deps/v8/tools/gyp/v8.gyp while loading dependencies of /home/pi/.nvm/src/node-v0.11.13/node.gyp while trying to load /home/pi/.nvm/src/node-v0.11.13/node.gyp
Error running GYP
/usr/bin/python tools/gyp_node.py -f make
gyp: name 'arm_version' is not defined while evaluating condition 'arm_version==7' in /home/pi/.nvm/src/node-v0.11.13/deps/v8/tools/gyp/v8.gyp
make: *** [out/Makefile] Error 1
nvm: install v0.11.13 failed!

# 手動で修正する方法
#common.gypi に下記設定を追加
> cd .nvm/src/node-v0.11.13/
> vim common.gypi

'arm_version%' : '1',


# しかし、手動編集は嫌いなので、一つバージョンを下げてインストールをしてみる。
> nvm install 0.11.12

# 問題なくインストール完了。

> node -v
> node example.js
Illegal instruction

# Illegal instruction をエラーになってしまう。


# バージョンが新しいとちゃんと対応していないらしい。
# そのため、少し古いバージョンをインストールする。
> nvm install 0.10.24

> node -v
> npm

# 問題なく通った。

> node example.js

2014年9月5日金曜日

Raspberry Piで無線LAN

Raspberry Pi をようやく触り始めた。

用途を色々考えたところ、持ち歩いて何かできるのがいいなぁと思ったので、

無線LANアダプタをつけて設定しようと試みた。


無線LANアダプタ











無線LANの設定方法は下記参照

  • http://kingyo-bachi.blogspot.jp/2013/07/raspberry-pilan.html
  • http://firtel.blogspot.jp/2012/09/raspberry-pilan.html


遅延対策
Wifi接続した場合、非常に遅い。
解消方法は下記参照

  • http://lowreal.net/2014/01/09/1
  • http://qiita.com/Hiroshi-Ito/items/77610be6e49de62a5b48

PowerManagment onからoffに変更すればよいが、そもそも何の機能なのか説明がない。
■調べた結果
パワーマネージメント機能が有効になると、消費電力低減を実現しながら、アクセスポイントとの接続は維持したままデータ通信を可能とするが、通信パフォーマンスが低下する。
以下参考ページ
  • http://manual.atmark-techno.com/armadillo-wlan/armadillo-wlan_software_manual_ja-3.1.0/ch07.html
  • http://www.hitxp.com/articles/software/ubuntu-fix-slow-wireless-internet-connection-speed-upgrading-11-04-natty-narwhal/

2014年2月19日水曜日

FTA資料まとめ

FTAをする際によさげな資料をまとめてみました。


  • トップ事象、一次要因、二次要因が重要になる。
    • システム全体を把握している人が実施した方がよい。
  • 観点として以下が重要
    • 抜け漏れがないか
    • 論理の飛躍がないか
※「FTAで不具合原因を追求する」が非常に分かりやすい。



リンク一覧