面談, LDRサービス提供終了

業務時間の大半を本日は面談に使う。大体自分は月1回一人30分ずつくらい頂いているのだけれども、時間を頂いた分、きちんとフィードバックできているとよいのだけれどもと毎回自問自答しながら面談させていただいてる。

単にルーチン的にこなすのではなくて、よい雑談をしながらその中で課題を見つけたり目標を設定しながら進められる様にと意識してる。

帰り際、一人ふらりと居酒屋さんのカウンターでお酒を飲んでいたら、タイムラインのこんなニュースが。

【重要】Live Dwango Reader/LDR Pocketサービス終了のお知らせ|LDR / LDRポケット 開発日誌

Live Dwango Readerがサービス終了とのことで残念。現LINEから譲渡されるときに一度引っ越しを考えたのだけれども、dwangoに譲渡されて継続されることを契機に結局使い続けていたのだけれども継続されず残念*1

*1:こればっかりは仕方ない….

この週末読んだ本

少し前に話題になった本。読めていなかったので今更ながら読んでみた。 自分は中でも特に「PART.3 ビジネスを加速する投資&チームづくり」の章が興味深かった。 魅力を伝えるための投資、スピードの体感をさせること、人を巻き込むために自分が楽しむ etc… ことといった内容は多少耳が痛いところもありつつも同意するところが多々あった。

「私らしく」働くこと ?自分らしく生きる「仕事のカタチ」のつくり方?

「私らしく」働くこと ?自分らしく生きる「仕事のカタチ」のつくり方?

素敵な働き方をされている方がたくさん紹介されていた。 と同時に、多分ここで紹介されているのと負けないくらい素敵な人がたくさん自分の周りでは働かれているので、そういった人たちと一緒に働けていることを嬉しく思うと同時にもっと働きやすくできる様にしていきたいなと思った。最近ぼんやり自分が思い悩んでいたことがふとした方向から解決された気がして読んでよかった。

FOOD DICTIONARY ラーメン

FOOD DICTIONARY ラーメン

分類が細かくて凄い。 あと、最近マイブームの発酵関連で味噌、醤油の重要性について改めて認識。

公園を散歩

近所の公園へ。 高温注意情報も出ていたので定期的に水分を取りながら移動して公園の中をふらふらしていた。

スポーツカイトを飛ばしている人たちがいて、遥か高い青い空に飛ぶ凧が鮮やかだった。

f:id:hideack:20170723223123j:plain

Grenacheを利用してマイクロサービスを管理&呼び出ししてみる

BITFINEXというビットコイントレードのプラットフォームを提供している会社がGrenacheというマイクロサービスを管理するフレームワークを提供しているので少し触ってみた。

例によってサンプルプログラム、ほぼそのままなのだけど多少咀嚼した(つもり)。

Grenache is a DHT based high-performance microservices framework by Bitfinex. Its decentralised and optimized for performance. Because its simple, it is easy to understand and to set up.

