読者です 読者をやめる 読者になる 読者になる

夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Scala

akka-distributed-workersの初期化処理確認

こんにちは。前回でPersistenceまで行ったので、今回はより大きなサンプルであるakka-distributed-workersを読み、 動作の確認を行ってみました。ソースコードは下記の場所から取得することができます。 typesafehub/activator-akka-distributed-workers中身…

Akka-Persistenceでイベントを保存する

こんにちは。はじめはTypedActorをやろうとも思ったのですが、 Akka-Meetupでもあったように、TypedActorは使いにくいので通常あまり使われないようです。 #実際、クラス階層も変わるためいまいち使いにくい、というのはありました。並行処理初心者のための…

Akka-RemoteでRoutingを行う

こんにちは。前回、RemoteでRoutingを行おうとして上手くいかなかったため、 それをどうやって実現するのかを試してみます。あと、Routingを行うなら異なるプロセス間を跨がないといまいち面白くないため、 名前的には微妙ですが、下記の構成にして実際にRou…

Akka-RemoteでRemoteからActorを作成する

こんにちは。前回に続き、今回はAkka-Remoteを使用してリモートからActorを作成する方法を確認します。 1. プログラム上でアドレスを定義してデプロイ まずは、プログラム上でアドレスを定義してServer側にActorを生成することを試してみます。クライアント…

Akka-Remoteでメッセージングを行う

こんにちは。今回はAkka-Remoteを用いて別プロセス同士でメッセージングを行う方法を確認してみます。参考: Remoting — Akka Documentation役割をわかりやすくするために下記のような構成で名前をつけて作ってみます。 1. 下準備 尚、定義は下記の構成にな…

ActorSystemからActorを検索し、メッセージを送信する

こんにちは。今回は生成したActorに対してメッセージを送信するのではなく、 元々存在しているActorを取得してきてメッセージを送信することを試してみます。これができるようになれば、元々存在しているActorSystemにアクセスし、 Actorに対してメッセージ…

Inboxを用いてFutureを使うよりお手軽に応答を受信する

こんにちは。以前の投稿でActorから応答を受信するための方法について確認しましたが、 1つの応答ごとにFutureを用いる必要があり、正直な話かなり使いにくいものでした。そのため、もっと簡単に応答を受信できるものが無いかな・・ と確認してみたところ、…

Akka Actorの設定を設定ファイルから読み込む

こんにちは。前回に設定ファイルの設定方法について確認したので、 今回は実際に設定ファイルからActorの定義を読み込めるか試してみます。参考: Configuration − Akka Documentation Routing − Akka Documentation 1. 設定ファイルからActor(Router)の定…

Akka Actorでの設定ファイルの読み込み方を確認してみる

こんにちは。前回でRoutingの基本をやって、次に移ろうとした所、 設定ファイルの読み込みが前提になっているような話になってきたので、 一度設定ファイルの読み込み方の確認をしてみます。参考: Configuration − Akka Documentation Routing − Akka Docum…

Akka Actor確認(Router確認)

こんにちは。前回Actorからの応答を受け取ることができたので、 今回はActorに対してメッセージを割り振るRouterの機能を確認してみます。参考: Routing − Akka Documentation上記の参考ページによると、 RouterはRoutingを行うLogicクラスとRouting先のRou…

Akka Actor確認(呼び出し元での結果取得)

こんにちは。前回、Actorからの応答を受信できないか試したところ空の結果が返ってきた・・ という結果だったのですが、これでは実際使いにくい、と調べてみたところ、案の定応答を受信する仕組みは存在しました。akka.patterns.askをインポートした上で ? …

Akka Actor確認(メッセージの応答受信)

こんにちは。今回はAkka Actorに対して送信したメッセージを受信する方法の確認をしてみます。 1. そのまま返り値は返る? まず、receiveメソッドの結果返り値を返すように修正し、 呼び出し側でメッセージを送った際に返り値をキャストするようにしてみます…

