2015-12 << 2016-01 >> 2016-02

2016-01-31 (日)

腕が筋肉痛.

2016-01-30 (土)

自転車

とりあえず今日は東京から出ようと思って,また荒川のサイクリングロード走ったけど,外環道あたりで暗くなってきたので特になにもせず帰る.地図見たら一応埼玉っぽかったので満足した.往復で62kmくらい走った.天気悪いけど風なかったので走りやすかった.

2016-01-28 (木)

ここ3日くらい朝4時に起きてしまって,そして8時くらいにまた寝るのだけど,日中眠くて仕方がない.

2016-01-24 (日)

自転車届いた.

DSC_0241.jpg

シートポストあまり奥まで刺さらないので数センチ切ってみてサドル下げて見たのだけど,ハンドルと同じ高さになってしまった.足が短い.

とりあえず荒川沿いを少し走ってみたりした.向かい風つらくて帰ってきてしまったので,往復で40kmちょっとか.

2016-01-19 (火)

* ErlangのPidのCreation

PIDには8ビットのCreationという属性が含まれていて,この値はErlangノードを起動しなおすたびに増える.

表示もされないし,通常は気にしないけどリモートノードのPidを比較するときは見てるらしい.

(node1@kawahira-x250.)63> Pid1 = hd(rpc:call('node2@kawahira-x250.', erlang, processes, [])).
<7353.0.0>
(node1@kawahira-x250.)64> Pid2 = list_to_pid("<7353.0.0>").
<7353.0.0>
(node1@kawahira-x250.)65> Pid1 =:= Pid2.
false

list_to_pidでリモートノードのPidを作るとCreationは0になってるっぽい.

2016-01-17 (日)

自転車買うことにした.

夕方帰ってくる.

Amazonプライムビデオ,倍速再生できないのが不満だったのだけど, $('video').playbackRate = 2.0; するだけでよかった.快適になった.

2016-01-16 (土)

新年会.鍋.

DSC_0237.jpg

2016-01-14 (木)

コミケ打ち上げ飲み会.浜町のいつもの場所.

最近のやつ. LARGE_BIG_EXTを追加したので,巨大なBignumも送受信できるようになった.

* [Erlang] initial_call

Erlangシェルの i(). でプロセス一覧を表示したとき,initial_callのモジュールを見れば何のプロセスか推測できますが,この文字列どこから取ってきているのか知らなかったので調べた.

最初はprocess_infoで取ってるだけかと思ってたのですが, process_info(Pid, initial_call) で取ると,proc_libばかりになってしまう.gen_serverとかもここから起動されるので当たり前なのだけど.

proc_libのソースを見ると,プロセス辞書の$initial_callというのを書き込んでいて,それが怪しい.これは,proc_lib:translate_initial_call/1 で取れます.ただし,プロセス辞書に何もなければ proc_lib:init_p/5 を返すので,適当なプロセス渡すと嘘が返ってくる.最初に,process_infoで調べて,proc_lib のプロセスだったら translate_initial_call を呼べということらしい.

Erlangシェルの i(). の実装もまさしくそうなっていた.Erlangシェルの関数何処で定義されてるのか分からずTwitterに書いてたら教えてもらえた.

c.erl とか i とかgrepで見つけにくい...

2016-01-13 (水)

RubyからErlang呼ぶやつ.

NEW_FUN_EXTを追加.ruby上では生成できないですが,erlangから無名関数受け取って使うことはできるので,erl_evalで関数生成して色々できるようになった.

2016-01-11 (月)

昨日の続き.

https://github.com/binzume/erlprocvis

それっぽく見えるように,ノード間の斥力とかlinkのバネ定数をいじる.上手くやらないとプロセスが集まってる箇所が爆発してしまうので,まともなライブラリ使ったほうが良いな.

procvis02.png

cowboyを使ったwebアプリケーション.遠くにranch_acceptorのかたまりが見える.

プロセス増えるとひどいことになるから,まとめたほうが良いな..

2016-01-10 (日)

* WebGLとErlangで色々

BSP木でCSGやるjsライブラリあったので遊んでいた.https://github.com/evanw/csg.js/

生成されるポリゴンはBSP木から直接作られたものっぽいのでポリゴン数は多めになってる気がする.

昨日のやつの続きでこんなのを作っていた.CSGは関係ない.

procvis01.png

まだノード名とプロセスIDしか表示してないけど,Erlangのプロセスの構造をWebGLでグリグリ回しながら見れる.

すでに似たようなのあるけど,もう少し色々できそう.

メモ:

2016-01-09 (土)

* 分散Erlang

年末にやろうと思ってできてなかったやつをやる.

http://www.erlang.org/doc/apps/erts/erl_dist_protocol.html

いいかげん,分散Erlangのプロトコルを理解しようと思って,ドキュメント読みつつコードを書く日.

  • epmdからノードのポートを取得. ハンドシェイク不要
  • ノードとのハンドシェイク. cookieが必要
  • メッセージを送受信する. ここからLengthが4バイトになる

Erlangのext_binary()周りの実装をしてしまえば,プロトコルは単純なのであとは簡単ですね.

とりあえず,$gen_callを使ってリモートノードの関数を呼ぶところまでたどり着いた.

2016-01-05 (火)

* みずほダイレクトのアカウント凍結された

不審なアクセスがあるからネットバングのアカウント凍結したという連絡来た.

電話したら,〇月〇日に海外もしくは普段使わないISPやPCから操作したか聞かれたけど,そもそも毎日何回かVPS上のプログラムが自動的に色々やってるはずで,説明が難しい...

そして,着信用の携帯電話は大抵の場合電源が切れてるのだけど,電話が繋がらないから至急連絡をというメールが来て気づけた.

2016-01-04 (月)

仕事.

2016-01-02 (土)

トルク大きめのサーボが欲しいのだけど,ロボット用だとやっぱ近藤科学のやつが種類多くて良いな.

http://kondo-robot.com/product-category/servomotor/krs

ただ,ギア比かなり大きいのが気になる.普通のRCサーボと同じくギアで頑張ってるのだろうけどイナーシャ比大きすぎて細かい制御つらそう.

電気モータ,希土類磁石使われるようになった以降,あまり進化してない気がしてしまうけど,どんな感じなんだろ.そろそろ磁場とか使わないでそろそろクーロン力直接つかいたい感はある.そのうち身の回りでも静電モータとか使われたりするんだろうか.

たいして重要では無いけど,RCサーボのトルクはほとんどの場合Nmではなくて,kgf・cmで書いてあるの計算しにくい.