(ref: https://github.com/bitfinexcom/grenache )

github.com

雑にまとめたのが下の図。

特徴としては、サービスを一箇所に登録するのではなく離散ハッシュテーブルで管理されるクラスタに登録できるところで、そこにサービスを登録することでそのサービスのIP等の接続情報が管理されていくところにある。

f:id:hideack:20170701181107p:plain

まずはGRAPEと呼ばれるデーモンを立ち上げてクラスタを構成する。npmで雑にインストール。

$ npm i -g grenache-grape

GRAPEを立ち上げる。3クラスタ構成にしてみる。

$ grape --dp 20001 --aph 30001 --bn '127.0.0.1:20002'
$ grape --dp 20002 --aph 30002 --bn '127.0.0.1:20003'
$ grape --dp 20003 --aph 30003 --bn '127.0.0.1:20001'

dpクラスタ間でのDHTを構成する際に通信するためのポート番号、aphAPIのポート番号になる。 bnは立ち上げ時に参照するGRAPEを指定する。

これでクラスタは構成されたので次は実際にWorker(=サービス)を登録していく。サンプルではフィボナッチ数列の和だったけど、ここでは階乗を求めるサービスにしてみる。

GRAPEクラスタへWorkerを登録したり、登録したWorkerを呼び出すClientを作成するためのライブラリもnpmに登録されているのでこれを利用していく。

GitHub - bitfinexcom/grenache-nodejs-ws: Grenache Node.JS WebSocket implementation

まずはWorkerから。

'use strict'
const { Link, PeerRPCServer }  = require('grenache-nodejs-ws')

function fact (n) {
  if (n == 0) {
    return 1
  }

  let m = fact(n-1);
  return m * n;
}

const link = new Link({
  grape: 'http://127.0.0.1:30001'
})
link.start()

const peer = new PeerRPCServer(link, {})
peer.init()

const service = peer.transport('server')
service.listen(1337)

setInterval(() => {
  link.announce('fact_worker', service.port, {})
}, 1000)

service.on('request', (rid, key, payload, handler) => {
  const result = fact(payload.number)
  handler.reply(null, result)
})

なんとなく見て分かる通り fact_worker という名前でサービスをGRAPEクラスタに登録している。リクエストが来たときに fact というfunction呼び出してその結果をリプライしているという至極シンプルな形。

では、上のWorkerを立ち上げたままの状態で次にこれを実際に呼び出すクライアントを書いてみる。

同じく先のgrenache-nodejs-wsを利用して、

'use strict'
const { Link, PeerRPCClient }  = require('grenache-nodejs-ws')
const link = new Link({
  grape: 'http://127.0.0.1:30001',
  requestTimeout: 10000
})
link.start()

const peer = new PeerRPCClient(link, {})
peer.init()

const payload = { number: 10 }
peer.request('fact_worker', payload, { timeout: 100000 }, (err, result) => {
  if (err) throw err
  console.log(`${payload.number}! = ${result}`);
});

上を実行すると

が行われて、

$ node client.js
10! = 3628800

といった結果が得られる。

クライアントはWorkerの接続先を直接知ること無く、GRAPEクラスタに登録された階乗の結果を得るサービスの接続先情報をクラスタから得た上でWorkerに接続を行い処理結果を得ることができた。

確かにこの仕組があるとシンプルにクラスタを形成することもでき、更にそこに対してマイクロサービスを登録していくことが実現できそう。BITFINEXではこれを実際にサービスに投入しているとのことなので面白い仕掛けだなと思った。

参照

シュウマイの作り方と蒸し方と食べ方と

シュウマイが妙に食べたくなったなという瞬間があったので突発的に作ってみたところ、意外とスムーズに作れたのでお薦めです。餃子より簡単に作れる気も。

ちなみに以下の様なレシピで作ってみました

レシピ

  • シュウマイの皮 1袋
  • 豚肉 300g
  • 玉ねぎ ½
  • (あればそれっぽくなる) グリーンピース
  • 味付け
    • ごま油 小さじ1
    • オイスターソース 小さじ1
    • 酒 小さじ1
    • 塩・こしょう 少々
  • 玉ねぎコーティング用
    • 片栗粉 大さじ 1〜2
  • 蒸すときの敷物
    • 白菜とかキャベツの葉物適宜

作り方

  1. 玉ねぎをみじん切りにしてボールに入れ片栗粉をまぶす (水が出てくるのを防ぐため)
  2. 別のボールに豚肉と味付け用の調味料を入れてよく混ぜる、落ち着いたら更に 1. の片栗粉をまぶした玉ねぎを混ぜます
  3. シュウマイの皮に包む。包み方は左手でOKマークを作り、輪になった部分にシュウマイの皮を置いた上で、真ん中にタネをスプーンで置き、親指と人差指で作った輪の中に押し込み左手の薬指と小指で支えつつOKマークの輪を軽く締めるとシュウマイっぽくなります*1
  4. 包んだシュウマイを片栗粉を敷いたバットに並べていきます。包んだシュウマイの上にグリーンピースを置くと一層「おっ、これはシュウマイだな!」という感じのシュウマイになります

蒸し方

  • せいろの鍋から蒸気が出てきて「蒸すぞ!」感が出てきたらシュウマイを並べて時間にして15分蒸します。冬に使う土鍋に蒸し鍋ができる様にせいろっぽいものがあったのでそれを使ったら楽にできました。
    • そのままシュウマイを並べると蒸したときにくっついてしまうので、せいろの部分に白菜とかキャベツを引くとよいのですが自分が作ったときは無かったので大根の薄切りを並べてその上にシュウマイを並べました
    • 大根が蒸される&シュウマイからの肉汁が染みて意外と美味しいのでは!? となったのでお薦めです

食べ方

キンキンに冷えたビールと酢醤油、辛子を添えて熱々のところをハフハフいいながら食べます

ちなみに作ったシュウマイはこちら。グリーンピースが無いですが、まぁ、それなりにシュウマイっぽい。楽しく作れて美味しく食べれたらそれでいいんです。

f:id:hideack:20170702103415j:plain

*1:あぁ、意外とシュウマイっぽくなるだなと思いました

2017年6月に読んだ本を振り返る

あれこれ含めて8作品。

6月に読んだ本はどれもお薦めしたいと思える本ばかりだった。

特に 発酵文化人類学 微生物から見た社会のカタチ はお薦め。

hideack.hatenablog.com


hideackの本棚 - 2017年06月 (8作品)
奇跡の澤井珈琲
奇跡の澤井珈琲
澤井理憲
読了日:06月17日

powered by Booklog

金曜日の夕と夜の間

金曜日の夕と夜の間。

なんかいろいろ吹っ切れたので来週も頑張る。

f:id:hideack:20170701101414j:plain