Akka Actor確認(パラメータ、初期化/終了時処理)

こんにちは。内容的にScalaの復習も兼ねていますがまぁお気になさらず。前回とりあえず最低限動作するものを作成しました。 今回はActorに対してパラメータを渡す方法と、 初期化処理/終了時処理をどう記述するかを確認してみます。Actorのソースを見ると、…

Akka事はじめ

こんにちは。前回でAkka-Streamsのソースを確認していましたが、 そもそものScalaとAkka自体に対する前提知識が不足しているため、 見事にはまってしまった感じでした^^;なので、何度かScalaを用いたAkkaの小さなアプリを作成し、 そこから広げていこうと…

Play! Framework勉強会第2回 in 東京に行ってきました

こんばんは。第二回 #Playframework 勉強会 in Tokyo #play_jaに行ってきましたので、 その感想を。一度Playframeworkを用いて内部向けのシステムを作ったことがあって、 その時に下記のような特徴があったため気になっていたFrameworkです。 ・Entityを定義…

Scala2.9 Android Eclipseプラグイン導入失敗記(その2

おはようございます。前回に引き続き。Eclipse 環境でScala2.9でAndroidの開発ができないのか、 について確認を行いました。 3.Eclipseプラグインに適用してみる まずは、前回のラストで下記のようにAndroid用のScalaライブラリがビルドされました。 これを…

Scala2.9 Android Eclipseプラグイン導入失敗記(その1

こんばんは。とりあえず以前の投稿の続きとして、 Scala2.9をAndroid Eclipseプラグインに導入して、Scala2.9のコードをそのままAndroidに放りこめないかな? というのを試してみました。・・・タイトルから失敗したのはわかるとは思いますが、お付き合いく…

Android用ScalaライブラリってScala2.9版に出来ないのかな?

こんにちは。最近ScalaとAndroidの記事を書いていますが、 『いっそ一緒に出来るようにしてしまおう。』ということで、 今日はAndroid用Scalaライブラリ導入について調べてみました! ※ApiDemosは今度にでも(汗 Scala用Androidライブラリを探してみた結果 S…

scalaで出来ることを並べてみる:関数リテラル&関数オブジェクト

関数リテラルについて色々試してた際に、 プログラミング言語Scala 日本語情報サイト:メソッドから関数オブジェクトを取得する で メソッドから関数オブジェクトを取得する方法もわかったので併せて書いてます。てなわけで。 Scalaでは関数リテラルという方…

scalaで出来ることを並べてみる:Predef

scalaには一部メソッドだけでどのクラスからも呼び出せるメソッドがあります。サンプルコード■PredefMain.scalapackage jp.gr.kmtn.scalatutorial.grammertips/** * Predef用メインクラス * * @author Fukushi- */object PredefMain { /** * Predefテスト用…

scalaで出来ることを並べてみる:演算子表現=メソッド表現&リッチラッパー

scalaはJavaと違って、演算子(+とか)が存在せず、全てメソッドで構成されているとなっています。なんですが、イマイチそれだけ言われても実感できないので、試してみました。ついでにリッチラッパーの確認もやってました。サンプルコード■OperatorMethodMa…

scalaで出来ることを並べてみる:Applicationトレイト

現在、シングルトンオブジェクトの中にmainメソッドを作成してその中に実際の処理を書いていますが、Applicationトレイトを実装したコードを使うと、mainメソッドも省略できます。■ApplicationTraitMain.scalaobject ApplicationTraitMain extends Applicati…

scalaで出来ることを並べてみる:Map

JavaやC#においてはMapオブジェクトというのは後で何かを追加して使いまわすために用いられる『ミュータブルオブジェクト』という扱いが基本です。ですが、scalaのような関数型言語では『イミュータブルオブジェクト』として扱うのが基本だそうな。実際、Map…

scalaで出来ることを並べてみる:タプル

JavaやらC#でプログラムを書いていると、『返り値を複数返したい』ケースが出てきます。特に、違う型の返り値を返したい場合が厄介です。返り値を返すためだけにBeanクラスを作ったりする。。。というのは面倒ですからね。・・・まぁ、返り値を複数返したい…

scalaで出来ることを並べてみる:シンボルリテラル

scalaでJavaに無い概念として、「シンボルリテラル」というものがあります。言ってしまうと指定された文字列を持つラッパーみたいなもので、同じ引数を指定されたシンボルリテラルはメモリ上で同じ参照を示すことが保障されます。とまぁ、これだけかいてもわ…

駄目ネタで試すScala 名前付き引数 〜魔法少女まどか☆マギカ編〜

前回残っていた、『途中の引数を省略する場合はどうすればいいのか?』について。デフォルト値によって引数が省略できるにしても、『どの引数を指定し、どの引数を省略するか?』が指定できないと実際にはまともに使えません。そんなわけで、scalaでは引数に…

駄目ネタで試すScala 引数 〜魔法少女まどか☆マギカ編〜

てなわけで(?) ネタ編第2回です。適切なネタがパッと他に思い浮かばなかったので今回も魔法少女まどか☆マギカ継続で。今度は何をネタにするかなぁ。。。。オブジェクト指向言語に限らず、クラスやメソッドで、『いくつかの引数は省略しても動くようにし…

駄目ネタで試すScala Actor 〜魔法少女まどか☆マギカ編〜解説

というわけで、前回投稿中のコードを解説。■Homo.scalaabstract class Homo(name: String) { /** * 名前を文字列型で返す抽象メソッド */ def getName(): String}オブジェクト指向言語ではおなじみの抽象クラスです。コンストラクタとして、String型の引数を…

駄目ネタで試すScala-Actor-〜魔法少女まどか☆マギカ編〜

これで足場は揃ったので、今回からはscalaの要素等を色々試していこうと思います。で、今回はActorです。使ったコードは下記の通り。ネタはお察しください(笑ネタの関係上、Actorに渡すクラス群の名称は全てラテン語になってます。■Homo.scalapackage jp.gr…

Scala Plugin for EclipseでJavaと同じように出来ること一覧(その1)

とりあえず、導入してみた後、Javaと同じような便利機能がどれだけ出来るかを試してみました。下記のような開発時に頻度が高くものは一通り出来そう。出てそれなりに時間がたっているせいか、機能は備わっているようです。特に、変数名のリネームや呼び出し…

Scala Plugin For Eclipse

Javaで現状一番経験があるIDEはEclipseなので、Eclipseベースのscala開発環境もあるだろう。。。。と見てみたところ、普通にありました。Scala IDE for EclipseEclipse3.6.2 HeliosのUpdateサイトにscalaのものを設定したら普通にダウンロード&導入完了。こ…

HelloWorld改造版(別クラス参照)でのscalaの特徴とメリットデメリット

とりあえず基本型のコードは書いたのでその中で出てくるscalaの特徴と、メリットデメリットについてまとめます。ただ、私がベースがJava/C#プログラマな関係上、どーしてもその2つの言語との比較になってしまうのでご注意。1.変数に型宣言が不要下記のコ…

HelloWorld改造版(別クラス参照)

今まで生半可理解だったから色々身にしみる。。。というのはさておき。HelloWorldを改造して、下記のソースを作成しました。■HelloWhile.scalaclass HelloWhile { def hello(hellos: String*) = { val upper = hellos.map((s:String) => s.toUpperCase()) Co…

HelloWorldプログラムの実行

インストールが終わったので、定番のHelloWorldプログラムを実行してみます。・・・なんですが、実行手段は下記の通り3通りあったりします。対話方式による実行スクリプトによる実行コンパイルしての実行なので、3通り分書いてみます。各実行方式の違いに…