actor内で特定のExceptionが投げられることをテストしたいときはEventFilterを使おう - akka

akka 2.3.13です KillされたことをテストしたくなったのでググったらEventFilterなるものが出てきました。 Testing Actor Systems — Akka Documentation なんとログを見て特定の例外ログが出ているかどうかを見るもののようです。ゴリ押してますね。 使い方…

歌舞伎座.tech#9でPonyについて発表しました

歌舞伎座.tech#9「異種プログラミング言語格闘勉強会」 - connpass で発表しました。 オープンな勉強会で発表したのは初めてだったので胃に穴が空きそうでしたが、なんとか乗り越えられました・・死にそう・・・(◞‸◟) ponyの知名度がちょっとでも上がれば幸…

pony runtimeメモ actor dispatch編 [ponylang]

pony runtime ponyのランタイムについての論文を読んでいる中でActorの仕組みについての部分を見て現状の実装はどうなっているのか気になったので少しだけ見てみました。 論文は2013年ですが現時点(2016/3/5)での最新コミットのソースを見てみます。 *1 acto…

ExecutionContextとblockingについて調べたメモ [scala]

この記事の結論 globalなExecutionContextではブロックする処理をblockingで包むとスレッド数が勝手に増えるから空きスレッドが無くて実行できないといったことを防げる。 ExecutionContext.fromExecutorService(new ForkJoinPool(100)) で生成されるThread…

Actorの初期化をpreStartでやるべきかプライマリコンストラクタでやるべきかは公式ドキュメントに書いてある - akka

akka2.3.13です。 actorの初期化について迷ったのですが公式ドキュメントに書いてあったのでまとめます。 モチベ Actorのフィールドでなんらかの値を初期化する際に以下のパターンが考えられます。 *1 var foo = _ // varで宣言 override preStart() { super…

Learning Akkaを読んだ

www.amazon.co.jp を読みました。(2015/12/24発売) 全体を通してJava8とScala版のコードが併記されているので賞味としてはもう少し短くなりそうです。 この本では、akkaを使った並行処理だけでなくakka-remoteを使った分散システムの作成にも取り組みます。 …

処理が止まってしまったactorはKILLできる・・? - akka

注:どうなんだろうというところで終わっているので結論はありません。 akka 2.3.13です。 Actorの中で使ってるライブラリがデッドロックしてる?みたいなケースに遭遇したので雑に調査しました。 とりあえず少なくとも以下の様な状況でKillしようとしても止…

ActorInitializationExceptionではpostStopは呼ばれない(?) - akka

