和菓子 WAGASHI ジャパノロジー・コレクション (角川ソフィア文庫) を読んだ。 和菓子って、いろんな季節感あって良いですよね。料理が季節を活かすように、和菓子にもいろいろな知恵や創作があって面白いです。 日本橋にある和菓子を目の前で見ることができ、食べることができる場所があります。そこは目の前でこのような和菓子作ってくれるので、今度行くときはその季節の和菓子を知って足を運びたいなと思います。More
Author Archives: KazuCocoa
[Erlang][Elixir]erlyberlyでErlang/Elixirのdebugをサポート
Erlang/Elixirのdebugを楽にするツールを知ったのでメモ。 https://github.com/andytill/erlyberly http://blog.plataformatec.com.br/2016/04/how-to-trace-elixir-nodes-with-erlyberly/ 実行のワンライナーは以下。 これが全て終わって、JavaのGUIが表示されたら、例えば以下のようにnodeを指定してアプリを起動します。 起動後、Javaで表示されているtarget nodeに “foo@127.0.0.1” を指定。 すると、メモリ使用量とか、諸々を確認することができる以下のような画面を確認できるようになります。 以下は、この簡単なPhoenixアプリケーションに対して実行した時。 対象 https://github.com/KazuCocoa/web_qa_vote 以下は、http_proxyに対して。 対象 https://github.com/KazuCocoa/http_proxy いずれも、BEAM VMのprocessやatomなどのメモリ使用量が計測できてとても良いですね。atomがGCされないので、これが過度に大きいとメモリ圧迫している、とか簡単にわかりますし。あとはfunctionsの名前空間の形もパッと見ることができますね。 https://github.com/andytill/erlyberly#get-the-process-state にあるように、processの状態を抜くこともできるようです。 ある程度はObserverでも見ることができますが、メモリ使用量をこんな感じでグラフにしてくれるのは解りやすい。Java製。More
[Elixir]Structs, String-keyed Maps, Atom-keyed Maps
Elixirの実装を書いている時、データを保持したりする時にStructs、String-keyed Maps、Atom-keyed Mapsのどれを使えばいいかよく悩んでいました。今日も悩んでいて、何かベストプラクティスないかな、と考えていたところ、ちょうど私の考えと同じものがあったのでメモ。 それぞれは以下な感じで書くことができます。 BEAM VMにおいて、atomはCGされません。そのため、どうてきにatomを生成することは良くない、と知っていました。その上で、何が一番妥当なのかなーと思ってたら、以下ページが見つかりました。 https://engineering.appcues.com/2016/02/02/too-many-dicts.html ルールは以下。 1. Always Use String-Keyed Maps for External Data 2. Convert External Data to Structs ASAP 3. Use Structs in All Other Code 4. Use Structs for Output Data 5. Avoid Using Atom-keyed Maps That Aren’t Structs 6. Use Keyword Lists Only for Function Arguments Structsで定義していたら、 defprot や…More
『チームが機能するとはどういうことか』を読んだ
チームが機能するとはどういうことか ― 「学習力」と「実行力」を高める実践アプローチ を読んだ。 内容自体は、個人的には目新しいものではありませんでした。一方で、学ぶ続けることができる環境を作るなどの必要性やその環境の構築に対して、ある程度まとまった知見を得ることができます。 心理的安全性など、威圧的になることによって発生する課題に対しても言及されていたことは良かったと思います。 また、 人が重視するのは、能力よりも優しさや信頼できるかどうかや正しい行いをするかどうかであることが、研究によって証明されている など、経験的な判断に対して研究という裏付けがあることも教えてくれます。 最後に、よくある人に対する3つの境界を。 物理的な距離 地位 知識 これらに違いがあることを前提に、うまいこと仕組みを作りたいですね。More
Espresso-core2.2.2とRunner/Rules 0.5が公開されていたのでコードを見る
espresso 2.2.2と、Runner/Rules 0.5が公開されていた。Silent releaseぽい。 https://google.github.io/android-testing-support-library/downloads/release-notes/index.html 更新情報の中で気になったところをメモ。sampleとかも書かれていないので、コードを直接追ってみました。コードまで追ってみた結果としては、 withResourceName だけ気にしていれば良いかなという感じ。 New feature Added checks for enabled animations and transitions New ViewMatcher API: withResourceName notable change ActivityTestRule, UiThreadTestRule, IntentsTestRule and ServiceTestRule are out of beta. dive into code withResourceName コードを見た感じだと以下。 withResourceName は resource idではなく、name属性から要素を特定できるっぽい。 android/support/test/espresso/matcher/ViewMatchers.java This file contains hidden or bidirectional Unicode text that may be interpreted or…More
[Alexa]learn skill kit more
Alexaは、単にテキストを話すほかに、意図した感じでテキストを話させることが可能です。 そのために、SSML(Speech Synthesis Markup Language)形式でテキストを書きます。 Speech Synthesis Markup Language (SSML) Reference https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference 例 以下のように type と speech を与えると、Alexaは “Hoge (0.5秒間を開けて..) Hoge” と話します。 また、以下のようにすることで、音楽も流すことができるみたいです。実際、流れました。 2016年4月9日現在、サポートされているタグは以下のようです audio break p phoneme s say-as speak https://github.com/KazuCocoa/alexa-wise-guy また、Alexaは外部に向けてHTTP通信で取得した値を使うこともできるみたいです。 参考に、以下では取得した情報を話していました。 https://github.com/KazuCocoa/alexa-tide-pooler/blob/master/src/index.js#L341 参考 https://github.com/KazuCocoa/alexa-tide-pooler https://github.com/KazuCocoa/alexa-wise-guy ここまで調べて、やりたいことはできそう、までわかった。More
[Elixir]PubSub機構をサクッとつくる
Elixirは receive があらかじめ用意されている。そのため、 send で特定のプロセスに送ったメッセージを受け取って、何らかの処理をするというコードが容易にかける。それを使い、PubSubをするコード。 This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters defmodule PubSubServer do def start(subscriber_callback \\ nil) do spawn…More
[Lambda]Hello World via Alexa
Amazon EchoのSkill Kitが面白い。 Amazon Lambdaを使って簡単なSkill Kitを使ったアプリケーションを作ることが可能なのだが、本当に対話的なやり取りを実現できる。 https://github.com/amzn/alexa-skills-kit-js/tree/master/samples/helloWorld このサンプルを使うと、 私 > Alexa, ask greeter Alexa > Welcome to the Alexa Skills Kit, you can say hello 私 > Hello Alexa > Hello World と言う感じで応答ができる。この時、私がHelloというまで You can say hello と言いながらある程度待ってくれる。 体験が変わる。 さぁ、こういう体験が出てきた時、 Quality はどうなるだろう。 ちなみに、まだ日本語は発してくれない。 https://github.com/KazuCocoa/alexa-helloworldMore
『アプリ法務ハンドブック』を読んだ
少し前なのですが、ここに残し忘れていたので。 【BUSINESS LAW JOURNAL BOOKS】アプリ法務ハンドブックを読みました。OSSの話だったり、肖像権とか、そういうアプリ開発からサービス開発にかかる法律的な話が網羅されていました。 メモメモ。More
[Elixir]Keywordの中身はTupleのList
Elixirに置いて、Keyword listはTupleで表現される。 なので、 のようなパイプを書いた時、取得されるのは [“hello”] になる。 ここで、Elixir v1.2.3 の Keyword.valuesの中身を覗いてみると、以下のようにmapを適用した中でTupleからちょうどvalueを取得してListを作って返している。 当初、 しか Keyword 系は使えないと思っていたけれど、Erlangレベルでは なので、Keyword listとみなしてKeyword操作ができるのですね。学びだ。 蛇足だけれど、 Enum.any?/2 と言う、処理の途中で要素が見つかったらtrueを返す用途で使うfunctionも教えてもらった。なるほど。More