akka 2.3.13です。 preStartの中で例外が出た時にpostStopが呼ばれないような挙動があり、微妙に問題になったので本当に呼ばれてないのかどうか調べてみました。 import akka.actor._ object Main extends App { val system = ActorSystem() try { val actor…

継続モナドが分からなくてもActionContの嬉しさなら何とか分かる気がした。

某会社の某アカウントシステムで使われているという継続モナドコントローラーですが、 今までいまいちよくわかっていなかったのですが友達に教えてもらってなるほど!と思ったので書き記します。 ActionCont 継続モナドコントローラー(ActionCont)について…

ansibleのfact_cachingはansible_date_timeもcacheする

ansible高速化のためにansible.cfgに色々設定していましたが、fact_cachingの機能を使うと {{ ansible_date_time.date }}_{{ ansible_date_time.hour}}{{ ansible_date_time.minute }}{{ ansible_date_time.second }} のような変数に使われているdate_timeま…

Future.sequenceでExecutorContextだけ明示的に渡したい時

このエントリが投稿されているということはネタ切れが近いということです(´・_・`) 本題 Future.sequence の引数が (implicit canBuildFrom, executorContext) となっていて、 executorContextだけ渡せないつらいと思ったら (implicitly, execurtor) でいける…

カスタム補間子で自分用のString interpolationを作る

scalaでは s"" という形式で文字に変数を直接埋め込むことができます。 val a = "つ" val b = "ら" val c = "い" s"very $a $b $c poyo." でscalikejdbcには sql"" とかもあり、そもそもscala的には s"" も構文的に特別扱いされているわけではなくて 自分で…

ControlThrowableをcatchしてみる

scalaで try { f() } catch { case e: Throwable => println(e) } など書いてしまうとどうなるかは以下の記事に解説があります。 Scala 2.10 から try catch の catch の部分に型を書かないと警告が出るようになった件について - scalaとか・・・ ほへーと思…

intelliJのプラグインをgithubのリポジトリからcloneしてインストールする方法(idea-plugin-protobuf編)

github.com protobufのシンタックスハイライトなどを効かせてくれるidea-plugin-protobufですが、 2015年12月現在、コミットは行われているものの最終releaseは2月でだいぶ差が開いていそうです。(20コミットくらい) 現状のリリースでprotobuf v3を書くと…

Ponylangについてアドベントカレンダーを書いた後の話

第2のドワンゴ Advent Calendar 2015 - Qiita に参加してponylangについて書きました。 Ponylangで型付きActor生活 - Qiita 今回は上の記事を投稿した後で教えてもらったことや気づいたことをまとめます。 学び http://www.ponylang.org/papers/fast-cheap.p…

pub subっぽいponylangのサンプルコードを書いた

Implementing chat application with Pony lang | Software Development Ramblings に影響を受けて、chatではなくpub/subっぽい何かを作ってみることにしました。 内容的にはpub/subのアーキテクチャがどうあるべきかということではなく、 ponylangでこうい…

npmのパッケージに更新があったら自動でpackage.jsonを変更してプルリクを送ってくれるjenkinsのjobを作った。

npmのパッケージでアップデートがあったら自動で上げてプルリクエストを送ってくれるjenkins job · GitHub 上のものを保存したらjenkinsで以下の条件を整えます。 github enterpriseのURLを一番下の変数っぽいけどそうじゃないところに書く(元がハードコード…

textlintのruleプラグインで見出しのレベルが適切かチェック

matsu-chara/textlint-rule-incremental-headers · GitHub www.npmjs.com 文章を書く時に見出しに関するルールを決めたので、自動で検査するためのツールを作りました。 ルール自体の実装は簡単だったんですが、 textlintルールのテスト、https://t.co/ILIhC…

gitbook-plugin-tut-to-scalaをリリースした

けどおそらくもう更新することは無いと思います(´・_・`) matsu-chara/gitbook-plugin-tut-to-scala · GitHub www.npmjs.com なにこれ gitbookのプラグインです。 ```tutという文字列をビルド時に```scalaという文字列に置き換えます。 tutとは github.com tut…

脱gulpしたいけどkarma startでmochaのテストもeslintもしたいし、watchifyされていたい感じの人向けのJSプロジェクトテンプレートを作った。

タイトルが長い。 charaい先輩のブログ、更新が止まってて心配だ— トンボ (@tom__bo_CS) November 15, 2015 書くこと無いなーと思ってぼんやりしていたら生存を心配されてしまったのでハートビート的に何か書くことにしました。 しかし、書くことがあったら…

Ponylangで型付きアクター生活[7] capability subtyping, arrow type編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 はろぽに〜₍₍ (ง´・_・`)ว ⁾⁾ 今回で最終回です。 Capability subtyping reference capabilityが付いて…

Ponylangで型付きアクター生活[6] consume, recover編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 はろぽに〜₍₍ (ง´・_・`)ว ⁾⁾ 前回isoとtrnはそのままでは代入できないということが判明したので今回は…

Ponylangで型付きアクター生活[5] 続CapabiltiesとAliasing編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 はろぽにー₍₍ (ง´・_・`)ว ⁾⁾ 前回でCapabilitesでましたけど、じゃあコンパイルが通ると何が保証され…

Ponylangで型付きアクター生活[4] Capabilities 編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 追記: 2016/1/5 試してもらった人によると以下を実行する必要があったとのことです。(環境によりそ…

Ponylangで型付きアクター生活[3] Expression編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 はろぽにー ₍₍ (ง´・_・`)ว ⁾⁾ この挨拶流行るんですかね(´・_・`) 引き続きPonylangの紹介です。 公式ド…

Ponylangで型付きアクター生活[2] TypeとActor編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 はろぽにー₍₍ (ง´・_・`)ว ⁾⁾ ということで引き続きPonyの機能を見ていきます。 Type 本家だとこの編で…

Ponylangで型付きアクター生活[1] Hello World編

注意 ここにある内容はpony2.x時代にドキュメントに書かれていた物なので、もう古い可能性が高いです。最新の情報は公式ドキュメントを参照してください。 全国の静的型付けじゃないと手が震えてしまうみなさんこんにちは。 アクターでも型を付けたいですね…

Scientific Linuxでfluentdが入らなかったので何とかした

Scientific Linuxだと以下のようになってfluentd(というかtd-agent)が入らなかった件についてです。 [vagrant@localhost ~]$ curl -L https://td-toolbelt.herokuapp.com/sh/install-redhat-td-agent2.sh | sh % Total % Received % Xferd Average Speed T…

ScanSnapをUSB接続したときにScanSnapManagerが自動起動されると幸せになる

Mac

ブログのネタがなくなりました(´;ω;`) ScanSnap、すごい便利に使っているんですがUSB接続したときにScanSnapManagerが開いてほしかったので開くようにしました。 step1 ControlPlaneの用意 ControlPlaneというのを使います。 ControlPlane | Context Sensi…

マルチスレッドでもActorでもない並行処理

前回Javaのマルチスレッドについて勉強して、辛すぎる(∩´﹏`∩)となったので、akkaを勉強するぞ―!と思っていたのですが、気になる資料を見つけました。 並行処理の統一モデルへの動向 コンピュータ業界はオブジェクト指向を基に関数型言語に移行する動きにあ…